@stndrds/schema 0.1.0-alpha.55 → 0.1.0-alpha.57
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/{chunk-QBDGRMSC.js → chunk-DPRLHGPO.js} +3273 -1889
- package/dist/{chunk-4NLKDJWD.mjs → chunk-YVUSATKC.mjs} +3217 -1833
- package/dist/index.d.mts +929 -54
- package/dist/index.d.ts +929 -54
- package/dist/index.js +976 -33
- package/dist/index.mjs +974 -31
- package/dist/{runtime-ka1bmD0F.d.mts → runtime-BqJdmg_4.d.mts} +1157 -959
- package/dist/{runtime-ka1bmD0F.d.ts → runtime-BqJdmg_4.d.ts} +1157 -959
- package/dist/runtime.d.mts +1 -1
- package/dist/runtime.d.ts +1 -1
- package/dist/runtime.js +20 -2
- package/dist/runtime.mjs +23 -5
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { D as DateAttribute, U as UserAttribute, a as DocumentAttribute, A as Attribute, S as SystemResource, b as SystemAction, O as ObjectAction, T as TextAttribute, c as TextAreaAttribute, R as RichtextAttribute, d as RichtextFeature, N as NumberAttribute, C as CheckboxAttribute, P as PhoneAttribute, e as CurrencyAttribute, f as Option, g as StatusAttribute, h as SelectAttribute, M as MultiselectAttribute, L as LocationAttribute,
|
|
2
|
-
export { az as AIBatchQuestion, aA as AIBatchQuestionAnswer, ay as AIBatchQuestionOption, at as AIChatMessage, as as AIChatMessagePart, an as AIChatMessagePartType, aF as AIConversation, hy as AIConversationsRepository, aG as AIMessage, aE as AIMessageAttachment, aj as AIMessageRole, aK as AIProviderMetrics, aw as AIQuestion, ax as AIQuestionAnswer, av as AIQuestionOption, au as AIQuestionType, ak as AIThinkingLevel, aC as AITodoItem, aD as AITodoList, aB as AITodoStatus, am as AIToolCall, aH as AIToolCallRecord, al as AIToolCallStatus, aJ as AIUsageMetrics, hA as AIUsageMetricsRepository, aI as AIUserMemory, hz as AIUserMemoryRepository, d8 as ActivityTab, cm as AddAttribute, hO as AddAttributeInput, bU as AdvancedFilterState, cX as AssignRoleInput, hb as AttributeChange, aN as AttributeGroup, cl as AttributeMap, ch as AttributeSchema, hn as AttributesRepository, a_ as AuditAction, a$ as AuditActorType, b0 as AuditChange, b3 as AuditListOptions, b1 as AuditLogEntry, hw as AuditRepository, aZ as AuditResourceType, j1 as AuditService, b4 as AuditServiceOptions, aO as BaseAttribute, hI as BaseRepository, hH as BaseService, a5 as BoundingBox, fK as CacheAdapter, fI as CacheKeyType, fL as CacheOptions, dL as CanvasViewport, bG as CheckboxFilterOperator, cL as CompletionStatus, gE as ConditionExecutor, dl as ConditionNode, dB as ConditionOperator, aL as CreateAIMessageInput, b2 as CreateAuditLogInput, hN as CreateCustomObjectInput, jV as CreateDBAttribute, jR as CreateDBObject, k3 as CreateDBView, k7 as CreateDBWorkflow, kg as CreateDBWorkflowAccessGrant, ka as CreateDBWorkflowInstance, kd as CreateDBWorkflowInvitation, bp as CreateDocument, b9 as CreateDocumentGenerationTemplate, bt as CreateDocumentSlot, br as CreateDocumentTemplate, bC as CreateFile, e6 as CreateGrantInput, iG as CreateGrantResult, d$ as CreateInvitationInput, e0 as CreateInvitationResult, jY as CreateObjectRecord, cW as CreatePermissionInput, bv as CreateProcessingJob, jg as CreateRecordDocumentInput, jh as CreateRecordDocumentResult, cU as CreateRoleInput, a7 as CreateSignatureInput, d2 as CreateUserProfile, jq as CreateViewInput, iU as CreateWorkflowInput, aT as Currency, bN as CurrencyFilterValue, cq as CustomAttributeValue, d7 as CustomTab, jU as DBAttribute, jQ as DBObject, k2 as DBView, k6 as DBWorkflow, kf as DBWorkflowAccessGrant, k9 as DBWorkflowInstance, kc as DBWorkflowInvitation, jH as DEFAULT_LABEL_FALLBACK, es as DEFAULT_THEME, eH as DEFAULT_VALIDATION_MESSAGES, fB as DatabaseAdapter, bH as DateFilterOperator, aQ as DateFormat, aR as DateValue, bi as Document, bf as DocumentAutoProcessing, ah as DocumentData, gF as DocumentExecutor, j4 as DocumentGenerationNotConfiguredError, j5 as DocumentGenerationService, b8 as DocumentGenerationTemplate, hF as DocumentGenerationTemplateListOptions, j3 as DocumentGenerationTemplateNotFoundError, hG as DocumentGenerationTemplatesRepository, hE as DocumentJobsRepository, bx as DocumentListOptions, dm as DocumentNode, j6 as DocumentProcessingConfig, iA as DocumentProcessingHook, iz as DocumentProcessingHookOptions, j7 as DocumentProcessingService, jb as DocumentRenderError, j9 as DocumentRendererOptions, jd as DocumentRendererService, jj as DocumentService, ji as DocumentServiceOptions, bk as DocumentSlot, be as DocumentSlotDefinition, hD as DocumentSlotsRepository, bj as DocumentStatus, by as DocumentTemplateListOptions, je as DocumentTemplateService, hB as DocumentTemplatesRepository, hC as DocumentsRepository, db as DocumentsTab, cR as EffectivePermissions, gG as EndExecutor, dn as EndNode, g5 as EvaluationResult, g6 as EvaluationTrace, gs as ExecutorCompleteResult, gt as ExecutorContext, gu as ExecutorErrorResult, gB as ExecutorRegistry, gv as ExecutorResult, gw as ExecutorSuccessResult, gx as ExecutorWaitResult, bR as ExtendedFilterRule, cA as ExtractAttributes, cC as ExtractObjectRecord, cD as ExtractObjectRecordWithCustom, cu as ExtractRecord, cw as ExtractRecordInput, cx as ExtractRecordInputStrict, cv as ExtractRecordStrict, cy as ExtractRecordUpdate, cz as ExtractRecordUpdateStrict, bh as ExtractionField, bg as ExtractionMapping, fQ as FetchResult, iS as FieldReadOnlyResult, bB as File, jt as FileContent, k1 as FileListOptions, jl as FileService, jk as FileServiceOptions, bA as FileVisibility, hp as FilesRepository, bS as FilterCombinator, bT as FilterGroup, bL as FilterOperator, bQ as FilterRule, bP as FilterValue, c7 as FlowDefinition, c4 as FlowPage, c5 as FlowRelation, c3 as FlowRowField, c2 as FlowSlot, c6 as FlowStatus, da as FlowsTab, ej as FormContextResponse, gH as FormExecutor, ek as FormFieldContext, dp as FormFieldRef, el as FormFieldRow, dq as FormNode, em as FormNodeInfo, d6 as FormTab, fR as FormattedRecord, i9 as FormulaResolverService, i8 as FormulaResolverServiceOptions, gV as FormulaResult, jF as FullSyncOptions, jE as FullSyncResult, ed as GeneratedDocument, cf as GeocodingAdapter, cc as GeocodingAutocompleteParams, ce as GeocodingParams, jm as GeocodingService, cb as GeocodingSuggestion, i1 as GetRelationOptionsParams, j$ as GlobalSearchOptions, k0 as GlobalSearchResultItem, jn as GlobalSearchService, iC as GrantExpiredError, iB as GrantNotFoundError, iD as GrantRevokedError, iF as GrantServiceConfig, fS as GroupedFetchResult, hc as HookContext, hd as HookDefinition, he as HookHandler, hh as HookRegistry, hf as HookType, ae as IdentityVerificationAdapter, cn as InferRecord, ci as InferRecordFromSchema, co as InferRecordInput, cp as InferRecordUpdate, cj as InferRecordWithRequirements, fT as InsertOptions, gZ as InvalidPathError, iP as InvitationAlreadyAcceptedError, iO as InvitationExpiredError, iN as InvitationNotFoundError, iQ as InvitationRevokedError, iM as InvitationServiceConfig, e1 as InvitationStatus, d4 as InviteUserInput, fD as JwtVerificationResult, iq as LabelResolver, jZ as ListOptions, aU as Location, aV as LocationGranularity, fE as MagicLinkPayload, g_ as MaxDepthExceededError, bJ as MultiselectFilterOperator, c0 as NO_VALUE_OPERATORS, b$ as NoValueOperator, gy as NodeExecutor, dM as NodePosition, fP as NoopCacheAdapter, cg as NoopGeocodingAdapter, hg as NoopHookRegistry, d9 as NotesTab, bF as NumberFilterOperator, aP as NumberUnit, b_ as OPERATORS_BY_TYPE, cK as ObjectAttribute, cS as ObjectPermissions, cM as ObjectRecord, hq as ObjectRecordsRepository, hR as ObjectSchemaService, hQ as ObjectSchemaServiceOptions, hm as ObjectsRepository, $ as OcrAdapter, a0 as OcrInput, a1 as OcrOptions, a3 as OcrPage, a2 as OcrResult, a4 as OcrTextBlock, ki as OperationResult, h2 as PathCardinality, h3 as PathSegment, h4 as PathSegmentType, b6 as PdfTemplateField, dT as PendingAction, bb as PendingDocumentRequest, cP as Permission, cN as PermissionScope, jp as PermissionService, jo as PermissionServiceOptions, hx as PermissionsRepository, aS as Phone, bO as PhoneFilterValue, cY as PolicyContext, hk as PolicyRegistry, c_ as PolicyViolationError, bm as ProcessingJob, bo as ProcessingJobStatus, bn as ProcessingJobType, g3 as QueryBuilder, g4 as QueryBuilderOptions, fU as QueryBuilderState, f$ as QueryMultipleResultsError, g0 as QueryNoResultError, hV as QueryOptions, hX as QueryResult, bZ as QueryState, aW as RELATION_TARGET_ANY, cE as RESERVED_ATTRIBUTE_NAMES, en as ReadOnlyReason, ar as ReasoningPartData, jf as RecordDocumentsResult, cs as RecordMetadata, cZ as RecordPolicy, hY as RecordQueryService, hU as RecordQueryServiceOptions, i6 as RecordResolverService, hT as RecordService, hS as RecordServiceOptions, fV as RegistryMap, fW as RegistryObjectNames, aX as RelationAttribute, bK as RelationFilterOperator, jO as RelationLabelResolver, h$ as RelationOption, i0 as RelationOptionsResponse, i5 as RelationService, i2 as RelationServiceOptions, h_ as RelationValidationError, hZ as RelationValidationResult, bM as RelativeDateValue, j8 as RenderDocumentInput, ja as RenderDocumentResult, cG as ReservedAttributeName, i3 as ResolveIdsBatchRequest, i4 as ResolveIdsBatchResponse, i7 as ResolvedRelations, iJ as ResumeWorkflowInput, cd as ReverseGeocodingParams, cO as Role, iy as RollupCascadeContext, ia as RollupResult, ie as RollupScheduler, id as RollupSchedulerOptions, ic as RollupService, ib as RollupServiceOptions, g1 as SHORTCUT_TO_FILTER_OPERATOR, cF as SYSTEM_FIELD_NAMES, gi as SchemaContext, hJ as SchemaContextAware, hK as SchemaContextAwareRepository, h5 as SchemaResolver, j_ as SearchOptions, hW as SearchQueryOptions, bI as SelectFilterOperator, cJ as SharingMode, fX as ShortcutOperator, a6 as SignatureAdapter, a9 as SignaturePosition, aa as SignatureRequestResult, ad as SignatureStatus, ab as SignatureStatusResult, jw as SignedUrlOptions, a8 as SignerRequest, ac as SignerStatus, bl as SlotStatus, bY as SortDirection, gI as StartExecutor, dr as StartNode, iI as StartWorkflowInput, aM as StatusGroup, jx as StorageAdapter, jc as StorageDownloadNotSupportedError, bz as StorageProvider, ju as StorageUploadInput, jv as StorageUploadResult, jA as SyncOptions, jz as SyncResult, cH as SystemFieldName, ct as SystemFields, cT as SystemPermissions, d5 as TabType, b7 as TemplateSource, hL as TenantAwareRepository, hM as TenantAwareService, gp as TenantContext, ga as TenantContextError, ew as TenantId, bE as TextFilterOperator, ao as TextPartData, ep as ThemeColors, eq as ThemeLogo, er as ThemeTypography, aq as ThinkingPartData, cI as Timestamps, iE as TokenRevokedError, ap as ToolPartData, h9 as TraversalOptions, ha as TraversalResult, ck as TypedAttribute, cB as TypedObjectRecord, jW as UpdateDBAttribute, jS as UpdateDBObject, k4 as UpdateDBView, k8 as UpdateDBWorkflow, kh as UpdateDBWorkflowAccessGrant, kb as UpdateDBWorkflowInstance, ke as UpdateDBWorkflowInvitation, bq as UpdateDocument, ba as UpdateDocumentGenerationTemplate, bu as UpdateDocumentSlot, bs as UpdateDocumentTemplate, bD as UpdateFile, hP as UpdateObjectInput, bw as UpdateProcessingJob, cV as UpdateRoleInput, d3 as UpdateUserProfile, jr as UpdateViewInput, iV as UpdateWorkflowInput, jy as UploadFileInput, jX as UpsertDBAttribute, jT as UpsertDBObject, k5 as UpsertDBView, ex as UserId, d1 as UserProfile, j0 as UserProfileService, i$ as UserProfileServiceOptions, ho as UserProfilesRepository, c$ as UserRole, cQ as UserRoleAssignment, i_ as UserService, d0 as UserStatus, iZ as UserValidationError, iY as UserValidationResult, ev as Uuid, eG as ValidationMessages, fr as ValidationResult, b5 as VariableMapping, ai as VerificationCheck, ag as VerificationResult, af as VerifyInput, js as ViewService, kk as ViewSyncOptions, kj as ViewSyncResult, hr as ViewsRepository, cr as WithCustomAttributes, e7 as WorkflowAccessGrant, iH as WorkflowAccessGrantService, hv as WorkflowAccessGrantsRepository, eo as WorkflowAccessMode, fF as WorkflowAccessPayload, dU as WorkflowError, ee as WorkflowExecutionContext, dV as WorkflowInstance, iL as WorkflowInstanceService, iK as WorkflowInstanceServiceOptions, ht as WorkflowInstancesRepository, e2 as WorkflowInvitation, iR as WorkflowInvitationService, hu as WorkflowInvitationsRepository, fG as WorkflowJwtConfig, fH as WorkflowJwtPayload, fC as WorkflowJwtService, dN as WorkflowLayout, ds as WorkflowNodeType, iT as WorkflowRelationService, iX as WorkflowService, iW as WorkflowServiceOptions, dO as WorkflowSlot, dP as WorkflowStatus, dW as WorkflowTransition, hs as WorkflowsRepository, gb as addSchemaToContext, dC as and, ig as applyDefaultValues, ey as asTenantId, ez as asUserId, e$ as attributeConfigSchemas, j2 as buildAuditChanges, ij as buildPolicyContext, fM as cacheKeys, fN as cacheTtl, e8 as canAccessNode, dX as canResumeInstance, ih as checkPermission, ik as checkRecordAccess, im as checkRecordDeleteOrThrow, il as checkRecordModifyOrThrow, io as checkSharedObjectWriteAccess, eM as checkboxConfigSchema, gz as complete, ip as computeLabel, jP as computeLabelWithRelations, fA as computeRecordStatus, fo as createAttributeValidator, f6 as createCheckboxValidator, it as createContextForCreate, iv as createContextForDelete, iw as createContextForRestore, iu as createContextForUpdate, f9 as createCurrencyValidator, f7 as createDateValidator, gq as createDefaultExecutorRegistry, fY as createDefaultState, fv as createDraftValidator, ef as createEmptyContext, fe as createFileValidator, fp as createFormAttributeValidator, fk as createFormulaValidator, fd as createLocationValidator, hi as createMockAdapter, fh as createMultiRelationValidator, fc as createMultiselectValidator, f5 as createNumberValidator, fq as createObjectValidator, f8 as createPhoneValidator, g2 as createQueryBuilder, fj as createRatingValidator, fi as createRelationValidator, fn as createRichtextValidator, fl as createRollupValidator, fb as createSelectValidator, fg as createSingleRelationValidator, dY as createStartTransition, fa as createStatusValidator, fm as createTextAreaValidator, f4 as createTextValidator, ff as createUserValidator, eP as currencyConfigSchema, eN as dateConfigSchema, hj as defaultPolicyRegistry, fO as defaultTtl, e_ as documentConfigSchema, is as enrichRecordsWithFormulas, jL as enrichValuesForDisplay, jM as enrichValuesWithSelectLabels, ir as enrichWithFormulas, dD as eq, gA as error, g8 as evaluate, g7 as evaluateCondition, gJ as evaluateFormula, gK as evaluateFormulaAttribute, gL as evaluateFormulaAttributeWithRelations, gM as evaluateFormulaWithRelations, gN as evaluateFormulaWithResult, g9 as evaluateWithTrace, jK as extractAttributeNames, gO as extractFormulaVariables, jN as extractRelationIds, gP as extractRelationNames, gQ as extractRelationReferences, eU as fileConfigSchema, gR as flattenRelationsForEval, gS as formatFormulaResult, fZ as formatRecord, f_ as formatRecords, eY as formulaConfigSchema, et as generateCssVariables, eA as generateId, eB as generatePrefixedId, eD as generateTemplateName, f0 as getAttributeConfigSchema, gj as getContext, eg as getContextValue, gr as getDefaultExecutorRegistry, fy as getMissingRequiredAttributes, dt as getNodeOutputs, gW as getPathDepth, ii as getPolicy, gX as getRelationPath, gc as getSchemaByNameFromContext, gd as getSchemaContext, ge as getSchemaFromContext, jD as getSyncPreview, gY as getTargetAttributeName, gk as getTenantId, gl as getUserId, kn as getViewSyncPreview, gm as hasContext, gT as hasRelationReferences, gf as hasSchemaContext, fJ as hashOptions, dE as inValues, dh as isActivityTab, bV as isAdvancedFilterState, du as isAdvancedFormNode, dF as isConditionGroup, dv as isConditionNode, dG as isConditionRule, dg as isCustomTab, de as isDirectTableTab, dw as isDocumentNode, dk as isDocumentsTab, bd as isDocxTemplateSource, dH as isEmpty, dx as isEndNode, c8 as isFlowDefinition, c9 as isFlowPublished, dj as isFlowsTab, dy as isFormNode, dc as isFormTab, e9 as isGrantExpired, ea as isGrantRevoked, eb as isGrantValid, dZ as isInstanceTerminal, d_ as isInstanceWaiting, df as isInverseTableTab, e3 as isInvitationAccepted, e4 as isInvitationExpired, e5 as isInvitationValid, jJ as isLabelExpression, c1 as isNoValueOperator, dI as isNotEmpty, di as isNotesTab, bc as isPdfTemplateSource, fz as isRecordComplete, dz as isSimpleFormNode, dA as isStartNode, ca as isSystemFlow, dQ as isSystemWorkflow, dd as isTableTab, ec as isTokenRevoked, aY as isUniversalRelation, dR as isWorkflowDefinition, dS as isWorkflowPublished, eR as locationConfigSchema, eh as mergeFormToSlot, eu as mergeWithDefaults, eT as multiselectConfigSchema, dJ as neq, hl as notesPolicy, eL as numberConfigSchema, dK as or, f2 as parseAttributeConfig, g$ as parsePath, h0 as pathHasManyCardinality, eO as phoneConfigSchema, eX as ratingConfigSchema, ix as recalculateParentRollups, eE as registry, eW as relationConfigSchema, jI as renderLabelExpression, h6 as resolveMultiplePaths, h7 as resolveSingleValue, eK as richtextConfigSchema, eZ as rollupConfigSchema, gn as runWithContext, gg as runWithMergedSchemaContext, gh as runWithSchemaContext, f3 as safeParseAttributeConfig, eS as selectConfigSchema, ei as setContextValue, eC as slugify, eQ as statusConfigSchema, gC as success, jG as syncAll, jB as syncNativeObjects, kl as syncNativeViews, eI as textConfigSchema, eJ as textareaConfigSchema, bW as toAdvancedFilterState, bX as toSimpleFilterState, h8 as traversePath, eV as userConfigSchema, fs as validateAttribute, f1 as validateAttributeConfig, fw as validateDraft, fx as validateDraftOrThrow, gU as validateFormulaExpression, ft as validateObject, fu as validateObjectOrThrow, h1 as validatePath, jC as verifyNativeObjectsSync, km as verifyNativeViewsSync, eF as viewRegistry, gD as wait, go as withTenantContext } from './runtime-ka1bmD0F.js';
|
|
1
|
+
import { D as DateAttribute, U as UserAttribute, a as DocumentAttribute, A as Attribute, S as SystemResource, b as SystemAction, O as ObjectAction, F as FeatureGate, T as TextAttribute, c as TextAreaAttribute, R as RichtextAttribute, d as RichtextFeature, N as NumberAttribute, C as CheckboxAttribute, P as PhoneAttribute, e as CurrencyAttribute, f as Option, g as StatusAttribute, h as SelectAttribute, M as MultiselectAttribute, L as LocationAttribute, i as FileAttribute, j as SingleRelationAttribute, k as MultiRelationAttribute, l as RelationTarget, m as RatingAttribute, n as FormulaAttribute, o as FormulaReturnType, p as RollupAttribute, q as RollupFunction, r as AttributeType, I as InferAttributeValue, s as ObjectDefinition, t as Field, u as AttributeGroupField, G as Group, v as TableTab, w as DetailViewLayout, x as InverseTableTab, y as DetailViewDefinition, z as InstanceStatus, B as Tab, E as FilterState, H as SortRule, J as DirectTableTab, K as ListViewDefinition, W as WorkflowTheme, Q as WorkflowConfig, V as SlotMode, X as ConditionGroup, Y as ConditionRule, Z as WorkflowNode, _ as WorkflowDefinition, $ as FlowRow, a0 as FlagValueType, a1 as FeatureFlagDefinition, a2 as FlagLevel, a3 as FeatureFlagsRepository, a4 as StaticFlagDefault, a5 as ResolvedFlag, a6 as ViewType, a7 as ViewDefinition, a8 as DocumentTemplate } from './runtime-BqJdmg_4.js';
|
|
2
|
+
export { aJ as AIBatchQuestion, aK as AIBatchQuestionAnswer, aI as AIBatchQuestionOption, aD as AIChatMessage, aC as AIChatMessagePart, ax as AIChatMessagePartType, aP as AIConversation, i0 as AIConversationsRepository, aQ as AIMessage, aO as AIMessageAttachment, at as AIMessageRole, aU as AIProviderMetrics, aG as AIQuestion, aH as AIQuestionAnswer, aF as AIQuestionOption, aE as AIQuestionType, au as AIThinkingLevel, aM as AITodoItem, aN as AITodoList, aL as AITodoStatus, aw as AIToolCall, aR as AIToolCallRecord, av as AIToolCallStatus, aT as AIUsageMetrics, i1 as AIUsageMetricsRepository, aS as AIUserMemory, i2 as AIUserMemoryRepository, dk as ActivityTab, cy as AddAttribute, is as AddAttributeInput, c4 as AdvancedFilterState, d7 as AssignRoleInput, hQ as AttributeChange, aX as AttributeGroup, cx as AttributeMap, ct as AttributeSchema, i3 as AttributesRepository, b8 as AuditAction, b9 as AuditActorType, ba as AuditChange, bd as AuditListOptions, bb as AuditLogEntry, i4 as AuditRepository, b7 as AuditResourceType, jF as AuditService, be as AuditServiceOptions, aY as BaseAttribute, io as BaseRepository, im as BaseService, af as BoundingBox, ge as CacheAdapter, gc as CacheKeyType, gf as CacheOptions, du as CalendarViewConfig, dy as CalendarViewDefinition, ee as CanvasViewport, bS as CheckboxFilterOperator, cX as CompletionStatus, hh as ConditionExecutor, dR as ConditionNode, e4 as ConditionOperator, dB as ConfigOverrides, aV as CreateAIMessageInput, bc as CreateAuditLogInput, ir as CreateCustomObjectInput, kz as CreateDBAttribute, kv as CreateDBObject, kJ as CreateDBView, kN as CreateDBViewOverlay, kQ as CreateDBWorkflow, kZ as CreateDBWorkflowAccessGrant, kT as CreateDBWorkflowInstance, kW as CreateDBWorkflowInvitation, bz as CreateDocument, bj as CreateDocumentGenerationTemplate, bD as CreateDocumentSlot, bB as CreateDocumentTemplate, bO as CreateFile, eB as CreateGrantInput, ji as CreateGrantResult, eu as CreateInvitationInput, ev as CreateInvitationResult, kC as CreateObjectRecord, d6 as CreatePermissionInput, bF as CreateProcessingJob, jU as CreateRecordDocumentInput, jV as CreateRecordDocumentResult, d4 as CreateRoleInput, ah as CreateSignatureInput, de as CreateUserProfile, k2 as CreateViewInput, jw as CreateWorkflowInput, b1 as Currency, bZ as CurrencyFilterValue, cC as CustomAttributeValue, dj as CustomTab, ky as DBAttribute, ku as DBObject, kI as DBView, kM as DBViewOverlay, kP as DBWorkflow, kY as DBWorkflowAccessGrant, kS as DBWorkflowInstance, kV as DBWorkflowInvitation, kl as DEFAULT_LABEL_FALLBACK, eX as DEFAULT_THEME, fa as DEFAULT_VALIDATION_MESSAGES, g5 as DatabaseAdapter, bT as DateFilterOperator, a_ as DateFormat, a$ as DateValue, ds as DetailViewConfig, bs as Document, bp as DocumentAutoProcessing, ar as DocumentData, hi as DocumentExecutor, jI as DocumentGenerationNotConfiguredError, jJ as DocumentGenerationService, bi as DocumentGenerationTemplate, i5 as DocumentGenerationTemplateListOptions, jH as DocumentGenerationTemplateNotFoundError, i6 as DocumentGenerationTemplatesRepository, i7 as DocumentJobsRepository, bH as DocumentListOptions, dS as DocumentNode, jK as DocumentProcessingConfig, jc as DocumentProcessingHook, jb as DocumentProcessingHookOptions, jL as DocumentProcessingService, jP as DocumentRenderError, jN as DocumentRendererOptions, jR as DocumentRendererService, jX as DocumentService, jW as DocumentServiceOptions, bu as DocumentSlot, bo as DocumentSlotDefinition, i8 as DocumentSlotsRepository, bt as DocumentStatus, bI as DocumentTemplateListOptions, jS as DocumentTemplateService, ia as DocumentTemplatesRepository, i9 as DocumentsRepository, dn as DocumentsTab, d1 as EffectivePermissions, hj as EndExecutor, dT as EndNode, gB as EvaluationResult, gC as EvaluationTrace, h5 as ExecutorCompleteResult, h6 as ExecutorContext, h7 as ExecutorErrorResult, he as ExecutorRegistry, h8 as ExecutorResult, h9 as ExecutorSuccessResult, ha as ExecutorWaitResult, c1 as ExtendedFilterRule, cM as ExtractAttributes, cO as ExtractObjectRecord, cP as ExtractObjectRecordWithCustom, cG as ExtractRecord, cI as ExtractRecordInput, cJ as ExtractRecordInputStrict, cH as ExtractRecordStrict, cK as ExtractRecordUpdate, cL as ExtractRecordUpdateStrict, br as ExtractionField, bq as ExtractionMapping, bK as FeatureFlagsConfig, gP as FeatureFlagsContext, gH as FeatureFlagsContextError, gk as FetchResult, ju as FieldReadOnlyResult, bN as File, k7 as FileContent, kH as FileListOptions, jZ as FileService, jY as FileServiceOptions, bM as FileVisibility, ib as FilesRepository, c2 as FilterCombinator, c3 as FilterGroup, bX as FilterOperator, c0 as FilterRule, b$ as FilterValue, bJ as FlagOverride, cj as FlowDefinition, cg as FlowPage, ch as FlowRelation, cf as FlowRowField, ce as FlowSlot, ci as FlowStatus, dm as FlowsTab, eO as FormContextResponse, hk as FormExecutor, eP as FormFieldContext, dU as FormFieldRef, eQ as FormFieldRow, dV as FormNode, eR as FormNodeInfo, di as FormTab, gl as FormattedRecord, iP as FormulaResolverService, iO as FormulaResolverServiceOptions, hy as FormulaResult, kj as FullSyncOptions, ki as FullSyncResult, dw as GalleryViewConfig, dA as GalleryViewDefinition, eI as GeneratedDocument, cr as GeocodingAdapter, co as GeocodingAutocompleteParams, cq as GeocodingParams, j_ as GeocodingService, cn as GeocodingSuggestion, iH as GetRelationOptionsParams, k5 as GetViewOptions, k4 as GetViewsOptions, kF as GlobalSearchOptions, kG as GlobalSearchResultItem, j$ as GlobalSearchService, je as GrantExpiredError, jd as GrantNotFoundError, jf as GrantRevokedError, jh as GrantServiceConfig, gm as GroupedFetchResult, hR as HookContext, hS as HookDefinition, hT as HookHandler, hW as HookRegistry, hU as HookType, ao as IdentityVerificationAdapter, cz as InferRecord, cu as InferRecordFromSchema, cA as InferRecordInput, cB as InferRecordUpdate, cv as InferRecordWithRequirements, gn as InsertOptions, hC as InvalidPathError, jr as InvitationAlreadyAcceptedError, jq as InvitationExpiredError, jp as InvitationNotFoundError, js as InvitationRevokedError, jo as InvitationServiceConfig, ew as InvitationStatus, dg as InviteUserInput, g7 as JwtVerificationResult, j2 as LabelResolver, kD as ListOptions, dt as ListViewConfig, dp as ListViewLayout, b2 as Location, b3 as LocationGranularity, g8 as MagicLinkPayload, hD as MaxDepthExceededError, hY as MockStores, bV as MultiselectFilterOperator, cc as NO_VALUE_OPERATORS, cb as NoValueOperator, hb as NodeExecutor, ef as NodePosition, gj as NoopCacheAdapter, cs as NoopGeocodingAdapter, hV as NoopHookRegistry, dl as NotesTab, bR as NumberFilterOperator, aZ as NumberUnit, ca as OPERATORS_BY_TYPE, cW as ObjectAttribute, d2 as ObjectPermissions, cY as ObjectRecord, ic as ObjectRecordsRepository, iv as ObjectSchemaService, iu as ObjectSchemaServiceOptions, id as ObjectsRepository, a9 as OcrAdapter, aa as OcrInput, ab as OcrOptions, ad as OcrPage, ac as OcrResult, ae as OcrTextBlock, k$ as OperationResult, hH as PathCardinality, hI as PathSegment, hJ as PathSegmentType, bg as PdfTemplateField, em as PendingAction, bl as PendingDocumentRequest, c$ as Permission, cZ as PermissionScope, k1 as PermissionService, k0 as PermissionServiceOptions, ie as PermissionsRepository, b0 as Phone, b_ as PhoneFilterValue, d8 as PolicyContext, h_ as PolicyRegistry, da as PolicyViolationError, bw as ProcessingJob, by as ProcessingJobStatus, bx as ProcessingJobType, gz as QueryBuilder, gA as QueryBuilderOptions, go as QueryBuilderState, gv as QueryMultipleResultsError, gw as QueryNoResultError, iz as QueryOptions, iB as QueryResult, c9 as QueryState, b4 as RELATION_TARGET_ANY, cQ as RESERVED_ATTRIBUTE_NAMES, eS as ReadOnlyReason, aB as ReasoningPartData, jT as RecordDocumentsResult, cE as RecordMetadata, d9 as RecordPolicy, iC as RecordQueryService, iy as RecordQueryServiceOptions, iM as RecordResolverService, ix as RecordService, iw as RecordServiceOptions, gp as RegistryMap, gq as RegistryObjectNames, b5 as RelationAttribute, bW as RelationFilterOperator, ks as RelationLabelResolver, iF as RelationOption, iG as RelationOptionsResponse, iL as RelationService, iI as RelationServiceOptions, iE as RelationValidationError, iD as RelationValidationResult, bY as RelativeDateValue, jM as RenderDocumentInput, jO as RenderDocumentResult, cS as ReservedAttributeName, iJ as ResolveIdsBatchRequest, iK as ResolveIdsBatchResponse, iN as ResolvedRelations, jl as ResumeWorkflowInput, cp as ReverseGeocodingParams, c_ as Role, ja as RollupCascadeContext, iQ as RollupResult, iU as RollupScheduler, iT as RollupSchedulerOptions, iS as RollupService, iR as RollupServiceOptions, gx as SHORTCUT_TO_FILTER_OPERATOR, cR as SYSTEM_FIELD_NAMES, gX as SchemaContext, ip as SchemaContextAware, iq as SchemaContextAwareRepository, hK as SchemaResolver, kE as SearchOptions, iA as SearchQueryOptions, bU as SelectFilterOperator, cV as SharingMode, gr as ShortcutOperator, ag as SignatureAdapter, aj as SignaturePosition, ak as SignatureRequestResult, an as SignatureStatus, al as SignatureStatusResult, ka as SignedUrlOptions, ai as SignerRequest, am as SignerStatus, bv as SlotStatus, c8 as SortDirection, hl as StartExecutor, dW as StartNode, jk as StartWorkflowInput, aW as StatusGroup, kb as StorageAdapter, jQ as StorageDownloadNotSupportedError, bL as StorageProvider, k8 as StorageUploadInput, k9 as StorageUploadResult, ke as SyncOptions, kd as SyncResult, cT as SystemFieldName, cF as SystemFields, d3 as SystemPermissions, dh as TabType, bh as TemplateSource, h2 as TenantContext, gG as TenantContextError, e$ as TenantId, bQ as TextFilterOperator, ay as TextPartData, eU as ThemeColors, eV as ThemeLogo, eW as ThemeTypography, aA as ThinkingPartData, dv as TimelineViewConfig, dz as TimelineViewDefinition, cU as Timestamps, jg as TokenRevokedError, az as ToolPartData, hO as TraversalOptions, hP as TraversalResult, cw as TypedAttribute, cN as TypedObjectRecord, kA as UpdateDBAttribute, kw as UpdateDBObject, kK as UpdateDBView, kO as UpdateDBViewOverlay, kR as UpdateDBWorkflow, k_ as UpdateDBWorkflowAccessGrant, kU as UpdateDBWorkflowInstance, kX as UpdateDBWorkflowInvitation, bA as UpdateDocument, bk as UpdateDocumentGenerationTemplate, bE as UpdateDocumentSlot, bC as UpdateDocumentTemplate, bP as UpdateFile, it as UpdateObjectInput, bG as UpdateProcessingJob, d5 as UpdateRoleInput, df as UpdateUserProfile, k3 as UpdateViewInput, jx as UpdateWorkflowInput, kc as UploadFileInput, kB as UpsertDBAttribute, kx as UpsertDBObject, kL as UpsertDBView, f0 as UserId, dd as UserProfile, jE as UserProfileService, jD as UserProfileServiceOptions, ig as UserProfilesRepository, db as UserRole, d0 as UserRoleAssignment, jC as UserService, dc as UserStatus, jB as UserValidationError, jA as UserValidationResult, e_ as Uuid, f9 as ValidationMessages, fW as ValidationResult, bf as VariableMapping, as as VerificationCheck, aq as VerificationResult, ap as VerifyInput, dx as ViewConfig, dq as ViewLayout, dC as ViewOverlay, g4 as ViewOverlaysRepository, k6 as ViewService, l1 as ViewSyncLogger, l2 as ViewSyncOptions, l0 as ViewSyncResult, dr as ViewTab, ih as ViewsRepository, cD as WithCustomAttributes, eC as WorkflowAccessGrant, jj as WorkflowAccessGrantService, ii as WorkflowAccessGrantsRepository, eT as WorkflowAccessMode, g9 as WorkflowAccessPayload, en as WorkflowError, eJ as WorkflowExecutionContext, eo as WorkflowInstance, jn as WorkflowInstanceService, jm as WorkflowInstanceServiceOptions, ij as WorkflowInstancesRepository, ex as WorkflowInvitation, jt as WorkflowInvitationService, ik as WorkflowInvitationsRepository, ga as WorkflowJwtConfig, gb as WorkflowJwtPayload, g6 as WorkflowJwtService, eg as WorkflowLayout, dX as WorkflowNodeType, jv as WorkflowRelationService, jz as WorkflowService, jy as WorkflowServiceOptions, eh as WorkflowSlot, ei as WorkflowStatus, ep as WorkflowTransition, il as WorkflowsRepository, gQ as addSchemaToContext, e5 as and, iV as applyDefaultValues, f1 as asTenantId, f2 as asUserId, fu as attributeConfigSchemas, jG as buildAuditChanges, iY as buildPolicyContext, gg as cacheKeys, gh as cacheTtl, eD as canAccessNode, eq as canResumeInstance, iW as checkPermission, iZ as checkRecordAccess, i$ as checkRecordDeleteOrThrow, i_ as checkRecordModifyOrThrow, j0 as checkSharedObjectWriteAccess, ff as checkboxConfigSchema, hc as complete, j1 as computeLabel, kt as computeLabelWithRelations, g3 as computeRecordStatus, fT as createAttributeValidator, fB as createCheckboxValidator, j5 as createContextForCreate, j7 as createContextForDelete, j8 as createContextForRestore, j6 as createContextForUpdate, fE as createCurrencyValidator, fC as createDateValidator, h3 as createDefaultExecutorRegistry, gs as createDefaultState, f_ as createDraftValidator, eK as createEmptyContext, fJ as createFileValidator, fU as createFormAttributeValidator, fP as createFormulaValidator, fI as createLocationValidator, hX as createMockAdapter, fM as createMultiRelationValidator, fH as createMultiselectValidator, fA as createNumberValidator, fV as createObjectValidator, fD as createPhoneValidator, gy as createQueryBuilder, fO as createRatingValidator, fN as createRelationValidator, fS as createRichtextValidator, fQ as createRollupValidator, fG as createSelectValidator, fL as createSingleRelationValidator, er as createStartTransition, fF as createStatusValidator, fR as createTextAreaValidator, fz as createTextValidator, fK as createUserValidator, fi as currencyConfigSchema, fg as dateConfigSchema, hZ as defaultPolicyRegistry, gi as defaultTtl, ft as documentConfigSchema, j4 as enrichRecordsWithFormulas, kp as enrichValuesForDisplay, kq as enrichValuesWithSelectLabels, j3 as enrichWithFormulas, e6 as eq, hd as error, gE as evaluate, gD as evaluateCondition, hm as evaluateFormula, hn as evaluateFormulaAttribute, ho as evaluateFormulaAttributeWithRelations, hp as evaluateFormulaWithRelations, hq as evaluateFormulaWithResult, gF as evaluateWithTrace, ko as extractAttributeNames, hr as extractFormulaVariables, kr as extractRelationIds, hs as extractRelationNames, ht as extractRelationReferences, fn as fileConfigSchema, hu as flattenRelationsForEval, hv as formatFormulaResult, gt as formatRecord, gu as formatRecords, fr as formulaConfigSchema, eY as generateCssVariables, f3 as generateId, f4 as generatePrefixedId, f6 as generateTemplateName, fv as getAttributeConfigSchema, gY as getContext, eL as getContextValue, h4 as getDefaultExecutorRegistry, gI as getFeatureFlags, gJ as getFeatureValue, g1 as getMissingRequiredAttributes, dY as getNodeOutputs, hz as getPathDepth, iX as getPolicy, hA as getRelationPath, gR as getSchemaByNameFromContext, gS as getSchemaContext, gT as getSchemaFromContext, kh as getSyncPreview, hB as getTargetAttributeName, gZ as getTenantId, g_ as getUserId, l7 as getViewSeedPreview, l8 as getViewSyncPreview, g$ as hasContext, gK as hasFeatureFlagsContext, hw as hasRelationReferences, gU as hasSchemaContext, gd as hashOptions, e7 as inValues, dN as isActivityTab, c5 as isAdvancedFilterState, dZ as isAdvancedFormNode, dF as isCalendarView, e8 as isConditionGroup, d_ as isConditionNode, e9 as isConditionRule, dM as isCustomTab, dD as isDetailView, dK as isDirectTableTab, d$ as isDocumentNode, dQ as isDocumentsTab, bn as isDocxTemplateSource, ea as isEmpty, e0 as isEndNode, gL as isFeatureEnabled, ck as isFlowDefinition, cl as isFlowPublished, dP as isFlowsTab, e1 as isFormNode, dI as isFormTab, dH as isGalleryView, eE as isGrantExpired, eF as isGrantRevoked, eG as isGrantValid, es as isInstanceTerminal, et as isInstanceWaiting, dL as isInverseTableTab, ey as isInvitationAccepted, ez as isInvitationExpired, eA as isInvitationValid, kn as isLabelExpression, dE as isListView, cd as isNoValueOperator, eb as isNotEmpty, dO as isNotesTab, bm as isPdfTemplateSource, g2 as isRecordComplete, e2 as isSimpleFormNode, e3 as isStartNode, cm as isSystemFlow, ej as isSystemWorkflow, dJ as isTableTab, dG as isTimelineView, eH as isTokenRevoked, b6 as isUniversalRelation, ek as isWorkflowDefinition, el as isWorkflowPublished, fk as locationConfigSchema, eM as mergeFormToSlot, eZ as mergeWithDefaults, fm as multiselectConfigSchema, ec as neq, h$ as notesPolicy, fe as numberConfigSchema, ed as or, fx as parseAttributeConfig, hE as parsePath, hF as pathHasManyCardinality, fh as phoneConfigSchema, fq as ratingConfigSchema, j9 as recalculateParentRollups, f7 as registry, fp as relationConfigSchema, km as renderLabelExpression, hL as resolveMultiplePaths, hM as resolveSingleValue, fd as richtextConfigSchema, fs as rollupConfigSchema, h0 as runWithContext, gM as runWithFeatureFlags, gV as runWithMergedSchemaContext, gW as runWithSchemaContext, fy as safeParseAttributeConfig, l3 as seedRegistryViews, fl as selectConfigSchema, eN as setContextValue, f5 as slugify, fj as statusConfigSchema, hf as success, kk as syncAll, kf as syncNativeObjects, l4 as syncNativeViews, fb as textConfigSchema, fc as textareaConfigSchema, c6 as toAdvancedFilterState, c7 as toSimpleFilterState, hN as traversePath, gN as tryGetFeatureValue, fo as userConfigSchema, fX as validateAttribute, fw as validateAttributeConfig, f$ as validateDraft, g0 as validateDraftOrThrow, hx as validateFormulaExpression, fY as validateObject, fZ as validateObjectOrThrow, hG as validatePath, kg as verifyNativeObjectsSync, l6 as verifyNativeViewsSync, l5 as verifyRegistryViewsSeeded, f8 as viewRegistry, hg as wait, gO as withFeatureFlags, h1 as withTenantContext } from './runtime-BqJdmg_4.js';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { IconName, CountryIso3, CurrencyCode, MimeType, ColorId } from '@stndrds/constants';
|
|
5
5
|
import 'jose';
|
|
@@ -71,6 +71,55 @@ interface AgentMessage {
|
|
|
71
71
|
error?: string;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
+
/**
|
|
75
|
+
* Attribute Property Protection
|
|
76
|
+
*
|
|
77
|
+
* Defines which properties can be modified based on attribute type (custom vs system).
|
|
78
|
+
*
|
|
79
|
+
* Protection levels:
|
|
80
|
+
* 1. Identity properties: NEVER modifiable (defines attribute structure)
|
|
81
|
+
* 2. Behavior properties: Modifiable for custom attributes, PROTECTED for system attributes
|
|
82
|
+
* 3. Presentation properties: ALWAYS modifiable (display only, no logic impact)
|
|
83
|
+
*/
|
|
84
|
+
/**
|
|
85
|
+
* Identity properties - Never modifiable
|
|
86
|
+
* These define the fundamental structure of the attribute.
|
|
87
|
+
*/
|
|
88
|
+
declare const IDENTITY_PROPERTIES: readonly ["name", "type"];
|
|
89
|
+
/**
|
|
90
|
+
* Behavior properties - Protected for system attributes
|
|
91
|
+
* These affect business logic and data integrity.
|
|
92
|
+
*/
|
|
93
|
+
declare const BEHAVIOR_PROPERTIES: readonly ["required", "disabled", "hidden", "archived", "deprecated", "defaultValue", "config", "order", "unique"];
|
|
94
|
+
/**
|
|
95
|
+
* Presentation properties - Always modifiable
|
|
96
|
+
* These only affect display, not logic.
|
|
97
|
+
*/
|
|
98
|
+
declare const PRESENTATION_PROPERTIES: readonly ["label", "description", "placeholder", "icon"];
|
|
99
|
+
type IdentityProperty = (typeof IDENTITY_PROPERTIES)[number];
|
|
100
|
+
type BehaviorProperty = (typeof BEHAVIOR_PROPERTIES)[number];
|
|
101
|
+
type PresentationProperty = (typeof PRESENTATION_PROPERTIES)[number];
|
|
102
|
+
/**
|
|
103
|
+
* Check if a property is an identity property (never modifiable)
|
|
104
|
+
*/
|
|
105
|
+
declare function isIdentityProperty(property: string): property is IdentityProperty;
|
|
106
|
+
/**
|
|
107
|
+
* Check if a property is a behavior property (protected for system attributes)
|
|
108
|
+
*/
|
|
109
|
+
declare function isBehaviorProperty(property: string): property is BehaviorProperty;
|
|
110
|
+
/**
|
|
111
|
+
* Check if a property is a presentation property (always modifiable)
|
|
112
|
+
*/
|
|
113
|
+
declare function isPresentationProperty(property: string): property is PresentationProperty;
|
|
114
|
+
/**
|
|
115
|
+
* Get the protection level of a property
|
|
116
|
+
*/
|
|
117
|
+
declare function getPropertyProtectionLevel(property: string): "identity" | "behavior" | "presentation" | "unknown";
|
|
118
|
+
/**
|
|
119
|
+
* Filter properties by category
|
|
120
|
+
*/
|
|
121
|
+
declare function filterPropertiesByCategory(properties: string[], category: "identity" | "behavior" | "presentation"): string[];
|
|
122
|
+
|
|
74
123
|
/**
|
|
75
124
|
* Common configuration for all builders (Objects & Attributes)
|
|
76
125
|
*/
|
|
@@ -1159,6 +1208,7 @@ declare const SchemaErrorCode: {
|
|
|
1159
1208
|
readonly NOT_SYSTEM_OBJECT: "SCHEMA_NOT_SYSTEM_OBJECT";
|
|
1160
1209
|
readonly DUPLICATE_OBJECT: "SCHEMA_DUPLICATE_OBJECT";
|
|
1161
1210
|
readonly DUPLICATE_ATTRIBUTE: "SCHEMA_DUPLICATE_ATTRIBUTE";
|
|
1211
|
+
readonly CONFLICT: "SCHEMA_CONFLICT";
|
|
1162
1212
|
};
|
|
1163
1213
|
type SchemaErrorCode = (typeof SchemaErrorCode)[keyof typeof SchemaErrorCode];
|
|
1164
1214
|
/**
|
|
@@ -1310,6 +1360,15 @@ declare class RoleNotFoundError extends NotFoundError {
|
|
|
1310
1360
|
* Check if an error is a ForbiddenError
|
|
1311
1361
|
*/
|
|
1312
1362
|
declare function isForbiddenError(error: unknown): error is ForbiddenError;
|
|
1363
|
+
/**
|
|
1364
|
+
* Thrown when a record has been modified by another request between read and write.
|
|
1365
|
+
* Clients should retry the operation with fresh data.
|
|
1366
|
+
* Maps to HTTP 409 Conflict.
|
|
1367
|
+
*/
|
|
1368
|
+
declare class ConcurrentModificationError extends SchemaError {
|
|
1369
|
+
constructor(recordId: string);
|
|
1370
|
+
}
|
|
1371
|
+
declare function isConcurrentModificationError(error: unknown): error is ConcurrentModificationError;
|
|
1313
1372
|
|
|
1314
1373
|
/**
|
|
1315
1374
|
* Builder config with literal name type preservation
|
|
@@ -1334,6 +1393,28 @@ declare abstract class BaseAttributeBuilder<TAttr extends Attribute> {
|
|
|
1334
1393
|
order(value: number): this;
|
|
1335
1394
|
defaultValue(value: "defaultValue" extends keyof TAttr ? TAttr["defaultValue"] : never): this;
|
|
1336
1395
|
metadata(value: Record<string, unknown>): this;
|
|
1396
|
+
/**
|
|
1397
|
+
* Add a feature gate to conditionally show/hide/disable this attribute.
|
|
1398
|
+
*
|
|
1399
|
+
* @param flagName - Name of the feature flag to check
|
|
1400
|
+
* @param options - Optional configuration for expected value and fallback behavior
|
|
1401
|
+
*
|
|
1402
|
+
* @example Hide attribute when flag is disabled
|
|
1403
|
+
* ```typescript
|
|
1404
|
+
* text({ name: "aiSummary", label: "AI Summary" })
|
|
1405
|
+
* .featureGate("ai-features")
|
|
1406
|
+
* ```
|
|
1407
|
+
*
|
|
1408
|
+
* @example Disable attribute when tier is not enterprise
|
|
1409
|
+
* ```typescript
|
|
1410
|
+
* text({ name: "advancedField", label: "Advanced Field" })
|
|
1411
|
+
* .featureGate("tier", { expectedValue: "enterprise", fallback: "disable" })
|
|
1412
|
+
* ```
|
|
1413
|
+
*/
|
|
1414
|
+
featureGate(flagName: string, options?: {
|
|
1415
|
+
expectedValue?: unknown;
|
|
1416
|
+
fallback?: FeatureGate["fallback"];
|
|
1417
|
+
}): this;
|
|
1337
1418
|
build(): TAttr;
|
|
1338
1419
|
}
|
|
1339
1420
|
declare class TextAttributeBuilder<TName extends string, TRequired extends boolean = false> extends BaseAttributeBuilder<TextAttribute> {
|
|
@@ -2221,15 +2302,14 @@ interface BaseTabConfig {
|
|
|
2221
2302
|
label: string;
|
|
2222
2303
|
icon?: IconName;
|
|
2223
2304
|
order?: number;
|
|
2224
|
-
system?: boolean;
|
|
2225
2305
|
}
|
|
2226
2306
|
/**
|
|
2227
2307
|
* Base builder for configuring table tabs (shared between Direct and Inverse)
|
|
2228
2308
|
*/
|
|
2229
2309
|
declare abstract class BaseTableTabConfig<T extends TableTab> {
|
|
2230
|
-
protected view:
|
|
2310
|
+
protected view: DetailViewBuilder;
|
|
2231
2311
|
protected tabData: Partial<T>;
|
|
2232
|
-
constructor(view:
|
|
2312
|
+
constructor(view: DetailViewBuilder, tabData: Partial<T>);
|
|
2233
2313
|
/**
|
|
2234
2314
|
* Set columns to display
|
|
2235
2315
|
* @example .columns("firstName", "lastName", "email")
|
|
@@ -2270,13 +2350,13 @@ declare abstract class BaseTableTabConfig<T extends TableTab> {
|
|
|
2270
2350
|
*/
|
|
2271
2351
|
tab(name: string, label: string): TabBuilder;
|
|
2272
2352
|
/**
|
|
2273
|
-
* Finish this tab and return to
|
|
2353
|
+
* Finish this tab and return to DetailViewBuilder
|
|
2274
2354
|
*/
|
|
2275
|
-
done():
|
|
2355
|
+
done(): DetailViewBuilder;
|
|
2276
2356
|
/**
|
|
2277
2357
|
* Build the final view definition
|
|
2278
2358
|
*/
|
|
2279
|
-
build():
|
|
2359
|
+
build(): DetailViewDefinition;
|
|
2280
2360
|
protected finalize(): void;
|
|
2281
2361
|
}
|
|
2282
2362
|
/**
|
|
@@ -2292,7 +2372,7 @@ declare abstract class BaseTableTabConfig<T extends TableTab> {
|
|
|
2292
2372
|
*/
|
|
2293
2373
|
declare class DirectTableTabConfig extends BaseTableTabConfig<DirectTableTab> {
|
|
2294
2374
|
/** @internal */
|
|
2295
|
-
constructor(view:
|
|
2375
|
+
constructor(view: DetailViewBuilder, base: BaseTabConfig, relationAttribute: string);
|
|
2296
2376
|
}
|
|
2297
2377
|
/**
|
|
2298
2378
|
* Builder for configuring inverse table tabs (another object has relation to us)
|
|
@@ -2307,7 +2387,7 @@ declare class DirectTableTabConfig extends BaseTableTabConfig<DirectTableTab> {
|
|
|
2307
2387
|
*/
|
|
2308
2388
|
declare class InverseTableTabConfig extends BaseTableTabConfig<InverseTableTab> {
|
|
2309
2389
|
/** @internal */
|
|
2310
|
-
constructor(view:
|
|
2390
|
+
constructor(view: DetailViewBuilder, base: BaseTabConfig, sourceObject: string, relationAttribute: string);
|
|
2311
2391
|
}
|
|
2312
2392
|
/**
|
|
2313
2393
|
* Builder for configuring custom tabs
|
|
@@ -2316,7 +2396,7 @@ declare class CustomTabConfig {
|
|
|
2316
2396
|
private view;
|
|
2317
2397
|
private tabData;
|
|
2318
2398
|
/** @internal */
|
|
2319
|
-
constructor(view:
|
|
2399
|
+
constructor(view: DetailViewBuilder, base: BaseTabConfig, component: string);
|
|
2320
2400
|
/**
|
|
2321
2401
|
* Set props to pass to the component
|
|
2322
2402
|
*/
|
|
@@ -2326,13 +2406,13 @@ declare class CustomTabConfig {
|
|
|
2326
2406
|
*/
|
|
2327
2407
|
tab(name: string, label: string): TabBuilder;
|
|
2328
2408
|
/**
|
|
2329
|
-
* Finish this tab and return to
|
|
2409
|
+
* Finish this tab and return to DetailViewBuilder
|
|
2330
2410
|
*/
|
|
2331
|
-
done():
|
|
2411
|
+
done(): DetailViewBuilder;
|
|
2332
2412
|
/**
|
|
2333
2413
|
* Build the final view definition
|
|
2334
2414
|
*/
|
|
2335
|
-
build():
|
|
2415
|
+
build(): DetailViewDefinition;
|
|
2336
2416
|
}
|
|
2337
2417
|
/**
|
|
2338
2418
|
* Builder for configuring notes tabs
|
|
@@ -2341,7 +2421,7 @@ declare class NotesTabConfig {
|
|
|
2341
2421
|
private view;
|
|
2342
2422
|
private tabData;
|
|
2343
2423
|
/** @internal */
|
|
2344
|
-
constructor(view:
|
|
2424
|
+
constructor(view: DetailViewBuilder, base: BaseTabConfig);
|
|
2345
2425
|
/**
|
|
2346
2426
|
* Show only private notes of the current user
|
|
2347
2427
|
*/
|
|
@@ -2355,13 +2435,13 @@ declare class NotesTabConfig {
|
|
|
2355
2435
|
*/
|
|
2356
2436
|
tab(name: string, label: string): TabBuilder;
|
|
2357
2437
|
/**
|
|
2358
|
-
* Finish this tab and return to
|
|
2438
|
+
* Finish this tab and return to DetailViewBuilder
|
|
2359
2439
|
*/
|
|
2360
|
-
done():
|
|
2440
|
+
done(): DetailViewBuilder;
|
|
2361
2441
|
/**
|
|
2362
2442
|
* Build the final view definition
|
|
2363
2443
|
*/
|
|
2364
|
-
build():
|
|
2444
|
+
build(): DetailViewDefinition;
|
|
2365
2445
|
}
|
|
2366
2446
|
/**
|
|
2367
2447
|
* Builder for configuring activity tabs
|
|
@@ -2370,7 +2450,7 @@ declare class ActivityTabConfig {
|
|
|
2370
2450
|
private view;
|
|
2371
2451
|
private tabData;
|
|
2372
2452
|
/** @internal */
|
|
2373
|
-
constructor(view:
|
|
2453
|
+
constructor(view: DetailViewBuilder, base: BaseTabConfig);
|
|
2374
2454
|
/**
|
|
2375
2455
|
* Set maximum number of activities to display
|
|
2376
2456
|
*/
|
|
@@ -2380,13 +2460,13 @@ declare class ActivityTabConfig {
|
|
|
2380
2460
|
*/
|
|
2381
2461
|
tab(name: string, label: string): TabBuilder;
|
|
2382
2462
|
/**
|
|
2383
|
-
* Finish this tab and return to
|
|
2463
|
+
* Finish this tab and return to DetailViewBuilder
|
|
2384
2464
|
*/
|
|
2385
|
-
done():
|
|
2465
|
+
done(): DetailViewBuilder;
|
|
2386
2466
|
/**
|
|
2387
2467
|
* Build the final view definition
|
|
2388
2468
|
*/
|
|
2389
|
-
build():
|
|
2469
|
+
build(): DetailViewDefinition;
|
|
2390
2470
|
}
|
|
2391
2471
|
/**
|
|
2392
2472
|
* Builder for configuring flows tabs (workflow instances)
|
|
@@ -2404,7 +2484,7 @@ declare class FlowsTabConfig {
|
|
|
2404
2484
|
private view;
|
|
2405
2485
|
private tabData;
|
|
2406
2486
|
/** @internal */
|
|
2407
|
-
constructor(view:
|
|
2487
|
+
constructor(view: DetailViewBuilder, base: BaseTabConfig);
|
|
2408
2488
|
/**
|
|
2409
2489
|
* Filter by instance statuses
|
|
2410
2490
|
* @example .statusFilter("running", "waiting", "completed")
|
|
@@ -2428,13 +2508,13 @@ declare class FlowsTabConfig {
|
|
|
2428
2508
|
*/
|
|
2429
2509
|
tab(name: string, label: string): TabBuilder;
|
|
2430
2510
|
/**
|
|
2431
|
-
* Finish this tab and return to
|
|
2511
|
+
* Finish this tab and return to DetailViewBuilder
|
|
2432
2512
|
*/
|
|
2433
|
-
done():
|
|
2513
|
+
done(): DetailViewBuilder;
|
|
2434
2514
|
/**
|
|
2435
2515
|
* Build the final view definition
|
|
2436
2516
|
*/
|
|
2437
|
-
build():
|
|
2517
|
+
build(): DetailViewDefinition;
|
|
2438
2518
|
}
|
|
2439
2519
|
/**
|
|
2440
2520
|
* Builder for configuring documents tabs
|
|
@@ -2462,7 +2542,7 @@ declare class DocumentsTabConfig {
|
|
|
2462
2542
|
private view;
|
|
2463
2543
|
private tabData;
|
|
2464
2544
|
/** @internal */
|
|
2465
|
-
constructor(view:
|
|
2545
|
+
constructor(view: DetailViewBuilder, base: BaseTabConfig);
|
|
2466
2546
|
/**
|
|
2467
2547
|
* Allow uploading new documents
|
|
2468
2548
|
*/
|
|
@@ -2488,13 +2568,13 @@ declare class DocumentsTabConfig {
|
|
|
2488
2568
|
*/
|
|
2489
2569
|
tab(name: string, label: string): TabBuilder;
|
|
2490
2570
|
/**
|
|
2491
|
-
* Finish this tab and return to
|
|
2571
|
+
* Finish this tab and return to DetailViewBuilder
|
|
2492
2572
|
*/
|
|
2493
|
-
done():
|
|
2573
|
+
done(): DetailViewBuilder;
|
|
2494
2574
|
/**
|
|
2495
2575
|
* Build the final view definition
|
|
2496
2576
|
*/
|
|
2497
|
-
build():
|
|
2577
|
+
build(): DetailViewDefinition;
|
|
2498
2578
|
}
|
|
2499
2579
|
/**
|
|
2500
2580
|
* Builder for creating tabs with type discrimination
|
|
@@ -2510,7 +2590,7 @@ declare class TabBuilder {
|
|
|
2510
2590
|
private view;
|
|
2511
2591
|
private base;
|
|
2512
2592
|
/** @internal */
|
|
2513
|
-
constructor(view:
|
|
2593
|
+
constructor(view: DetailViewBuilder, name: string, label: string);
|
|
2514
2594
|
/**
|
|
2515
2595
|
* Set tab icon
|
|
2516
2596
|
*/
|
|
@@ -2519,15 +2599,11 @@ declare class TabBuilder {
|
|
|
2519
2599
|
* Set display order
|
|
2520
2600
|
*/
|
|
2521
2601
|
order(value: number): this;
|
|
2522
|
-
/**
|
|
2523
|
-
* Mark as system tab (protected)
|
|
2524
|
-
*/
|
|
2525
|
-
system(): this;
|
|
2526
2602
|
/**
|
|
2527
2603
|
* Create a form tab with groups
|
|
2528
2604
|
* @example .form(group("info", "Info").fields("name", "email"))
|
|
2529
2605
|
*/
|
|
2530
|
-
form(...groups: (GroupBuilder | Group)[]):
|
|
2606
|
+
form(...groups: (GroupBuilder | Group)[]): DetailViewBuilder;
|
|
2531
2607
|
/**
|
|
2532
2608
|
* Create a direct table tab for a relation attribute on the current object
|
|
2533
2609
|
*
|
|
@@ -2574,14 +2650,13 @@ declare class TabBuilder {
|
|
|
2574
2650
|
documents(): DocumentsTabConfig;
|
|
2575
2651
|
}
|
|
2576
2652
|
/**
|
|
2577
|
-
* Builder for creating view definitions
|
|
2653
|
+
* Builder for creating detail view definitions
|
|
2578
2654
|
*
|
|
2579
2655
|
* @example
|
|
2580
2656
|
* ```typescript
|
|
2581
|
-
* const COMPANY_VIEW =
|
|
2657
|
+
* const COMPANY_VIEW = detailView("detail", "Company Detail")
|
|
2582
2658
|
* .for("companies")
|
|
2583
2659
|
* .default()
|
|
2584
|
-
* .system()
|
|
2585
2660
|
* .icon("building")
|
|
2586
2661
|
*
|
|
2587
2662
|
* .tab("general", "Info").icon("info")
|
|
@@ -2608,9 +2683,8 @@ declare class TabBuilder {
|
|
|
2608
2683
|
* .build();
|
|
2609
2684
|
* ```
|
|
2610
2685
|
*/
|
|
2611
|
-
declare class
|
|
2686
|
+
declare class DetailViewBuilder {
|
|
2612
2687
|
private data;
|
|
2613
|
-
private validated;
|
|
2614
2688
|
constructor(name: string, label: string);
|
|
2615
2689
|
/**
|
|
2616
2690
|
* Set view description
|
|
@@ -2626,19 +2700,15 @@ declare class ViewBuilder {
|
|
|
2626
2700
|
*/
|
|
2627
2701
|
for(objectName: string): this;
|
|
2628
2702
|
/**
|
|
2629
|
-
* Mark as default view for the object
|
|
2703
|
+
* Mark as default view for the object
|
|
2630
2704
|
*/
|
|
2631
2705
|
default(): this;
|
|
2632
|
-
/**
|
|
2633
|
-
* Mark as system view (protected, defined by developer)
|
|
2634
|
-
*/
|
|
2635
|
-
system(): this;
|
|
2636
2706
|
/**
|
|
2637
2707
|
* Set the layout mode for the view
|
|
2638
2708
|
* @param value - "page" for full tabs, "modal" for single form
|
|
2639
2709
|
* @default "page"
|
|
2640
2710
|
*/
|
|
2641
|
-
layout(value:
|
|
2711
|
+
layout(value: DetailViewLayout): this;
|
|
2642
2712
|
/**
|
|
2643
2713
|
* Shorthand for .layout("modal")
|
|
2644
2714
|
* Modal views have a single form tab without tabs UI
|
|
@@ -2663,14 +2733,18 @@ declare class ViewBuilder {
|
|
|
2663
2733
|
/**
|
|
2664
2734
|
* Build the final view definition
|
|
2665
2735
|
*/
|
|
2666
|
-
build():
|
|
2736
|
+
build(): DetailViewDefinition;
|
|
2667
2737
|
/**
|
|
2668
2738
|
* Validate view name format (kebab-case)
|
|
2669
2739
|
*/
|
|
2670
2740
|
private validateName;
|
|
2671
2741
|
}
|
|
2672
2742
|
/**
|
|
2673
|
-
*
|
|
2743
|
+
* @deprecated Use DetailViewBuilder instead
|
|
2744
|
+
*/
|
|
2745
|
+
declare const ViewBuilder: typeof DetailViewBuilder;
|
|
2746
|
+
/**
|
|
2747
|
+
* Create a new detail view builder
|
|
2674
2748
|
*
|
|
2675
2749
|
* @param name - View name (kebab-case)
|
|
2676
2750
|
* @param label - Display label
|
|
@@ -2678,16 +2752,15 @@ declare class ViewBuilder {
|
|
|
2678
2752
|
* @example
|
|
2679
2753
|
* ```typescript
|
|
2680
2754
|
* // Page view (default) with multiple tabs
|
|
2681
|
-
* const COMPANY_VIEW =
|
|
2755
|
+
* const COMPANY_VIEW = detailView("detail", "Company Detail")
|
|
2682
2756
|
* .for("companies")
|
|
2683
2757
|
* .default()
|
|
2684
|
-
* .system()
|
|
2685
2758
|
* .tab("general", "Info")
|
|
2686
2759
|
* .form(group("main", "Main").fields("name", "status"))
|
|
2687
2760
|
* .build();
|
|
2688
2761
|
*
|
|
2689
2762
|
* // Modal view with single form tab
|
|
2690
|
-
* const COMPANY_MODAL =
|
|
2763
|
+
* const COMPANY_MODAL = detailView("quick-edit", "Quick Edit")
|
|
2691
2764
|
* .for("companies")
|
|
2692
2765
|
* .modal()
|
|
2693
2766
|
* .default()
|
|
@@ -2696,7 +2769,214 @@ declare class ViewBuilder {
|
|
|
2696
2769
|
* .build();
|
|
2697
2770
|
* ```
|
|
2698
2771
|
*/
|
|
2699
|
-
declare function
|
|
2772
|
+
declare function detailView(name: string, label: string): DetailViewBuilder;
|
|
2773
|
+
/**
|
|
2774
|
+
* @deprecated Use detailView() instead
|
|
2775
|
+
*/
|
|
2776
|
+
declare function view(name: string, label: string): DetailViewBuilder;
|
|
2777
|
+
/**
|
|
2778
|
+
* Builder for creating list view definitions (RecordsView)
|
|
2779
|
+
*
|
|
2780
|
+
* @example
|
|
2781
|
+
* ```typescript
|
|
2782
|
+
* const CONTACTS_LIST = listView("default", "All Contacts")
|
|
2783
|
+
* .for("contacts")
|
|
2784
|
+
* .default()
|
|
2785
|
+
* .icon("users")
|
|
2786
|
+
* .columns("firstName", "lastName", "email", "company", "status")
|
|
2787
|
+
* .columnWidth("email", 200)
|
|
2788
|
+
* .sort("lastName", "asc")
|
|
2789
|
+
* .filter({
|
|
2790
|
+
* combinator: "and",
|
|
2791
|
+
* rules: [{ attribute: "status", operator: "is", value: "active" }]
|
|
2792
|
+
* })
|
|
2793
|
+
* .tab("all", "All").default()
|
|
2794
|
+
* .tab("active", "Active").filter({
|
|
2795
|
+
* combinator: "and",
|
|
2796
|
+
* rules: [{ attribute: "status", operator: "is", value: "active" }]
|
|
2797
|
+
* })
|
|
2798
|
+
* .build();
|
|
2799
|
+
*
|
|
2800
|
+
* // Kanban view
|
|
2801
|
+
* const DEALS_KANBAN = listView("pipeline", "Sales Pipeline")
|
|
2802
|
+
* .for("deals")
|
|
2803
|
+
* .kanban("stage") // Group by stage attribute
|
|
2804
|
+
* .columns("name", "amount", "company", "owner")
|
|
2805
|
+
* .sort("createdAt", "desc")
|
|
2806
|
+
* .build();
|
|
2807
|
+
* ```
|
|
2808
|
+
*/
|
|
2809
|
+
declare class ListViewBuilder {
|
|
2810
|
+
private data;
|
|
2811
|
+
constructor(name: string, label: string);
|
|
2812
|
+
/**
|
|
2813
|
+
* Set view description
|
|
2814
|
+
*/
|
|
2815
|
+
description(value: string): this;
|
|
2816
|
+
/**
|
|
2817
|
+
* Set view icon
|
|
2818
|
+
*/
|
|
2819
|
+
icon(value: IconName): this;
|
|
2820
|
+
/**
|
|
2821
|
+
* Associate view with an object
|
|
2822
|
+
* @param objectName - Object name (kebab-case)
|
|
2823
|
+
*/
|
|
2824
|
+
for(objectName: string): this;
|
|
2825
|
+
/**
|
|
2826
|
+
* Mark as default view for the object
|
|
2827
|
+
*/
|
|
2828
|
+
default(): this;
|
|
2829
|
+
/**
|
|
2830
|
+
* Set metadata
|
|
2831
|
+
*/
|
|
2832
|
+
metadata(value: Record<string, unknown>): this;
|
|
2833
|
+
/**
|
|
2834
|
+
* Set the layout to table (default)
|
|
2835
|
+
*/
|
|
2836
|
+
table(): this;
|
|
2837
|
+
/**
|
|
2838
|
+
* Set the layout to kanban and specify the grouping attribute
|
|
2839
|
+
* @param groupByAttribute - Attribute to group by (must be a select/status type)
|
|
2840
|
+
*/
|
|
2841
|
+
kanban(groupByAttribute: string): this;
|
|
2842
|
+
/**
|
|
2843
|
+
* Set columns to display
|
|
2844
|
+
* @example .columns("name", "email", "status", "createdAt")
|
|
2845
|
+
*/
|
|
2846
|
+
columns(...names: string[]): this;
|
|
2847
|
+
/**
|
|
2848
|
+
* Set width for a specific column in pixels
|
|
2849
|
+
* @example .columnWidth("email", 200)
|
|
2850
|
+
*/
|
|
2851
|
+
columnWidth(columnName: string, width: number): this;
|
|
2852
|
+
/**
|
|
2853
|
+
* Set widths for multiple columns
|
|
2854
|
+
* @example .columnWidths({ email: 200, name: 300, status: 100 })
|
|
2855
|
+
*/
|
|
2856
|
+
columnWidths(widths: Record<string, number>): this;
|
|
2857
|
+
/**
|
|
2858
|
+
* Set default filters
|
|
2859
|
+
* @example .filter({ combinator: "and", rules: [{ attribute: "status", operator: "is", value: "active" }] })
|
|
2860
|
+
*/
|
|
2861
|
+
filter(filters: FilterState): this;
|
|
2862
|
+
/**
|
|
2863
|
+
* Add a single sort rule
|
|
2864
|
+
* @example .sort("lastName", "asc")
|
|
2865
|
+
*/
|
|
2866
|
+
sort(attribute: string, direction?: "asc" | "desc"): this;
|
|
2867
|
+
/**
|
|
2868
|
+
* Set multiple sort rules
|
|
2869
|
+
* @example .sorts([{ attribute: "lastName", direction: "asc" }, { attribute: "firstName", direction: "asc" }])
|
|
2870
|
+
*/
|
|
2871
|
+
sorts(rules: SortRule[]): this;
|
|
2872
|
+
/**
|
|
2873
|
+
* Add an internal tab (filter preset)
|
|
2874
|
+
* Returns a TabConfigBuilder for chaining tab configuration
|
|
2875
|
+
* @example
|
|
2876
|
+
* ```typescript
|
|
2877
|
+
* .tab("all", "All Contacts").icon("users").default()
|
|
2878
|
+
* .tab("active", "Active").icon("check").filter({ ... })
|
|
2879
|
+
* ```
|
|
2880
|
+
*/
|
|
2881
|
+
tab(id: string, label: string): ListViewTabConfigBuilder;
|
|
2882
|
+
/**
|
|
2883
|
+
* @internal Used by ListViewTabConfigBuilder to add tabs
|
|
2884
|
+
*/
|
|
2885
|
+
_addTab(tab: {
|
|
2886
|
+
id: string;
|
|
2887
|
+
label: string;
|
|
2888
|
+
icon?: IconName;
|
|
2889
|
+
filters?: FilterState;
|
|
2890
|
+
default?: boolean;
|
|
2891
|
+
}): this;
|
|
2892
|
+
/**
|
|
2893
|
+
* Build the final list view definition
|
|
2894
|
+
*/
|
|
2895
|
+
build(): ListViewDefinition;
|
|
2896
|
+
/**
|
|
2897
|
+
* Validate view name format (kebab-case)
|
|
2898
|
+
*/
|
|
2899
|
+
private validateName;
|
|
2900
|
+
}
|
|
2901
|
+
/**
|
|
2902
|
+
* Builder for configuring internal tabs (filter presets) in list views
|
|
2903
|
+
*/
|
|
2904
|
+
declare class ListViewTabConfigBuilder {
|
|
2905
|
+
private view;
|
|
2906
|
+
private tabData;
|
|
2907
|
+
/** @internal */
|
|
2908
|
+
constructor(view: ListViewBuilder, id: string, label: string);
|
|
2909
|
+
/**
|
|
2910
|
+
* Set tab icon
|
|
2911
|
+
*/
|
|
2912
|
+
icon(value: IconName): this;
|
|
2913
|
+
/**
|
|
2914
|
+
* Set filters for this tab (filter preset)
|
|
2915
|
+
* @example .filter({ combinator: "and", rules: [{ attribute: "status", operator: "is", value: "active" }] })
|
|
2916
|
+
*/
|
|
2917
|
+
filter(filters: FilterState): this;
|
|
2918
|
+
/**
|
|
2919
|
+
* Mark this tab as the default tab
|
|
2920
|
+
*/
|
|
2921
|
+
default(): this;
|
|
2922
|
+
/**
|
|
2923
|
+
* Continue building with a new tab
|
|
2924
|
+
*/
|
|
2925
|
+
tab(id: string, label: string): ListViewTabConfigBuilder;
|
|
2926
|
+
/**
|
|
2927
|
+
* Finish this tab and return to ListViewBuilder
|
|
2928
|
+
*/
|
|
2929
|
+
done(): ListViewBuilder;
|
|
2930
|
+
/**
|
|
2931
|
+
* Build the final view definition
|
|
2932
|
+
*/
|
|
2933
|
+
build(): ListViewDefinition;
|
|
2934
|
+
}
|
|
2935
|
+
/**
|
|
2936
|
+
* Create a new list view builder
|
|
2937
|
+
*
|
|
2938
|
+
* @param name - View name (kebab-case)
|
|
2939
|
+
* @param label - Display label
|
|
2940
|
+
*
|
|
2941
|
+
* @example
|
|
2942
|
+
* ```typescript
|
|
2943
|
+
* // Table view with columns and filters
|
|
2944
|
+
* const CONTACTS_LIST = listView("default", "All Contacts")
|
|
2945
|
+
* .for("contacts")
|
|
2946
|
+
* .default()
|
|
2947
|
+
* .columns("firstName", "lastName", "email", "status")
|
|
2948
|
+
* .sort("lastName", "asc")
|
|
2949
|
+
* .filter({
|
|
2950
|
+
* combinator: "and",
|
|
2951
|
+
* rules: [{ attribute: "status", operator: "is", value: "active" }]
|
|
2952
|
+
* })
|
|
2953
|
+
* .build();
|
|
2954
|
+
*
|
|
2955
|
+
* // Kanban view grouped by status
|
|
2956
|
+
* const DEALS_KANBAN = listView("pipeline", "Sales Pipeline")
|
|
2957
|
+
* .for("deals")
|
|
2958
|
+
* .kanban("stage")
|
|
2959
|
+
* .columns("name", "amount", "company")
|
|
2960
|
+
* .build();
|
|
2961
|
+
*
|
|
2962
|
+
* // Table view with internal tabs (filter presets)
|
|
2963
|
+
* const CONTACTS_WITH_TABS = listView("default", "Contacts")
|
|
2964
|
+
* .for("contacts")
|
|
2965
|
+
* .default()
|
|
2966
|
+
* .columns("firstName", "lastName", "email", "status")
|
|
2967
|
+
* .tab("all", "All Contacts").icon("users").default()
|
|
2968
|
+
* .tab("active", "Active").icon("check").filter({
|
|
2969
|
+
* combinator: "and",
|
|
2970
|
+
* rules: [{ attribute: "status", operator: "is", value: "active" }]
|
|
2971
|
+
* })
|
|
2972
|
+
* .tab("archived", "Archived").icon("archive").filter({
|
|
2973
|
+
* combinator: "and",
|
|
2974
|
+
* rules: [{ attribute: "status", operator: "is", value: "archived" }]
|
|
2975
|
+
* })
|
|
2976
|
+
* .build();
|
|
2977
|
+
* ```
|
|
2978
|
+
*/
|
|
2979
|
+
declare function listView(name: string, label: string): ListViewBuilder;
|
|
2700
2980
|
/**
|
|
2701
2981
|
* Create a new group builder
|
|
2702
2982
|
*
|
|
@@ -2999,6 +3279,463 @@ declare class WorkflowBuilder {
|
|
|
2999
3279
|
*/
|
|
3000
3280
|
declare function workflow(name: string, label: string): WorkflowBuilder;
|
|
3001
3281
|
|
|
3282
|
+
/**
|
|
3283
|
+
* Flag Builder Module
|
|
3284
|
+
*
|
|
3285
|
+
* Provides fluent builders for creating feature flag definitions.
|
|
3286
|
+
* Follows the same pattern as attribute builders.
|
|
3287
|
+
*
|
|
3288
|
+
* @example
|
|
3289
|
+
* ```typescript
|
|
3290
|
+
* const architectMode = booleanFlag("architect-mode")
|
|
3291
|
+
* .label("Architect Mode")
|
|
3292
|
+
* .description("Enable WYSIWYG structure editing")
|
|
3293
|
+
* .tenantScoped()
|
|
3294
|
+
* .build();
|
|
3295
|
+
*
|
|
3296
|
+
* const tier = stringFlag("tier")
|
|
3297
|
+
* .label("Product Tier")
|
|
3298
|
+
* .defaultValue("free")
|
|
3299
|
+
* .tenantScoped()
|
|
3300
|
+
* .build();
|
|
3301
|
+
* ```
|
|
3302
|
+
*/
|
|
3303
|
+
|
|
3304
|
+
/**
|
|
3305
|
+
* Base builder for all flag types.
|
|
3306
|
+
* Provides common methods like label(), description(), category().
|
|
3307
|
+
*/
|
|
3308
|
+
declare abstract class BaseFlagBuilder<T, TValueType extends FlagValueType> {
|
|
3309
|
+
protected flag: Partial<FeatureFlagDefinition<T>>;
|
|
3310
|
+
constructor(name: string, valueType: TValueType, defaultValue: T);
|
|
3311
|
+
/**
|
|
3312
|
+
* Set the human-readable label for the flag.
|
|
3313
|
+
* Required - build() will throw if not set.
|
|
3314
|
+
*/
|
|
3315
|
+
label(value: string): this;
|
|
3316
|
+
/**
|
|
3317
|
+
* Set an optional description for the flag.
|
|
3318
|
+
*/
|
|
3319
|
+
description(value: string): this;
|
|
3320
|
+
/**
|
|
3321
|
+
* Set a category for grouping flags in UI.
|
|
3322
|
+
*/
|
|
3323
|
+
category(value: string): this;
|
|
3324
|
+
/**
|
|
3325
|
+
* Mark this flag as a system flag.
|
|
3326
|
+
* System flags cannot be modified via API.
|
|
3327
|
+
*/
|
|
3328
|
+
system(): this;
|
|
3329
|
+
/**
|
|
3330
|
+
* Restrict the flag to global and tenant levels only.
|
|
3331
|
+
* Per-user overrides will not be allowed.
|
|
3332
|
+
*/
|
|
3333
|
+
tenantScoped(): this;
|
|
3334
|
+
/**
|
|
3335
|
+
* Restrict the flag to global level only.
|
|
3336
|
+
* No tenant or user overrides will be allowed.
|
|
3337
|
+
*/
|
|
3338
|
+
globalOnly(): this;
|
|
3339
|
+
/**
|
|
3340
|
+
* Set custom allowed levels.
|
|
3341
|
+
*/
|
|
3342
|
+
allowedLevels(levels: FlagLevel[]): this;
|
|
3343
|
+
/**
|
|
3344
|
+
* Build the flag definition.
|
|
3345
|
+
* @throws {Error} If label is not set
|
|
3346
|
+
*/
|
|
3347
|
+
build(): FeatureFlagDefinition<T>;
|
|
3348
|
+
}
|
|
3349
|
+
/**
|
|
3350
|
+
* Builder for boolean flags (on/off toggles).
|
|
3351
|
+
*/
|
|
3352
|
+
declare class BooleanFlagBuilder extends BaseFlagBuilder<boolean, "boolean"> {
|
|
3353
|
+
constructor(name: string);
|
|
3354
|
+
/**
|
|
3355
|
+
* Set the default value (default: false).
|
|
3356
|
+
*/
|
|
3357
|
+
defaultValue(value: boolean): this;
|
|
3358
|
+
/**
|
|
3359
|
+
* Set the default to true.
|
|
3360
|
+
* Shorthand for .defaultValue(true).
|
|
3361
|
+
*/
|
|
3362
|
+
enabledByDefault(): this;
|
|
3363
|
+
}
|
|
3364
|
+
/**
|
|
3365
|
+
* Builder for string flags (text values).
|
|
3366
|
+
*/
|
|
3367
|
+
declare class StringFlagBuilder extends BaseFlagBuilder<string, "string"> {
|
|
3368
|
+
constructor(name: string);
|
|
3369
|
+
/**
|
|
3370
|
+
* Set the default value.
|
|
3371
|
+
*/
|
|
3372
|
+
defaultValue(value: string): this;
|
|
3373
|
+
}
|
|
3374
|
+
/**
|
|
3375
|
+
* Builder for number flags (numeric values).
|
|
3376
|
+
*/
|
|
3377
|
+
declare class NumberFlagBuilder extends BaseFlagBuilder<number, "number"> {
|
|
3378
|
+
constructor(name: string);
|
|
3379
|
+
/**
|
|
3380
|
+
* Set the default value.
|
|
3381
|
+
*/
|
|
3382
|
+
defaultValue(value: number): this;
|
|
3383
|
+
}
|
|
3384
|
+
/**
|
|
3385
|
+
* Builder for JSON flags (complex structured values).
|
|
3386
|
+
*/
|
|
3387
|
+
declare class JsonFlagBuilder<T> extends BaseFlagBuilder<T, "json"> {
|
|
3388
|
+
constructor(name: string, defaultValue: T);
|
|
3389
|
+
/**
|
|
3390
|
+
* Set the default value.
|
|
3391
|
+
*/
|
|
3392
|
+
defaultValue(value: T): this;
|
|
3393
|
+
}
|
|
3394
|
+
/**
|
|
3395
|
+
* Create a boolean feature flag builder.
|
|
3396
|
+
*
|
|
3397
|
+
* @param name - Flag name in kebab-case (e.g., "architect-mode")
|
|
3398
|
+
* @returns A builder for configuring the flag
|
|
3399
|
+
*
|
|
3400
|
+
* @example
|
|
3401
|
+
* ```typescript
|
|
3402
|
+
* const flag = booleanFlag("architect-mode")
|
|
3403
|
+
* .label("Architect Mode")
|
|
3404
|
+
* .description("Enable WYSIWYG structure editing")
|
|
3405
|
+
* .tenantScoped()
|
|
3406
|
+
* .build();
|
|
3407
|
+
* ```
|
|
3408
|
+
*/
|
|
3409
|
+
declare function booleanFlag(name: string): BooleanFlagBuilder;
|
|
3410
|
+
/**
|
|
3411
|
+
* Create a string feature flag builder.
|
|
3412
|
+
*
|
|
3413
|
+
* @param name - Flag name in kebab-case (e.g., "tier")
|
|
3414
|
+
* @returns A builder for configuring the flag
|
|
3415
|
+
*
|
|
3416
|
+
* @example
|
|
3417
|
+
* ```typescript
|
|
3418
|
+
* const flag = stringFlag("tier")
|
|
3419
|
+
* .label("Product Tier")
|
|
3420
|
+
* .defaultValue("free")
|
|
3421
|
+
* .tenantScoped()
|
|
3422
|
+
* .build();
|
|
3423
|
+
* ```
|
|
3424
|
+
*/
|
|
3425
|
+
declare function stringFlag(name: string): StringFlagBuilder;
|
|
3426
|
+
/**
|
|
3427
|
+
* Create a number feature flag builder.
|
|
3428
|
+
*
|
|
3429
|
+
* @param name - Flag name in kebab-case (e.g., "max-users")
|
|
3430
|
+
* @returns A builder for configuring the flag
|
|
3431
|
+
*
|
|
3432
|
+
* @example
|
|
3433
|
+
* ```typescript
|
|
3434
|
+
* const flag = numberFlag("max-users")
|
|
3435
|
+
* .label("Maximum Users")
|
|
3436
|
+
* .defaultValue(5)
|
|
3437
|
+
* .tenantScoped()
|
|
3438
|
+
* .build();
|
|
3439
|
+
* ```
|
|
3440
|
+
*/
|
|
3441
|
+
declare function numberFlag(name: string): NumberFlagBuilder;
|
|
3442
|
+
/**
|
|
3443
|
+
* Create a JSON feature flag builder for complex structured values.
|
|
3444
|
+
*
|
|
3445
|
+
* @param name - Flag name in kebab-case
|
|
3446
|
+
* @param defaultValue - Default structured value
|
|
3447
|
+
* @returns A builder for configuring the flag
|
|
3448
|
+
*
|
|
3449
|
+
* @example
|
|
3450
|
+
* ```typescript
|
|
3451
|
+
* const flag = jsonFlag("ui-config", { theme: "light", density: "normal" })
|
|
3452
|
+
* .label("UI Configuration")
|
|
3453
|
+
* .category("appearance")
|
|
3454
|
+
* .build();
|
|
3455
|
+
* ```
|
|
3456
|
+
*/
|
|
3457
|
+
declare function jsonFlag<T>(name: string, defaultValue: T): JsonFlagBuilder<T>;
|
|
3458
|
+
|
|
3459
|
+
/**
|
|
3460
|
+
* Flag Registry Module
|
|
3461
|
+
*
|
|
3462
|
+
* Provides a centralized registry for feature flag definitions.
|
|
3463
|
+
* Similar to the native object registry but for feature flags.
|
|
3464
|
+
*
|
|
3465
|
+
* @example
|
|
3466
|
+
* ```typescript
|
|
3467
|
+
* // Register flags
|
|
3468
|
+
* flagRegistry.register(architectModeFlag);
|
|
3469
|
+
* flagRegistry.register(tierFlag);
|
|
3470
|
+
*
|
|
3471
|
+
* // Get flag definition
|
|
3472
|
+
* const flag = flagRegistry.get("architect-mode");
|
|
3473
|
+
*
|
|
3474
|
+
* // List all flags
|
|
3475
|
+
* const allFlags = flagRegistry.list();
|
|
3476
|
+
* ```
|
|
3477
|
+
*/
|
|
3478
|
+
|
|
3479
|
+
/**
|
|
3480
|
+
* Registry for feature flag definitions.
|
|
3481
|
+
* Provides registration, retrieval, and listing capabilities.
|
|
3482
|
+
*/
|
|
3483
|
+
declare class FlagRegistry {
|
|
3484
|
+
private flags;
|
|
3485
|
+
/**
|
|
3486
|
+
* Register a feature flag definition.
|
|
3487
|
+
*
|
|
3488
|
+
* @param flag - The flag definition to register
|
|
3489
|
+
* @throws {Error} If a flag with the same name is already registered
|
|
3490
|
+
*
|
|
3491
|
+
* @example
|
|
3492
|
+
* ```typescript
|
|
3493
|
+
* registry.register(booleanFlag("my-feature")
|
|
3494
|
+
* .label("My Feature")
|
|
3495
|
+
* .build()
|
|
3496
|
+
* );
|
|
3497
|
+
* ```
|
|
3498
|
+
*/
|
|
3499
|
+
register<T>(flag: FeatureFlagDefinition<T>): void;
|
|
3500
|
+
/**
|
|
3501
|
+
* Register multiple flags at once.
|
|
3502
|
+
*
|
|
3503
|
+
* @param flags - Array of flag definitions to register
|
|
3504
|
+
*/
|
|
3505
|
+
registerAll(flags: FeatureFlagDefinition[]): void;
|
|
3506
|
+
/**
|
|
3507
|
+
* Get a flag definition by name.
|
|
3508
|
+
*
|
|
3509
|
+
* @param name - The flag name
|
|
3510
|
+
* @returns The flag definition or undefined if not found
|
|
3511
|
+
*/
|
|
3512
|
+
get<T = unknown>(name: string): FeatureFlagDefinition<T> | undefined;
|
|
3513
|
+
/**
|
|
3514
|
+
* Get a flag definition by name, throwing if not found.
|
|
3515
|
+
*
|
|
3516
|
+
* @param name - The flag name
|
|
3517
|
+
* @returns The flag definition
|
|
3518
|
+
* @throws {Error} If the flag is not registered
|
|
3519
|
+
*/
|
|
3520
|
+
getOrThrow<T = unknown>(name: string): FeatureFlagDefinition<T>;
|
|
3521
|
+
/**
|
|
3522
|
+
* Check if a flag is registered.
|
|
3523
|
+
*
|
|
3524
|
+
* @param name - The flag name
|
|
3525
|
+
* @returns true if the flag is registered
|
|
3526
|
+
*/
|
|
3527
|
+
has(name: string): boolean;
|
|
3528
|
+
/**
|
|
3529
|
+
* List all registered flag definitions.
|
|
3530
|
+
*
|
|
3531
|
+
* @returns Array of all flag definitions
|
|
3532
|
+
*/
|
|
3533
|
+
list(): FeatureFlagDefinition[];
|
|
3534
|
+
/**
|
|
3535
|
+
* List all registered flag names.
|
|
3536
|
+
*
|
|
3537
|
+
* @returns Array of flag names
|
|
3538
|
+
*/
|
|
3539
|
+
listNames(): string[];
|
|
3540
|
+
/**
|
|
3541
|
+
* List flags filtered by category.
|
|
3542
|
+
*
|
|
3543
|
+
* @param category - The category to filter by
|
|
3544
|
+
* @returns Array of flag definitions in the category
|
|
3545
|
+
*/
|
|
3546
|
+
listByCategory(category: string): FeatureFlagDefinition[];
|
|
3547
|
+
/**
|
|
3548
|
+
* Get all unique categories.
|
|
3549
|
+
*
|
|
3550
|
+
* @returns Array of unique category names
|
|
3551
|
+
*/
|
|
3552
|
+
getCategories(): string[];
|
|
3553
|
+
/**
|
|
3554
|
+
* Get the default value for a flag.
|
|
3555
|
+
*
|
|
3556
|
+
* @param name - The flag name
|
|
3557
|
+
* @returns The default value or undefined if flag not found
|
|
3558
|
+
*/
|
|
3559
|
+
getDefaultValue<T = unknown>(name: string): T | undefined;
|
|
3560
|
+
/**
|
|
3561
|
+
* Get a map of all flag names to their default values.
|
|
3562
|
+
*
|
|
3563
|
+
* @returns Map of flag names to default values
|
|
3564
|
+
*/
|
|
3565
|
+
getDefaults(): Map<string, unknown>;
|
|
3566
|
+
/**
|
|
3567
|
+
* Unregister a flag (mainly for testing).
|
|
3568
|
+
*
|
|
3569
|
+
* @param name - The flag name to unregister
|
|
3570
|
+
* @returns true if the flag was removed, false if it didn't exist
|
|
3571
|
+
*/
|
|
3572
|
+
unregister(name: string): boolean;
|
|
3573
|
+
/**
|
|
3574
|
+
* Clear all registered flags (mainly for testing).
|
|
3575
|
+
*/
|
|
3576
|
+
clear(): void;
|
|
3577
|
+
/**
|
|
3578
|
+
* Get the number of registered flags.
|
|
3579
|
+
*/
|
|
3580
|
+
get size(): number;
|
|
3581
|
+
}
|
|
3582
|
+
/**
|
|
3583
|
+
* Global flag registry instance.
|
|
3584
|
+
*
|
|
3585
|
+
* @example
|
|
3586
|
+
* ```typescript
|
|
3587
|
+
* import { flagRegistry, booleanFlag } from "@stndrds/schema";
|
|
3588
|
+
*
|
|
3589
|
+
* // Register flags at app startup
|
|
3590
|
+
* flagRegistry.register(
|
|
3591
|
+
* booleanFlag("architect-mode")
|
|
3592
|
+
* .label("Architect Mode")
|
|
3593
|
+
* .tenantScoped()
|
|
3594
|
+
* .build()
|
|
3595
|
+
* );
|
|
3596
|
+
*
|
|
3597
|
+
* // Access from anywhere
|
|
3598
|
+
* const flags = flagRegistry.list();
|
|
3599
|
+
* ```
|
|
3600
|
+
*/
|
|
3601
|
+
declare const flagRegistry: FlagRegistry;
|
|
3602
|
+
/**
|
|
3603
|
+
* Create a new isolated flag registry.
|
|
3604
|
+
* Useful for testing or multi-app scenarios.
|
|
3605
|
+
*
|
|
3606
|
+
* @returns A new FlagRegistry instance
|
|
3607
|
+
*/
|
|
3608
|
+
declare function createFlagRegistry(): FlagRegistry;
|
|
3609
|
+
|
|
3610
|
+
/**
|
|
3611
|
+
* Flag Service Module
|
|
3612
|
+
*
|
|
3613
|
+
* Provides flag resolution with priority-based override handling.
|
|
3614
|
+
* Resolves flags from static defaults and optional database overrides.
|
|
3615
|
+
*
|
|
3616
|
+
* Resolution order (highest priority first):
|
|
3617
|
+
* 1. User override (if allowed)
|
|
3618
|
+
* 2. Tenant override (if allowed)
|
|
3619
|
+
* 3. Global override
|
|
3620
|
+
* 4. Static default from flag definition
|
|
3621
|
+
*
|
|
3622
|
+
* @example
|
|
3623
|
+
* ```typescript
|
|
3624
|
+
* const service = new FlagService(adapter, registry, staticDefaults);
|
|
3625
|
+
*
|
|
3626
|
+
* // Resolve all flags for current context
|
|
3627
|
+
* const flags = await service.resolveAll();
|
|
3628
|
+
*
|
|
3629
|
+
* // Check specific flag
|
|
3630
|
+
* const enabled = await service.isEnabled("architect-mode");
|
|
3631
|
+
* ```
|
|
3632
|
+
*/
|
|
3633
|
+
|
|
3634
|
+
/**
|
|
3635
|
+
* Options for creating a FlagService instance.
|
|
3636
|
+
*/
|
|
3637
|
+
interface FlagServiceOptions {
|
|
3638
|
+
/** Optional feature flags repository for database overrides */
|
|
3639
|
+
repository?: FeatureFlagsRepository;
|
|
3640
|
+
/** Flag registry containing flag definitions */
|
|
3641
|
+
registry: FlagRegistry;
|
|
3642
|
+
/** Static default values from module configuration */
|
|
3643
|
+
staticDefaults?: StaticFlagDefault[];
|
|
3644
|
+
}
|
|
3645
|
+
/**
|
|
3646
|
+
* Context for flag resolution (tenant and user IDs).
|
|
3647
|
+
*/
|
|
3648
|
+
interface FlagResolutionContext {
|
|
3649
|
+
/** Current tenant ID */
|
|
3650
|
+
tenantId?: string;
|
|
3651
|
+
/** Current user ID */
|
|
3652
|
+
userId?: string;
|
|
3653
|
+
}
|
|
3654
|
+
/**
|
|
3655
|
+
* Service for resolving feature flag values.
|
|
3656
|
+
*
|
|
3657
|
+
* Combines static defaults with database overrides following
|
|
3658
|
+
* the priority: user > tenant > global > default.
|
|
3659
|
+
*/
|
|
3660
|
+
declare class FlagService {
|
|
3661
|
+
private readonly repository?;
|
|
3662
|
+
private readonly registry;
|
|
3663
|
+
private readonly staticDefaults;
|
|
3664
|
+
constructor(options: FlagServiceOptions);
|
|
3665
|
+
/**
|
|
3666
|
+
* Resolve all flags for the current context.
|
|
3667
|
+
* Returns a Map suitable for runWithFeatureFlags().
|
|
3668
|
+
*
|
|
3669
|
+
* @param context - Resolution context with tenant/user IDs
|
|
3670
|
+
* @returns Map of flag names to resolved values
|
|
3671
|
+
*/
|
|
3672
|
+
resolveAll(context?: FlagResolutionContext): Promise<Map<string, unknown>>;
|
|
3673
|
+
/**
|
|
3674
|
+
* Resolve a single flag with full metadata.
|
|
3675
|
+
*
|
|
3676
|
+
* @param flagName - The flag to resolve
|
|
3677
|
+
* @param context - Resolution context
|
|
3678
|
+
* @returns Resolved flag with source information
|
|
3679
|
+
*/
|
|
3680
|
+
resolve<T = unknown>(flagName: string, context?: FlagResolutionContext): Promise<ResolvedFlag<T>>;
|
|
3681
|
+
/**
|
|
3682
|
+
* Quick check if a boolean flag is enabled.
|
|
3683
|
+
*
|
|
3684
|
+
* @param flagName - The flag to check
|
|
3685
|
+
* @param context - Resolution context
|
|
3686
|
+
* @returns true if the flag value is exactly true
|
|
3687
|
+
*/
|
|
3688
|
+
isEnabled(flagName: string, context?: FlagResolutionContext): Promise<boolean>;
|
|
3689
|
+
/**
|
|
3690
|
+
* Get a flag value with type inference.
|
|
3691
|
+
*
|
|
3692
|
+
* @param flagName - The flag to get
|
|
3693
|
+
* @param context - Resolution context
|
|
3694
|
+
* @returns The resolved flag value
|
|
3695
|
+
*/
|
|
3696
|
+
getValue<T = unknown>(flagName: string, context?: FlagResolutionContext): Promise<T>;
|
|
3697
|
+
/**
|
|
3698
|
+
* Set an override for a flag.
|
|
3699
|
+
*
|
|
3700
|
+
* @param flagName - The flag to override
|
|
3701
|
+
* @param level - The level of the override
|
|
3702
|
+
* @param value - The override value
|
|
3703
|
+
* @param options - Additional options
|
|
3704
|
+
*/
|
|
3705
|
+
setOverride<T>(flagName: string, level: FlagLevel, value: T, options?: {
|
|
3706
|
+
targetId?: string;
|
|
3707
|
+
expiresAt?: Date;
|
|
3708
|
+
createdBy?: string;
|
|
3709
|
+
}): Promise<void>;
|
|
3710
|
+
/**
|
|
3711
|
+
* Delete an override.
|
|
3712
|
+
*
|
|
3713
|
+
* @param flagName - The flag name
|
|
3714
|
+
* @param level - The level to delete
|
|
3715
|
+
* @param targetId - Optional target ID for tenant/user level
|
|
3716
|
+
*/
|
|
3717
|
+
deleteOverride(flagName: string, level: FlagLevel, targetId?: string): Promise<void>;
|
|
3718
|
+
/**
|
|
3719
|
+
* Get all overrides organized by level.
|
|
3720
|
+
*/
|
|
3721
|
+
private getAllOverrides;
|
|
3722
|
+
/**
|
|
3723
|
+
* Resolve a flag value from overrides and defaults.
|
|
3724
|
+
*/
|
|
3725
|
+
private resolveValue;
|
|
3726
|
+
/**
|
|
3727
|
+
* Resolve a flag value with source information.
|
|
3728
|
+
*/
|
|
3729
|
+
private resolveWithSource;
|
|
3730
|
+
}
|
|
3731
|
+
/**
|
|
3732
|
+
* Create a FlagService instance.
|
|
3733
|
+
*
|
|
3734
|
+
* @param options - Service options
|
|
3735
|
+
* @returns A new FlagService instance
|
|
3736
|
+
*/
|
|
3737
|
+
declare function createFlagService(options: FlagServiceOptions): FlagService;
|
|
3738
|
+
|
|
3002
3739
|
/**
|
|
3003
3740
|
* Native Notes Object
|
|
3004
3741
|
*
|
|
@@ -3050,6 +3787,144 @@ declare const NOTES: ObjectBuilder<{
|
|
|
3050
3787
|
linkedTo?: string | undefined;
|
|
3051
3788
|
}>;
|
|
3052
3789
|
|
|
3790
|
+
/**
|
|
3791
|
+
* View Auto-Generator
|
|
3792
|
+
*
|
|
3793
|
+
* Generates fallback views from object definitions.
|
|
3794
|
+
* Used when no custom view is defined (lazy creation pattern).
|
|
3795
|
+
*
|
|
3796
|
+
* @example
|
|
3797
|
+
* ```typescript
|
|
3798
|
+
* import { generateFallbackView } from "@stndrds/schema";
|
|
3799
|
+
*
|
|
3800
|
+
* const view = generateFallbackView(objectDefinition, "detail");
|
|
3801
|
+
* // Returns a DetailViewDefinition with all visible attributes
|
|
3802
|
+
* ```
|
|
3803
|
+
*/
|
|
3804
|
+
|
|
3805
|
+
interface GenerateFallbackViewOptions {
|
|
3806
|
+
/**
|
|
3807
|
+
* Include activity tab in detail views.
|
|
3808
|
+
* @default true
|
|
3809
|
+
*/
|
|
3810
|
+
includeActivityTab?: boolean;
|
|
3811
|
+
/**
|
|
3812
|
+
* Include notes tab in detail views.
|
|
3813
|
+
* @default true
|
|
3814
|
+
*/
|
|
3815
|
+
includeNotesTab?: boolean;
|
|
3816
|
+
/**
|
|
3817
|
+
* Include documents tab in detail views (if object has document attributes).
|
|
3818
|
+
* @default true
|
|
3819
|
+
*/
|
|
3820
|
+
includeDocumentsTab?: boolean;
|
|
3821
|
+
/**
|
|
3822
|
+
* Include flows tab in detail views.
|
|
3823
|
+
* @default false
|
|
3824
|
+
*/
|
|
3825
|
+
includeFlowsTab?: boolean;
|
|
3826
|
+
/**
|
|
3827
|
+
* Attributes to exclude from the generated view.
|
|
3828
|
+
*/
|
|
3829
|
+
excludeAttributes?: string[];
|
|
3830
|
+
/**
|
|
3831
|
+
* Maximum number of columns for list views.
|
|
3832
|
+
* @default 5
|
|
3833
|
+
*/
|
|
3834
|
+
maxListColumns?: number;
|
|
3835
|
+
}
|
|
3836
|
+
/**
|
|
3837
|
+
* Generate a default detail view from an object definition.
|
|
3838
|
+
*
|
|
3839
|
+
* @param object - The object definition
|
|
3840
|
+
* @param options - Generation options
|
|
3841
|
+
* @returns A generated DetailViewDefinition
|
|
3842
|
+
*/
|
|
3843
|
+
declare function generateDefaultDetailView(object: ObjectDefinition, options?: GenerateFallbackViewOptions): DetailViewDefinition;
|
|
3844
|
+
/**
|
|
3845
|
+
* Generate a default list view from an object definition.
|
|
3846
|
+
*
|
|
3847
|
+
* @param object - The object definition
|
|
3848
|
+
* @param options - Generation options
|
|
3849
|
+
* @returns A generated ListViewDefinition
|
|
3850
|
+
*/
|
|
3851
|
+
declare function generateDefaultListView(object: ObjectDefinition, options?: GenerateFallbackViewOptions): ListViewDefinition;
|
|
3852
|
+
/**
|
|
3853
|
+
* Generate a fallback view for any supported type.
|
|
3854
|
+
*
|
|
3855
|
+
* @param object - The object definition
|
|
3856
|
+
* @param type - View type to generate
|
|
3857
|
+
* @param options - Generation options
|
|
3858
|
+
* @returns A generated ViewDefinition
|
|
3859
|
+
*/
|
|
3860
|
+
declare function generateFallbackView(object: ObjectDefinition, type: ViewType, options?: GenerateFallbackViewOptions): ViewDefinition;
|
|
3861
|
+
/**
|
|
3862
|
+
* Generate a modal detail view (simplified, single form tab).
|
|
3863
|
+
*
|
|
3864
|
+
* @param object - The object definition
|
|
3865
|
+
* @param attributeNames - Specific attributes to include (optional)
|
|
3866
|
+
* @returns A generated DetailViewDefinition for modal layout
|
|
3867
|
+
*/
|
|
3868
|
+
declare function generateModalDetailView(object: ObjectDefinition, attributeNames?: string[]): DetailViewDefinition;
|
|
3869
|
+
/**
|
|
3870
|
+
* Generate a kanban list view.
|
|
3871
|
+
*
|
|
3872
|
+
* @param object - The object definition
|
|
3873
|
+
* @param groupByAttribute - Attribute to group by (must be select/status type)
|
|
3874
|
+
* @param options - Generation options
|
|
3875
|
+
* @returns A generated ListViewDefinition with kanban layout
|
|
3876
|
+
*/
|
|
3877
|
+
declare function generateKanbanListView(object: ObjectDefinition, groupByAttribute: string, options?: GenerateFallbackViewOptions): ListViewDefinition;
|
|
3878
|
+
|
|
3879
|
+
/**
|
|
3880
|
+
* View Reset Utilities
|
|
3881
|
+
*
|
|
3882
|
+
* Functions for resetting views to their default state.
|
|
3883
|
+
*
|
|
3884
|
+
* @example
|
|
3885
|
+
* ```typescript
|
|
3886
|
+
* import { resetViewToDefault } from "@stndrds/schema";
|
|
3887
|
+
*
|
|
3888
|
+
* // Reset a detail view to its auto-generated default
|
|
3889
|
+
* const resetView = resetViewToDefault(currentView, objectDefinition);
|
|
3890
|
+
* ```
|
|
3891
|
+
*/
|
|
3892
|
+
|
|
3893
|
+
interface ResetViewOptions extends GenerateFallbackViewOptions {
|
|
3894
|
+
/**
|
|
3895
|
+
* Preserve custom tabs (type: "custom") from the current view.
|
|
3896
|
+
* @default true
|
|
3897
|
+
*/
|
|
3898
|
+
preserveCustomTabs?: boolean;
|
|
3899
|
+
/**
|
|
3900
|
+
* Preserve table tabs from the current view.
|
|
3901
|
+
* @default true
|
|
3902
|
+
*/
|
|
3903
|
+
preserveTableTabs?: boolean;
|
|
3904
|
+
/**
|
|
3905
|
+
* Preserve view metadata (id, name, label, description).
|
|
3906
|
+
* @default true
|
|
3907
|
+
*/
|
|
3908
|
+
preserveMetadata?: boolean;
|
|
3909
|
+
}
|
|
3910
|
+
/**
|
|
3911
|
+
* Reset a view to its default state based on the object definition.
|
|
3912
|
+
*
|
|
3913
|
+
* @param currentView - The current view to reset
|
|
3914
|
+
* @param object - The object definition
|
|
3915
|
+
* @param options - Reset options
|
|
3916
|
+
* @returns A new ViewDefinition with reset structure
|
|
3917
|
+
*/
|
|
3918
|
+
declare function resetViewToDefault(currentView: ViewDefinition, object: ObjectDefinition, options?: ResetViewOptions): ViewDefinition;
|
|
3919
|
+
/**
|
|
3920
|
+
* Check if a view has been customized from its default state.
|
|
3921
|
+
*
|
|
3922
|
+
* @param view - The view to check
|
|
3923
|
+
* @param object - The object definition
|
|
3924
|
+
* @returns true if the view differs from the default
|
|
3925
|
+
*/
|
|
3926
|
+
declare function isViewCustomized(view: ViewDefinition, object: ObjectDefinition): boolean;
|
|
3927
|
+
|
|
3053
3928
|
declare const SYSTEM_TEMPLATE_IDS: {
|
|
3054
3929
|
readonly FRENCH_ID_CARD: "00000000-0000-0000-0001-000000000001";
|
|
3055
3930
|
readonly PASSPORT: "00000000-0000-0000-0001-000000000002";
|
|
@@ -3105,4 +3980,4 @@ declare function getSystemTemplate(name: string): DocumentTemplate | undefined;
|
|
|
3105
3980
|
*/
|
|
3106
3981
|
declare function isSystemTemplate(name: string): boolean;
|
|
3107
3982
|
|
|
3108
|
-
export { ALL_SYSTEM_RESOURCES, ActivityTabConfig, type AgentContentPart, type AgentMessage, type AnyAttributeBuilder, Attribute, AttributeGroupField, AttributeInUseError, AttributeNotFoundError, AttributeType, type AttributeUsage, AuthMethodSchema, type BuilderConfig, type ChatFileAttachment, CheckboxAttribute, ConditionGroup, ConditionGroupSchema, ConditionNodeSchema, ConditionOperatorSchema, ConditionRule, ConditionRuleSchema, CreateShareInputSchema, CurrencyAttribute, CustomTabConfig, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DRIVING_LICENSE, DateAttribute, type DefaultRoleName, type DefaultRolePermissionConfig, DirectTableTab, DirectTableTabConfig, DocumentAttribute, DocumentNodeSchema, DocumentTemplate, DocumentsTabConfig, DuplicateError, EMPTY_VALUE_PLACEHOLDER, EndNodeSchema, type ExtractAttributeName, type ExtractAttributeRequired, FRENCH_ID_CARD, Field, FileAttribute, FileNotFoundError, FilterState, FlowRow, FlowRowFieldSchema, FlowRowSchema, FlowsTabConfig, ForbiddenError, FormFieldRefSchema, FormNodeSchema, FormulaAttribute, FormulaReturnType, GENERIC_DOCUMENT, Group, GroupBuilder, InferAttributeValue, InstanceStatus, InverseTableTab, InverseTableTabConfig, LocationAttribute, MultiRelationAttribute, MultiselectAttribute, NOTES, NodePositionSchema, NotFoundError, NotSystemObjectError, NotesTabConfig, NumberAttribute, ObjectAction, ObjectBuilder, ObjectDefinition, ObjectNotFoundError, ObjectReferencedError, Option, PASSPORT, PROOF_OF_ADDRESS, PhoneAttribute, ProtectedResourceError, ProtectedRoleError, RatingAttribute, RecordNotFoundError, type RecordReference, RecordReferencedError, RelationTarget, type ResumeWorkflowApiInput, RichtextAttribute, RichtextFeature, RoleNotFoundError, RollupAttribute, RollupFunction, SIGNABLE_CONTRACT, SYSTEM_ATTRIBUTES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, SYSTEM_TEMPLATES, SYSTEM_TEMPLATE_IDS, SchemaError, SchemaErrorCode, SelectAttribute, ShareStatusSchema, SingleRelationAttribute, SlotMode, SlotModeSchema, SortRule, StartNodeSchema, type StartWorkflowApiInput, StatusAttribute, SyncError, SystemAction, type SystemAttribute, type SystemAttributeName, SystemResource, Tab, TabBuilder, TableTab, TextAreaAttribute, TextAttribute, ThemeColorsSchema, ThemeLogoSchema, type TypedBuilderConfig, UserAttribute, UserProfileNotFoundError, type ValidatedConditionGroup, type ValidatedWorkflowDefinition, type ValidatedWorkflowNode, ValidationError, type ValidationErrorDetail, ViewBuilder, ViewDefinition,
|
|
3983
|
+
export { ALL_SYSTEM_RESOURCES, ActivityTabConfig, type AgentContentPart, type AgentMessage, type AnyAttributeBuilder, Attribute, AttributeGroupField, AttributeInUseError, AttributeNotFoundError, AttributeType, type AttributeUsage, AuthMethodSchema, BEHAVIOR_PROPERTIES, type BehaviorProperty, type BuilderConfig, type ChatFileAttachment, CheckboxAttribute, ConcurrentModificationError, ConditionGroup, ConditionGroupSchema, ConditionNodeSchema, ConditionOperatorSchema, ConditionRule, ConditionRuleSchema, CreateShareInputSchema, CurrencyAttribute, CustomTabConfig, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DRIVING_LICENSE, DateAttribute, type DefaultRoleName, type DefaultRolePermissionConfig, DetailViewBuilder, DetailViewDefinition, DetailViewLayout, DirectTableTab, DirectTableTabConfig, DocumentAttribute, DocumentNodeSchema, DocumentTemplate, DocumentsTabConfig, DuplicateError, EMPTY_VALUE_PLACEHOLDER, EndNodeSchema, type ExtractAttributeName, type ExtractAttributeRequired, FRENCH_ID_CARD, FeatureFlagDefinition, FeatureFlagsRepository, FeatureGate, Field, FileAttribute, FileNotFoundError, FilterState, FlagLevel, FlagRegistry, type FlagResolutionContext, FlagService, type FlagServiceOptions, FlagValueType, FlowRow, FlowRowFieldSchema, FlowRowSchema, FlowsTabConfig, ForbiddenError, FormFieldRefSchema, FormNodeSchema, FormulaAttribute, FormulaReturnType, GENERIC_DOCUMENT, type GenerateFallbackViewOptions, Group, GroupBuilder, IDENTITY_PROPERTIES, type IdentityProperty, InferAttributeValue, InstanceStatus, InverseTableTab, InverseTableTabConfig, ListViewBuilder, ListViewDefinition, ListViewTabConfigBuilder, LocationAttribute, MultiRelationAttribute, MultiselectAttribute, NOTES, NodePositionSchema, NotFoundError, NotSystemObjectError, NotesTabConfig, NumberAttribute, ObjectAction, ObjectBuilder, ObjectDefinition, ObjectNotFoundError, ObjectReferencedError, Option, PASSPORT, PRESENTATION_PROPERTIES, PROOF_OF_ADDRESS, PhoneAttribute, type PresentationProperty, ProtectedResourceError, ProtectedRoleError, RatingAttribute, RecordNotFoundError, type RecordReference, RecordReferencedError, RelationTarget, type ResetViewOptions, ResolvedFlag, type ResumeWorkflowApiInput, RichtextAttribute, RichtextFeature, RoleNotFoundError, RollupAttribute, RollupFunction, SIGNABLE_CONTRACT, SYSTEM_ATTRIBUTES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, SYSTEM_TEMPLATES, SYSTEM_TEMPLATE_IDS, SchemaError, SchemaErrorCode, SelectAttribute, ShareStatusSchema, SingleRelationAttribute, SlotMode, SlotModeSchema, SortRule, StartNodeSchema, type StartWorkflowApiInput, StaticFlagDefault, StatusAttribute, SyncError, SystemAction, type SystemAttribute, type SystemAttributeName, SystemResource, Tab, TabBuilder, TableTab, TextAreaAttribute, TextAttribute, ThemeColorsSchema, ThemeLogoSchema, type TypedBuilderConfig, UserAttribute, UserProfileNotFoundError, type ValidatedConditionGroup, type ValidatedWorkflowDefinition, type ValidatedWorkflowNode, ValidationError, type ValidationErrorDetail, ViewBuilder, ViewDefinition, ViewType, ViewportSchema, WorkflowBuilder, WorkflowConditionBuilder, WorkflowConfig, WorkflowConfigSchema, WorkflowDefinition, WorkflowDefinitionSchema, WorkflowEndBuilder, type WorkflowEvent, type WorkflowEventType, WorkflowFormBuilder, WorkflowFormRowBuilder, type WorkflowGrantRevokedEvent, type WorkflowInstanceCancelledEvent, type WorkflowInstanceCompletedEvent, type WorkflowInstanceFailedEvent, type WorkflowInstanceStartedEvent, type WorkflowInvitationAcceptedEvent, type WorkflowInvitationCreatedEvent, type WorkflowInvitationExpiredEvent, WorkflowLayoutSchema, WorkflowNode, type WorkflowNodeCompletedEvent, type WorkflowNodeEnteredEvent, type WorkflowNodeFailedEvent, WorkflowNodeSchema, WorkflowShareSchema, WorkflowSimpleFormBuilder, WorkflowSlotSchema, WorkflowStartBuilder, WorkflowStatusSchema, WorkflowTheme, WorkflowThemeSchema, booleanFlag, checkbox, createFlagRegistry, createFlagService, currency, date, detailView, document, file, filterPropertiesByCategory, flagRegistry, formatAttributeValue, formula, generateDefaultDetailView, generateDefaultListView, generateFallbackView, generateKanbanListView, generateModalDetailView, getPropertyProtectionLevel, getSystemAttributeList, getSystemTemplate, group, isBehaviorProperty, isConcurrentModificationError, isDefaultRole, isForbiddenError, isIdentityProperty, isInstanceEvent, isInvitationOrGrantEvent, isNodeEvent, isNotFoundError, isPresentationProperty, isProtectedResourceError, isSchemaError, isSystemAttribute, isSystemAttributeObject, isSystemTemplate, isValidationError, isViewCustomized, jsonFlag, listView, location, multiselect, number, numberFlag, object, phone, rating, relation, resetViewToDefault, richtext, rollup, select, status, stringFlag, text, textarea, user, view, workflow };
|