@stndrds/schema 1.0.0-alpha.192 → 1.0.0-alpha.194
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-DP08iPCh.d.mts +889 -0
- package/dist/attributes-Ddhps_AU.d.ts +889 -0
- package/dist/{chunk-MAKSIK3P.js → chunk-5WATIVCA.js} +2 -2
- package/dist/{chunk-4KRLCWJM.mjs → chunk-6I2R22CX.mjs} +1 -1
- package/dist/{chunk-DC7YYE3U.js → chunk-ACKMC6FL.js} +2 -2
- package/dist/{chunk-TEQNVO7W.mjs → chunk-AYVHMVKQ.mjs} +1 -1
- package/dist/{chunk-P2BE2A2G.js → chunk-BV3IUMMW.js} +4 -7
- package/dist/{chunk-CCB4OY2O.js → chunk-E6JUYGJX.js} +2 -2
- package/dist/{chunk-7A3Y6O32.js → chunk-EBGRZUIH.js} +2 -2
- package/dist/{chunk-QWZHR2OO.js → chunk-EW5XR2X3.js} +2 -2
- package/dist/{chunk-UQVW4KPP.mjs → chunk-HRQEZUAA.mjs} +0 -1
- package/dist/{chunk-OAQWRMTP.js → chunk-HTSTPTNZ.js} +2 -2
- package/dist/{chunk-U4JC7P6D.mjs → chunk-HXDDJLHD.mjs} +37 -52
- package/dist/{chunk-Z75P63VF.mjs → chunk-JUKLL5RJ.mjs} +1 -1
- package/dist/{chunk-YQROI4IE.js → chunk-M5QIBMIH.js} +37 -52
- package/dist/{chunk-FQ2ZYOVS.js → chunk-MZOEL7FN.js} +47 -41
- package/dist/{chunk-KWVCGQ7N.mjs → chunk-NOMHDOVE.mjs} +2 -5
- package/dist/{chunk-OLJLCVNY.mjs → chunk-NS63SPNN.mjs} +1 -1
- package/dist/{chunk-J5HRK3WD.js → chunk-O44XVGHE.js} +2 -2
- package/dist/{chunk-TMYBEXBT.mjs → chunk-OSSGN43B.mjs} +1 -1
- package/dist/{chunk-LTHSU4NF.mjs → chunk-PMKCDRRO.mjs} +26 -21
- package/dist/{chunk-4TC27SMF.mjs → chunk-QEZUDVTN.mjs} +1 -1
- package/dist/{chunk-BLXQGQLK.mjs → chunk-QVLQPW3O.mjs} +1 -1
- package/dist/{chunk-EZHMVZQ4.js → chunk-QWKLQRBX.js} +4 -4
- package/dist/{chunk-ROAZLZA2.js → chunk-ROLWVTU3.js} +2 -2
- package/dist/{chunk-3JINFUN3.js → chunk-SGSGREPG.js} +2 -6
- package/dist/{chunk-VXOTYFEW.js → chunk-T6L2MUG2.js} +2 -2
- package/dist/{chunk-KNYZH2WD.mjs → chunk-UANQJ2GH.mjs} +8 -1
- package/dist/{chunk-IRTRJH37.mjs → chunk-UXAHLSWC.mjs} +1 -1
- package/dist/{chunk-ACQ3TUFK.js → chunk-V2UA2D4E.js} +2 -2
- package/dist/{chunk-R4CJHCC4.mjs → chunk-XZ5RG2OG.mjs} +1 -4
- package/dist/{chunk-TKN73433.js → chunk-YIP5FJ5H.js} +9 -2
- package/dist/{chunk-T225DB55.js → chunk-YKWSHBT5.js} +0 -1
- package/dist/{chunk-TBYXYSGA.mjs → chunk-YUFTHPOE.mjs} +1 -1
- package/dist/{chunk-ITTQ4FGR.mjs → chunk-ZDMOXF3U.mjs} +1 -1
- package/dist/{chunk-SMOHDR6M.mjs → chunk-ZDQ5AP26.mjs} +1 -1
- package/dist/{helpers-Y9rNQ6sz.d.ts → helpers-Bph8AoY7.d.mts} +15 -3
- package/dist/{helpers-HrKmSkLi.d.mts → helpers-D9klos6x.d.ts} +15 -3
- package/dist/index.d.mts +1121 -235
- package/dist/index.d.ts +1121 -235
- package/dist/index.js +2369 -854
- package/dist/index.mjs +2264 -774
- package/dist/{types-Bdlhgrf7.d.ts → types-D38kriFw.d.mts} +1 -2
- package/dist/{types-C5DittlR.d.mts → types-iKvYBe6v.d.ts} +1 -2
- package/dist/validation/all.d.mts +3 -3
- package/dist/validation/all.d.ts +3 -3
- package/dist/validation/all.js +30 -27
- package/dist/validation/all.mjs +17 -18
- package/dist/validation/complex/currency.d.mts +2 -2
- package/dist/validation/complex/currency.d.ts +2 -2
- package/dist/validation/complex/currency.js +3 -3
- package/dist/validation/complex/currency.mjs +2 -2
- package/dist/validation/complex/file.d.mts +2 -2
- package/dist/validation/complex/file.d.ts +2 -2
- package/dist/validation/complex/file.js +3 -3
- package/dist/validation/complex/file.mjs +2 -2
- package/dist/validation/complex/location.d.mts +2 -2
- package/dist/validation/complex/location.d.ts +2 -2
- package/dist/validation/complex/location.js +3 -3
- package/dist/validation/complex/location.mjs +2 -2
- package/dist/validation/complex/phone.d.mts +2 -2
- package/dist/validation/complex/phone.d.ts +2 -2
- package/dist/validation/complex/phone.js +3 -3
- package/dist/validation/complex/phone.mjs +2 -2
- package/dist/validation/complex/relation.d.mts +2 -2
- package/dist/validation/complex/relation.d.ts +2 -2
- package/dist/validation/complex/relation.js +5 -5
- package/dist/validation/complex/relation.mjs +2 -2
- package/dist/validation/complex/richtext.d.mts +2 -2
- package/dist/validation/complex/richtext.d.ts +2 -2
- package/dist/validation/complex/richtext.js +3 -3
- package/dist/validation/complex/richtext.mjs +2 -2
- package/dist/validation/complex/select.d.mts +2 -2
- package/dist/validation/complex/select.d.ts +2 -2
- package/dist/validation/complex/select.js +5 -5
- package/dist/validation/complex/select.mjs +2 -2
- package/dist/validation/complex/user.d.mts +2 -2
- package/dist/validation/complex/user.d.ts +2 -2
- package/dist/validation/complex/user.js +3 -3
- package/dist/validation/complex/user.mjs +2 -2
- package/dist/validation/computed/formula.d.mts +2 -2
- package/dist/validation/computed/formula.d.ts +2 -2
- package/dist/validation/computed/formula.js +3 -3
- package/dist/validation/computed/formula.mjs +2 -2
- package/dist/validation/computed/rollup.d.mts +2 -2
- package/dist/validation/computed/rollup.d.ts +2 -2
- package/dist/validation/computed/rollup.js +3 -3
- package/dist/validation/computed/rollup.mjs +2 -2
- package/dist/validation/config/index.d.mts +1 -1
- package/dist/validation/config/index.d.ts +1 -1
- package/dist/validation/config/index.js +4 -4
- package/dist/validation/config/index.mjs +1 -1
- package/dist/validation/core/index.d.mts +3 -3
- package/dist/validation/core/index.d.ts +3 -3
- package/dist/validation/core/index.js +3 -3
- package/dist/validation/core/index.mjs +1 -1
- package/dist/validation/object/index.d.mts +3 -3
- package/dist/validation/object/index.d.ts +3 -3
- package/dist/validation/object/index.js +32 -29
- package/dist/validation/object/index.mjs +16 -17
- package/dist/validation/primitives/checkbox.d.mts +2 -2
- package/dist/validation/primitives/checkbox.d.ts +2 -2
- package/dist/validation/primitives/checkbox.js +3 -3
- package/dist/validation/primitives/checkbox.mjs +2 -2
- package/dist/validation/primitives/date.d.mts +2 -2
- package/dist/validation/primitives/date.d.ts +2 -2
- package/dist/validation/primitives/date.js +3 -3
- package/dist/validation/primitives/date.mjs +2 -2
- package/dist/validation/primitives/number.d.mts +2 -2
- package/dist/validation/primitives/number.d.ts +2 -2
- package/dist/validation/primitives/number.js +3 -3
- package/dist/validation/primitives/number.mjs +2 -2
- package/dist/validation/primitives/text.d.mts +3 -8
- package/dist/validation/primitives/text.d.ts +3 -8
- package/dist/validation/primitives/text.js +3 -7
- package/dist/validation/primitives/text.mjs +2 -2
- package/package.json +2 -13
- package/dist/chunk-D7WFIGXW.js +0 -14
- package/dist/chunk-RUYUFXNW.mjs +0 -12
- package/dist/filters-DVBn5tov.d.ts +0 -1630
- package/dist/filters-HDG4kLoo.d.mts +0 -1630
- package/dist/validation/primitives/rating.d.mts +0 -12
- package/dist/validation/primitives/rating.d.ts +0 -12
- package/dist/validation/primitives/rating.js +0 -11
- package/dist/validation/primitives/rating.mjs +0 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,15 +1,250 @@
|
|
|
1
|
-
import { k as
|
|
2
|
-
export {
|
|
1
|
+
import { i as ComputedValueType, j as ComputedReturnType, k as AttributeType, l as ComputedOptionsSource, m as ComputedDependency, n as ComputedPlan, f as RollupAttribute, A as Attribute, o as Timestamps, p as DocumentLayout, h as CompletionStatus, q as SchemaOperation, r as LocationGranularity, s as Location, e as FormulaAttribute, t as DocumentAttribute, d as StatusAttribute, c as SelectAttribute, b as MultiselectAttribute, u as Phone, v as Currency, D as DateAttribute, U as UserAttribute, w as DocumentSlotConfig, x as PropertySchema, g as CheckboxAttribute, C as CurrencyAttribute, T as TextAttribute, N as NumberAttribute, P as PhoneAttribute, y as Option, L as LocationAttribute, F as FileAttribute, z as FormulaReturnType, R as RelationAttribute, B as BilateralConfig, S as SingleRelationAttribute, M as MultiRelationAttribute, E as RelationTarget, a as RichtextAttribute, G as RollupFunction, H as UserReferenceType, I as MigrationDefinition, O as ObjectDefinition } from './attributes-DP08iPCh.mjs';
|
|
2
|
+
export { J as AttributeGroup, K as BaseAttribute, Q as BuiltInTransform, V as ComputedAttributeState, W as ComputedFieldKind, X as ComputedStateStatus, Y as CreateDocument, Z as CreateDocumentLink, _ as CreateDocumentSlot, $ as DEFAULT_DOCUMENT_SLOT, a0 as DateFormat, a1 as DateValue, a2 as Document, a3 as DocumentKind, a4 as DocumentLayoutVariant, a5 as DocumentListOptions, a6 as DocumentSlot, a7 as DocumentWithSlots, a8 as DocumentWithSubCount, a9 as FolderPreset, aa as MAX_PRESET_DEPTH, ab as NumberUnit, ac as ObjectAttribute, ad as ObjectRecord, ae as OptionPropertyAttribute, af as PresetNode, ag as PropertyAttribute, ah as PropertyType, ai as RELATION_TARGET_ANY, aj as RESERVED_ATTRIBUTE_NAMES, ak as RecordDocuments, al as ReservedAttributeName, am as RichTextAttribute, an as SYSTEM_FIELD_NAMES, ao as SlotStatus, ap as StatusGroup, aq as SystemFieldName, ar as UpdateDocument, as as UpdateDocumentSlot, at as hasOptions, au as inferInverseCardinality, av as isAttributeSortable, aw as isBilateralRelation, ax as isUniversalRelation } from './attributes-DP08iPCh.mjs';
|
|
3
3
|
import { MimeType, IconName, ColorId, CountryIso3, CurrencyCode } from '@stndrds/constants';
|
|
4
4
|
import { Uuid, TenantId } from './utils.mjs';
|
|
5
5
|
export { UserId, asTenantId, asUserId, deepEqual, generateId, indexBy } from './utils.mjs';
|
|
6
6
|
import { StandardSchemaV1 } from '@standard-schema/spec';
|
|
7
7
|
export { StandardSchemaV1 } from '@standard-schema/spec';
|
|
8
8
|
import z from 'zod';
|
|
9
|
-
export { V as ValidationMessages } from './types-
|
|
9
|
+
export { V as ValidationMessages } from './types-D38kriFw.mjs';
|
|
10
10
|
export { DEFAULT_VALIDATION_MESSAGES, formatZodErrors } from './validation/core/index.mjs';
|
|
11
11
|
export { parseAttributeConfig } from './validation/config/index.mjs';
|
|
12
|
-
export { c as computeRecordStatus, a as createFormAttributeValidator, v as validateDraft, b as validateDraftOrThrow, d as validateObject, e as validateObjectOrThrow } from './helpers-
|
|
12
|
+
export { c as computeRecordStatus, a as createFormAttributeValidator, r as rejectUnknownAttributesOrThrow, v as validateDraft, b as validateDraftOrThrow, d as validateObject, e as validateObjectOrThrow } from './helpers-Bph8AoY7.mjs';
|
|
13
|
+
|
|
14
|
+
declare const COMPUTED_FUNCTION_NAMES: readonly ["if", "concat", "sum", "avg", "count", "min", "max", "earliest", "latest", "unique", "first", "percent_empty", "percent_not_empty", "count_empty", "count_not_empty", "count_unique"];
|
|
15
|
+
type ComputedFunctionName = (typeof COMPUTED_FUNCTION_NAMES)[number];
|
|
16
|
+
interface ComputedFunctionSignature {
|
|
17
|
+
name: ComputedFunctionName;
|
|
18
|
+
returnType: ComputedValueType | "argument" | "branch" | "source_item";
|
|
19
|
+
minArgs: number;
|
|
20
|
+
maxArgs?: number;
|
|
21
|
+
}
|
|
22
|
+
declare const COMPUTED_FUNCTIONS: Record<ComputedFunctionName, ComputedFunctionSignature>;
|
|
23
|
+
declare function isComputedFunctionName(name: string): name is ComputedFunctionName;
|
|
24
|
+
|
|
25
|
+
type ComputedFormulaAstNode = ComputedFormulaLiteralNode | ComputedFormulaPathNode | ComputedFormulaCallNode | ComputedFormulaBinaryNode;
|
|
26
|
+
interface ComputedFormulaLiteralNode {
|
|
27
|
+
kind: "literal";
|
|
28
|
+
value: string | number | boolean | null;
|
|
29
|
+
}
|
|
30
|
+
interface ComputedFormulaPathNode {
|
|
31
|
+
kind: "path";
|
|
32
|
+
parts: string[];
|
|
33
|
+
}
|
|
34
|
+
interface ComputedFormulaCallNode {
|
|
35
|
+
kind: "call";
|
|
36
|
+
functionName: string;
|
|
37
|
+
args: ComputedFormulaAstNode[];
|
|
38
|
+
}
|
|
39
|
+
interface ComputedFormulaBinaryNode {
|
|
40
|
+
kind: "binary";
|
|
41
|
+
operator: ComputedFormulaBinaryOperator;
|
|
42
|
+
left: ComputedFormulaAstNode;
|
|
43
|
+
right: ComputedFormulaAstNode;
|
|
44
|
+
}
|
|
45
|
+
type ComputedFormulaBinaryOperator = ">" | "<" | ">=" | "<=" | "==" | "!=" | "+" | "-" | "*" | "/";
|
|
46
|
+
declare class ComputedFormulaParseError extends Error {
|
|
47
|
+
constructor(message: string);
|
|
48
|
+
}
|
|
49
|
+
declare function parseComputedFormula(expression: string): ComputedFormulaAstNode;
|
|
50
|
+
|
|
51
|
+
interface ComputedCompileAttribute {
|
|
52
|
+
name: string;
|
|
53
|
+
type: AttributeType;
|
|
54
|
+
id?: string;
|
|
55
|
+
returnType?: ComputedReturnType;
|
|
56
|
+
optionsSource?: ComputedOptionsSource;
|
|
57
|
+
options?: readonly unknown[];
|
|
58
|
+
cardinality?: "one" | "many";
|
|
59
|
+
targetObjectName?: string;
|
|
60
|
+
targets?: readonly {
|
|
61
|
+
object: string;
|
|
62
|
+
}[];
|
|
63
|
+
}
|
|
64
|
+
interface ComputedCompileObject {
|
|
65
|
+
objectName: string;
|
|
66
|
+
attributes: readonly ComputedCompileAttribute[];
|
|
67
|
+
}
|
|
68
|
+
interface ComputedCompileSchema extends ComputedCompileObject {
|
|
69
|
+
relatedObjects?: Record<string, ComputedCompileObject>;
|
|
70
|
+
}
|
|
71
|
+
interface CompileComputedFormulaInput {
|
|
72
|
+
attributeName: string;
|
|
73
|
+
expression: string;
|
|
74
|
+
returnType: ComputedReturnType;
|
|
75
|
+
schema: ComputedCompileSchema;
|
|
76
|
+
}
|
|
77
|
+
interface ComputedDependencyGraphNode {
|
|
78
|
+
attributeName: string;
|
|
79
|
+
dependencies: readonly ComputedDependency[];
|
|
80
|
+
}
|
|
81
|
+
declare class ComputedFormulaCompileError extends Error {
|
|
82
|
+
constructor(message: string);
|
|
83
|
+
}
|
|
84
|
+
declare function compileComputedFormula(input: CompileComputedFormulaInput): ComputedPlan;
|
|
85
|
+
declare function assertAcyclicComputedDependencies(nodes: readonly ComputedDependencyGraphNode[]): void;
|
|
86
|
+
|
|
87
|
+
declare function rollupToFormulaExpression(attr: RollupAttribute): string;
|
|
88
|
+
declare function inferRollupReturnType(attr: RollupAttribute, schema: ComputedCompileSchema): ComputedReturnType;
|
|
89
|
+
declare function compileRollupAttribute(attr: RollupAttribute, schema: ComputedCompileSchema): ComputedPlan;
|
|
90
|
+
|
|
91
|
+
declare function isPlainRecord(value: unknown): value is Record<string, unknown>;
|
|
92
|
+
declare function formatComputedResult(value: unknown, returnType: ComputedReturnType, decimals?: number): unknown;
|
|
93
|
+
declare function evaluateComputedAst(node: ComputedFormulaAstNode, input: Record<string, unknown>): unknown;
|
|
94
|
+
declare function evaluateComputedFormula(expression: string, input: Record<string, unknown>): unknown;
|
|
95
|
+
interface ComputedFormulaResult {
|
|
96
|
+
value: unknown;
|
|
97
|
+
error?: string;
|
|
98
|
+
}
|
|
99
|
+
declare function evaluateComputedFormulaWithResult(expression: string, input: Record<string, unknown>, returnType?: ComputedReturnType, decimals?: number): ComputedFormulaResult;
|
|
100
|
+
|
|
101
|
+
type ComputedFunctionCategory = "logic" | "text" | "number" | "date" | "collection";
|
|
102
|
+
interface ComputedFunctionMetadata {
|
|
103
|
+
name: ComputedFunctionName;
|
|
104
|
+
signature: string;
|
|
105
|
+
description: string;
|
|
106
|
+
category: ComputedFunctionCategory;
|
|
107
|
+
example: string;
|
|
108
|
+
}
|
|
109
|
+
declare const COMPUTED_FUNCTION_METADATA: ComputedFunctionMetadata[];
|
|
110
|
+
|
|
111
|
+
/** Operators for text-based attributes */
|
|
112
|
+
type TextFilterOperator = "is" | "is_not" | "contains" | "not_contains" | "starts_with" | "ends_with" | "is_empty" | "is_not_empty";
|
|
113
|
+
/** Operators for number-based attributes */
|
|
114
|
+
type NumberFilterOperator = "eq" | "neq" | "lt" | "gt" | "lte" | "gte" | "is_empty" | "is_not_empty";
|
|
115
|
+
/** Operators for checkbox */
|
|
116
|
+
type CheckboxFilterOperator = "is_checked" | "is_not_checked";
|
|
117
|
+
/** Operators for date-based attributes */
|
|
118
|
+
type DateFilterOperator = "is" | "is_not" | "before" | "after" | "on_or_before" | "on_or_after" | "is_within" | "day_month_eq" | "is_empty" | "is_not_empty";
|
|
119
|
+
/** Operators for select-based attributes (supports single or multi-value filtering) */
|
|
120
|
+
type SelectFilterOperator = "is" | "is_not" | "any_of" | "none_of" | "is_empty" | "is_not_empty";
|
|
121
|
+
/** Operators for multiselect-based attributes */
|
|
122
|
+
type MultiselectFilterOperator = "contains" | "not_contains" | "is_empty" | "is_not_empty";
|
|
123
|
+
/**
|
|
124
|
+
* Operators for relation-based attributes (covers single, multi-value, and
|
|
125
|
+
* reference-shaped filtering — file, user, relation, document all share the
|
|
126
|
+
* same edge-backed operator set as of Phase 4.4).
|
|
127
|
+
*/
|
|
128
|
+
type RelationFilterOperator = "is" | "is_not" | "any_of" | "none_of" | "contains" | "not_contains" | "is_empty" | "is_not_empty";
|
|
129
|
+
/** All possible filter operators */
|
|
130
|
+
type FilterOperator = TextFilterOperator | NumberFilterOperator | CheckboxFilterOperator | DateFilterOperator | SelectFilterOperator | MultiselectFilterOperator | RelationFilterOperator;
|
|
131
|
+
/** Relative date value for "is_within" operator */
|
|
132
|
+
interface RelativeDateValue {
|
|
133
|
+
amount: number;
|
|
134
|
+
unit: "days" | "weeks" | "months" | "years";
|
|
135
|
+
direction: "past" | "future";
|
|
136
|
+
}
|
|
137
|
+
/** Currency filter value with amount and optional currency codes
|
|
138
|
+
* - code: undefined or [] = any currency
|
|
139
|
+
* - code: string[] = filter by specific currencies
|
|
140
|
+
*/
|
|
141
|
+
interface CurrencyFilterValue {
|
|
142
|
+
value: number | null;
|
|
143
|
+
code?: string[];
|
|
144
|
+
}
|
|
145
|
+
/** Phone filter value with number and optional country code */
|
|
146
|
+
interface PhoneFilterValue {
|
|
147
|
+
phoneNumber: string | null;
|
|
148
|
+
countryCode?: string;
|
|
149
|
+
}
|
|
150
|
+
/** Filter value can be various types depending on the attribute */
|
|
151
|
+
type FilterValue = string | number | boolean | string[] | RelativeDateValue | CurrencyFilterValue | PhoneFilterValue | null;
|
|
152
|
+
/** A single filter rule */
|
|
153
|
+
interface FilterRule {
|
|
154
|
+
/** Root attribute name (scalar attribute, or a reference attribute when `property` is set). */
|
|
155
|
+
attribute: string;
|
|
156
|
+
/**
|
|
157
|
+
* If set, this rule filters on a qualified edge property.
|
|
158
|
+
* Requires `attribute` to be a reference attribute (today: `relation` or `document`) that has `.qualifyWith()`.
|
|
159
|
+
* The `operator` must be valid for the property's type, not the root attribute's type.
|
|
160
|
+
*/
|
|
161
|
+
property?: string;
|
|
162
|
+
/** Filter operator */
|
|
163
|
+
operator: FilterOperator;
|
|
164
|
+
/** Filter value (null for operators like is_empty) */
|
|
165
|
+
value: FilterValue;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Extended filter rule with optional attribute definition.
|
|
169
|
+
* When provided, enables smarter type-aware filtering (e.g., array operators for multiselect).
|
|
170
|
+
*/
|
|
171
|
+
interface ExtendedFilterRule extends FilterRule {
|
|
172
|
+
/** Full attribute definition for type-aware filtering */
|
|
173
|
+
attributeDef?: Attribute;
|
|
174
|
+
}
|
|
175
|
+
/** Combinator for filter rules */
|
|
176
|
+
type FilterCombinator = "and" | "or";
|
|
177
|
+
/** Complete filter state (simple mode) */
|
|
178
|
+
interface FilterState {
|
|
179
|
+
/** How to combine rules */
|
|
180
|
+
combinator: FilterCombinator;
|
|
181
|
+
/** List of filter rules */
|
|
182
|
+
rules: FilterRule[];
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* A filter group containing rules (used in advanced mode)
|
|
186
|
+
* Groups can be nested up to 2 levels deep
|
|
187
|
+
*/
|
|
188
|
+
interface FilterGroup {
|
|
189
|
+
/** Unique identifier for this group */
|
|
190
|
+
id: string;
|
|
191
|
+
/** How to combine rules within this group */
|
|
192
|
+
combinator: FilterCombinator;
|
|
193
|
+
/** List of filter rules in this group */
|
|
194
|
+
rules: FilterRule[];
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Advanced filter state with nested groups
|
|
198
|
+
* Structure: AdvancedFilterState -> FilterGroup[] -> FilterRule[]
|
|
199
|
+
* Maximum 2 levels of nesting
|
|
200
|
+
*/
|
|
201
|
+
interface AdvancedFilterState {
|
|
202
|
+
/** How to combine groups at the top level */
|
|
203
|
+
combinator: FilterCombinator;
|
|
204
|
+
/** List of filter groups */
|
|
205
|
+
groups: FilterGroup[];
|
|
206
|
+
}
|
|
207
|
+
/** Sort direction */
|
|
208
|
+
type SortDirection = "asc" | "desc";
|
|
209
|
+
/** A single sort rule */
|
|
210
|
+
interface SortRule {
|
|
211
|
+
/** Attribute name to sort by */
|
|
212
|
+
attribute: string;
|
|
213
|
+
/** Sort direction */
|
|
214
|
+
direction: SortDirection;
|
|
215
|
+
}
|
|
216
|
+
/** Complete query state with search, filters, sorts, and pagination */
|
|
217
|
+
interface QueryState {
|
|
218
|
+
/** Full-text search query */
|
|
219
|
+
search?: string;
|
|
220
|
+
/** Filter configuration (simple mode) */
|
|
221
|
+
filters?: FilterState;
|
|
222
|
+
/** Advanced filter configuration (grouped mode) */
|
|
223
|
+
advancedFilters?: AdvancedFilterState;
|
|
224
|
+
/** Sort configuration (multiple sorts supported) */
|
|
225
|
+
sorts?: SortRule[];
|
|
226
|
+
/** Pagination */
|
|
227
|
+
limit?: number;
|
|
228
|
+
offset?: number;
|
|
229
|
+
}
|
|
230
|
+
/** Mapping of attribute types to their valid operators (rollup excluded — use getRollupFilterOperators()) */
|
|
231
|
+
declare const OPERATORS_BY_TYPE: Record<Exclude<AttributeType, "rollup">, readonly FilterOperator[]>;
|
|
232
|
+
/** Check if an operator requires a value */
|
|
233
|
+
type NoValueOperator = "is_empty" | "is_not_empty" | "is_checked" | "is_not_checked";
|
|
234
|
+
/** Operators that don't require a value */
|
|
235
|
+
declare const NO_VALUE_OPERATORS: readonly NoValueOperator[];
|
|
236
|
+
/**
|
|
237
|
+
* Check if an operator requires a value
|
|
238
|
+
*/
|
|
239
|
+
declare function isNoValueOperator(operator: FilterOperator): operator is NoValueOperator;
|
|
240
|
+
/**
|
|
241
|
+
* Get the filter operators for a rollup attribute based on its aggregation function and target type.
|
|
242
|
+
*
|
|
243
|
+
* - earliest / latest → date operators
|
|
244
|
+
* - original → operators matching targetAttributeType (falls back to numeric if unknown)
|
|
245
|
+
* - all other functions → numeric operators (sum, avg, count, percent, etc.)
|
|
246
|
+
*/
|
|
247
|
+
declare function getRollupFilterOperators(attr: RollupAttribute): readonly FilterOperator[];
|
|
13
248
|
|
|
14
249
|
/**
|
|
15
250
|
* Generic list options for pagination and sorting
|
|
@@ -189,6 +424,427 @@ interface UpdateFile {
|
|
|
189
424
|
allowedUsers?: Uuid[];
|
|
190
425
|
}
|
|
191
426
|
|
|
427
|
+
/**
|
|
428
|
+
* Type of view - determines the config structure
|
|
429
|
+
*/
|
|
430
|
+
type ViewType = "detail" | "list";
|
|
431
|
+
/**
|
|
432
|
+
* Creation behavior when clicking the "+" button
|
|
433
|
+
* - `redirect`: Create the record then navigate to its detail page
|
|
434
|
+
* - `inline`: Insert an empty row in the table (no navigation)
|
|
435
|
+
* - `modal`: Open a stacked modal for creation
|
|
436
|
+
*/
|
|
437
|
+
type CreateMode = "redirect" | "inline" | "modal";
|
|
438
|
+
/**
|
|
439
|
+
* Inline attribute group configuration
|
|
440
|
+
* Groups multiple attributes into a single composite field with dropdown editing
|
|
441
|
+
*/
|
|
442
|
+
interface AttributeGroupField {
|
|
443
|
+
/** Unique identifier for the group */
|
|
444
|
+
id: string;
|
|
445
|
+
/** Display label for the composite field */
|
|
446
|
+
label: string;
|
|
447
|
+
/** Description shown in the dropdown */
|
|
448
|
+
description?: string;
|
|
449
|
+
/** Attribute names to include in this group */
|
|
450
|
+
attributes: string[];
|
|
451
|
+
/**
|
|
452
|
+
* Template for the display value
|
|
453
|
+
* Uses {attributeName} syntax for interpolation
|
|
454
|
+
* @example "{billing_street}, {billing_city} {billing_postal_code}"
|
|
455
|
+
*/
|
|
456
|
+
displayTemplate?: string;
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Field definition within a form group
|
|
460
|
+
* Can be either a single attribute or an inline attribute group
|
|
461
|
+
*/
|
|
462
|
+
interface Field {
|
|
463
|
+
/** Attribute name to display (for single attribute fields) */
|
|
464
|
+
attribute?: string;
|
|
465
|
+
/** Inline attribute group (groups multiple attributes into one composite field) */
|
|
466
|
+
attributeGroup?: AttributeGroupField;
|
|
467
|
+
/** Grid span (1-12 columns) */
|
|
468
|
+
span?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
|
469
|
+
/** Override label for this view (only for single attribute fields) */
|
|
470
|
+
label?: string;
|
|
471
|
+
/** Force read-only display */
|
|
472
|
+
readOnly?: boolean;
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* Base properties shared by all group types
|
|
476
|
+
*/
|
|
477
|
+
interface BaseGroup {
|
|
478
|
+
id: string;
|
|
479
|
+
label: string;
|
|
480
|
+
description?: string;
|
|
481
|
+
collapsible?: boolean;
|
|
482
|
+
collapsed?: boolean;
|
|
483
|
+
order?: number;
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Group of fields for organizing forms (default group type)
|
|
487
|
+
*/
|
|
488
|
+
interface FieldGroup extends BaseGroup {
|
|
489
|
+
/** Discriminant — optional for backward compatibility with existing data */
|
|
490
|
+
type?: "fields";
|
|
491
|
+
fields: Field[];
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Group that displays related records for a relation attribute
|
|
495
|
+
*/
|
|
496
|
+
interface RelationGroup extends BaseGroup {
|
|
497
|
+
type: "relation";
|
|
498
|
+
/** Relation attribute name on the source object */
|
|
499
|
+
attribute: string;
|
|
500
|
+
/** Columns to display (auto-detected from target object if empty) */
|
|
501
|
+
columns?: string[];
|
|
502
|
+
/** Read-only mode */
|
|
503
|
+
readOnly?: boolean;
|
|
504
|
+
/** Allow creating new related records */
|
|
505
|
+
allowCreate?: boolean;
|
|
506
|
+
/**
|
|
507
|
+
* Two-level traversal — display records from the target's relation.
|
|
508
|
+
* When set, parent rows become grouping headers and the sub-rows
|
|
509
|
+
* (from `through.attribute`) are the primary display.
|
|
510
|
+
*
|
|
511
|
+
* @example attribute = "members", through.attribute = "companies"
|
|
512
|
+
* → displays companies of each member
|
|
513
|
+
*/
|
|
514
|
+
through?: {
|
|
515
|
+
/** Relation attribute on the first-level target object */
|
|
516
|
+
attribute: string;
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Discriminated union of all group types
|
|
521
|
+
*/
|
|
522
|
+
type Group = FieldGroup | RelationGroup;
|
|
523
|
+
type TabType = "form" | "table" | "custom" | "activity" | "richtext" | "documents" | "forms";
|
|
524
|
+
/**
|
|
525
|
+
* Base properties shared by all tab types
|
|
526
|
+
*/
|
|
527
|
+
interface BaseTab {
|
|
528
|
+
id: string;
|
|
529
|
+
name: string;
|
|
530
|
+
label: string;
|
|
531
|
+
icon?: IconName;
|
|
532
|
+
order?: number;
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* Form layout density
|
|
536
|
+
*/
|
|
537
|
+
type FormDensity = "compact" | "comfortable" | "spacious";
|
|
538
|
+
/**
|
|
539
|
+
* Form tab - displays attributes organized in groups
|
|
540
|
+
*/
|
|
541
|
+
interface FormTab extends BaseTab {
|
|
542
|
+
type: "form";
|
|
543
|
+
groups: Group[];
|
|
544
|
+
/** Number of grid columns (1, 2, or 3). Default: 2 */
|
|
545
|
+
formColumns?: 1 | 2 | 3;
|
|
546
|
+
/** Layout density. Default: "comfortable" */
|
|
547
|
+
density?: FormDensity;
|
|
548
|
+
}
|
|
549
|
+
/**
|
|
550
|
+
* Direct relation on the current object
|
|
551
|
+
*
|
|
552
|
+
* @example Contact.companies → shows Companies linked via the "companies" relation
|
|
553
|
+
*/
|
|
554
|
+
interface RelationSource {
|
|
555
|
+
type: "relation";
|
|
556
|
+
/** Relation attribute name on the current object */
|
|
557
|
+
attribute: string;
|
|
558
|
+
}
|
|
559
|
+
/**
|
|
560
|
+
* Inverse lookup — records from another object that point to us
|
|
561
|
+
*
|
|
562
|
+
* @example On Company, show Contacts where Contact.company = this Company
|
|
563
|
+
*/
|
|
564
|
+
interface InverseSource {
|
|
565
|
+
type: "inverse";
|
|
566
|
+
/** Object name that has the relation to us */
|
|
567
|
+
object: string;
|
|
568
|
+
/** Relation attribute name on the source object that points to us */
|
|
569
|
+
attribute: string;
|
|
570
|
+
}
|
|
571
|
+
/**
|
|
572
|
+
* Where table data comes from — either a direct relation or an inverse lookup
|
|
573
|
+
*/
|
|
574
|
+
type TableSource = RelationSource | InverseSource;
|
|
575
|
+
/**
|
|
576
|
+
* Table tab - displays related records in a table
|
|
577
|
+
*
|
|
578
|
+
* The `source` field determines where data comes from.
|
|
579
|
+
*
|
|
580
|
+
* @example Direct: source = { type: "relation", attribute: "members" }
|
|
581
|
+
* @example Inverse: source = { type: "inverse", object: "contacts", attribute: "company" }
|
|
582
|
+
*/
|
|
583
|
+
interface TableTab extends BaseTab {
|
|
584
|
+
type: "table";
|
|
585
|
+
/** Where the data comes from */
|
|
586
|
+
source: TableSource;
|
|
587
|
+
/** Columns to display (attribute names from the resolved target object) */
|
|
588
|
+
columns: string[];
|
|
589
|
+
/**
|
|
590
|
+
* Traverse a 2nd-level relation to display nested data.
|
|
591
|
+
* When active, `columns` stores the 2nd-level object's attribute names.
|
|
592
|
+
*
|
|
593
|
+
* @example source.attribute = "members", through.attribute = "companies"
|
|
594
|
+
* → displays companies of each member
|
|
595
|
+
*/
|
|
596
|
+
through?: {
|
|
597
|
+
/** Relation attribute on the first-level target object */
|
|
598
|
+
attribute: string;
|
|
599
|
+
/** Show _source and _target columns */
|
|
600
|
+
showSourceTarget?: boolean;
|
|
601
|
+
};
|
|
602
|
+
/** Allow creating new records */
|
|
603
|
+
allowCreate?: boolean;
|
|
604
|
+
/** Creation behavior when allowCreate is true. Default: "redirect" */
|
|
605
|
+
createMode?: CreateMode;
|
|
606
|
+
/** Allow inline editing */
|
|
607
|
+
allowEdit?: boolean;
|
|
608
|
+
/** Allow deleting records */
|
|
609
|
+
allowDelete?: boolean;
|
|
610
|
+
/** Default filters applied to the table */
|
|
611
|
+
filters?: FilterState;
|
|
612
|
+
/** Default sort rules */
|
|
613
|
+
sorts?: SortRule[];
|
|
614
|
+
}
|
|
615
|
+
/**
|
|
616
|
+
* Custom tab - renders a developer-defined component
|
|
617
|
+
*/
|
|
618
|
+
interface CustomTab extends BaseTab {
|
|
619
|
+
type: "custom";
|
|
620
|
+
/** Component identifier to render */
|
|
621
|
+
component: string;
|
|
622
|
+
/** Props to pass to the component */
|
|
623
|
+
props?: Record<string, unknown>;
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* Activity tab - displays activity feed for the current record
|
|
627
|
+
*/
|
|
628
|
+
interface ActivityTab extends BaseTab {
|
|
629
|
+
type: "activity";
|
|
630
|
+
limit?: number;
|
|
631
|
+
}
|
|
632
|
+
/**
|
|
633
|
+
* Richtext tab - displays a block editor for a richtext attribute
|
|
634
|
+
*/
|
|
635
|
+
interface RichtextTab extends BaseTab {
|
|
636
|
+
type: "richtext";
|
|
637
|
+
/** Richtext attribute to display in the BlockEditor */
|
|
638
|
+
attribute: string;
|
|
639
|
+
/** Optional text attribute for an editable title input above the editor */
|
|
640
|
+
titleAttribute?: string;
|
|
641
|
+
}
|
|
642
|
+
/**
|
|
643
|
+
* Documents tab - displays all documents attached to the record
|
|
644
|
+
*/
|
|
645
|
+
interface DocumentsTab extends BaseTab {
|
|
646
|
+
type: "documents";
|
|
647
|
+
allowUpload?: boolean;
|
|
648
|
+
allowRemove?: boolean;
|
|
649
|
+
hideAttachments?: boolean;
|
|
650
|
+
}
|
|
651
|
+
/**
|
|
652
|
+
* Forms tab - displays available forms for creating related records
|
|
653
|
+
*/
|
|
654
|
+
interface FormsTab extends BaseTab {
|
|
655
|
+
type: "forms";
|
|
656
|
+
/** Object name to filter forms by slot (derived from record context, but can be overridden) */
|
|
657
|
+
objectName?: string;
|
|
658
|
+
}
|
|
659
|
+
/**
|
|
660
|
+
* Union of all tab types (for detail views)
|
|
661
|
+
*/
|
|
662
|
+
type Tab = FormTab | TableTab | CustomTab | ActivityTab | RichtextTab | DocumentsTab | FormsTab;
|
|
663
|
+
/**
|
|
664
|
+
* Detail view layout mode
|
|
665
|
+
* - `page`: Full view with multiple tabs
|
|
666
|
+
* - `modal`: Simplified view for modals (single FormTab, no tabs UI)
|
|
667
|
+
*/
|
|
668
|
+
type DetailViewLayout = "page" | "modal";
|
|
669
|
+
/**
|
|
670
|
+
* List view layout mode
|
|
671
|
+
* - `table`: Table/grid layout
|
|
672
|
+
* - `kanban`: Kanban board layout (grouped by attribute)
|
|
673
|
+
*/
|
|
674
|
+
type ListViewLayout = "table" | "kanban";
|
|
675
|
+
/**
|
|
676
|
+
* Tab within a list view — each tab carries its own full display configuration.
|
|
677
|
+
*
|
|
678
|
+
* @example
|
|
679
|
+
* ```typescript
|
|
680
|
+
* const tabs: ListViewTab[] = [
|
|
681
|
+
* { id: "all", label: "All Contacts", default: true, layout: "table", columns: ["name", "email", "status"] },
|
|
682
|
+
* { id: "active", label: "Active", layout: "table", columns: ["name", "email"], filters: activeFilter },
|
|
683
|
+
* { id: "pipeline", label: "Pipeline", layout: "kanban", columns: ["name", "amount"], groupByAttribute: "stage" },
|
|
684
|
+
* ];
|
|
685
|
+
* ```
|
|
686
|
+
*/
|
|
687
|
+
interface ListViewTab {
|
|
688
|
+
/** Unique identifier */
|
|
689
|
+
id: string;
|
|
690
|
+
/** Display label */
|
|
691
|
+
label: string;
|
|
692
|
+
/** Icon */
|
|
693
|
+
icon?: IconName;
|
|
694
|
+
/** Default tab (shown on load) */
|
|
695
|
+
default?: boolean;
|
|
696
|
+
/** Layout mode */
|
|
697
|
+
layout: ListViewLayout;
|
|
698
|
+
/** Attribute names to display as columns */
|
|
699
|
+
columns: string[];
|
|
700
|
+
/** Column widths in pixels */
|
|
701
|
+
columnSizing?: Record<string, number>;
|
|
702
|
+
/** Filters applied to this tab */
|
|
703
|
+
filters?: FilterGroup;
|
|
704
|
+
/** Sort rules for this tab */
|
|
705
|
+
sorts?: SortRule[];
|
|
706
|
+
/** Attribute to group by (required when layout is "kanban") */
|
|
707
|
+
groupByAttribute?: string;
|
|
708
|
+
/** When true, the tab is read-only: no cell editing, no create, no delete */
|
|
709
|
+
readOnly?: boolean;
|
|
710
|
+
/** Creation behavior when clicking "+". Default: "redirect" */
|
|
711
|
+
createMode?: CreateMode;
|
|
712
|
+
/** User attribute to display on kanban cards (bottom-left) */
|
|
713
|
+
cardUserAttribute?: string;
|
|
714
|
+
/** Date attribute to display on kanban cards (bottom-right) */
|
|
715
|
+
cardDateAttribute?: string;
|
|
716
|
+
/** Order of kanban columns (by option value) - for kanban layout only */
|
|
717
|
+
kanbanColumnOrder?: string[];
|
|
718
|
+
/** Visibility of kanban columns (by option value) - for kanban layout only */
|
|
719
|
+
kanbanColumnVisibility?: Record<string, boolean>;
|
|
720
|
+
/** Pinned kanban columns (by option value) - for kanban layout only */
|
|
721
|
+
kanbanPinnedColumns?: string[];
|
|
722
|
+
}
|
|
723
|
+
/**
|
|
724
|
+
* Configuration for the side panel displayed alongside tab content.
|
|
725
|
+
* When present, a right-side panel shows the configured attributes as flat fields.
|
|
726
|
+
*/
|
|
727
|
+
interface SidePanelConfig {
|
|
728
|
+
/** Attribute names to display as flat fields in the panel */
|
|
729
|
+
attributes: string[];
|
|
730
|
+
/** Width in pixels. @default 320 */
|
|
731
|
+
width?: number;
|
|
732
|
+
}
|
|
733
|
+
/**
|
|
734
|
+
* Configuration for detail views (RecordEditView)
|
|
735
|
+
*/
|
|
736
|
+
interface DetailViewConfig {
|
|
737
|
+
/** Layout mode */
|
|
738
|
+
layout: DetailViewLayout;
|
|
739
|
+
/** Tabs in this view */
|
|
740
|
+
tabs: Tab[];
|
|
741
|
+
/** Optional side panel with flat attribute fields (not available for modal layout) */
|
|
742
|
+
sidePanel?: SidePanelConfig;
|
|
743
|
+
}
|
|
744
|
+
/**
|
|
745
|
+
* Configuration for list views (RecordsView)
|
|
746
|
+
*
|
|
747
|
+
* Each tab carries its own full config (layout, columns, filters, sorts, groupBy).
|
|
748
|
+
* The view only holds shared base filters applied to ALL tabs.
|
|
749
|
+
*/
|
|
750
|
+
interface ListViewConfig {
|
|
751
|
+
/** Base filters applied to ALL tabs (scoping, tenant, etc.) */
|
|
752
|
+
defaultFilters?: FilterGroup;
|
|
753
|
+
/** Tabs — at least one required. Each carries its own full config. */
|
|
754
|
+
tabs: ListViewTab[];
|
|
755
|
+
}
|
|
756
|
+
/**
|
|
757
|
+
* Union of all view configs
|
|
758
|
+
*/
|
|
759
|
+
type ViewConfig = DetailViewConfig | ListViewConfig;
|
|
760
|
+
/**
|
|
761
|
+
* Base view properties shared by all view types
|
|
762
|
+
*/
|
|
763
|
+
interface BaseViewDefinition {
|
|
764
|
+
/** Unique identifier (UUID, assigned by database) */
|
|
765
|
+
id?: string;
|
|
766
|
+
/** Technical name (kebab-case) */
|
|
767
|
+
name: string;
|
|
768
|
+
/** Display label */
|
|
769
|
+
label: string;
|
|
770
|
+
/** Description */
|
|
771
|
+
description?: string;
|
|
772
|
+
/** Icon */
|
|
773
|
+
icon?: IconName;
|
|
774
|
+
/** Object this view belongs to (object name) */
|
|
775
|
+
object: string;
|
|
776
|
+
/** Default view for this object+type combination */
|
|
777
|
+
default?: boolean;
|
|
778
|
+
/** Extensible metadata */
|
|
779
|
+
metadata?: Record<string, unknown>;
|
|
780
|
+
/** Current schema version of this view definition */
|
|
781
|
+
schema_version: number;
|
|
782
|
+
}
|
|
783
|
+
/**
|
|
784
|
+
* Detail view definition
|
|
785
|
+
*/
|
|
786
|
+
interface DetailViewDefinition extends BaseViewDefinition {
|
|
787
|
+
type: "detail";
|
|
788
|
+
config: DetailViewConfig;
|
|
789
|
+
}
|
|
790
|
+
/**
|
|
791
|
+
* List view definition
|
|
792
|
+
*/
|
|
793
|
+
interface ListViewDefinition extends BaseViewDefinition {
|
|
794
|
+
type: "list";
|
|
795
|
+
config: ListViewConfig;
|
|
796
|
+
}
|
|
797
|
+
/**
|
|
798
|
+
* Unified view definition - discriminated union by type
|
|
799
|
+
*/
|
|
800
|
+
type ViewDefinition = DetailViewDefinition | ListViewDefinition;
|
|
801
|
+
/**
|
|
802
|
+
* Configuration overrides for user customizations
|
|
803
|
+
* Only stores the delta from the source view
|
|
804
|
+
*/
|
|
805
|
+
interface ConfigOverrides {
|
|
806
|
+
tabs?: ListViewTab[];
|
|
807
|
+
hiddenTabIds?: string[];
|
|
808
|
+
detailTabs?: Tab[];
|
|
809
|
+
hiddenDetailTabIds?: string[];
|
|
810
|
+
}
|
|
811
|
+
/**
|
|
812
|
+
* User customization overlay for a view
|
|
813
|
+
* Stored per user, merged at runtime with the source view
|
|
814
|
+
*/
|
|
815
|
+
interface ViewOverlay {
|
|
816
|
+
/** Unique identifier */
|
|
817
|
+
id: string;
|
|
818
|
+
/** View ID this overlay applies to (UUID or virtual ID) */
|
|
819
|
+
viewId: string;
|
|
820
|
+
/** User ID who owns this overlay */
|
|
821
|
+
userId: string;
|
|
822
|
+
/** Configuration overrides (delta only) */
|
|
823
|
+
configOverrides: ConfigOverrides;
|
|
824
|
+
/** User's default view for this object (stored in overlay) */
|
|
825
|
+
isUserDefault?: boolean;
|
|
826
|
+
/** Created timestamp */
|
|
827
|
+
createdAt: Date;
|
|
828
|
+
/** Updated timestamp */
|
|
829
|
+
updatedAt: Date;
|
|
830
|
+
}
|
|
831
|
+
/**
|
|
832
|
+
* Check if a view is a detail view
|
|
833
|
+
*/
|
|
834
|
+
declare function isDetailView(view: ViewDefinition): view is DetailViewDefinition;
|
|
835
|
+
/**
|
|
836
|
+
* Check if a view is a list view
|
|
837
|
+
*/
|
|
838
|
+
declare function isListView(view: ViewDefinition): view is ListViewDefinition;
|
|
839
|
+
/**
|
|
840
|
+
* Check if a group is a field group (default type)
|
|
841
|
+
*/
|
|
842
|
+
declare function isFieldGroup(group: Group): group is FieldGroup;
|
|
843
|
+
/**
|
|
844
|
+
* Check if a group is a relation group
|
|
845
|
+
*/
|
|
846
|
+
declare function isRelationGroup(group: Group): group is RelationGroup;
|
|
847
|
+
|
|
192
848
|
/**
|
|
193
849
|
* Object as stored in database (metadata)
|
|
194
850
|
*/
|
|
@@ -344,13 +1000,6 @@ interface SearchOptions extends ListOptions {
|
|
|
344
1000
|
* Ignored if the search adapter has no embedder configured.
|
|
345
1001
|
*/
|
|
346
1002
|
semanticRatio?: number;
|
|
347
|
-
/**
|
|
348
|
-
* When set, restrict results to records whose `id` is in this list.
|
|
349
|
-
* `null` means "no constraint" (same as omitted). Used by callers that want
|
|
350
|
-
* to intersect search results with a precomputed allow-list (e.g. derived
|
|
351
|
-
* elsewhere in the application).
|
|
352
|
-
*/
|
|
353
|
-
constrainToIds?: string[] | null;
|
|
354
1003
|
/**
|
|
355
1004
|
* Controls which records are returned based on soft-delete state.
|
|
356
1005
|
* Defaults to `liveOnly` when omitted.
|
|
@@ -1121,7 +1770,7 @@ declare const IDENTITY_PROPERTIES: readonly ["name", "type"];
|
|
|
1121
1770
|
* Behavior properties - Protected for system attributes
|
|
1122
1771
|
* These affect business logic and data integrity.
|
|
1123
1772
|
*/
|
|
1124
|
-
declare const BEHAVIOR_PROPERTIES: readonly ["required", "
|
|
1773
|
+
declare const BEHAVIOR_PROPERTIES: readonly ["required", "hidden", "archived", "deprecated", "defaultValue", "config", "order", "unique"];
|
|
1125
1774
|
/**
|
|
1126
1775
|
* Presentation properties - Always modifiable
|
|
1127
1776
|
* These only affect display, not logic.
|
|
@@ -1276,7 +1925,6 @@ interface FieldHistoryEntry {
|
|
|
1276
1925
|
type AgentRunStatus = "pending" | "running" | "completed" | "failed" | "cancelled" | "paused";
|
|
1277
1926
|
type AgentSessionStatus = "active" | "idle" | "completed" | "failed" | "cancelled" | "waiting_human" | "timeout" | "expired";
|
|
1278
1927
|
type AgentSessionMode = "interactive" | "autonomous";
|
|
1279
|
-
type QuestionStatus = "pending" | "answered" | "timeout" | "cancelled";
|
|
1280
1928
|
type TriggerEventType = "record.created" | "record.updated" | "record.deleted" | "form.submitted" | "agent.completed" | "webhook" | "schedule";
|
|
1281
1929
|
type AgentTriggerType = Extract<TriggerEventType, "record.created" | "record.updated" | "record.deleted">;
|
|
1282
1930
|
type ProviderName = "anthropic" | "openai" | "google" | "mistral";
|
|
@@ -1360,11 +2008,6 @@ interface AgentMessageAttachment {
|
|
|
1360
2008
|
mimeType: string;
|
|
1361
2009
|
size: number;
|
|
1362
2010
|
}
|
|
1363
|
-
interface TimeoutPolicy {
|
|
1364
|
-
timeoutMs: number;
|
|
1365
|
-
action: "cancel" | "auto_decide" | "escalate";
|
|
1366
|
-
fallbackValue?: unknown;
|
|
1367
|
-
}
|
|
1368
2011
|
interface AgentDefinition {
|
|
1369
2012
|
id: string;
|
|
1370
2013
|
tenantId: string;
|
|
@@ -1516,36 +2159,6 @@ interface AgentToolCall {
|
|
|
1516
2159
|
error?: string;
|
|
1517
2160
|
durationMs?: number;
|
|
1518
2161
|
}
|
|
1519
|
-
interface AgentContextEntry {
|
|
1520
|
-
id: string;
|
|
1521
|
-
rootRunId: string;
|
|
1522
|
-
runId: string;
|
|
1523
|
-
namespace: string;
|
|
1524
|
-
key: string;
|
|
1525
|
-
value: unknown;
|
|
1526
|
-
createdAt: Date;
|
|
1527
|
-
updatedAt: Date;
|
|
1528
|
-
}
|
|
1529
|
-
interface AgentQuestion {
|
|
1530
|
-
id: string;
|
|
1531
|
-
runId: string;
|
|
1532
|
-
sessionId?: string;
|
|
1533
|
-
tenantId: string;
|
|
1534
|
-
question: string;
|
|
1535
|
-
options?: string[];
|
|
1536
|
-
metadata?: Record<string, unknown>;
|
|
1537
|
-
status: QuestionStatus;
|
|
1538
|
-
response?: QuestionResponse;
|
|
1539
|
-
timeoutPolicy?: TimeoutPolicy;
|
|
1540
|
-
createdAt: Date;
|
|
1541
|
-
answeredAt?: Date;
|
|
1542
|
-
expiresAt?: Date;
|
|
1543
|
-
}
|
|
1544
|
-
interface QuestionResponse {
|
|
1545
|
-
answer: unknown;
|
|
1546
|
-
answeredBy?: string;
|
|
1547
|
-
source: "user" | "auto_decide" | "timeout";
|
|
1548
|
-
}
|
|
1549
2162
|
interface RecordAgentEvent {
|
|
1550
2163
|
type: AgentTriggerType;
|
|
1551
2164
|
objectId: string;
|
|
@@ -1615,6 +2228,8 @@ interface AIAvailableModel {
|
|
|
1615
2228
|
};
|
|
1616
2229
|
/** If true, this model is used for generating compaction summaries */
|
|
1617
2230
|
isCompactionModel?: boolean;
|
|
2231
|
+
/** If true, this model is used for fast utility generations (regex, formula, …) */
|
|
2232
|
+
isUtilityModel?: boolean;
|
|
1618
2233
|
}
|
|
1619
2234
|
/**
|
|
1620
2235
|
* Tool call status during execution
|
|
@@ -1892,6 +2507,84 @@ interface AICompactionSummary {
|
|
|
1892
2507
|
compactedAt: Date;
|
|
1893
2508
|
}
|
|
1894
2509
|
|
|
2510
|
+
type AttributeLike = Pick<Attribute, "type"> & Partial<Attribute>;
|
|
2511
|
+
type AttributeLifecycleCapabilities = {
|
|
2512
|
+
active: boolean;
|
|
2513
|
+
deprecated: boolean;
|
|
2514
|
+
visibleInArchitect: boolean;
|
|
2515
|
+
visibleInRuntime: boolean;
|
|
2516
|
+
warningWhenDeprecated: boolean;
|
|
2517
|
+
};
|
|
2518
|
+
type AttributeStorageMode = "value" | "edge" | "computed";
|
|
2519
|
+
type AttributeCardinality = "one" | "many";
|
|
2520
|
+
type AttributePolymorphicCapability = "none" | "code-only" | "internal";
|
|
2521
|
+
type AttributeStorageCapabilities = {
|
|
2522
|
+
mode: AttributeStorageMode;
|
|
2523
|
+
cardinality: AttributeCardinality;
|
|
2524
|
+
edgeBacked: boolean;
|
|
2525
|
+
preservesExistingValues: boolean;
|
|
2526
|
+
qualifiedProperties: boolean;
|
|
2527
|
+
polymorphic: AttributePolymorphicCapability;
|
|
2528
|
+
maxItems: boolean;
|
|
2529
|
+
};
|
|
2530
|
+
type AttributeRequiredCapability = "allowed" | "forbidden";
|
|
2531
|
+
type AttributeDefaultValueCapability = "static" | "automatic" | "forbidden";
|
|
2532
|
+
type AttributeAuthoringCapabilities = {
|
|
2533
|
+
editable: boolean;
|
|
2534
|
+
readOnly: boolean;
|
|
2535
|
+
directEdit: boolean;
|
|
2536
|
+
required: AttributeRequiredCapability;
|
|
2537
|
+
defaultValue: AttributeDefaultValueCapability;
|
|
2538
|
+
placeholder: boolean;
|
|
2539
|
+
maxItems: boolean;
|
|
2540
|
+
};
|
|
2541
|
+
type AttributePresentationCapabilities = {
|
|
2542
|
+
formField: boolean;
|
|
2543
|
+
tableCell: boolean;
|
|
2544
|
+
defaultColumn: boolean;
|
|
2545
|
+
compactDisplay: boolean;
|
|
2546
|
+
popoverEditor: boolean;
|
|
2547
|
+
placeholder: boolean;
|
|
2548
|
+
warningWhenDeprecated: boolean;
|
|
2549
|
+
};
|
|
2550
|
+
type AttributeQueryCapabilities = {
|
|
2551
|
+
filterable: boolean;
|
|
2552
|
+
searchable: boolean;
|
|
2553
|
+
sortable: boolean;
|
|
2554
|
+
groupable: boolean;
|
|
2555
|
+
kanbanGroupable: boolean;
|
|
2556
|
+
operators: readonly FilterOperator[];
|
|
2557
|
+
};
|
|
2558
|
+
type AttributeAgentCapabilities = {
|
|
2559
|
+
readable: boolean;
|
|
2560
|
+
writable: boolean;
|
|
2561
|
+
compactReadable: boolean;
|
|
2562
|
+
contentReadable: boolean;
|
|
2563
|
+
requiresDedicatedTool: boolean;
|
|
2564
|
+
};
|
|
2565
|
+
type AttributeExchangeCapabilities = {
|
|
2566
|
+
importable: boolean;
|
|
2567
|
+
exportable: boolean;
|
|
2568
|
+
schemaExportable: boolean;
|
|
2569
|
+
metadataExportable: boolean;
|
|
2570
|
+
};
|
|
2571
|
+
type AttributeCapabilities = {
|
|
2572
|
+
lifecycle: AttributeLifecycleCapabilities;
|
|
2573
|
+
storage: AttributeStorageCapabilities;
|
|
2574
|
+
authoring: AttributeAuthoringCapabilities;
|
|
2575
|
+
presentation: AttributePresentationCapabilities;
|
|
2576
|
+
query: AttributeQueryCapabilities;
|
|
2577
|
+
agent: AttributeAgentCapabilities;
|
|
2578
|
+
exchange: AttributeExchangeCapabilities;
|
|
2579
|
+
};
|
|
2580
|
+
declare const ATTRIBUTE_FILTER_OPERATORS: Readonly<Record<Exclude<AttributeType, "rollup">, readonly FilterOperator[]>>;
|
|
2581
|
+
declare function getAttributeCapabilities(attribute: AttributeLike): AttributeCapabilities;
|
|
2582
|
+
declare function getAttributeFilterOperators(attribute: AttributeLike): readonly FilterOperator[];
|
|
2583
|
+
declare function isAttributeFilterable(attribute: AttributeLike): boolean;
|
|
2584
|
+
declare function isAttributeSearchable(attribute: AttributeLike): boolean;
|
|
2585
|
+
declare function isAttributeGroupable(attribute: AttributeLike): boolean;
|
|
2586
|
+
declare function isAttributeKanbanGroupable(attribute: AttributeLike): boolean;
|
|
2587
|
+
|
|
1895
2588
|
/**
|
|
1896
2589
|
* Common configuration for all builders (Objects & Attributes)
|
|
1897
2590
|
*/
|
|
@@ -2299,6 +2992,156 @@ declare function isObjectReferencedError(error: unknown): error is ObjectReferen
|
|
|
2299
2992
|
*/
|
|
2300
2993
|
declare function getErrorMessage(error: unknown): string;
|
|
2301
2994
|
|
|
2995
|
+
/**
|
|
2996
|
+
* Feature flag levels (resolution priority: user > tenant > global).
|
|
2997
|
+
*
|
|
2998
|
+
* - `global`: Applies to all tenants and users
|
|
2999
|
+
* - `tenant`: Applies to a specific tenant
|
|
3000
|
+
* - `user`: Applies to a specific user within a tenant
|
|
3001
|
+
*/
|
|
3002
|
+
type FlagLevel = "global" | "tenant" | "user";
|
|
3003
|
+
/**
|
|
3004
|
+
* Flag value types supported by the system.
|
|
3005
|
+
*/
|
|
3006
|
+
type FlagValueType = "boolean" | "string" | "number" | "json";
|
|
3007
|
+
/**
|
|
3008
|
+
* Definition of a feature flag.
|
|
3009
|
+
* Created using the flag builders (booleanFlag, stringFlag, etc.)
|
|
3010
|
+
*/
|
|
3011
|
+
interface FeatureFlagDefinition<T = unknown> {
|
|
3012
|
+
/** Unique identifier for the flag (kebab-case) */
|
|
3013
|
+
name: string;
|
|
3014
|
+
/** Human-readable label */
|
|
3015
|
+
label: string;
|
|
3016
|
+
/** Optional description */
|
|
3017
|
+
description?: string;
|
|
3018
|
+
/** Type of the flag value */
|
|
3019
|
+
valueType: FlagValueType;
|
|
3020
|
+
/** Default value when no override exists */
|
|
3021
|
+
defaultValue: T;
|
|
3022
|
+
/** Levels at which this flag can be overridden */
|
|
3023
|
+
allowedLevels: FlagLevel[];
|
|
3024
|
+
/** Grouping category for UI */
|
|
3025
|
+
category?: string;
|
|
3026
|
+
/** System flag - cannot be modified via API */
|
|
3027
|
+
system?: boolean;
|
|
3028
|
+
}
|
|
3029
|
+
/**
|
|
3030
|
+
* Stored override for a feature flag.
|
|
3031
|
+
* Represents a row in the feature_flag_overrides table.
|
|
3032
|
+
*/
|
|
3033
|
+
interface FlagOverride<T = unknown> {
|
|
3034
|
+
/** Name of the flag being overridden */
|
|
3035
|
+
flagName: string;
|
|
3036
|
+
/** Level of the override */
|
|
3037
|
+
level: FlagLevel;
|
|
3038
|
+
/** Target ID (tenantId for tenant-level, userId for user-level) */
|
|
3039
|
+
targetId?: string;
|
|
3040
|
+
/** Override value */
|
|
3041
|
+
value: T;
|
|
3042
|
+
/** Optional expiration date */
|
|
3043
|
+
expiresAt?: Date;
|
|
3044
|
+
/** Who created this override */
|
|
3045
|
+
createdBy?: string;
|
|
3046
|
+
/** When the override was created */
|
|
3047
|
+
createdAt: Date;
|
|
3048
|
+
/** When the override was last updated */
|
|
3049
|
+
updatedAt: Date;
|
|
3050
|
+
}
|
|
3051
|
+
/**
|
|
3052
|
+
* Resolved flag value with source information.
|
|
3053
|
+
* Result of flag resolution including where the value came from.
|
|
3054
|
+
*/
|
|
3055
|
+
interface ResolvedFlag<T = unknown> {
|
|
3056
|
+
/** Flag name */
|
|
3057
|
+
name: string;
|
|
3058
|
+
/** Resolved value */
|
|
3059
|
+
value: T;
|
|
3060
|
+
/** Where the value came from */
|
|
3061
|
+
source: FlagLevel | "default";
|
|
3062
|
+
/** ID of the source (tenantId or userId) if not default */
|
|
3063
|
+
sourceId?: string;
|
|
3064
|
+
}
|
|
3065
|
+
/**
|
|
3066
|
+
* Feature gate configuration for conditional feature visibility.
|
|
3067
|
+
*/
|
|
3068
|
+
interface FeatureGate {
|
|
3069
|
+
/** Name of the flag to check */
|
|
3070
|
+
flag: string;
|
|
3071
|
+
/**
|
|
3072
|
+
* Expected value for the gate to pass.
|
|
3073
|
+
* For boolean flags, defaults to `true`.
|
|
3074
|
+
* For other types, compares with strict equality.
|
|
3075
|
+
*/
|
|
3076
|
+
expectedValue?: unknown;
|
|
3077
|
+
/**
|
|
3078
|
+
* Behavior when the gate fails.
|
|
3079
|
+
* - `hide`: The gated feature is completely hidden (default)
|
|
3080
|
+
* - `show`: The gated feature is shown regardless (no gating)
|
|
3081
|
+
* - `disable`: The gated feature is visible but read-only
|
|
3082
|
+
*/
|
|
3083
|
+
fallback?: "hide" | "show" | "disable";
|
|
3084
|
+
}
|
|
3085
|
+
/**
|
|
3086
|
+
* Repository interface for feature flag overrides storage.
|
|
3087
|
+
* Added to DatabaseAdapter as an optional repository.
|
|
3088
|
+
*
|
|
3089
|
+
* If not provided, only static defaults from module config are used.
|
|
3090
|
+
*/
|
|
3091
|
+
interface FeatureFlagsRepository {
|
|
3092
|
+
/**
|
|
3093
|
+
* Get all overrides matching the criteria.
|
|
3094
|
+
* Returns overrides from the database (global, tenant, or user level).
|
|
3095
|
+
*/
|
|
3096
|
+
getOverrides(options: {
|
|
3097
|
+
/** Filter by level */
|
|
3098
|
+
level?: FlagLevel;
|
|
3099
|
+
/** Filter by target ID (tenantId or userId) */
|
|
3100
|
+
targetId?: string;
|
|
3101
|
+
/** Filter by flag names (for efficient single/batch lookups) */
|
|
3102
|
+
flagNames?: string[];
|
|
3103
|
+
}): Promise<FlagOverride[]>;
|
|
3104
|
+
/**
|
|
3105
|
+
* Create or update an override.
|
|
3106
|
+
* Uses upsert semantics based on (flagName, level, targetId).
|
|
3107
|
+
*/
|
|
3108
|
+
setOverride(override: Omit<FlagOverride, "createdAt" | "updatedAt">): Promise<FlagOverride>;
|
|
3109
|
+
/**
|
|
3110
|
+
* Delete an override.
|
|
3111
|
+
*/
|
|
3112
|
+
deleteOverride(flagName: string, level: FlagLevel, targetId?: string): Promise<void>;
|
|
3113
|
+
}
|
|
3114
|
+
/**
|
|
3115
|
+
* Static flag default value for module configuration.
|
|
3116
|
+
*/
|
|
3117
|
+
interface StaticFlagDefault {
|
|
3118
|
+
/** Flag name */
|
|
3119
|
+
name: string;
|
|
3120
|
+
/** Default value */
|
|
3121
|
+
value: unknown;
|
|
3122
|
+
}
|
|
3123
|
+
/**
|
|
3124
|
+
* Feature flags configuration for SchemaModule.
|
|
3125
|
+
*/
|
|
3126
|
+
interface FeatureFlagsConfig {
|
|
3127
|
+
/**
|
|
3128
|
+
* Static default values for flags.
|
|
3129
|
+
* These are always applied and used when no database override exists.
|
|
3130
|
+
*
|
|
3131
|
+
* @example
|
|
3132
|
+
* ```typescript
|
|
3133
|
+
* featureFlags: {
|
|
3134
|
+
* defaults: [
|
|
3135
|
+
* { name: "architect-mode", value: false },
|
|
3136
|
+
* { name: "ai-chat", value: false },
|
|
3137
|
+
* { name: "tier", value: "free" },
|
|
3138
|
+
* ],
|
|
3139
|
+
* }
|
|
3140
|
+
* ```
|
|
3141
|
+
*/
|
|
3142
|
+
defaults?: StaticFlagDefault[];
|
|
3143
|
+
}
|
|
3144
|
+
|
|
2302
3145
|
declare const FORM_FORBIDDEN_ATTRIBUTE_TYPES: readonly ["relation", "multiRelation", "formula", "rollup", "file", "document", "richtext", "user"];
|
|
2303
3146
|
interface FormSlotFieldRef {
|
|
2304
3147
|
type: "slot";
|
|
@@ -2607,7 +3450,6 @@ declare class NoopGeocodingAdapter implements GeocodingAdapter {
|
|
|
2607
3450
|
*/
|
|
2608
3451
|
type AttributeValueMap = {
|
|
2609
3452
|
text: string;
|
|
2610
|
-
textarea: string;
|
|
2611
3453
|
/** Semantic markdown string (parsed at runtime to TiptapDocument) */
|
|
2612
3454
|
richtext: string;
|
|
2613
3455
|
number: number;
|
|
@@ -2620,7 +3462,6 @@ type AttributeValueMap = {
|
|
|
2620
3462
|
file: string;
|
|
2621
3463
|
user: string;
|
|
2622
3464
|
relation: string;
|
|
2623
|
-
rating: number;
|
|
2624
3465
|
/** Document IDs — always an array (documents are always-multi by construction). */
|
|
2625
3466
|
document: string[];
|
|
2626
3467
|
};
|
|
@@ -3107,6 +3948,54 @@ interface InviteUserInput {
|
|
|
3107
3948
|
redirectTo?: string;
|
|
3108
3949
|
}
|
|
3109
3950
|
|
|
3951
|
+
/**
|
|
3952
|
+
* Contracts for the AI generation module (regex, formula, …).
|
|
3953
|
+
* Client-safe: no prompts or server logic here.
|
|
3954
|
+
*/
|
|
3955
|
+
/** Supported generator types in V1. */
|
|
3956
|
+
type AIGenerationType = "regex" | "formula";
|
|
3957
|
+
/** Request payload for a regex generation. */
|
|
3958
|
+
interface RegexGenerationInput {
|
|
3959
|
+
/** Natural-language description of what to validate. */
|
|
3960
|
+
description: string;
|
|
3961
|
+
/** Optional label of the field, used as extra context. */
|
|
3962
|
+
fieldLabel?: string;
|
|
3963
|
+
}
|
|
3964
|
+
/** A single attribute the formula generator is allowed to reference. */
|
|
3965
|
+
interface FormulaGenerationAttribute {
|
|
3966
|
+
id: string;
|
|
3967
|
+
name: string;
|
|
3968
|
+
type: string;
|
|
3969
|
+
}
|
|
3970
|
+
/** Request payload for a formula generation. */
|
|
3971
|
+
interface FormulaGenerationInput {
|
|
3972
|
+
/** Natural-language description of the formula. */
|
|
3973
|
+
description: string;
|
|
3974
|
+
/** Attributes the expression may reference (by name). */
|
|
3975
|
+
attributes: FormulaGenerationAttribute[];
|
|
3976
|
+
/** Expected return type of the formula (scalar types only). */
|
|
3977
|
+
returnType: "text" | "number" | "boolean" | "date";
|
|
3978
|
+
}
|
|
3979
|
+
/** Map from generator type to its input payload. */
|
|
3980
|
+
interface AIGenerationInputMap {
|
|
3981
|
+
regex: RegexGenerationInput;
|
|
3982
|
+
formula: FormulaGenerationInput;
|
|
3983
|
+
}
|
|
3984
|
+
/** Token usage returned to the caller (mirrors AI SDK usage). */
|
|
3985
|
+
interface AIGenerationUsage {
|
|
3986
|
+
inputTokens: number;
|
|
3987
|
+
outputTokens: number;
|
|
3988
|
+
}
|
|
3989
|
+
/** Result of a successful generation. */
|
|
3990
|
+
interface AIGenerationResult {
|
|
3991
|
+
/** The final value to apply (the regex pattern / the formula expression). */
|
|
3992
|
+
value: string;
|
|
3993
|
+
/** Plain-language explanation of what was generated. */
|
|
3994
|
+
explanation?: string;
|
|
3995
|
+
/** Token usage for the whole request (sum across repair attempts). */
|
|
3996
|
+
usage: AIGenerationUsage;
|
|
3997
|
+
}
|
|
3998
|
+
|
|
3110
3999
|
interface AddAttributeInput {
|
|
3111
4000
|
name: string;
|
|
3112
4001
|
label: string;
|
|
@@ -3258,7 +4147,7 @@ declare function validateSlotAgainstConfig(slotName: string, mimeType: string, s
|
|
|
3258
4147
|
* The set of attribute types allowed as relation/document properties.
|
|
3259
4148
|
* This is the complement of the internal FORBIDDEN_PROPERTY_TYPES list.
|
|
3260
4149
|
*/
|
|
3261
|
-
declare const ALLOWED_PROPERTY_TYPES: readonly ["text", "
|
|
4150
|
+
declare const ALLOWED_PROPERTY_TYPES: readonly ["text", "number", "checkbox", "date", "phone", "currency", "status", "select", "multiselect", "location"];
|
|
3262
4151
|
interface BuilderLike {
|
|
3263
4152
|
build(): {
|
|
3264
4153
|
type: string;
|
|
@@ -3537,7 +4426,6 @@ declare abstract class BaseAttributeBuilder<TAttr extends Attribute> implements
|
|
|
3537
4426
|
* - Will be picked up by `standards diff` as runtime drift
|
|
3538
4427
|
*/
|
|
3539
4428
|
runtime(): this;
|
|
3540
|
-
disabled(): this;
|
|
3541
4429
|
hidden(): this;
|
|
3542
4430
|
placeholder(value: string): this;
|
|
3543
4431
|
description(value: string): this;
|
|
@@ -3545,28 +4433,6 @@ declare abstract class BaseAttributeBuilder<TAttr extends Attribute> implements
|
|
|
3545
4433
|
order(value: number): this;
|
|
3546
4434
|
defaultValue(value: "defaultValue" extends keyof TAttr ? TAttr["defaultValue"] : never): this;
|
|
3547
4435
|
metadata(value: Record<string, unknown>): this;
|
|
3548
|
-
/**
|
|
3549
|
-
* Add a feature gate to conditionally show/hide/disable this attribute.
|
|
3550
|
-
*
|
|
3551
|
-
* @param flagName - Name of the feature flag to check
|
|
3552
|
-
* @param options - Optional configuration for expected value and fallback behavior
|
|
3553
|
-
*
|
|
3554
|
-
* @example Hide attribute when flag is disabled
|
|
3555
|
-
* ```typescript
|
|
3556
|
-
* text({ name: "aiSummary", label: "AI Summary" })
|
|
3557
|
-
* .featureGate("ai-features")
|
|
3558
|
-
* ```
|
|
3559
|
-
*
|
|
3560
|
-
* @example Disable attribute when tier is not enterprise
|
|
3561
|
-
* ```typescript
|
|
3562
|
-
* text({ name: "advancedField", label: "Advanced Field" })
|
|
3563
|
-
* .featureGate("tier", { expectedValue: "enterprise", fallback: "disable" })
|
|
3564
|
-
* ```
|
|
3565
|
-
*/
|
|
3566
|
-
featureGate(flagName: string, options?: {
|
|
3567
|
-
expectedValue?: unknown;
|
|
3568
|
-
fallback?: FeatureGate["fallback"];
|
|
3569
|
-
}): this;
|
|
3570
4436
|
build(): TAttr;
|
|
3571
4437
|
}
|
|
3572
4438
|
declare class TextAttributeBuilder<TName extends string, TRequired extends boolean = false> extends BaseAttributeBuilder<TextAttribute> {
|
|
@@ -3601,6 +4467,7 @@ declare class TextAttributeBuilder<TName extends string, TRequired extends boole
|
|
|
3601
4467
|
minLength(value: number): this;
|
|
3602
4468
|
maxLength(value: number): this;
|
|
3603
4469
|
pattern(value: string): this;
|
|
4470
|
+
multiline(value?: boolean): this;
|
|
3604
4471
|
required(): TextAttributeBuilder<TName, true>;
|
|
3605
4472
|
optional(): TextAttributeBuilder<TName, false>;
|
|
3606
4473
|
/**
|
|
@@ -3617,30 +4484,6 @@ declare class TextAttributeBuilder<TName extends string, TRequired extends boole
|
|
|
3617
4484
|
slug(): this;
|
|
3618
4485
|
}
|
|
3619
4486
|
declare function text<TName extends string>(config: TypedBuilderConfig<TName>): TextAttributeBuilder<TName, false>;
|
|
3620
|
-
declare class TextAreaAttributeBuilder<TName extends string, TRequired extends boolean = false> extends BaseAttributeBuilder<TextAreaAttribute> {
|
|
3621
|
-
/**
|
|
3622
|
-
* Phantom type for inference
|
|
3623
|
-
*/
|
|
3624
|
-
readonly _types: {
|
|
3625
|
-
name: TName;
|
|
3626
|
-
attribute: TextAreaAttribute;
|
|
3627
|
-
required: TRequired;
|
|
3628
|
-
};
|
|
3629
|
-
/**
|
|
3630
|
-
* Drizzle-style static type inference property.
|
|
3631
|
-
* @see TextAttributeBuilder.$infer for documentation
|
|
3632
|
-
*/
|
|
3633
|
-
readonly $infer: {
|
|
3634
|
-
/** The runtime value type for this attribute */
|
|
3635
|
-
value: string;
|
|
3636
|
-
/** The full attribute definition type */
|
|
3637
|
-
definition: TextAreaAttribute;
|
|
3638
|
-
};
|
|
3639
|
-
constructor(name: TName, label: string);
|
|
3640
|
-
required(): TextAreaAttributeBuilder<TName, true>;
|
|
3641
|
-
optional(): TextAreaAttributeBuilder<TName, false>;
|
|
3642
|
-
}
|
|
3643
|
-
declare function textarea<TName extends string>(config: TypedBuilderConfig<TName>): TextAreaAttributeBuilder<TName, false>;
|
|
3644
4487
|
/**
|
|
3645
4488
|
* Builder for richtext attributes (Tiptap editor)
|
|
3646
4489
|
*/
|
|
@@ -3661,19 +4504,6 @@ declare class RichtextAttributeBuilder<TName extends string, TRequired extends b
|
|
|
3661
4504
|
definition: RichtextAttribute;
|
|
3662
4505
|
};
|
|
3663
4506
|
constructor(name: TName, label: string);
|
|
3664
|
-
/**
|
|
3665
|
-
* Set enabled features for the richtext editor
|
|
3666
|
-
* If not called, all features are enabled by default
|
|
3667
|
-
*
|
|
3668
|
-
* @param list - Array of features to enable
|
|
3669
|
-
*
|
|
3670
|
-
* @example
|
|
3671
|
-
* ```typescript
|
|
3672
|
-
* richtext({ name: "content", label: "Content" })
|
|
3673
|
-
* .features(["headings", "bold", "italic", "lists", "links"])
|
|
3674
|
-
* ```
|
|
3675
|
-
*/
|
|
3676
|
-
features(list: RichtextFeature[]): this;
|
|
3677
4507
|
required(): RichtextAttributeBuilder<TName, true>;
|
|
3678
4508
|
optional(): RichtextAttributeBuilder<TName, false>;
|
|
3679
4509
|
}
|
|
@@ -3685,20 +4515,6 @@ declare class RichtextAttributeBuilder<TName extends string, TRequired extends b
|
|
|
3685
4515
|
* richtext({ name: "content", label: "Content" })
|
|
3686
4516
|
* .required()
|
|
3687
4517
|
* ```
|
|
3688
|
-
*
|
|
3689
|
-
* @example With specific features
|
|
3690
|
-
* ```typescript
|
|
3691
|
-
* richtext({ name: "description", label: "Description" })
|
|
3692
|
-
* .features(["headings", "bold", "italic", "lists", "links"])
|
|
3693
|
-
* .placeholder("Write something...")
|
|
3694
|
-
* ```
|
|
3695
|
-
*
|
|
3696
|
-
* @example Full-featured (notes, articles)
|
|
3697
|
-
* ```typescript
|
|
3698
|
-
* richtext({ name: "body", label: "Body" })
|
|
3699
|
-
* .features(["headings", "bold", "italic", "lists", "links", "images", "codeBlocks", "tables"])
|
|
3700
|
-
* .required()
|
|
3701
|
-
* ```
|
|
3702
4518
|
*/
|
|
3703
4519
|
declare function richtext<TName extends string>(config: TypedBuilderConfig<TName>): RichtextAttributeBuilder<TName, false>;
|
|
3704
4520
|
declare class NumberAttributeBuilder<TName extends string, TRequired extends boolean = false> extends BaseAttributeBuilder<NumberAttribute> {
|
|
@@ -3723,6 +4539,7 @@ declare class NumberAttributeBuilder<TName extends string, TRequired extends boo
|
|
|
3723
4539
|
integer(): this;
|
|
3724
4540
|
decimal(decimals?: number): this;
|
|
3725
4541
|
percentage(): this;
|
|
4542
|
+
renderAs(value: "number" | "rating"): this;
|
|
3726
4543
|
required(): NumberAttributeBuilder<TName, true>;
|
|
3727
4544
|
optional(): NumberAttributeBuilder<TName, false>;
|
|
3728
4545
|
}
|
|
@@ -3926,11 +4743,8 @@ declare class LocationAttributeBuilder<TName extends string, TRequired extends b
|
|
|
3926
4743
|
};
|
|
3927
4744
|
constructor(name: TName, label: string);
|
|
3928
4745
|
granularity(value: LocationAttribute["granularity"]): this;
|
|
3929
|
-
enableAutocomplete(): this;
|
|
3930
|
-
enableMap(): this;
|
|
3931
4746
|
defaultCountry(value: CountryIso3): this;
|
|
3932
4747
|
allowedCountries(value: CountryIso3[]): this;
|
|
3933
|
-
displayFormat(value: LocationAttribute["displayFormat"]): this;
|
|
3934
4748
|
required(): LocationAttributeBuilder<TName, true>;
|
|
3935
4749
|
optional(): LocationAttributeBuilder<TName, false>;
|
|
3936
4750
|
}
|
|
@@ -3980,7 +4794,7 @@ declare class UserAttributeBuilder<TName extends string, TRequired extends boole
|
|
|
3980
4794
|
definition: UserAttribute;
|
|
3981
4795
|
};
|
|
3982
4796
|
constructor(name: TName, label: string);
|
|
3983
|
-
|
|
4797
|
+
types(types: UserReferenceType[]): this;
|
|
3984
4798
|
/**
|
|
3985
4799
|
* Allow multiple users to be selected
|
|
3986
4800
|
*/
|
|
@@ -4009,7 +4823,7 @@ interface RelationBuilderInitOptions {
|
|
|
4009
4823
|
* Union of attribute builders allowed as qualified relation properties.
|
|
4010
4824
|
* Matches PropertyType — excludes complex types (formula, rollup, relation, etc.)
|
|
4011
4825
|
*/
|
|
4012
|
-
type PropertyAttributeBuilder = TextAttributeBuilder<string, boolean> |
|
|
4826
|
+
type PropertyAttributeBuilder = TextAttributeBuilder<string, boolean> | NumberAttributeBuilder<string, boolean> | CheckboxAttributeBuilder<string, boolean> | DateAttributeBuilder<string, boolean> | PhoneAttributeBuilder<string, boolean> | CurrencyAttributeBuilder<string, boolean> | StatusAttributeBuilder<string, readonly Option[], boolean> | SelectAttributeBuilder<string, readonly Option[], boolean> | MultiselectAttributeBuilder<string, readonly Option[], boolean> | LocationAttributeBuilder<string, boolean>;
|
|
4013
4827
|
/**
|
|
4014
4828
|
* Base builder for relation attributes (single and multi).
|
|
4015
4829
|
* Carries shared methods: to(), toAny(), qualifyWith(), bilateral()
|
|
@@ -4094,10 +4908,6 @@ declare class MultiRelationAttributeBuilder<TName extends string, TRequired exte
|
|
|
4094
4908
|
definition: MultiRelationAttribute;
|
|
4095
4909
|
};
|
|
4096
4910
|
constructor(name: TName, label: string, initOptions?: RelationBuilderInitOptions);
|
|
4097
|
-
/**
|
|
4098
|
-
* Set minimum number of relations required
|
|
4099
|
-
*/
|
|
4100
|
-
minItems(count: number): this;
|
|
4101
4911
|
/**
|
|
4102
4912
|
* Set maximum number of relations allowed
|
|
4103
4913
|
*/
|
|
@@ -4134,29 +4944,6 @@ declare class MultiRelationAttributeBuilder<TName extends string, TRequired exte
|
|
|
4134
4944
|
* ```
|
|
4135
4945
|
*/
|
|
4136
4946
|
declare function relation<TName extends string>(config: TypedBuilderConfig<TName>): SingleRelationAttributeBuilder<TName, false>;
|
|
4137
|
-
declare class RatingAttributeBuilder<TName extends string, TRequired extends boolean = false> extends BaseAttributeBuilder<RatingAttribute> {
|
|
4138
|
-
readonly _types: {
|
|
4139
|
-
name: TName;
|
|
4140
|
-
attribute: RatingAttribute;
|
|
4141
|
-
required: TRequired;
|
|
4142
|
-
};
|
|
4143
|
-
/**
|
|
4144
|
-
* Drizzle-style static type inference property.
|
|
4145
|
-
* @see TextAttributeBuilder.$infer for documentation
|
|
4146
|
-
*/
|
|
4147
|
-
readonly $infer: {
|
|
4148
|
-
/** The runtime value type for this attribute */
|
|
4149
|
-
value: number;
|
|
4150
|
-
/** The full attribute definition type */
|
|
4151
|
-
definition: RatingAttribute;
|
|
4152
|
-
};
|
|
4153
|
-
constructor(name: TName, label: string);
|
|
4154
|
-
max(value: number): this;
|
|
4155
|
-
iconType(value: RatingAttribute["iconType"]): this;
|
|
4156
|
-
required(): RatingAttributeBuilder<TName, true>;
|
|
4157
|
-
optional(): RatingAttributeBuilder<TName, false>;
|
|
4158
|
-
}
|
|
4159
|
-
declare function rating<TName extends string>(config: TypedBuilderConfig<TName>): RatingAttributeBuilder<TName, false>;
|
|
4160
4947
|
/**
|
|
4161
4948
|
* Builder for formula attributes (computed values)
|
|
4162
4949
|
*
|
|
@@ -4303,8 +5090,8 @@ declare class RollupAttributeBuilder<TName extends string> extends BaseAttribute
|
|
|
4303
5090
|
* .using("original")
|
|
4304
5091
|
* .targetType("status")
|
|
4305
5092
|
* .targetOptions([
|
|
4306
|
-
* {
|
|
4307
|
-
* {
|
|
5093
|
+
* { label: "Active", value: "active", color: "green" },
|
|
5094
|
+
* { label: "Inactive", value: "inactive", color: "red" }
|
|
4308
5095
|
* ])
|
|
4309
5096
|
* ```
|
|
4310
5097
|
*/
|
|
@@ -4320,8 +5107,7 @@ declare function rollup<TName extends string>(config: TypedBuilderConfig<TName>)
|
|
|
4320
5107
|
* @example
|
|
4321
5108
|
* ```typescript
|
|
4322
5109
|
* document({ name: "contracts", label: "Contrats" })
|
|
4323
|
-
* .
|
|
4324
|
-
* .maxDocuments(10)
|
|
5110
|
+
* .slots([{ name: "signed", label: "Signed contract" }])
|
|
4325
5111
|
* ```
|
|
4326
5112
|
*/
|
|
4327
5113
|
declare class DocumentAttributeBuilder<TName extends string, TRequired extends boolean = false, TProps extends Record<string, unknown> = never> extends BaseAttributeBuilder<DocumentAttribute> {
|
|
@@ -4344,40 +5130,11 @@ declare class DocumentAttributeBuilder<TName extends string, TRequired extends b
|
|
|
4344
5130
|
definition: DocumentAttribute;
|
|
4345
5131
|
};
|
|
4346
5132
|
constructor(name: TName, label: string);
|
|
4347
|
-
/**
|
|
4348
|
-
* Maximum number of documents.
|
|
4349
|
-
*/
|
|
4350
|
-
maxDocuments(count: number): this;
|
|
4351
|
-
/**
|
|
4352
|
-
* Automatically trigger agent-compatible processing on upload.
|
|
4353
|
-
*/
|
|
4354
|
-
autoProcess(): this;
|
|
4355
5133
|
/**
|
|
4356
5134
|
* Define named upload slots for this document attribute.
|
|
4357
5135
|
* An empty array falls back to a single default slot.
|
|
4358
5136
|
*/
|
|
4359
5137
|
slots(configs: DocumentSlotConfig[]): this;
|
|
4360
|
-
/**
|
|
4361
|
-
* Add a child attribute that qualifies the record→document edge.
|
|
4362
|
-
*
|
|
4363
|
-
* Equivalent to `.qualifyWith(builder)` for a single attribute, with the
|
|
4364
|
-
* difference that the accepted type is broader (`Attribute`) and the
|
|
4365
|
-
* accumulation is mutating rather than type-tracking. When the produced
|
|
4366
|
-
* attribute is one of the `ALLOWED_PROPERTY_TYPES`, it is also pushed
|
|
4367
|
-
* onto `attribute.properties.definitions`, so hydration and validation
|
|
4368
|
-
* treat the document as qualified — same effect as `.qualifyWith()`.
|
|
4369
|
-
*
|
|
4370
|
-
* Both `attribute.attributes` and `attribute.properties` are populated to
|
|
4371
|
-
* keep backwards compatibility with consumers that read either field.
|
|
4372
|
-
*
|
|
4373
|
-
* @example
|
|
4374
|
-
* document({ name: "invoices" })
|
|
4375
|
-
* .attribute(date({ name: "invoiceDate", label: "Date" }).required())
|
|
4376
|
-
* .attribute(select({ name: "status", label: "Statut" }).options([...]))
|
|
4377
|
-
*/
|
|
4378
|
-
attribute<TAttr extends Attribute>(builder: {
|
|
4379
|
-
build(): TAttr;
|
|
4380
|
-
}): this;
|
|
4381
5138
|
/**
|
|
4382
5139
|
* Add properties to qualify each document using existing attribute builders.
|
|
4383
5140
|
* Returns a new builder type that carries the inferred props shape for $infer.
|
|
@@ -4405,7 +5162,6 @@ declare class DocumentAttributeBuilder<TName extends string, TRequired extends b
|
|
|
4405
5162
|
* @example
|
|
4406
5163
|
* ```typescript
|
|
4407
5164
|
* document({ name: "identityDocument", label: "Pièce d'identité" })
|
|
4408
|
-
* .autoProcess()
|
|
4409
5165
|
* .required()
|
|
4410
5166
|
* ```
|
|
4411
5167
|
*/
|
|
@@ -4621,8 +5377,8 @@ type AddAttribute<TRecord extends Record<string, unknown>, TName extends string,
|
|
|
4621
5377
|
* .attribute(
|
|
4622
5378
|
* status({ name: "status", label: "Status" })
|
|
4623
5379
|
* .options([
|
|
4624
|
-
* {
|
|
4625
|
-
* {
|
|
5380
|
+
* { label: "Active", value: "active", color: "green" },
|
|
5381
|
+
* { label: "Draft", value: "draft", color: "yellow" }
|
|
4626
5382
|
* ])
|
|
4627
5383
|
* .required()
|
|
4628
5384
|
* );
|
|
@@ -4640,6 +5396,8 @@ declare class ObjectBuilder<TRecord extends Record<string, unknown> = {}> implem
|
|
|
4640
5396
|
private _labelExpression?;
|
|
4641
5397
|
private _pluralLabel?;
|
|
4642
5398
|
private _migrations;
|
|
5399
|
+
private _sealed;
|
|
5400
|
+
private _toleratedAttributes;
|
|
4643
5401
|
/**
|
|
4644
5402
|
* Phantom type property for type extraction
|
|
4645
5403
|
* Never used at runtime, only for TypeScript inference
|
|
@@ -4715,6 +5473,37 @@ declare class ObjectBuilder<TRecord extends Record<string, unknown> = {}> implem
|
|
|
4715
5473
|
* - Will be picked up by `standards diff` as runtime drift
|
|
4716
5474
|
*/
|
|
4717
5475
|
runtime(): this;
|
|
5476
|
+
/**
|
|
5477
|
+
* Marks this object as sealed — no custom (user-created) attributes allowed.
|
|
5478
|
+
*
|
|
5479
|
+
* When sealed, `standards diff` reports an error if any custom attribute
|
|
5480
|
+
* exists in the DB that is not listed in `.tolerate()`.
|
|
5481
|
+
*
|
|
5482
|
+
* @example
|
|
5483
|
+
* ```typescript
|
|
5484
|
+
* object({ name: "invoice", label: "Invoice" })
|
|
5485
|
+
* .sealed()
|
|
5486
|
+
* .attribute(number({ name: "amount", label: "Amount" }))
|
|
5487
|
+
* ```
|
|
5488
|
+
*/
|
|
5489
|
+
sealed(): this;
|
|
5490
|
+
/**
|
|
5491
|
+
* Explicitly acknowledges custom attribute names on this object.
|
|
5492
|
+
*
|
|
5493
|
+
* On a sealed object: listed names will NOT trigger a CI failure in `standards diff`.
|
|
5494
|
+
* On an extensible object: purely documentary.
|
|
5495
|
+
*
|
|
5496
|
+
* @param names - Array of custom attribute names to tolerate
|
|
5497
|
+
*
|
|
5498
|
+
* @example
|
|
5499
|
+
* ```typescript
|
|
5500
|
+
* object({ name: "invoice", label: "Invoice" })
|
|
5501
|
+
* .sealed()
|
|
5502
|
+
* .tolerate(["legacy_ref", "old_status"])
|
|
5503
|
+
* .attribute(number({ name: "amount", label: "Amount" }))
|
|
5504
|
+
* ```
|
|
5505
|
+
*/
|
|
5506
|
+
tolerate(names: string[]): this;
|
|
4718
5507
|
/**
|
|
4719
5508
|
* Add an attribute to the object with type accumulation
|
|
4720
5509
|
*
|
|
@@ -6651,50 +7440,147 @@ interface DomainEvent<T extends EventType = EventType> {
|
|
|
6651
7440
|
metadata?: Record<string, unknown>;
|
|
6652
7441
|
}
|
|
6653
7442
|
|
|
6654
|
-
|
|
7443
|
+
type LiveChannelKind = "workspace" | "object" | "record" | "view" | "agent" | "user" | "conversation";
|
|
7444
|
+
type LiveChannel = {
|
|
7445
|
+
kind: "workspace";
|
|
7446
|
+
workspaceId: string;
|
|
7447
|
+
} | {
|
|
7448
|
+
kind: "object";
|
|
7449
|
+
objectId: string;
|
|
7450
|
+
} | {
|
|
7451
|
+
kind: "record";
|
|
7452
|
+
objectId: string;
|
|
7453
|
+
recordId: string;
|
|
7454
|
+
} | {
|
|
7455
|
+
kind: "view";
|
|
7456
|
+
viewId: string;
|
|
7457
|
+
} | {
|
|
7458
|
+
kind: "agent";
|
|
7459
|
+
workspaceId: string;
|
|
7460
|
+
} | {
|
|
7461
|
+
kind: "user";
|
|
7462
|
+
actorId: string;
|
|
7463
|
+
} | {
|
|
7464
|
+
kind: "conversation";
|
|
7465
|
+
sessionId: string;
|
|
7466
|
+
};
|
|
7467
|
+
declare function liveChannelKey(channel: LiveChannel): string;
|
|
7468
|
+
declare function parseLiveChannelKey(key: string): LiveChannel | null;
|
|
7469
|
+
|
|
7470
|
+
declare const LIVE_STREAM_START_CURSOR = "0-0";
|
|
7471
|
+
declare function isLiveStreamCursor(value: unknown): value is string;
|
|
7472
|
+
declare function assertLiveStreamCursor(cursor: string | null, label?: string): asserts cursor is string | null;
|
|
7473
|
+
declare function compareLiveStreamCursors(left: string, right: string): -1 | 0 | 1;
|
|
7474
|
+
|
|
7475
|
+
type RecordFieldPatch = {
|
|
7476
|
+
fieldKey: string;
|
|
6655
7477
|
value: unknown;
|
|
6656
|
-
|
|
6657
|
-
}
|
|
6658
|
-
|
|
6659
|
-
|
|
6660
|
-
|
|
6661
|
-
|
|
6662
|
-
|
|
6663
|
-
|
|
6664
|
-
|
|
7478
|
+
version: number;
|
|
7479
|
+
};
|
|
7480
|
+
type RecordPatchLiveEvent = {
|
|
7481
|
+
type: "record.patch";
|
|
7482
|
+
objectId: string;
|
|
7483
|
+
recordId: string;
|
|
7484
|
+
recordVersion: number;
|
|
7485
|
+
label?: string;
|
|
7486
|
+
completionStatus?: CompletionStatus;
|
|
7487
|
+
metadata?: Record<string, unknown>;
|
|
7488
|
+
fieldPatches: RecordFieldPatch[];
|
|
7489
|
+
updatedAt: string;
|
|
7490
|
+
};
|
|
7491
|
+
type RecordDeletedLiveEvent = {
|
|
7492
|
+
type: "record.deleted";
|
|
7493
|
+
objectId: string;
|
|
7494
|
+
recordId: string;
|
|
7495
|
+
recordVersion: number;
|
|
7496
|
+
deletedAt: string;
|
|
7497
|
+
};
|
|
7498
|
+
type ViewProjectionStaleLiveEvent = {
|
|
7499
|
+
type: "view.projection.stale";
|
|
7500
|
+
viewId: string;
|
|
7501
|
+
reason: "membership-unknown" | "sort-unknown" | "permissions-changed";
|
|
7502
|
+
};
|
|
7503
|
+
type AgentSessionPatchLiveEvent = {
|
|
7504
|
+
type: "agent.session.patch";
|
|
7505
|
+
workspaceId: string;
|
|
7506
|
+
sessionId: string;
|
|
7507
|
+
patch: Record<string, unknown>;
|
|
7508
|
+
version: number;
|
|
7509
|
+
updatedAt: string;
|
|
6665
7510
|
};
|
|
6666
|
-
|
|
6667
|
-
|
|
6668
|
-
|
|
6669
|
-
|
|
6670
|
-
|
|
7511
|
+
type AgentUnreadPatchLiveEvent = {
|
|
7512
|
+
type: "agent.unread.patch";
|
|
7513
|
+
workspaceId: string;
|
|
7514
|
+
targetActorId: string;
|
|
7515
|
+
sessionId: string;
|
|
7516
|
+
unreadCount: number;
|
|
7517
|
+
version: number;
|
|
7518
|
+
updatedAt: string;
|
|
7519
|
+
session?: Record<string, unknown>;
|
|
7520
|
+
};
|
|
7521
|
+
type ConversationRenamedLiveEvent = {
|
|
7522
|
+
type: "conversation.renamed";
|
|
7523
|
+
workspaceId: string;
|
|
7524
|
+
sessionId: string;
|
|
7525
|
+
title: string;
|
|
7526
|
+
version: number;
|
|
7527
|
+
updatedAt: string;
|
|
7528
|
+
};
|
|
7529
|
+
type ChannelRevokedLiveEvent = {
|
|
7530
|
+
type: "channel.revoked";
|
|
7531
|
+
channel: string;
|
|
7532
|
+
reason: "permission-revoked" | "workspace-left" | "object-deleted";
|
|
7533
|
+
};
|
|
7534
|
+
type LiveEventPayload = RecordPatchLiveEvent | RecordDeletedLiveEvent | ViewProjectionStaleLiveEvent | AgentSessionPatchLiveEvent | AgentUnreadPatchLiveEvent | ConversationRenamedLiveEvent | ChannelRevokedLiveEvent;
|
|
7535
|
+
type LiveEventType = LiveEventPayload["type"];
|
|
7536
|
+
declare const LIVE_EVENT_TYPES: readonly LiveEventType[];
|
|
7537
|
+
declare function isLiveEventType(value: unknown): value is LiveEventType;
|
|
7538
|
+
declare function isLiveEventPayload(payload: unknown): payload is LiveEventPayload;
|
|
7539
|
+
declare function isLiveEventPayloadForType(type: string, payload: unknown): payload is LiveEventPayload;
|
|
6671
7540
|
|
|
6672
|
-
type
|
|
6673
|
-
type
|
|
6674
|
-
|
|
6675
|
-
|
|
6676
|
-
type:
|
|
6677
|
-
|
|
6678
|
-
|
|
6679
|
-
|
|
6680
|
-
|
|
6681
|
-
|
|
6682
|
-
|
|
6683
|
-
|
|
6684
|
-
|
|
6685
|
-
|
|
6686
|
-
|
|
6687
|
-
|
|
6688
|
-
|
|
6689
|
-
|
|
6690
|
-
|
|
6691
|
-
|
|
6692
|
-
|
|
6693
|
-
|
|
6694
|
-
|
|
6695
|
-
|
|
6696
|
-
|
|
6697
|
-
|
|
7541
|
+
type UnknownRecord = Record<string, unknown>;
|
|
7542
|
+
type LiveEventEnvelope = {
|
|
7543
|
+
id: string;
|
|
7544
|
+
channel: string;
|
|
7545
|
+
type: string;
|
|
7546
|
+
payload: UnknownRecord;
|
|
7547
|
+
occurredAt: string;
|
|
7548
|
+
tenantId?: string;
|
|
7549
|
+
workspaceId?: string;
|
|
7550
|
+
actorId?: string | null;
|
|
7551
|
+
correlationId?: string | null;
|
|
7552
|
+
schemaVersion?: number;
|
|
7553
|
+
};
|
|
7554
|
+
type LiveSubscribePayload = {
|
|
7555
|
+
channel: string;
|
|
7556
|
+
cursor: string | null;
|
|
7557
|
+
};
|
|
7558
|
+
type LiveUnsubscribePayload = {
|
|
7559
|
+
channel?: string;
|
|
7560
|
+
};
|
|
7561
|
+
type LiveReplayCompletePayload = {
|
|
7562
|
+
channel: string;
|
|
7563
|
+
cursor: string | null;
|
|
7564
|
+
};
|
|
7565
|
+
type LiveGapPayload = {
|
|
7566
|
+
channel: string;
|
|
7567
|
+
requestedAfterId?: string | null;
|
|
7568
|
+
oldestAvailableId?: string | null;
|
|
7569
|
+
[key: string]: unknown;
|
|
7570
|
+
};
|
|
7571
|
+
type LiveErrorPayload = {
|
|
7572
|
+
channel: string;
|
|
7573
|
+
code?: string;
|
|
7574
|
+
message?: string;
|
|
7575
|
+
[key: string]: unknown;
|
|
7576
|
+
};
|
|
7577
|
+
declare function getLiveProtocolPayloadChannel(payload: unknown): string | null;
|
|
7578
|
+
declare function isLiveEventEnvelope(payload: unknown): payload is LiveEventEnvelope;
|
|
7579
|
+
declare function parseLiveSubscribePayload(payload: unknown): LiveSubscribePayload | null;
|
|
7580
|
+
declare function parseLiveUnsubscribePayload(payload: unknown): LiveUnsubscribePayload | null;
|
|
7581
|
+
declare function isLiveReplayCompletePayload(payload: unknown): payload is LiveReplayCompletePayload;
|
|
7582
|
+
declare function isLiveGapPayload(payload: unknown): payload is LiveGapPayload;
|
|
7583
|
+
declare function isLiveErrorPayload(payload: unknown): payload is LiveErrorPayload;
|
|
6698
7584
|
|
|
6699
7585
|
interface OperatorSpec {
|
|
6700
7586
|
/** Attribute types this operator applies to. Used by both UI and evaluators. */
|
|
@@ -6718,4 +7604,4 @@ interface QualifiedRuleValidationContext {
|
|
|
6718
7604
|
}
|
|
6719
7605
|
declare function validateQualifiedRule(rule: FilterRule, context: QualifiedRuleValidationContext): void;
|
|
6720
7606
|
|
|
6721
|
-
export { type AIAvailableModel, type AIBatchQuestion, type AIBatchQuestionAnswer, type AIBatchQuestionOption, type AIChatMessage, type AIChatMessagePart, type AIChatMessagePartType, type AICompactionSummary, type AIMemoryEntry, type AIMemoryType, type AIMessageRole, type AIProviderMetrics, type AIQuestion, type AIQuestionAnswer, type AIQuestionOption, type AIQuestionType, type AITodoItem, type AITodoList, type AITodoStatus, type AIToolCall, type AIToolCallStatus, type AIUsageMetrics, ALLOWED_PROPERTY_TYPES, ALL_ACTIONS, ALL_SYSTEM_RESOURCES, type AccessAction, type AccessActionList, AccessDeniedError, type AccessLevel, type AccessPolicy, type AccessPolicyPreset, type AccessResourceType, type Action, ActivityTabConfig, type Actor, type ActorRoleAssignment, type ActorStatus, type ActorType, type AddAttributeInput, type AgentConfig, type AgentContextEntry, type AgentDashboard, type AgentDefinition, type AgentEvent, type AgentExecutionConfig, type AgentExecutionPolicy, type AgentMessageAttachment, type AgentMessagePart, type AgentQuestion, type AgentRun, type AgentRunStatus, type AgentSchedule, type AgentSession, type AgentSessionMessage, type AgentSessionMode, type AgentSessionStatus, type AgentToolCall, type AgentTriggerDefinition, type AgentTriggerType, type ApiKey, type ApiKeyAuthContext, type ApiKeyPermission, type ApiKeyWithSecret, type AssignActorRoleInput, type AssignRoleInput, Attribute, AttributeGroupField, AttributeInUseError, AttributeNotFoundError, AttributeType, type AttributeUsage, type AuditAction, type AuditActorType, type AuditChange, type AuditListOptions, type AuditLogEntry, type AuditResourceType, type AuditServiceOptions, type AuditSortField, BEHAVIOR_PROPERTIES, BilateralConfig, type BoundingBox, type BuilderConfig, ChangeTypeNotSupportedError, CheckboxAttribute, CompletionStatus, ConcurrentModificationError, ConfigOverrides, type CountMode, type CreateActorInput, type CreateApiKeyInput, type CreateAuditLogInput, type CreateCustomObjectInput, type CreateDBAttribute, type CreateDBForm, type CreateDBFormSubmission, type CreateDBObject, type CreateDBView, type CreateDBViewOverlay, type CreateFile, CreateMode, type CreateObjectRecord, type CreatePermissionInput, type CreateRoleInput, type CreateSandboxExecution, type CreateUserProfile, type CreateViewInput, type CriticConfig, Currency, CurrencyAttribute, type CustomAttributeValue, CustomTabConfig, type DBAttribute, type DBForm, type DBFormSubmission, type DBObject, type DBView, type DBViewOverlay, DB_COLUMN_FIELDS, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DOCUMENT_SYSTEM_ATTRIBUTES, DateAttribute, type DefaultRoleName, type DeletedMode, DestructiveSyncNotAllowedError, DetailViewBuilder, DetailViewConfig, DetailViewDefinition, DetailViewLayout, DocumentAttribute, DocumentLayout, DocumentSlotConfig, DocumentSlotValidationError, DocumentsTabConfig, type DomainEvent, DuplicateError, EMPTY_VALUE_PLACEHOLDER, type EffectivePermissions, type EnvVarEntry, type EnvVarScope, type EventDataMap, type EventType, type ExtractRecord, type ExtractRecordInput, type ExtractRecordInputStrict, type ExtractRecordStrict, type ExtractRecordUpdate, type ExtractRecordUpdateStrict, FORM_FORBIDDEN_ATTRIBUTE_TYPES, FeatureFlagDefinition, FeatureFlagsRepository, FeatureGate, Field, FieldGroup, type FieldHistoryEntry, type File, FileAttribute, type FileListOptions, type FileVisibility, FilterOperator, FilterRule, FilterState, FilterValue, FlagLevel, FlagRegistry, FlagService, FlagValueType, ForbiddenError, FormBuilder, type FormDefinition, type FormFieldRef, type FormFieldsRow, type FormFreeFieldRef, type FormHeadingRow, FormRegistry, type FormRow, FormRowBuilder, type FormSeparatorRow, type FormSlot, type FormSlotFieldRef, type FormStatus, type FormStep, FormStepBuilder, type FormSubmission, type FormSubmissionStatus, type FormSubmittedAgentEvent, type FormTextRow, FormulaAttribute, type FormulaResult, FormulaReturnType, type GeocodingAdapter, type GeocodingAutocompleteParams, type GeocodingParams, type GeocodingSuggestion, type GlobalSearchGroupedOptions, type GlobalSearchGroupedResult, type GlobalSearchOptions, type GlobalSearchResultItem, type GrantResourceAccessInput, Group, GroupBuilder, IDENTITY_PROPERTIES, type InferAttributeValue, type InferQualifiedProps, InvalidPathError, type InviteUserInput, type ListOptions, ListViewBuilder, ListViewConfig, ListViewDefinition, ListViewTab, ListViewTabConfigBuilder, Location, LocationAttribute, LocationGranularity, MaxDepthExceededError, MemoryNotFoundError, type MentionEntityType, type MentionReference, type MentionedContext, type MentionedEntityContext, MigrationDefinition, MigrationTimeoutError, type ModelDefinition, MultiRelationAttribute, MultiselectAttribute, NoopGeocodingAdapter, NotFoundError, NotImplementedError, NumberAttribute, OPERATOR_SPECS, ObjectBuilder, ObjectDefinition, ObjectNotFoundError, type ObjectPermissions, ObjectReferencedError, type OcrAdapter, type OcrInput, type OcrOptions, type OcrPage, type OcrResult, type OcrTextBlock, type OperatorSpec, Option, OrphanSystemAttributeError, PRESENTATION_PROPERTIES, type PageInfo, type PageOptions, type PageResponse, type ParsedAttribute, type PathCardinality, type PathSegment, type PathSegmentType, type Permission, type PermissionScope, Phone, PhoneAttribute, type PrincipalType, PropertySchema, ProtectedResourceError, ProtectedRoleError, type ProviderName, QUALIFIED_SEPARATOR, type QualifiedDocumentBrand, type QuestionResponse, type QuestionStatus, RatingAttribute, type ReasoningPartData, type RecordAgentEvent, type RecordMetadata, RecordNotFoundError, type RecordReference, RecordReferencedError, RelationAttribute, RelationGroup, RelationGroupBuilder, type RelationOption, type RelationOptionsResponse, RelationTarget, RepositoryError, type RepositoryOperation, ResolvedFlag, type ResourceAccess, type ResourceRef, type RetryPolicy, type ReverseGeocodingParams, RichtextAttribute, RichtextFeature, RichtextTabConfig, type Role, RoleNotFoundError, RollupAttribute, RollupFunction, STANDARD_SCHEMA_VENDOR, SYSTEM_ATTRIBUTES, SYSTEM_ATTRIBUTE_I18N_KEYS, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, type SandboxExecution, type SandboxExecutionInput, type SandboxExecutionResult, type SandboxExecutionStatus, type SandboxMode, type SandboxTrigger, SchemaError, SchemaErrorCode, SchemaOperation, type SchemaResolver, type SearchOptions, SelectAttribute, SidePanelConfig, type SidebarExtraItem, SingleRelationAttribute, type SlotMode, SortRule, type SpecificAccessAction, type StandardSchemaIssue, type StandardSchemaResult, StaticFlagDefault, StatusAttribute, StorageError, type StorageOperation, type StorageProvider, type StreamEventCompactionEnd, type StreamEventCompactionFailed, type StreamEventCompactionStart, type StreamEventMessagePersisted, SyncCascadeError, SyncConflictError, SyncError, type SystemAttribute, type SystemAttributeI18nKey, SystemEntityImmutableError, type SystemFields, type SystemPermissions, type SystemResource, Tab, TabBuilder, TableTab, TableTabConfig, TenantId, TextAreaAttribute, TextAttribute, type TextPartData, type ThinkingPartData, type TimeoutPolicy, Timestamps, type ToolPartData, type ToolPartState, type TriggerEventType, USER_STATUSES, type UpdateActorInput, type UpdateDBAttribute, type UpdateDBForm, type UpdateDBFormSubmission, type UpdateDBObject, type UpdateDBView, type UpdateDBViewOverlay, type UpdateFile, type UpdateObjectInput, type UpdateRoleInput, type UpdateUserProfile, type UpdateViewInput, type UpsertAccessPolicyInput, type UpsertDBAttribute, type UpsertDBObject, type UpsertDBView, UserAttribute, type UserProfile, type UserRoleAssignment, type UserStatus, Uuid, ValidationError, type ValidationErrorDetail, ViewConfig, ViewDefinition, ViewType, type WithCustomAttributes$1 as WithCustomAttributes, accessLevelToActions, actionsToAccessLevel, applyPipes, booleanFlag, buildPropertySchema, buildQualifiedAttribute, checkbox, createFlagRegistry, createFlagService, createStandardSchemaProps, currency, date, detailView, document, evaluateFilterState, evaluateFormula, evaluateFormulaAttribute, evaluateFormulaWithResult, extractAttributeNames, extractFormulaVariables, extractRelationNames, extractRelationReferences, file, flagRegistry, flattenRelationsForEval, form, formRegistry, formatAttributeValue, formatFormulaResult, formula, generateDefaultDetailView, generateDefaultListView, getActiveTab, getErrorMessage, getOperatorPolarity, getPathDepth, getRelationPath, getSystemAttributeI18nKey, getSystemAttributeList, getTargetAttributeName, group, hasRelationReferences, isAttributeInUseError, isDefaultRole, isDocumentAttribute, isEmptyObject, isFormDefinition, isFormFieldsRow, isFormFreeFieldRef, isFormHeadingRow, isFormSeparatorRow, isFormSlotFieldRef, isFormTextRow, isLabelExpression, isNotEmpty, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordReferencedError, isSchemaError, isStandardSchema, isValidationError, jsonFlag, listView, location, matchesMime, multiselect, normaliseDocumentSlots, normalizeForEdgeRpc, number, numberFlag, object, parsePath, parseQualifiedAttribute, pathHasManyCardinality, phone, rating, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, richtext, rollup, select, status, stringFlag, text, textarea, toUndefinedIfEmpty, user, validateAttributeName, validateFormulaExpression, validatePath, validateQualifiedRule, validateSlotAgainstConfig, viewRegistry };
|
|
7607
|
+
export { type AIAvailableModel, type AIBatchQuestion, type AIBatchQuestionAnswer, type AIBatchQuestionOption, type AIChatMessage, type AIChatMessagePart, type AIChatMessagePartType, type AICompactionSummary, type AIGenerationInputMap, type AIGenerationResult, type AIGenerationType, type AIGenerationUsage, type AIMemoryEntry, type AIMemoryType, type AIMessageRole, type AIProviderMetrics, type AIQuestion, type AIQuestionAnswer, type AIQuestionOption, type AIQuestionType, type AITodoItem, type AITodoList, type AITodoStatus, type AIToolCall, type AIToolCallStatus, type AIUsageMetrics, ALLOWED_PROPERTY_TYPES, ALL_ACTIONS, ALL_SYSTEM_RESOURCES, ATTRIBUTE_FILTER_OPERATORS, type AccessAction, type AccessActionList, AccessDeniedError, type AccessLevel, type AccessPolicy, type AccessPolicyPreset, type AccessResourceType, type Action, type ActivityTab, ActivityTabConfig, type Actor, type ActorRoleAssignment, type ActorStatus, type ActorType, type AddAttributeInput, type AdvancedFilterState, type AgentConfig, type AgentDashboard, type AgentDefinition, type AgentEvent, type AgentExecutionConfig, type AgentExecutionPolicy, type AgentMessageAttachment, type AgentMessagePart, type AgentRun, type AgentRunStatus, type AgentSchedule, type AgentSession, type AgentSessionMessage, type AgentSessionMode, type AgentSessionPatchLiveEvent, type AgentSessionStatus, type AgentToolCall, type AgentTriggerDefinition, type AgentTriggerType, type AgentUnreadPatchLiveEvent, type ApiKey, type ApiKeyAuthContext, type ApiKeyPermission, type ApiKeyWithSecret, type AssignActorRoleInput, type AssignRoleInput, Attribute, type AttributeAgentCapabilities, type AttributeAuthoringCapabilities, type AttributeCapabilities, type AttributeCardinality, type AttributeDefaultValueCapability, type AttributeExchangeCapabilities, type AttributeGroupField, AttributeInUseError, type AttributeLifecycleCapabilities, AttributeNotFoundError, type AttributePolymorphicCapability, type AttributePresentationCapabilities, type AttributeQueryCapabilities, type AttributeRequiredCapability, type AttributeStorageCapabilities, type AttributeStorageMode, AttributeType, type AttributeUsage, type AuditAction, type AuditActorType, type AuditChange, type AuditListOptions, type AuditLogEntry, type AuditResourceType, type AuditServiceOptions, type AuditSortField, BEHAVIOR_PROPERTIES, BilateralConfig, type BoundingBox, type BuilderConfig, COMPUTED_FUNCTIONS, COMPUTED_FUNCTION_METADATA, COMPUTED_FUNCTION_NAMES, ChangeTypeNotSupportedError, type ChannelRevokedLiveEvent, CheckboxAttribute, type CompileComputedFormulaInput, CompletionStatus, type ComputedCompileAttribute, type ComputedCompileObject, type ComputedCompileSchema, ComputedDependency, type ComputedDependencyGraphNode, type ComputedFormulaAstNode, type ComputedFormulaBinaryNode, type ComputedFormulaBinaryOperator, type ComputedFormulaCallNode, ComputedFormulaCompileError, type ComputedFormulaLiteralNode, ComputedFormulaParseError, type ComputedFormulaPathNode, type ComputedFormulaResult, type ComputedFunctionCategory, type ComputedFunctionMetadata, type ComputedFunctionName, type ComputedFunctionSignature, ComputedOptionsSource, ComputedPlan, ComputedReturnType, ComputedValueType, ConcurrentModificationError, type ConfigOverrides, type ConversationRenamedLiveEvent, type CountMode, type CreateActorInput, type CreateApiKeyInput, type CreateAuditLogInput, type CreateCustomObjectInput, type CreateDBAttribute, type CreateDBForm, type CreateDBFormSubmission, type CreateDBObject, type CreateDBView, type CreateDBViewOverlay, type CreateFile, type CreateMode, type CreateObjectRecord, type CreatePermissionInput, type CreateRoleInput, type CreateSandboxExecution, type CreateUserProfile, type CreateViewInput, type CriticConfig, Currency, CurrencyAttribute, type CurrencyFilterValue, type CustomAttributeValue, type CustomTab, CustomTabConfig, type DBAttribute, type DBForm, type DBFormSubmission, type DBObject, type DBView, type DBViewOverlay, DB_COLUMN_FIELDS, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DOCUMENT_SYSTEM_ATTRIBUTES, DateAttribute, type DefaultRoleName, type DeletedMode, DestructiveSyncNotAllowedError, DetailViewBuilder, type DetailViewConfig, type DetailViewDefinition, type DetailViewLayout, DocumentAttribute, DocumentLayout, DocumentSlotConfig, DocumentSlotValidationError, type DocumentsTab, DocumentsTabConfig, type DomainEvent, DuplicateError, EMPTY_VALUE_PLACEHOLDER, type EffectivePermissions, type EnvVarEntry, type EnvVarScope, type EventDataMap, type EventType, type ExtendedFilterRule, type ExtractRecord, type ExtractRecordInput, type ExtractRecordInputStrict, type ExtractRecordStrict, type ExtractRecordUpdate, type ExtractRecordUpdateStrict, FORM_FORBIDDEN_ATTRIBUTE_TYPES, type FeatureFlagDefinition, type FeatureFlagsConfig, type FeatureFlagsRepository, type FeatureGate, type Field, type FieldGroup, type FieldHistoryEntry, type File, FileAttribute, type FileListOptions, type FileVisibility, type FilterCombinator, type FilterGroup, type FilterOperator, type FilterRule, type FilterState, type FilterValue, type FlagLevel, type FlagOverride, FlagRegistry, FlagService, type FlagValueType, ForbiddenError, FormBuilder, type FormDefinition, type FormDensity, type FormFieldRef, type FormFieldsRow, type FormFreeFieldRef, type FormHeadingRow, FormRegistry, type FormRow, FormRowBuilder, type FormSeparatorRow, type FormSlot, type FormSlotFieldRef, type FormStatus, type FormStep, FormStepBuilder, type FormSubmission, type FormSubmissionStatus, type FormSubmittedAgentEvent, type FormTab, type FormTextRow, type FormsTab, FormulaAttribute, type FormulaGenerationAttribute, type FormulaGenerationInput, FormulaReturnType, type GeocodingAdapter, type GeocodingAutocompleteParams, type GeocodingParams, type GeocodingSuggestion, type GlobalSearchGroupedOptions, type GlobalSearchGroupedResult, type GlobalSearchOptions, type GlobalSearchResultItem, type GrantResourceAccessInput, type Group, GroupBuilder, IDENTITY_PROPERTIES, type InferAttributeValue, type InferQualifiedProps, type InverseSource, type InviteUserInput, LIVE_EVENT_TYPES, LIVE_STREAM_START_CURSOR, type ListOptions, ListViewBuilder, type ListViewConfig, type ListViewDefinition, type ListViewLayout, type ListViewTab, ListViewTabConfigBuilder, type LiveChannel, type LiveChannelKind, type LiveErrorPayload, type LiveEventEnvelope, type LiveEventPayload, type LiveEventType, type LiveGapPayload, type LiveReplayCompletePayload, type LiveSubscribePayload, type LiveUnsubscribePayload, Location, LocationAttribute, LocationGranularity, MemoryNotFoundError, type MentionEntityType, type MentionReference, type MentionedContext, type MentionedEntityContext, MigrationDefinition, MigrationTimeoutError, type ModelDefinition, MultiRelationAttribute, MultiselectAttribute, NO_VALUE_OPERATORS, type NoValueOperator, NoopGeocodingAdapter, NotFoundError, NotImplementedError, NumberAttribute, OPERATORS_BY_TYPE, OPERATOR_SPECS, ObjectBuilder, ObjectDefinition, ObjectNotFoundError, type ObjectPermissions, ObjectReferencedError, type OcrAdapter, type OcrInput, type OcrOptions, type OcrPage, type OcrResult, type OcrTextBlock, type OperatorSpec, Option, OrphanSystemAttributeError, PRESENTATION_PROPERTIES, type PageInfo, type PageOptions, type PageResponse, type ParsedAttribute, type Permission, type PermissionScope, Phone, PhoneAttribute, type PhoneFilterValue, type PrincipalType, PropertySchema, ProtectedResourceError, ProtectedRoleError, type ProviderName, QUALIFIED_SEPARATOR, type QualifiedDocumentBrand, type QueryState, type ReasoningPartData, type RecordAgentEvent, type RecordDeletedLiveEvent, type RecordFieldPatch, type RecordMetadata, RecordNotFoundError, type RecordPatchLiveEvent, type RecordReference, RecordReferencedError, type RegexGenerationInput, RelationAttribute, type RelationGroup, RelationGroupBuilder, type RelationOption, type RelationOptionsResponse, type RelationSource, RelationTarget, type RelativeDateValue, RepositoryError, type RepositoryOperation, type ResolvedFlag, type ResourceAccess, type ResourceRef, type RetryPolicy, type ReverseGeocodingParams, RichtextAttribute, type RichtextTab, RichtextTabConfig, type Role, RoleNotFoundError, RollupAttribute, RollupFunction, STANDARD_SCHEMA_VENDOR, SYSTEM_ATTRIBUTES, SYSTEM_ATTRIBUTE_I18N_KEYS, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, type SandboxExecution, type SandboxExecutionInput, type SandboxExecutionResult, type SandboxExecutionStatus, type SandboxMode, type SandboxTrigger, SchemaError, SchemaErrorCode, SchemaOperation, type SearchOptions, SelectAttribute, type SidePanelConfig, type SidebarExtraItem, SingleRelationAttribute, type SlotMode, type SortDirection, type SortRule, type SpecificAccessAction, type StandardSchemaIssue, type StandardSchemaResult, type StaticFlagDefault, StatusAttribute, StorageError, type StorageOperation, type StorageProvider, type StreamEventCompactionEnd, type StreamEventCompactionFailed, type StreamEventCompactionStart, type StreamEventMessagePersisted, SyncCascadeError, SyncConflictError, SyncError, type SystemAttribute, type SystemAttributeI18nKey, SystemEntityImmutableError, type SystemFields, type SystemPermissions, type SystemResource, type Tab, TabBuilder, type TabType, type TableSource, type TableTab, TableTabConfig, TenantId, TextAttribute, type TextPartData, type ThinkingPartData, Timestamps, type ToolPartData, type ToolPartState, type TriggerEventType, USER_STATUSES, type UpdateActorInput, type UpdateDBAttribute, type UpdateDBForm, type UpdateDBFormSubmission, type UpdateDBObject, type UpdateDBView, type UpdateDBViewOverlay, type UpdateFile, type UpdateObjectInput, type UpdateRoleInput, type UpdateUserProfile, type UpdateViewInput, type UpsertAccessPolicyInput, type UpsertDBAttribute, type UpsertDBObject, type UpsertDBView, UserAttribute, type UserProfile, UserReferenceType, type UserRoleAssignment, type UserStatus, Uuid, ValidationError, type ValidationErrorDetail, type ViewConfig, type ViewDefinition, type ViewOverlay, type ViewProjectionStaleLiveEvent, type ViewType, type WithCustomAttributes$1 as WithCustomAttributes, accessLevelToActions, actionsToAccessLevel, applyPipes, assertAcyclicComputedDependencies, assertLiveStreamCursor, booleanFlag, buildPropertySchema, buildQualifiedAttribute, checkbox, compareLiveStreamCursors, compileComputedFormula, compileRollupAttribute, createFlagRegistry, createFlagService, createStandardSchemaProps, currency, date, detailView, document, evaluateComputedAst, evaluateComputedFormula, evaluateComputedFormulaWithResult, evaluateFilterState, extractAttributeNames, file, flagRegistry, form, formRegistry, formatAttributeValue, formatComputedResult, formula, generateDefaultDetailView, generateDefaultListView, getActiveTab, getAttributeCapabilities, getAttributeFilterOperators, getErrorMessage, getLiveProtocolPayloadChannel, getOperatorPolarity, getRollupFilterOperators, getSystemAttributeI18nKey, getSystemAttributeList, group, inferRollupReturnType, isAttributeFilterable, isAttributeGroupable, isAttributeInUseError, isAttributeKanbanGroupable, isAttributeSearchable, isComputedFunctionName, isDefaultRole, isDetailView, isDocumentAttribute, isEmptyObject, isFieldGroup, isFormDefinition, isFormFieldsRow, isFormFreeFieldRef, isFormHeadingRow, isFormSeparatorRow, isFormSlotFieldRef, isFormTextRow, isLabelExpression, isListView, isLiveErrorPayload, isLiveEventEnvelope, isLiveEventPayload, isLiveEventPayloadForType, isLiveEventType, isLiveGapPayload, isLiveReplayCompletePayload, isLiveStreamCursor, isNoValueOperator, isNotEmpty, isNotFoundError, isObjectReferencedError, isPlainRecord, isProtectedResourceError, isRecordReferencedError, isRelationGroup, isSchemaError, isStandardSchema, isValidationError, jsonFlag, listView, liveChannelKey, location, matchesMime, multiselect, normaliseDocumentSlots, normalizeForEdgeRpc, number, numberFlag, object, parseComputedFormula, parseLiveChannelKey, parseLiveSubscribePayload, parseLiveUnsubscribePayload, parseQualifiedAttribute, phone, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, richtext, rollup, rollupToFormulaExpression, select, status, stringFlag, text, toUndefinedIfEmpty, user, validateAttributeName, validateQualifiedRule, validateSlotAgainstConfig, viewRegistry };
|