@objectstack/spec 6.7.1 → 6.8.1
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/LICENSE +202 -0
- package/dist/ai/index.d.mts +308 -8
- package/dist/ai/index.d.ts +308 -8
- package/dist/ai/index.js +1211 -37
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/index.mjs +1209 -38
- package/dist/ai/index.mjs.map +1 -1
- package/dist/api/index.d.mts +846 -967
- package/dist/api/index.d.ts +846 -967
- package/dist/api/index.js +5537 -5334
- package/dist/api/index.js.map +1 -1
- package/dist/api/index.mjs +5537 -5334
- package/dist/api/index.mjs.map +1 -1
- package/dist/{app.zod-nPfH1TcS.d.ts → app.zod-CLlpb0AH.d.ts} +290 -259
- package/dist/{app.zod-D7fgbn5Z.d.mts → app.zod-DvMDoI87.d.mts} +290 -259
- package/dist/automation/index.d.mts +332 -31
- package/dist/automation/index.d.ts +332 -31
- package/dist/automation/index.js +1184 -1
- package/dist/automation/index.js.map +1 -1
- package/dist/automation/index.mjs +1182 -2
- package/dist/automation/index.mjs.map +1 -1
- package/dist/cloud/index.d.mts +361 -192
- package/dist/cloud/index.d.ts +361 -192
- package/dist/cloud/index.js +261 -93
- package/dist/cloud/index.js.map +1 -1
- package/dist/cloud/index.mjs +256 -94
- package/dist/cloud/index.mjs.map +1 -1
- package/dist/contracts/index.d.mts +27 -5
- package/dist/contracts/index.d.ts +27 -5
- package/dist/data/index.d.mts +305 -4
- package/dist/data/index.d.ts +305 -4
- package/dist/data/index.js +299 -3
- package/dist/data/index.js.map +1 -1
- package/dist/data/index.mjs +297 -4
- package/dist/data/index.mjs.map +1 -1
- package/dist/{execution-context.zod-7FfY8UW2.d.mts → execution-context.zod-D4xMP7B4.d.mts} +7 -0
- package/dist/{execution-context.zod-7FfY8UW2.d.ts → execution-context.zod-D4xMP7B4.d.ts} +7 -0
- package/dist/{field.zod-Bqhc6_7G.d.mts → field.zod-BGr7R7KU.d.mts} +4 -0
- package/dist/{field.zod-Bqhc6_7G.d.ts → field.zod-BGr7R7KU.d.ts} +4 -0
- package/dist/identity/index.d.mts +117 -15
- package/dist/identity/index.d.ts +117 -15
- package/dist/identity/index.js +1093 -1
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/index.mjs +1093 -2
- package/dist/identity/index.mjs.map +1 -1
- package/dist/index.d.mts +280 -286
- package/dist/index.d.ts +280 -286
- package/dist/index.js +71 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +71 -4
- package/dist/index.mjs.map +1 -1
- package/dist/kernel/index.d.mts +1 -1
- package/dist/kernel/index.d.ts +1 -1
- package/dist/kernel/index.js +29 -15
- package/dist/kernel/index.js.map +1 -1
- package/dist/kernel/index.mjs +29 -15
- package/dist/kernel/index.mjs.map +1 -1
- package/dist/{object.zod-rhReSd7V.d.mts → object.zod-C1mmiCDL.d.mts} +22 -4
- package/dist/{object.zod-BntYUReb.d.ts → object.zod-D4gYbFv4.d.ts} +22 -4
- package/dist/security/index.d.mts +108 -1
- package/dist/security/index.d.ts +108 -1
- package/dist/security/index.js +1080 -2
- package/dist/security/index.js.map +1 -1
- package/dist/security/index.mjs +1080 -3
- package/dist/security/index.mjs.map +1 -1
- package/dist/shared/index.js +6 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs +6 -1
- package/dist/shared/index.mjs.map +1 -1
- package/dist/{subscription.zod-CsRDvTgL.d.ts → subscription.zod-CBBzN0Tf.d.ts} +329 -0
- package/dist/{subscription.zod-CBGq0BgL.d.mts → subscription.zod-MSheiEQT.d.mts} +329 -0
- package/dist/system/index.d.mts +193 -18
- package/dist/system/index.d.ts +193 -18
- package/dist/system/index.js +109 -3
- package/dist/system/index.js.map +1 -1
- package/dist/system/index.mjs +109 -4
- package/dist/system/index.mjs.map +1 -1
- package/dist/ui/index.d.mts +603 -9
- package/dist/ui/index.d.ts +603 -9
- package/dist/ui/index.js +1791 -1335
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/index.mjs +1784 -1336
- package/dist/ui/index.mjs.map +1 -1
- package/json-schema/ai/AIKnowledge.json +2 -2
- package/json-schema/ai/AIModelConfig.json +2 -2
- package/json-schema/ai/AITool.json +2 -2
- package/json-schema/ai/AIUsageRecord.json +2 -2
- package/json-schema/ai/Agent.json +2 -2
- package/json-schema/ai/CodeContent.json +2 -2
- package/json-schema/ai/ConversationAnalytics.json +2 -2
- package/json-schema/ai/ConversationContext.json +2 -2
- package/json-schema/ai/ConversationMessage.json +2 -2
- package/json-schema/ai/ConversationSession.json +2 -2
- package/json-schema/ai/ConversationSummary.json +2 -2
- package/json-schema/ai/EmbeddingModel.json +2 -2
- package/json-schema/ai/FileContent.json +2 -2
- package/json-schema/ai/FileKnowledgeSource.json +2 -2
- package/json-schema/ai/FunctionCall.json +2 -2
- package/json-schema/ai/HttpKnowledgeSource.json +2 -2
- package/json-schema/ai/ImageContent.json +2 -2
- package/json-schema/ai/KnowledgeChunk.json +2 -2
- package/json-schema/ai/KnowledgeDocument.json +2 -2
- package/json-schema/ai/KnowledgeHit.json +2 -2
- package/json-schema/ai/KnowledgeRefreshPolicy.json +2 -2
- package/json-schema/ai/KnowledgeSource.json +2 -2
- package/json-schema/ai/KnowledgeSourceKind.json +2 -2
- package/json-schema/ai/MCPApprovalPolicy.json +2 -2
- package/json-schema/ai/MCPServerRef.json +2 -2
- package/json-schema/ai/MCPToolBinding.json +2 -2
- package/json-schema/ai/MCPTransport.json +2 -2
- package/json-schema/ai/MessageContent.json +2 -2
- package/json-schema/ai/MessageContentType.json +2 -2
- package/json-schema/ai/MessagePruningEvent.json +2 -2
- package/json-schema/ai/MessageRole.json +2 -2
- package/json-schema/ai/ModelCapability.json +2 -2
- package/json-schema/ai/ModelConfig.json +2 -2
- package/json-schema/ai/ModelLimits.json +2 -2
- package/json-schema/ai/ModelPricing.json +2 -2
- package/json-schema/ai/ModelProvider.json +2 -2
- package/json-schema/ai/ModelRegistryEntry.json +2 -2
- package/json-schema/ai/ModelSelectionCriteria.json +2 -2
- package/json-schema/ai/ObjectKnowledgeSource.json +2 -2
- package/json-schema/ai/PromptVariable.json +2 -2
- package/json-schema/ai/Skill.json +2 -2
- package/json-schema/ai/SkillTriggerCondition.json +2 -2
- package/json-schema/ai/StructuredOutputConfig.json +2 -2
- package/json-schema/ai/StructuredOutputFormat.json +2 -2
- package/json-schema/ai/TextContent.json +2 -2
- package/json-schema/ai/TokenBudgetConfig.json +2 -2
- package/json-schema/ai/TokenBudgetStrategy.json +2 -2
- package/json-schema/ai/TokenUsage.json +2 -2
- package/json-schema/ai/TokenUsageStats.json +2 -2
- package/json-schema/ai/Tool.json +2 -2
- package/json-schema/ai/ToolCall.json +2 -2
- package/json-schema/ai/ToolCategory.json +2 -2
- package/json-schema/ai/TransformPipelineStep.json +2 -2
- package/json-schema/ai/VectorStore.json +2 -2
- package/json-schema/ai/VectorStoreProvider.json +2 -2
- package/json-schema/api/AckMessage.json +2 -2
- package/json-schema/api/AddReactionRequest.json +2 -2
- package/json-schema/api/AddReactionResponse.json +2 -2
- package/json-schema/api/AiInsightsRequest.json +2 -2
- package/json-schema/api/AiInsightsResponse.json +2 -2
- package/json-schema/api/AiNlqRequest.json +2 -2
- package/json-schema/api/AiNlqResponse.json +2 -2
- package/json-schema/api/AiSuggestRequest.json +2 -2
- package/json-schema/api/AiSuggestResponse.json +2 -2
- package/json-schema/api/AnalyticsEndpoint.json +2 -2
- package/json-schema/api/AnalyticsMetadataResponse.json +2 -2
- package/json-schema/api/AnalyticsQueryRequest.json +2 -2
- package/json-schema/api/AnalyticsResultResponse.json +2 -2
- package/json-schema/api/AnalyticsSqlResponse.json +2 -2
- package/json-schema/api/ApiChangelogEntry.json +2 -2
- package/json-schema/api/ApiDiscoveryQuery.json +2 -2
- package/json-schema/api/ApiDiscoveryResponse.json +2 -2
- package/json-schema/api/ApiDocumentationConfig.json +2 -2
- package/json-schema/api/ApiEndpoint.json +2 -2
- package/json-schema/api/ApiEndpointRegistration.json +2 -2
- package/json-schema/api/ApiError.json +2 -2
- package/json-schema/api/ApiMapping.json +2 -2
- package/json-schema/api/ApiMetadata.json +2 -2
- package/json-schema/api/ApiParameter.json +2 -2
- package/json-schema/api/ApiProtocolType.json +2 -2
- package/json-schema/api/ApiRegistry.json +2 -2
- package/json-schema/api/ApiRegistryEntry.json +2 -2
- package/json-schema/api/ApiResponse.json +2 -2
- package/json-schema/api/ApiRoutes.json +2 -2
- package/json-schema/api/ApiTestCollection.json +2 -2
- package/json-schema/api/ApiTestRequest.json +2 -2
- package/json-schema/api/ApiTestingUiConfig.json +2 -2
- package/json-schema/api/ApiTestingUiType.json +2 -2
- package/json-schema/api/AuthEndpoint.json +2 -2
- package/json-schema/api/AuthFeaturesConfig.json +2 -2
- package/json-schema/api/AuthProvider.json +2 -2
- package/json-schema/api/AuthProviderInfo.json +2 -2
- package/json-schema/api/AutomationApiErrorCode.json +2 -2
- package/json-schema/api/AutomationFlowPathParams.json +2 -2
- package/json-schema/api/AutomationRunPathParams.json +2 -2
- package/json-schema/api/AutomationTriggerRequest.json +2 -2
- package/json-schema/api/AutomationTriggerResponse.json +2 -2
- package/json-schema/api/BasePresence.json +2 -2
- package/json-schema/api/BaseResponse.json +2 -2
- package/json-schema/api/BatchConfig.json +2 -2
- package/json-schema/api/BatchDataRequest.json +2 -2
- package/json-schema/api/BatchDataResponse.json +2 -2
- package/json-schema/api/BatchEndpointsConfig.json +2 -2
- package/json-schema/api/BatchLoadingStrategy.json +2 -2
- package/json-schema/api/BatchOperationResult.json +2 -2
- package/json-schema/api/BatchOperationType.json +2 -2
- package/json-schema/api/BatchOptions.json +2 -2
- package/json-schema/api/BatchRecord.json +2 -2
- package/json-schema/api/BatchUpdateRequest.json +2 -2
- package/json-schema/api/BatchUpdateResponse.json +2 -2
- package/json-schema/api/BulkRequest.json +2 -2
- package/json-schema/api/BulkResponse.json +2 -2
- package/json-schema/api/CacheControl.json +2 -2
- package/json-schema/api/CacheDirective.json +2 -2
- package/json-schema/api/CacheInvalidationRequest.json +2 -2
- package/json-schema/api/CacheInvalidationResponse.json +2 -2
- package/json-schema/api/CacheInvalidationTarget.json +2 -2
- package/json-schema/api/Callback.json +2 -2
- package/json-schema/api/ChangelogEntry.json +2 -2
- package/json-schema/api/CheckPermissionRequest.json +2 -2
- package/json-schema/api/CheckPermissionResponse.json +2 -2
- package/json-schema/api/CodeGenerationTemplate.json +2 -2
- package/json-schema/api/CompleteChunkedUploadRequest.json +2 -2
- package/json-schema/api/CompleteChunkedUploadResponse.json +2 -2
- package/json-schema/api/CompleteUploadRequest.json +2 -2
- package/json-schema/api/ConceptListResponse.json +2 -2
- package/json-schema/api/ConflictResolutionStrategy.json +2 -2
- package/json-schema/api/CreateDataRequest.json +2 -2
- package/json-schema/api/CreateDataResponse.json +2 -2
- package/json-schema/api/CreateExportJobRequest.json +2 -2
- package/json-schema/api/CreateExportJobResponse.json +2 -2
- package/json-schema/api/CreateFeedItemRequest.json +2 -2
- package/json-schema/api/CreateFeedItemResponse.json +2 -2
- package/json-schema/api/CreateManyDataRequest.json +2 -2
- package/json-schema/api/CreateManyDataResponse.json +2 -2
- package/json-schema/api/CreateRequest.json +2 -2
- package/json-schema/api/CrudEndpointPattern.json +2 -2
- package/json-schema/api/CrudEndpointsConfig.json +2 -2
- package/json-schema/api/CrudOperation.json +2 -2
- package/json-schema/api/CursorMessage.json +2 -2
- package/json-schema/api/CursorPosition.json +2 -2
- package/json-schema/api/DataEvent.json +2 -2
- package/json-schema/api/DataEventType.json +2 -2
- package/json-schema/api/DataLoaderConfig.json +2 -2
- package/json-schema/api/DeduplicationStrategy.json +2 -2
- package/json-schema/api/DeleteDataRequest.json +2 -2
- package/json-schema/api/DeleteDataResponse.json +2 -2
- package/json-schema/api/DeleteFeedItemRequest.json +2 -2
- package/json-schema/api/DeleteFeedItemResponse.json +2 -2
- package/json-schema/api/DeleteFlowRequest.json +2 -2
- package/json-schema/api/DeleteFlowResponse.json +2 -2
- package/json-schema/api/DeleteManyDataRequest.json +2 -2
- package/json-schema/api/DeleteManyDataResponse.json +2 -2
- package/json-schema/api/DeleteManyRequest.json +2 -2
- package/json-schema/api/DeleteMetaItemRequest.json +2 -2
- package/json-schema/api/DeleteMetaItemResponse.json +2 -2
- package/json-schema/api/DeleteResponse.json +2 -2
- package/json-schema/api/DeleteViewRequest.json +2 -2
- package/json-schema/api/DeleteViewResponse.json +2 -2
- package/json-schema/api/DeviceRequestResponse.json +2 -2
- package/json-schema/api/DeviceTokenResponse.json +2 -2
- package/json-schema/api/DisablePackageRequest.json +2 -2
- package/json-schema/api/DisablePackageResponse.json +2 -2
- package/json-schema/api/Discovery.json +2 -2
- package/json-schema/api/DispatcherConfig.json +2 -2
- package/json-schema/api/DispatcherErrorCode.json +2 -2
- package/json-schema/api/DispatcherErrorResponse.json +2 -2
- package/json-schema/api/DispatcherRoute.json +2 -2
- package/json-schema/api/DocumentState.json +2 -2
- package/json-schema/api/ETag.json +2 -2
- package/json-schema/api/EditMessage.json +2 -2
- package/json-schema/api/EditOperation.json +2 -2
- package/json-schema/api/EditOperationType.json +2 -2
- package/json-schema/api/EmailPasswordConfigPublic.json +2 -2
- package/json-schema/api/EnablePackageRequest.json +2 -2
- package/json-schema/api/EnablePackageResponse.json +2 -2
- package/json-schema/api/EndpointRegistry.json +2 -2
- package/json-schema/api/EnhancedApiError.json +2 -2
- package/json-schema/api/ErrorCategory.json +2 -2
- package/json-schema/api/ErrorHandlingConfig.json +2 -2
- package/json-schema/api/ErrorMessage.json +2 -2
- package/json-schema/api/ErrorResponse.json +2 -2
- package/json-schema/api/EventFilter.json +2 -2
- package/json-schema/api/EventFilterCondition.json +2 -2
- package/json-schema/api/EventMessage.json +2 -2
- package/json-schema/api/EventPattern.json +2 -2
- package/json-schema/api/EventSubscription.json +2 -2
- package/json-schema/api/ExportFormat.json +2 -2
- package/json-schema/api/ExportImportTemplate.json +2 -2
- package/json-schema/api/ExportJobProgress.json +2 -2
- package/json-schema/api/ExportJobStatus.json +2 -2
- package/json-schema/api/ExportJobSummary.json +2 -2
- package/json-schema/api/ExportRequest.json +2 -2
- package/json-schema/api/FederationEntity.json +2 -2
- package/json-schema/api/FederationEntityKey.json +2 -2
- package/json-schema/api/FederationExternalField.json +2 -2
- package/json-schema/api/FederationGateway.json +2 -2
- package/json-schema/api/FederationProvides.json +2 -2
- package/json-schema/api/FederationRequires.json +2 -2
- package/json-schema/api/FeedApiErrorCode.json +2 -2
- package/json-schema/api/FeedItemPathParams.json +2 -2
- package/json-schema/api/FeedListFilterType.json +2 -2
- package/json-schema/api/FeedPathParams.json +2 -2
- package/json-schema/api/FeedUnsubscribeRequest.json +2 -2
- package/json-schema/api/FieldError.json +2 -2
- package/json-schema/api/FieldMappingEntry.json +2 -2
- package/json-schema/api/FileTypeValidation.json +2 -2
- package/json-schema/api/FileUploadResponse.json +2 -2
- package/json-schema/api/FilterOperator.json +2 -2
- package/json-schema/api/FindDataRequest.json +2 -2
- package/json-schema/api/FindDataResponse.json +2 -2
- package/json-schema/api/FlowSummary.json +2 -2
- package/json-schema/api/GeneratedApiDocumentation.json +2 -2
- package/json-schema/api/GeneratedEndpoint.json +2 -2
- package/json-schema/api/GetAnalyticsMetaRequest.json +2 -2
- package/json-schema/api/GetAuthConfigResponse.json +2 -2
- package/json-schema/api/GetChangelogRequest.json +2 -2
- package/json-schema/api/GetChangelogResponse.json +2 -2
- package/json-schema/api/GetDataRequest.json +2 -2
- package/json-schema/api/GetDataResponse.json +2 -2
- package/json-schema/api/GetDiscoveryRequest.json +2 -2
- package/json-schema/api/GetDiscoveryResponse.json +2 -2
- package/json-schema/api/GetEffectivePermissionsRequest.json +2 -2
- package/json-schema/api/GetEffectivePermissionsResponse.json +2 -2
- package/json-schema/api/GetExportJobDownloadRequest.json +2 -2
- package/json-schema/api/GetExportJobDownloadResponse.json +2 -2
- package/json-schema/api/GetFeedRequest.json +2 -2
- package/json-schema/api/GetFeedResponse.json +2 -2
- package/json-schema/api/GetFieldLabelsRequest.json +2 -2
- package/json-schema/api/GetFieldLabelsResponse.json +2 -2
- package/json-schema/api/GetFlowRequest.json +2 -2
- package/json-schema/api/GetInstalledPackageRequest.json +2 -2
- package/json-schema/api/GetInstalledPackageResponse.json +2 -2
- package/json-schema/api/GetLocalesRequest.json +2 -2
- package/json-schema/api/GetLocalesResponse.json +2 -2
- package/json-schema/api/GetMetaItemCachedRequest.json +2 -2
- package/json-schema/api/GetMetaItemCachedResponse.json +2 -2
- package/json-schema/api/GetMetaItemRequest.json +2 -2
- package/json-schema/api/GetMetaItemResponse.json +2 -2
- package/json-schema/api/GetMetaItemsRequest.json +2 -2
- package/json-schema/api/GetMetaItemsResponse.json +2 -2
- package/json-schema/api/GetMetaTypesRequest.json +2 -2
- package/json-schema/api/GetMetaTypesResponse.json +90 -2
- package/json-schema/api/GetNotificationPreferencesRequest.json +2 -2
- package/json-schema/api/GetNotificationPreferencesResponse.json +2 -2
- package/json-schema/api/GetObjectPermissionsRequest.json +2 -2
- package/json-schema/api/GetObjectPermissionsResponse.json +2 -2
- package/json-schema/api/GetPackageRequest.json +2 -2
- package/json-schema/api/GetPackageResponse.json +2 -2
- package/json-schema/api/GetPresenceRequest.json +2 -2
- package/json-schema/api/GetPresenceResponse.json +2 -2
- package/json-schema/api/GetPresignedUrlRequest.json +2 -2
- package/json-schema/api/GetRunRequest.json +2 -2
- package/json-schema/api/GetRunResponse.json +2 -2
- package/json-schema/api/GetTranslationsRequest.json +2 -2
- package/json-schema/api/GetTranslationsResponse.json +2 -2
- package/json-schema/api/GetUiViewRequest.json +2 -2
- package/json-schema/api/GetViewRequest.json +2 -2
- package/json-schema/api/GetWorkflowConfigRequest.json +2 -2
- package/json-schema/api/GetWorkflowStateRequest.json +2 -2
- package/json-schema/api/GetWorkflowStateResponse.json +2 -2
- package/json-schema/api/GraphQLDataLoaderConfig.json +2 -2
- package/json-schema/api/GraphQLDirectiveConfig.json +2 -2
- package/json-schema/api/GraphQLDirectiveLocation.json +2 -2
- package/json-schema/api/GraphQLMutationConfig.json +2 -2
- package/json-schema/api/GraphQLPersistedQuery.json +2 -2
- package/json-schema/api/GraphQLQueryAdapter.json +2 -2
- package/json-schema/api/GraphQLQueryComplexity.json +2 -2
- package/json-schema/api/GraphQLQueryDepthLimit.json +2 -2
- package/json-schema/api/GraphQLRateLimit.json +2 -2
- package/json-schema/api/GraphQLScalarType.json +2 -2
- package/json-schema/api/GraphQLSubscriptionConfig.json +2 -2
- package/json-schema/api/GraphQLTypeConfig.json +2 -2
- package/json-schema/api/HandlerStatus.json +2 -2
- package/json-schema/api/HttpFindQueryParams.json +2 -2
- package/json-schema/api/HttpMethod.json +2 -2
- package/json-schema/api/HttpStatusCode.json +2 -2
- package/json-schema/api/IdRequest.json +2 -2
- package/json-schema/api/ImportValidationConfig.json +2 -2
- package/json-schema/api/ImportValidationMode.json +2 -2
- package/json-schema/api/ImportValidationResult.json +2 -2
- package/json-schema/api/InitiateChunkedUploadRequest.json +2 -2
- package/json-schema/api/InitiateChunkedUploadResponse.json +2 -2
- package/json-schema/api/InstallPackageRequest.json +2 -2
- package/json-schema/api/InstallPackageResponse.json +2 -2
- package/json-schema/api/ListExportJobsRequest.json +2 -2
- package/json-schema/api/ListExportJobsResponse.json +2 -2
- package/json-schema/api/ListFlowsRequest.json +2 -2
- package/json-schema/api/ListFlowsResponse.json +2 -2
- package/json-schema/api/ListInstalledPackagesRequest.json +2 -2
- package/json-schema/api/ListInstalledPackagesResponse.json +2 -2
- package/json-schema/api/ListNotificationsRequest.json +2 -2
- package/json-schema/api/ListNotificationsResponse.json +2 -2
- package/json-schema/api/ListPackagesRequest.json +2 -2
- package/json-schema/api/ListPackagesResponse.json +2 -2
- package/json-schema/api/ListRecordResponse.json +2 -2
- package/json-schema/api/ListRunsRequest.json +2 -2
- package/json-schema/api/ListRunsResponse.json +2 -2
- package/json-schema/api/ListViewsRequest.json +2 -2
- package/json-schema/api/LoginRequest.json +2 -2
- package/json-schema/api/LoginType.json +2 -2
- package/json-schema/api/MarkAllNotificationsReadRequest.json +2 -2
- package/json-schema/api/MarkAllNotificationsReadResponse.json +2 -2
- package/json-schema/api/MarkNotificationsReadRequest.json +2 -2
- package/json-schema/api/MarkNotificationsReadResponse.json +2 -2
- package/json-schema/api/MetadataBulkRegisterRequest.json +2 -2
- package/json-schema/api/MetadataBulkResponse.json +2 -2
- package/json-schema/api/MetadataBulkUnregisterRequest.json +2 -2
- package/json-schema/api/MetadataCacheRequest.json +2 -2
- package/json-schema/api/MetadataCacheResponse.json +2 -2
- package/json-schema/api/MetadataDeleteResponse.json +2 -2
- package/json-schema/api/MetadataDependenciesResponse.json +2 -2
- package/json-schema/api/MetadataDependentsResponse.json +2 -2
- package/json-schema/api/MetadataEffectiveResponse.json +2 -2
- package/json-schema/api/MetadataEndpointsConfig.json +2 -2
- package/json-schema/api/MetadataEvent.json +2 -2
- package/json-schema/api/MetadataEventType.json +2 -2
- package/json-schema/api/MetadataExistsResponse.json +2 -2
- package/json-schema/api/MetadataExportRequest.json +2 -2
- package/json-schema/api/MetadataExportResponse.json +2 -2
- package/json-schema/api/MetadataImportRequest.json +2 -2
- package/json-schema/api/MetadataImportResponse.json +2 -2
- package/json-schema/api/MetadataItemResponse.json +2 -2
- package/json-schema/api/MetadataListResponse.json +2 -2
- package/json-schema/api/MetadataNamesResponse.json +2 -2
- package/json-schema/api/MetadataOverlayResponse.json +2 -2
- package/json-schema/api/MetadataOverlaySaveRequest.json +2 -2
- package/json-schema/api/MetadataQueryRequest.json +2 -2
- package/json-schema/api/MetadataQueryResponse.json +2 -2
- package/json-schema/api/MetadataRegisterRequest.json +2 -2
- package/json-schema/api/MetadataTypeInfoResponse.json +2 -2
- package/json-schema/api/MetadataTypesResponse.json +2 -2
- package/json-schema/api/MetadataValidateRequest.json +2 -2
- package/json-schema/api/MetadataValidateResponse.json +2 -2
- package/json-schema/api/ModificationResult.json +2 -2
- package/json-schema/api/Notification.json +2 -2
- package/json-schema/api/NotificationPreferences.json +2 -2
- package/json-schema/api/ODataConfig.json +2 -2
- package/json-schema/api/ODataError.json +2 -2
- package/json-schema/api/ODataFilterFunction.json +2 -2
- package/json-schema/api/ODataFilterOperator.json +2 -2
- package/json-schema/api/ODataMetadata.json +2 -2
- package/json-schema/api/ODataQuery.json +2 -2
- package/json-schema/api/ODataQueryAdapter.json +2 -2
- package/json-schema/api/ODataResponse.json +2 -2
- package/json-schema/api/ObjectQLReference.json +2 -2
- package/json-schema/api/OpenApi31Extensions.json +2 -2
- package/json-schema/api/OpenApiGenerationConfig.json +2 -2
- package/json-schema/api/OpenApiSecurityScheme.json +2 -2
- package/json-schema/api/OpenApiServer.json +2 -2
- package/json-schema/api/OpenApiSpec.json +2 -2
- package/json-schema/api/OperatorMapping.json +2 -2
- package/json-schema/api/PackageApiErrorCode.json +2 -2
- package/json-schema/api/PackageInstallRequest.json +2 -2
- package/json-schema/api/PackageInstallResponse.json +2 -2
- package/json-schema/api/PackagePathParams.json +2 -2
- package/json-schema/api/PackageRollbackRequest.json +2 -2
- package/json-schema/api/PackageRollbackResponse.json +2 -2
- package/json-schema/api/PackageUpgradeRequest.json +2 -2
- package/json-schema/api/PackageUpgradeResponse.json +2 -2
- package/json-schema/api/PinFeedItemRequest.json +2 -2
- package/json-schema/api/PinFeedItemResponse.json +2 -2
- package/json-schema/api/PingMessage.json +2 -2
- package/json-schema/api/PongMessage.json +2 -2
- package/json-schema/api/PresenceMessage.json +2 -2
- package/json-schema/api/PresenceState.json +2 -2
- package/json-schema/api/PresenceStatus.json +2 -2
- package/json-schema/api/PresenceUpdate.json +2 -2
- package/json-schema/api/PresignedUrlResponse.json +2 -2
- package/json-schema/api/QueryAdapterConfig.json +2 -2
- package/json-schema/api/QueryAdapterTarget.json +2 -2
- package/json-schema/api/QueryOptimizationConfig.json +2 -2
- package/json-schema/api/RealtimeConfig.json +2 -2
- package/json-schema/api/RealtimeConnectRequest.json +2 -2
- package/json-schema/api/RealtimeConnectResponse.json +2 -2
- package/json-schema/api/RealtimeDisconnectRequest.json +2 -2
- package/json-schema/api/RealtimeDisconnectResponse.json +2 -2
- package/json-schema/api/RealtimeEvent.json +2 -2
- package/json-schema/api/RealtimeEventType.json +2 -2
- package/json-schema/api/RealtimePresence.json +2 -2
- package/json-schema/api/RealtimeRecordAction.json +2 -2
- package/json-schema/api/RealtimeSubscribeRequest.json +2 -2
- package/json-schema/api/RealtimeSubscribeResponse.json +2 -2
- package/json-schema/api/RealtimeUnsubscribeRequest.json +2 -2
- package/json-schema/api/RealtimeUnsubscribeResponse.json +2 -2
- package/json-schema/api/RecordData.json +2 -2
- package/json-schema/api/RefreshTokenRequest.json +2 -2
- package/json-schema/api/RegisterDeviceRequest.json +2 -2
- package/json-schema/api/RegisterDeviceResponse.json +2 -2
- package/json-schema/api/RegisterRequest.json +2 -2
- package/json-schema/api/RemoveReactionRequest.json +2 -2
- package/json-schema/api/RemoveReactionResponse.json +2 -2
- package/json-schema/api/RequestValidationConfig.json +2 -2
- package/json-schema/api/ResolveDependenciesRequest.json +2 -2
- package/json-schema/api/ResolveDependenciesResponse.json +2 -2
- package/json-schema/api/ResponseEnvelopeConfig.json +2 -2
- package/json-schema/api/RestApiConfig.json +2 -2
- package/json-schema/api/RestApiEndpoint.json +2 -2
- package/json-schema/api/RestApiPluginConfig.json +2 -2
- package/json-schema/api/RestApiRouteCategory.json +2 -2
- package/json-schema/api/RestApiRouteRegistration.json +2 -2
- package/json-schema/api/RestQueryAdapter.json +2 -2
- package/json-schema/api/RestServerConfig.json +2 -2
- package/json-schema/api/RetryStrategy.json +2 -2
- package/json-schema/api/RouteCategory.json +2 -2
- package/json-schema/api/RouteCoverageEntry.json +2 -2
- package/json-schema/api/RouteCoverageReport.json +2 -2
- package/json-schema/api/RouteDefinition.json +2 -2
- package/json-schema/api/RouteGenerationConfig.json +2 -2
- package/json-schema/api/RouteHealthEntry.json +2 -2
- package/json-schema/api/RouteHealthReport.json +2 -2
- package/json-schema/api/RouterConfig.json +2 -2
- package/json-schema/api/SaveMetaItemRequest.json +2 -2
- package/json-schema/api/SaveMetaItemResponse.json +2 -2
- package/json-schema/api/ScheduleExportResponse.json +2 -2
- package/json-schema/api/SchemaDefinition.json +2 -2
- package/json-schema/api/SearchFeedRequest.json +2 -2
- package/json-schema/api/SearchFeedResponse.json +2 -2
- package/json-schema/api/ServiceInfo.json +2 -2
- package/json-schema/api/ServiceStatus.json +2 -2
- package/json-schema/api/Session.json +2 -2
- package/json-schema/api/SessionResponse.json +2 -2
- package/json-schema/api/SessionUser.json +2 -2
- package/json-schema/api/SetPresenceRequest.json +2 -2
- package/json-schema/api/SetPresenceResponse.json +2 -2
- package/json-schema/api/SimpleCursorPosition.json +2 -2
- package/json-schema/api/SimplePresenceState.json +2 -2
- package/json-schema/api/SingleRecordResponse.json +2 -2
- package/json-schema/api/StandardErrorCode.json +2 -2
- package/json-schema/api/StarFeedItemRequest.json +2 -2
- package/json-schema/api/StarFeedItemResponse.json +2 -2
- package/json-schema/api/SubgraphConfig.json +2 -2
- package/json-schema/api/SubscribeMessage.json +2 -2
- package/json-schema/api/SubscribeRequest.json +2 -2
- package/json-schema/api/SubscribeResponse.json +2 -2
- package/json-schema/api/Subscription.json +2 -2
- package/json-schema/api/SubscriptionEvent.json +2 -2
- package/json-schema/api/ToggleFlowRequest.json +2 -2
- package/json-schema/api/ToggleFlowResponse.json +2 -2
- package/json-schema/api/TransportProtocol.json +2 -2
- package/json-schema/api/TriggerFlowRequest.json +2 -2
- package/json-schema/api/TriggerFlowResponse.json +2 -2
- package/json-schema/api/UninstallPackageApiRequest.json +2 -2
- package/json-schema/api/UninstallPackageApiResponse.json +2 -2
- package/json-schema/api/UninstallPackageRequest.json +2 -2
- package/json-schema/api/UninstallPackageResponse.json +2 -2
- package/json-schema/api/UnpinFeedItemRequest.json +2 -2
- package/json-schema/api/UnpinFeedItemResponse.json +2 -2
- package/json-schema/api/UnregisterDeviceRequest.json +2 -2
- package/json-schema/api/UnregisterDeviceResponse.json +2 -2
- package/json-schema/api/UnstarFeedItemRequest.json +2 -2
- package/json-schema/api/UnstarFeedItemResponse.json +2 -2
- package/json-schema/api/UnsubscribeMessage.json +2 -2
- package/json-schema/api/UnsubscribeRequest.json +2 -2
- package/json-schema/api/UnsubscribeResponse.json +2 -2
- package/json-schema/api/UpdateDataRequest.json +2 -2
- package/json-schema/api/UpdateDataResponse.json +2 -2
- package/json-schema/api/UpdateFeedItemRequest.json +2 -2
- package/json-schema/api/UpdateFeedItemResponse.json +2 -2
- package/json-schema/api/UpdateManyDataRequest.json +2 -2
- package/json-schema/api/UpdateManyDataResponse.json +2 -2
- package/json-schema/api/UpdateManyRequest.json +2 -2
- package/json-schema/api/UpdateNotificationPreferencesRequest.json +2 -2
- package/json-schema/api/UpdateNotificationPreferencesResponse.json +2 -2
- package/json-schema/api/UpdateRequest.json +2 -2
- package/json-schema/api/UploadArtifactRequest.json +2 -2
- package/json-schema/api/UploadArtifactResponse.json +2 -2
- package/json-schema/api/UploadChunkRequest.json +2 -2
- package/json-schema/api/UploadChunkResponse.json +2 -2
- package/json-schema/api/UploadProgress.json +2 -2
- package/json-schema/api/UserProfileResponse.json +2 -2
- package/json-schema/api/ValidationMode.json +2 -2
- package/json-schema/api/VersionDefinition.json +2 -2
- package/json-schema/api/VersionNegotiationResponse.json +2 -2
- package/json-schema/api/VersionStatus.json +2 -2
- package/json-schema/api/VersioningConfig.json +2 -2
- package/json-schema/api/VersioningStrategy.json +2 -2
- package/json-schema/api/WebSocketConfig.json +2 -2
- package/json-schema/api/WebSocketEvent.json +2 -2
- package/json-schema/api/WebSocketMessage.json +2 -2
- package/json-schema/api/WebSocketMessageType.json +2 -2
- package/json-schema/api/WebSocketPresenceStatus.json +2 -2
- package/json-schema/api/WebSocketServerConfig.json +2 -2
- package/json-schema/api/WebhookConfig.json +2 -2
- package/json-schema/api/WebhookEvent.json +2 -2
- package/json-schema/api/WellKnownCapabilities.json +2 -2
- package/json-schema/api/WorkflowApproveRequest.json +2 -2
- package/json-schema/api/WorkflowApproveResponse.json +2 -2
- package/json-schema/api/WorkflowRejectRequest.json +2 -2
- package/json-schema/api/WorkflowRejectResponse.json +2 -2
- package/json-schema/api/WorkflowState.json +2 -2
- package/json-schema/api/WorkflowTransitionRequest.json +2 -2
- package/json-schema/api/WorkflowTransitionResponse.json +2 -2
- package/json-schema/automation/ActionRef.json +2 -2
- package/json-schema/automation/ApprovalAction.json +2 -2
- package/json-schema/automation/ApprovalActionType.json +2 -2
- package/json-schema/automation/ApproverType.json +2 -2
- package/json-schema/automation/AuthField.json +2 -2
- package/json-schema/automation/Authentication.json +2 -2
- package/json-schema/automation/AuthenticationType.json +2 -2
- package/json-schema/automation/BpmnDiagnostic.json +2 -2
- package/json-schema/automation/BpmnElementMapping.json +2 -2
- package/json-schema/automation/BpmnExportOptions.json +2 -2
- package/json-schema/automation/BpmnImportOptions.json +2 -2
- package/json-schema/automation/BpmnInteropResult.json +2 -2
- package/json-schema/automation/BpmnUnmappedStrategy.json +2 -2
- package/json-schema/automation/BpmnVersion.json +2 -2
- package/json-schema/automation/Checkpoint.json +2 -2
- package/json-schema/automation/ConcurrencyPolicy.json +2 -2
- package/json-schema/automation/ConflictResolution.json +2 -2
- package/json-schema/automation/Connector.json +2 -2
- package/json-schema/automation/ConnectorActionRef.json +2 -2
- package/json-schema/automation/ConnectorCategory.json +2 -2
- package/json-schema/automation/ConnectorInstance.json +2 -2
- package/json-schema/automation/ConnectorOperation.json +2 -2
- package/json-schema/automation/ConnectorTrigger.json +2 -2
- package/json-schema/automation/CustomScriptAction.json +2 -2
- package/json-schema/automation/DataSourceConfig.json +2 -2
- package/json-schema/automation/ETLDestination.json +2 -2
- package/json-schema/automation/ETLEndpointType.json +2 -2
- package/json-schema/automation/ETLPipelineRun.json +2 -2
- package/json-schema/automation/ETLRunStatus.json +2 -2
- package/json-schema/automation/ETLSource.json +2 -2
- package/json-schema/automation/ETLSyncMode.json +2 -2
- package/json-schema/automation/ETLTransformation.json +2 -2
- package/json-schema/automation/ETLTransformationType.json +2 -2
- package/json-schema/automation/EmailAlertAction.json +2 -2
- package/json-schema/automation/Event.json +2 -2
- package/json-schema/automation/ExecutionError.json +2 -2
- package/json-schema/automation/ExecutionErrorSeverity.json +2 -2
- package/json-schema/automation/ExecutionLog.json +2 -2
- package/json-schema/automation/ExecutionStatus.json +2 -2
- package/json-schema/automation/ExecutionStepLog.json +2 -2
- package/json-schema/automation/FieldUpdateAction.json +2 -2
- package/json-schema/automation/FlowNode.json +2 -2
- package/json-schema/automation/FlowNodeAction.json +2 -2
- package/json-schema/automation/FlowVariable.json +2 -2
- package/json-schema/automation/GuardRef.json +2 -2
- package/json-schema/automation/HttpCallAction.json +2 -2
- package/json-schema/automation/NodeExecutorDescriptor.json +2 -2
- package/json-schema/automation/OAuth2Config.json +2 -2
- package/json-schema/automation/OperationParameter.json +2 -2
- package/json-schema/automation/OperationType.json +2 -2
- package/json-schema/automation/PushNotificationAction.json +2 -2
- package/json-schema/automation/StateMachine.json +2 -2
- package/json-schema/automation/StateNode.json +2 -2
- package/json-schema/automation/SyncDirection.json +2 -2
- package/json-schema/automation/SyncExecutionResult.json +2 -2
- package/json-schema/automation/SyncExecutionStatus.json +2 -2
- package/json-schema/automation/SyncMode.json +2 -2
- package/json-schema/automation/Transition.json +2 -2
- package/json-schema/automation/WaitEventType.json +2 -2
- package/json-schema/automation/WaitExecutorConfig.json +2 -2
- package/json-schema/automation/WaitResumePayload.json +2 -2
- package/json-schema/automation/WaitTimeoutBehavior.json +2 -2
- package/json-schema/automation/Webhook.json +2 -2
- package/json-schema/automation/WebhookReceiver.json +2 -2
- package/json-schema/automation/WebhookTriggerType.json +2 -2
- package/json-schema/automation/WorkflowTriggerType.json +2 -2
- package/json-schema/cloud/AnalyticsTimeRange.json +2 -2
- package/json-schema/cloud/AppDiscoveryRequest.json +2 -2
- package/json-schema/cloud/AppDiscoveryResponse.json +2 -2
- package/json-schema/cloud/AppSubscription.json +2 -2
- package/json-schema/cloud/ArtifactDownloadResponse.json +2 -2
- package/json-schema/cloud/ArtifactReference.json +2 -2
- package/json-schema/cloud/CreateListingRequest.json +2 -2
- package/json-schema/cloud/CreatePackageRequest.json +48 -2
- package/json-schema/cloud/CreatePackageVersionRequest.json +2 -2
- package/json-schema/cloud/CuratedCollection.json +2 -2
- package/json-schema/cloud/Environment.json +2 -2
- package/json-schema/cloud/EnvironmentCredential.json +2 -2
- package/json-schema/cloud/EnvironmentCredentialStatus.json +2 -2
- package/json-schema/cloud/EnvironmentDriver.json +2 -2
- package/json-schema/cloud/EnvironmentMember.json +2 -2
- package/json-schema/cloud/EnvironmentPackageInstallation.json +2 -2
- package/json-schema/cloud/EnvironmentPackageStatus.json +2 -2
- package/json-schema/cloud/EnvironmentRole.json +2 -2
- package/json-schema/cloud/EnvironmentStatus.json +2 -2
- package/json-schema/cloud/EnvironmentType.json +2 -2
- package/json-schema/cloud/EnvironmentVisibility.json +2 -2
- package/json-schema/cloud/FeaturedListing.json +2 -2
- package/json-schema/cloud/InstallPackageToEnvironmentRequest.json +2 -2
- package/json-schema/cloud/InstalledAppSummary.json +2 -2
- package/json-schema/cloud/ListEnvironmentPackagesResponse.json +2 -2
- package/json-schema/cloud/ListInstalledAppsRequest.json +2 -2
- package/json-schema/cloud/ListInstalledAppsResponse.json +2 -2
- package/json-schema/cloud/ListReviewsRequest.json +2 -2
- package/json-schema/cloud/ListReviewsResponse.json +2 -2
- package/json-schema/cloud/ListingActionRequest.json +2 -2
- package/json-schema/cloud/ListingStatus.json +2 -2
- package/json-schema/cloud/MarketplaceCategory.json +2 -2
- package/json-schema/cloud/MarketplaceHealthMetrics.json +2 -2
- package/json-schema/cloud/MarketplaceInstallRequest.json +2 -2
- package/json-schema/cloud/MarketplaceInstallResponse.json +2 -2
- package/json-schema/cloud/MarketplaceListing.json +48 -2
- package/json-schema/cloud/MarketplaceSearchRequest.json +2 -2
- package/json-schema/cloud/MarketplaceSearchResponse.json +48 -2
- package/json-schema/cloud/Package.json +48 -2
- package/json-schema/cloud/PackageCategory.json +2 -2
- package/json-schema/cloud/PackageDependency.json +2 -2
- package/json-schema/cloud/PackageInstallation.json +2 -2
- package/json-schema/cloud/PackageInstallationStatus.json +2 -2
- package/json-schema/cloud/PackageLocale.json +8 -0
- package/json-schema/cloud/PackageManifest.json +2 -2
- package/json-schema/cloud/PackagePublisher.json +2 -2
- package/json-schema/cloud/PackageSubmission.json +2 -2
- package/json-schema/cloud/PackageTranslation.json +40 -0
- package/json-schema/cloud/PackageTranslations.json +49 -0
- package/json-schema/cloud/PackageVersion.json +2 -2
- package/json-schema/cloud/PackageVersionStatus.json +2 -2
- package/json-schema/cloud/PackageVisibility.json +2 -2
- package/json-schema/cloud/PolicyAction.json +2 -2
- package/json-schema/cloud/PolicyViolationType.json +2 -2
- package/json-schema/cloud/PricingModel.json +2 -2
- package/json-schema/cloud/ProvisionEnvironmentRequest.json +2 -2
- package/json-schema/cloud/ProvisionEnvironmentResponse.json +2 -2
- package/json-schema/cloud/ProvisionOrganizationRequest.json +2 -2
- package/json-schema/cloud/ProvisionOrganizationResponse.json +2 -2
- package/json-schema/cloud/ProvisionTenantRequest.json +2 -2
- package/json-schema/cloud/ProvisionTenantResponse.json +2 -2
- package/json-schema/cloud/PublishPackageVersionRequest.json +2 -2
- package/json-schema/cloud/Publisher.json +2 -2
- package/json-schema/cloud/PublisherProfile.json +2 -2
- package/json-schema/cloud/PublisherVerification.json +2 -2
- package/json-schema/cloud/PublishingAnalyticsRequest.json +2 -2
- package/json-schema/cloud/PublishingAnalyticsResponse.json +2 -2
- package/json-schema/cloud/RecommendationReason.json +2 -2
- package/json-schema/cloud/RecommendedApp.json +2 -2
- package/json-schema/cloud/RejectionReason.json +2 -2
- package/json-schema/cloud/ReleaseChannel.json +2 -2
- package/json-schema/cloud/ReviewCriterion.json +2 -2
- package/json-schema/cloud/ReviewDecision.json +2 -2
- package/json-schema/cloud/ReviewModerationStatus.json +2 -2
- package/json-schema/cloud/RollbackEnvironmentPackageRequest.json +2 -2
- package/json-schema/cloud/Sha256Digest.json +2 -2
- package/json-schema/cloud/SubmissionReview.json +2 -2
- package/json-schema/cloud/SubmitReviewRequest.json +2 -2
- package/json-schema/cloud/SubscriptionStatus.json +2 -2
- package/json-schema/cloud/TemplateManifest.json +48 -2
- package/json-schema/cloud/TenantContext.json +2 -2
- package/json-schema/cloud/TenantDatabase.json +2 -2
- package/json-schema/cloud/TenantDatabaseStatus.json +2 -2
- package/json-schema/cloud/TenantIdentificationSource.json +2 -2
- package/json-schema/cloud/TenantPlan.json +2 -2
- package/json-schema/cloud/TenantRoutingConfig.json +2 -2
- package/json-schema/cloud/TimeSeriesPoint.json +2 -2
- package/json-schema/cloud/TrendingListing.json +2 -2
- package/json-schema/cloud/UpdateListingRequest.json +2 -2
- package/json-schema/cloud/UpdatePackageRequest.json +48 -2
- package/json-schema/cloud/UpdatePackageVersionRequest.json +2 -2
- package/json-schema/cloud/UpgradeEnvironmentPackageRequest.json +2 -2
- package/json-schema/cloud/UserReview.json +2 -2
- package/json-schema/cloud/VersionRelease.json +2 -2
- package/json-schema/data/Address.json +2 -2
- package/json-schema/data/AggregationFunction.json +2 -2
- package/json-schema/data/AggregationMetricType.json +2 -2
- package/json-schema/data/AggregationNode.json +2 -2
- package/json-schema/data/AggregationPipeline.json +2 -2
- package/json-schema/data/AggregationStage.json +2 -2
- package/json-schema/data/AnalyticsQuery.json +2 -2
- package/json-schema/data/ApiMethod.json +2 -2
- package/json-schema/data/AsyncValidation.json +2 -2
- package/json-schema/data/BaseEngineOptions.json +23 -2
- package/json-schema/data/CDCConfig.json +2 -2
- package/json-schema/data/ComputedFieldCache.json +2 -2
- package/json-schema/data/ConsistencyLevel.json +2 -2
- package/json-schema/data/Cube.json +2 -2
- package/json-schema/data/CubeJoin.json +2 -2
- package/json-schema/data/CurrencyConfig.json +2 -2
- package/json-schema/data/CurrencyValue.json +2 -2
- package/json-schema/data/CustomValidator.json +2 -2
- package/json-schema/data/DataEngineAggregateOptions.json +23 -2
- package/json-schema/data/DataEngineAggregateRequest.json +23 -2
- package/json-schema/data/DataEngineBatchRequest.json +149 -2
- package/json-schema/data/DataEngineCountOptions.json +23 -2
- package/json-schema/data/DataEngineCountRequest.json +23 -2
- package/json-schema/data/DataEngineDeleteOptions.json +23 -2
- package/json-schema/data/DataEngineDeleteRequest.json +23 -2
- package/json-schema/data/DataEngineExecuteRequest.json +2 -2
- package/json-schema/data/DataEngineFilter.json +2 -2
- package/json-schema/data/DataEngineFindOneRequest.json +23 -2
- package/json-schema/data/DataEngineFindRequest.json +23 -2
- package/json-schema/data/DataEngineInsertOptions.json +23 -2
- package/json-schema/data/DataEngineInsertRequest.json +23 -2
- package/json-schema/data/DataEngineQueryOptions.json +23 -2
- package/json-schema/data/DataEngineRequest.json +296 -2
- package/json-schema/data/DataEngineSort.json +2 -2
- package/json-schema/data/DataEngineUpdateOptions.json +23 -2
- package/json-schema/data/DataEngineUpdateRequest.json +23 -2
- package/json-schema/data/DataEngineVectorFindRequest.json +2 -2
- package/json-schema/data/DataQualityRules.json +2 -2
- package/json-schema/data/DataTypeMapping.json +2 -2
- package/json-schema/data/Dataset.json +2 -2
- package/json-schema/data/DatasetLoadResult.json +2 -2
- package/json-schema/data/DatasetMode.json +2 -2
- package/json-schema/data/Datasource.json +2 -2
- package/json-schema/data/DatasourceCapabilities.json +2 -2
- package/json-schema/data/DateGranularity.json +2 -2
- package/json-schema/data/DateMacroPlaceholder.json +2 -2
- package/json-schema/data/DateMacroToken.json +2 -2
- package/json-schema/data/Dimension.json +2 -2
- package/json-schema/data/DimensionType.json +2 -2
- package/json-schema/data/Document.json +2 -2
- package/json-schema/data/DocumentTemplate.json +2 -2
- package/json-schema/data/DocumentValidationSchema.json +2 -2
- package/json-schema/data/DocumentVersion.json +2 -2
- package/json-schema/data/DriverCapabilities.json +2 -2
- package/json-schema/data/DriverConfig.json +2 -2
- package/json-schema/data/DriverDefinition.json +2 -2
- package/json-schema/data/DriverOptions.json +2 -2
- package/json-schema/data/DriverType.json +2 -2
- package/json-schema/data/ESignatureConfig.json +2 -2
- package/json-schema/data/EngineAggregateOptions.json +23 -2
- package/json-schema/data/EngineCountOptions.json +23 -2
- package/json-schema/data/EngineDeleteOptions.json +23 -2
- package/json-schema/data/EngineQueryOptions.json +23 -2
- package/json-schema/data/EngineUpdateOptions.json +23 -2
- package/json-schema/data/EqualityOperator.json +2 -2
- package/json-schema/data/ExpressionBody.json +2 -2
- package/json-schema/data/ExternalDataSource.json +2 -2
- package/json-schema/data/FeedActor.json +2 -2
- package/json-schema/data/FeedFilterMode.json +2 -2
- package/json-schema/data/FeedItem.json +2 -2
- package/json-schema/data/FeedItemType.json +2 -2
- package/json-schema/data/FeedVisibility.json +2 -2
- package/json-schema/data/FieldChangeEntry.json +2 -2
- package/json-schema/data/FieldMapping.json +2 -2
- package/json-schema/data/FieldNode.json +2 -2
- package/json-schema/data/FieldReference.json +2 -2
- package/json-schema/data/FieldType.json +4 -2
- package/json-schema/data/FileAttachmentConfig.json +2 -2
- package/json-schema/data/FilterCondition.json +2 -2
- package/json-schema/data/FormatValidation.json +2 -2
- package/json-schema/data/FullTextSearch.json +2 -2
- package/json-schema/data/GroupByNode.json +2 -2
- package/json-schema/data/HookBody.json +2 -2
- package/json-schema/data/HookBodyCapability.json +2 -2
- package/json-schema/data/HookContext.json +2 -2
- package/json-schema/data/HookEvent.json +2 -2
- package/json-schema/data/Index.json +2 -2
- package/json-schema/data/JSONValidation.json +2 -2
- package/json-schema/data/JoinNode.json +2 -2
- package/json-schema/data/JoinStrategy.json +2 -2
- package/json-schema/data/JoinType.json +2 -2
- package/json-schema/data/LocationCoordinates.json +2 -2
- package/json-schema/data/Mapping.json +2 -2
- package/json-schema/data/Mention.json +2 -2
- package/json-schema/data/Metric.json +2 -2
- package/json-schema/data/NoSQLDataTypeMapping.json +2 -2
- package/json-schema/data/NoSQLDatabaseType.json +2 -2
- package/json-schema/data/NoSQLDriverConfig.json +2 -2
- package/json-schema/data/NoSQLIndex.json +2 -2
- package/json-schema/data/NoSQLIndexType.json +2 -2
- package/json-schema/data/NoSQLOperationType.json +2 -2
- package/json-schema/data/NoSQLQueryOptions.json +2 -2
- package/json-schema/data/NoSQLTransactionOptions.json +2 -2
- package/json-schema/data/NotificationChannel.json +2 -2
- package/json-schema/data/ObjectCapabilities.json +2 -2
- package/json-schema/data/ObjectDependencyGraph.json +2 -2
- package/json-schema/data/ObjectDependencyNode.json +2 -2
- package/json-schema/data/ObjectOwnershipEnum.json +2 -2
- package/json-schema/data/PartitioningConfig.json +2 -2
- package/json-schema/data/PoolConfig.json +2 -2
- package/json-schema/data/Query.json +2 -2
- package/json-schema/data/QueryFilter.json +2 -2
- package/json-schema/data/Reaction.json +2 -2
- package/json-schema/data/RecordSubscription.json +2 -2
- package/json-schema/data/ReferenceResolution.json +2 -2
- package/json-schema/data/ReferenceResolutionError.json +2 -2
- package/json-schema/data/ReplicationConfig.json +2 -2
- package/json-schema/data/SQLDialect.json +2 -2
- package/json-schema/data/SQLDriverConfig.json +2 -2
- package/json-schema/data/SSLConfig.json +2 -2
- package/json-schema/data/ScriptBody.json +2 -2
- package/json-schema/data/SearchConfig.json +2 -2
- package/json-schema/data/SeedLoaderConfig.json +2 -2
- package/json-schema/data/SeedLoaderRequest.json +2 -2
- package/json-schema/data/SeedLoaderResult.json +2 -2
- package/json-schema/data/SelectOption.json +2 -2
- package/json-schema/data/SetOperator.json +2 -2
- package/json-schema/data/ShardingConfig.json +2 -2
- package/json-schema/data/SoftDeleteConfig.json +2 -2
- package/json-schema/data/SortNode.json +2 -2
- package/json-schema/data/SpecialOperator.json +2 -2
- package/json-schema/data/StateMachineValidation.json +2 -2
- package/json-schema/data/StringOperator.json +2 -2
- package/json-schema/data/SubscriptionEventType.json +2 -2
- package/json-schema/data/TenancyConfig.json +2 -2
- package/json-schema/data/TenantDatabaseLifecycle.json +2 -2
- package/json-schema/data/TenantResolverStrategy.json +2 -2
- package/json-schema/data/TimeUpdateInterval.json +2 -2
- package/json-schema/data/TransformType.json +2 -2
- package/json-schema/data/TursoGroup.json +2 -2
- package/json-schema/data/TursoMultiTenantConfig.json +2 -2
- package/json-schema/data/VectorConfig.json +2 -2
- package/json-schema/data/VersioningConfig.json +2 -2
- package/json-schema/data/WindowFunction.json +2 -2
- package/json-schema/data/WindowFunctionNode.json +2 -2
- package/json-schema/data/WindowSpec.json +2 -2
- package/json-schema/identity/Account.json +2 -2
- package/json-schema/identity/ApiKey.json +2 -2
- package/json-schema/identity/Invitation.json +2 -2
- package/json-schema/identity/InvitationStatus.json +2 -2
- package/json-schema/identity/Member.json +2 -2
- package/json-schema/identity/Organization.json +2 -2
- package/json-schema/identity/Role.json +2 -2
- package/json-schema/identity/SCIMAddress.json +2 -2
- package/json-schema/identity/SCIMBulkOperation.json +2 -2
- package/json-schema/identity/SCIMBulkRequest.json +2 -2
- package/json-schema/identity/SCIMBulkResponse.json +2 -2
- package/json-schema/identity/SCIMBulkResponseOperation.json +2 -2
- package/json-schema/identity/SCIMEmail.json +2 -2
- package/json-schema/identity/SCIMEnterpriseUser.json +2 -2
- package/json-schema/identity/SCIMError.json +2 -2
- package/json-schema/identity/SCIMGroup.json +2 -2
- package/json-schema/identity/SCIMGroupReference.json +2 -2
- package/json-schema/identity/SCIMListResponse.json +2 -2
- package/json-schema/identity/SCIMMemberReference.json +2 -2
- package/json-schema/identity/SCIMMeta.json +2 -2
- package/json-schema/identity/SCIMName.json +2 -2
- package/json-schema/identity/SCIMPatchOperation.json +2 -2
- package/json-schema/identity/SCIMPatchRequest.json +2 -2
- package/json-schema/identity/SCIMPhoneNumber.json +2 -2
- package/json-schema/identity/SCIMUser.json +2 -2
- package/json-schema/identity/Session.json +2 -2
- package/json-schema/identity/User.json +2 -2
- package/json-schema/identity/VerificationToken.json +2 -2
- package/json-schema/integration/AckMode.json +2 -2
- package/json-schema/integration/ApiVersionConfig.json +2 -2
- package/json-schema/integration/BuildConfig.json +2 -2
- package/json-schema/integration/CdcConfig.json +2 -2
- package/json-schema/integration/CircuitBreakerConfig.json +2 -2
- package/json-schema/integration/ConflictResolution.json +2 -2
- package/json-schema/integration/ConnectorAction.json +2 -2
- package/json-schema/integration/ConnectorHealth.json +2 -2
- package/json-schema/integration/ConnectorStatus.json +2 -2
- package/json-schema/integration/ConnectorTrigger.json +2 -2
- package/json-schema/integration/ConnectorType.json +2 -2
- package/json-schema/integration/ConsumerConfig.json +2 -2
- package/json-schema/integration/DatabasePoolConfig.json +2 -2
- package/json-schema/integration/DatabaseProvider.json +2 -2
- package/json-schema/integration/DeliveryGuarantee.json +2 -2
- package/json-schema/integration/DeploymentConfig.json +2 -2
- package/json-schema/integration/DlqConfig.json +2 -2
- package/json-schema/integration/DomainConfig.json +2 -2
- package/json-schema/integration/EdgeFunctionConfig.json +2 -2
- package/json-schema/integration/EnvironmentVariables.json +2 -2
- package/json-schema/integration/ErrorCategory.json +2 -2
- package/json-schema/integration/ErrorMappingConfig.json +2 -2
- package/json-schema/integration/ErrorMappingRule.json +2 -2
- package/json-schema/integration/FileAccessPattern.json +2 -2
- package/json-schema/integration/FileFilterConfig.json +2 -2
- package/json-schema/integration/FileMetadataConfig.json +2 -2
- package/json-schema/integration/FileStorageProvider.json +2 -2
- package/json-schema/integration/FileVersioningConfig.json +2 -2
- package/json-schema/integration/GitHubActionsWorkflow.json +2 -2
- package/json-schema/integration/GitHubCommitConfig.json +2 -2
- package/json-schema/integration/GitHubIssueTracking.json +2 -2
- package/json-schema/integration/GitHubProvider.json +2 -2
- package/json-schema/integration/GitHubReleaseConfig.json +2 -2
- package/json-schema/integration/GitHubRepository.json +2 -2
- package/json-schema/integration/GitRepositoryConfig.json +2 -2
- package/json-schema/integration/HealthCheckConfig.json +2 -2
- package/json-schema/integration/MessageFormat.json +2 -2
- package/json-schema/integration/MessageQueueProvider.json +2 -2
- package/json-schema/integration/MultipartUploadConfig.json +2 -2
- package/json-schema/integration/ProducerConfig.json +2 -2
- package/json-schema/integration/RateLimitConfig.json +2 -2
- package/json-schema/integration/RateLimitStrategy.json +2 -2
- package/json-schema/integration/RetryConfig.json +2 -2
- package/json-schema/integration/RetryStrategy.json +2 -2
- package/json-schema/integration/SaasProvider.json +2 -2
- package/json-schema/integration/SslConfig.json +2 -2
- package/json-schema/integration/StorageBucket.json +2 -2
- package/json-schema/integration/SyncStrategy.json +2 -2
- package/json-schema/integration/TopicQueue.json +2 -2
- package/json-schema/integration/VercelFramework.json +2 -2
- package/json-schema/integration/VercelMonitoring.json +2 -2
- package/json-schema/integration/VercelProject.json +2 -2
- package/json-schema/integration/VercelProvider.json +2 -2
- package/json-schema/integration/VercelTeam.json +2 -2
- package/json-schema/integration/WebhookConfig.json +2 -2
- package/json-schema/integration/WebhookEvent.json +2 -2
- package/json-schema/integration/WebhookSignatureAlgorithm.json +2 -2
- package/json-schema/kernel/ActivationEvent.json +2 -2
- package/json-schema/kernel/AdvancedPluginLifecycleConfig.json +2 -2
- package/json-schema/kernel/ArtifactChecksum.json +2 -2
- package/json-schema/kernel/ArtifactFileEntry.json +2 -2
- package/json-schema/kernel/ArtifactSignature.json +2 -2
- package/json-schema/kernel/BreakingChange.json +2 -2
- package/json-schema/kernel/CLICommandContribution.json +2 -2
- package/json-schema/kernel/CapabilityConformanceLevel.json +2 -2
- package/json-schema/kernel/ClusterCapabilityConfig.json +2 -2
- package/json-schema/kernel/ClusterDriver.json +2 -2
- package/json-schema/kernel/ClusterTenantIsolation.json +2 -2
- package/json-schema/kernel/CompatibilityLevel.json +2 -2
- package/json-schema/kernel/CompatibilityMatrixEntry.json +2 -2
- package/json-schema/kernel/CustomizationOrigin.json +2 -2
- package/json-schema/kernel/CustomizationPolicy.json +2 -2
- package/json-schema/kernel/DeadLetterQueueEntry.json +2 -2
- package/json-schema/kernel/DependencyConflict.json +2 -2
- package/json-schema/kernel/DependencyGraph.json +2 -2
- package/json-schema/kernel/DependencyGraphNode.json +2 -2
- package/json-schema/kernel/DependencyResolutionResult.json +2 -2
- package/json-schema/kernel/DependencyStatusEnum.json +2 -2
- package/json-schema/kernel/DeprecationNotice.json +2 -2
- package/json-schema/kernel/DevFixtureConfig.json +2 -2
- package/json-schema/kernel/DevPluginConfig.json +2 -2
- package/json-schema/kernel/DevPluginPreset.json +2 -2
- package/json-schema/kernel/DevServiceOverride.json +2 -2
- package/json-schema/kernel/DevToolsConfig.json +2 -2
- package/json-schema/kernel/DisablePackageRequest.json +2 -2
- package/json-schema/kernel/DisablePackageResponse.json +2 -2
- package/json-schema/kernel/DistributedStateConfig.json +2 -2
- package/json-schema/kernel/DynamicLoadRequest.json +2 -2
- package/json-schema/kernel/DynamicLoadingConfig.json +2 -2
- package/json-schema/kernel/DynamicPluginOperation.json +2 -2
- package/json-schema/kernel/DynamicPluginResult.json +2 -2
- package/json-schema/kernel/DynamicUnloadRequest.json +2 -2
- package/json-schema/kernel/EnablePackageRequest.json +2 -2
- package/json-schema/kernel/EnablePackageResponse.json +2 -2
- package/json-schema/kernel/Event.json +2 -2
- package/json-schema/kernel/EventBusConfig.json +2 -2
- package/json-schema/kernel/EventClusterOptions.json +2 -2
- package/json-schema/kernel/EventDeliverySemantics.json +2 -2
- package/json-schema/kernel/EventHandler.json +2 -2
- package/json-schema/kernel/EventLogEntry.json +2 -2
- package/json-schema/kernel/EventMessageQueueConfig.json +2 -2
- package/json-schema/kernel/EventMetadata.json +2 -2
- package/json-schema/kernel/EventPersistence.json +2 -2
- package/json-schema/kernel/EventPhase.json +2 -2
- package/json-schema/kernel/EventPriority.json +2 -2
- package/json-schema/kernel/EventQueueConfig.json +2 -2
- package/json-schema/kernel/EventReplayConfig.json +2 -2
- package/json-schema/kernel/EventRoute.json +2 -2
- package/json-schema/kernel/EventScope.json +2 -2
- package/json-schema/kernel/EventSourcingConfig.json +2 -2
- package/json-schema/kernel/EventTypeDefinition.json +2 -2
- package/json-schema/kernel/EventWebhookConfig.json +2 -2
- package/json-schema/kernel/ExecutionContext.json +23 -2
- package/json-schema/kernel/ExtensionPoint.json +2 -2
- package/json-schema/kernel/FeatureStrategy.json +2 -2
- package/json-schema/kernel/FieldChange.json +2 -2
- package/json-schema/kernel/GetPackageRequest.json +2 -2
- package/json-schema/kernel/GetPackageResponse.json +2 -2
- package/json-schema/kernel/GracefulDegradation.json +2 -2
- package/json-schema/kernel/HealthStatus.json +2 -2
- package/json-schema/kernel/HookRegisteredEvent.json +2 -2
- package/json-schema/kernel/HookTriggeredEvent.json +2 -2
- package/json-schema/kernel/HotReloadConfig.json +2 -2
- package/json-schema/kernel/InstallPackageRequest.json +2 -2
- package/json-schema/kernel/InstallPackageResponse.json +2 -2
- package/json-schema/kernel/InstalledPackage.json +2 -2
- package/json-schema/kernel/KernelContext.json +2 -2
- package/json-schema/kernel/KernelEventBase.json +2 -2
- package/json-schema/kernel/KernelReadyEvent.json +2 -2
- package/json-schema/kernel/KernelSecurityPolicy.json +2 -2
- package/json-schema/kernel/KernelSecurityScanResult.json +2 -2
- package/json-schema/kernel/KernelSecurityVulnerability.json +2 -2
- package/json-schema/kernel/KernelShutdownEvent.json +2 -2
- package/json-schema/kernel/ListPackagesRequest.json +2 -2
- package/json-schema/kernel/ListPackagesResponse.json +2 -2
- package/json-schema/kernel/Manifest.json +2 -2
- package/json-schema/kernel/MergeConflict.json +2 -2
- package/json-schema/kernel/MergeResult.json +2 -2
- package/json-schema/kernel/MergeStrategyConfig.json +2 -2
- package/json-schema/kernel/MetadataBulkRegisterRequest.json +2 -2
- package/json-schema/kernel/MetadataBulkResult.json +2 -2
- package/json-schema/kernel/MetadataCategoryEnum.json +2 -2
- package/json-schema/kernel/MetadataChangeOperation.json +2 -2
- package/json-schema/kernel/MetadataChangeType.json +2 -2
- package/json-schema/kernel/MetadataCollectionInfo.json +2 -2
- package/json-schema/kernel/MetadataDependency.json +2 -2
- package/json-schema/kernel/MetadataDiffItem.json +2 -2
- package/json-schema/kernel/MetadataEvent.json +2 -2
- package/json-schema/kernel/MetadataFallbackStrategy.json +2 -2
- package/json-schema/kernel/MetadataFormat.json +2 -2
- package/json-schema/kernel/MetadataImportOptions.json +2 -2
- package/json-schema/kernel/MetadataLoadResult.json +2 -2
- package/json-schema/kernel/MetadataLoaderContract.json +2 -2
- package/json-schema/kernel/MetadataManagerConfig.json +2 -2
- package/json-schema/kernel/MetadataOverlay.json +2 -2
- package/json-schema/kernel/MetadataPluginConfig.json +2 -2
- package/json-schema/kernel/MetadataPluginManifest.json +2 -2
- package/json-schema/kernel/MetadataQuery.json +2 -2
- package/json-schema/kernel/MetadataQueryResult.json +2 -2
- package/json-schema/kernel/MetadataSaveOptions.json +2 -2
- package/json-schema/kernel/MetadataSaveResult.json +2 -2
- package/json-schema/kernel/MetadataStats.json +2 -2
- package/json-schema/kernel/MetadataType.json +2 -2
- package/json-schema/kernel/MetadataTypeRegistryEntry.json +2 -2
- package/json-schema/kernel/MetadataValidationResult.json +2 -2
- package/json-schema/kernel/MetadataWatchEvent.json +2 -2
- package/json-schema/kernel/NamespaceConflictError.json +2 -2
- package/json-schema/kernel/NamespaceRegistryEntry.json +2 -2
- package/json-schema/kernel/OclifPluginConfig.json +2 -2
- package/json-schema/kernel/OpsDomainModule.json +2 -2
- package/json-schema/kernel/OpsFilePath.json +2 -2
- package/json-schema/kernel/OpsPluginStructure.json +2 -2
- package/json-schema/kernel/PackageArtifact.json +2 -2
- package/json-schema/kernel/PackageDependency.json +2 -2
- package/json-schema/kernel/PackageDependencyConflict.json +2 -2
- package/json-schema/kernel/PackageDependencyResolutionResult.json +2 -2
- package/json-schema/kernel/PackageStatusEnum.json +2 -2
- package/json-schema/kernel/PermissionAction.json +2 -2
- package/json-schema/kernel/PermissionScope.json +2 -2
- package/json-schema/kernel/PluginCaching.json +2 -2
- package/json-schema/kernel/PluginCapability.json +2 -2
- package/json-schema/kernel/PluginCapabilityManifest.json +2 -2
- package/json-schema/kernel/PluginCodeSplitting.json +2 -2
- package/json-schema/kernel/PluginCompatibilityMatrix.json +2 -2
- package/json-schema/kernel/PluginDependency.json +2 -2
- package/json-schema/kernel/PluginDependencyResolution.json +2 -2
- package/json-schema/kernel/PluginDependencyResolutionResult.json +2 -2
- package/json-schema/kernel/PluginDiscoveryConfig.json +2 -2
- package/json-schema/kernel/PluginDiscoverySource.json +2 -2
- package/json-schema/kernel/PluginDynamicImport.json +2 -2
- package/json-schema/kernel/PluginErrorEvent.json +2 -2
- package/json-schema/kernel/PluginEventBase.json +2 -2
- package/json-schema/kernel/PluginHealthCheck.json +2 -2
- package/json-schema/kernel/PluginHealthReport.json +2 -2
- package/json-schema/kernel/PluginHealthStatus.json +2 -2
- package/json-schema/kernel/PluginHotReload.json +2 -2
- package/json-schema/kernel/PluginInitialization.json +2 -2
- package/json-schema/kernel/PluginInstallConfig.json +2 -2
- package/json-schema/kernel/PluginInterface.json +2 -2
- package/json-schema/kernel/PluginLifecycleEventType.json +2 -2
- package/json-schema/kernel/PluginLifecyclePhaseEvent.json +2 -2
- package/json-schema/kernel/PluginLoadingConfig.json +2 -2
- package/json-schema/kernel/PluginLoadingEvent.json +2 -2
- package/json-schema/kernel/PluginLoadingState.json +2 -2
- package/json-schema/kernel/PluginLoadingStrategy.json +2 -2
- package/json-schema/kernel/PluginMetadata.json +2 -2
- package/json-schema/kernel/PluginPerformanceMonitoring.json +2 -2
- package/json-schema/kernel/PluginPreloadConfig.json +2 -2
- package/json-schema/kernel/PluginProvenance.json +2 -2
- package/json-schema/kernel/PluginQualityMetrics.json +2 -2
- package/json-schema/kernel/PluginRegisteredEvent.json +2 -2
- package/json-schema/kernel/PluginRegistryEntry.json +2 -2
- package/json-schema/kernel/PluginSandboxing.json +2 -2
- package/json-schema/kernel/PluginSearchFilters.json +2 -2
- package/json-schema/kernel/PluginSource.json +2 -2
- package/json-schema/kernel/PluginStartupResult.json +2 -2
- package/json-schema/kernel/PluginStateSnapshot.json +2 -2
- package/json-schema/kernel/PluginStatistics.json +2 -2
- package/json-schema/kernel/PluginTrustLevel.json +2 -2
- package/json-schema/kernel/PluginTrustScore.json +2 -2
- package/json-schema/kernel/PluginUpdateStrategy.json +2 -2
- package/json-schema/kernel/PluginVendor.json +2 -2
- package/json-schema/kernel/PluginVersionMetadata.json +2 -2
- package/json-schema/kernel/PreviewModeConfig.json +2 -2
- package/json-schema/kernel/ProtocolFeature.json +2 -2
- package/json-schema/kernel/ProtocolReference.json +2 -2
- package/json-schema/kernel/ProtocolVersion.json +2 -2
- package/json-schema/kernel/RealTimeNotificationConfig.json +2 -2
- package/json-schema/kernel/RequiredAction.json +2 -2
- package/json-schema/kernel/ResolvedDependency.json +2 -2
- package/json-schema/kernel/ResourceType.json +2 -2
- package/json-schema/kernel/RollbackPackageRequest.json +2 -2
- package/json-schema/kernel/RollbackPackageResponse.json +2 -2
- package/json-schema/kernel/RuntimeConfig.json +2 -2
- package/json-schema/kernel/RuntimeMode.json +2 -2
- package/json-schema/kernel/SBOM.json +2 -2
- package/json-schema/kernel/SBOMEntry.json +2 -2
- package/json-schema/kernel/SandboxConfig.json +2 -2
- package/json-schema/kernel/ScopeConfig.json +2 -2
- package/json-schema/kernel/ScopeInfo.json +2 -2
- package/json-schema/kernel/SecurityPolicy.json +2 -2
- package/json-schema/kernel/SecurityScanResult.json +2 -2
- package/json-schema/kernel/SecurityVulnerability.json +2 -2
- package/json-schema/kernel/SemanticVersion.json +2 -2
- package/json-schema/kernel/ServiceClusterAnnotations.json +2 -2
- package/json-schema/kernel/ServiceClusterScope.json +2 -2
- package/json-schema/kernel/ServiceFactoryRegistration.json +2 -2
- package/json-schema/kernel/ServiceLeaderStrategy.json +2 -2
- package/json-schema/kernel/ServiceMetadata.json +2 -2
- package/json-schema/kernel/ServiceRegisteredEvent.json +2 -2
- package/json-schema/kernel/ServiceRegistryConfig.json +2 -2
- package/json-schema/kernel/ServiceScopeType.json +2 -2
- package/json-schema/kernel/ServiceUnregisteredEvent.json +2 -2
- package/json-schema/kernel/StartupOptions.json +2 -2
- package/json-schema/kernel/StartupOrchestrationResult.json +2 -2
- package/json-schema/kernel/TenantRuntimeContext.json +2 -2
- package/json-schema/kernel/UninstallPackageRequest.json +2 -2
- package/json-schema/kernel/UninstallPackageResponse.json +2 -2
- package/json-schema/kernel/UpgradeContext.json +2 -2
- package/json-schema/kernel/UpgradeImpactLevel.json +2 -2
- package/json-schema/kernel/UpgradePackageRequest.json +2 -2
- package/json-schema/kernel/UpgradePackageResponse.json +2 -2
- package/json-schema/kernel/UpgradePhase.json +2 -2
- package/json-schema/kernel/UpgradePlan.json +2 -2
- package/json-schema/kernel/UpgradeSnapshot.json +2 -2
- package/json-schema/kernel/ValidationError.json +2 -2
- package/json-schema/kernel/ValidationResult.json +2 -2
- package/json-schema/kernel/ValidationWarning.json +2 -2
- package/json-schema/kernel/VersionConstraint.json +2 -2
- package/json-schema/kernel/VulnerabilitySeverity.json +2 -2
- package/json-schema/objectstack.json +4761 -3409
- package/json-schema/openapi.json +1 -1
- package/json-schema/qa/TestAction.json +2 -2
- package/json-schema/qa/TestActionType.json +2 -2
- package/json-schema/qa/TestAssertion.json +2 -2
- package/json-schema/qa/TestAssertionType.json +2 -2
- package/json-schema/qa/TestContext.json +2 -2
- package/json-schema/qa/TestScenario.json +2 -2
- package/json-schema/qa/TestStep.json +2 -2
- package/json-schema/qa/TestSuite.json +2 -2
- package/json-schema/security/AuditPolicy.json +2 -2
- package/json-schema/security/FieldPermission.json +2 -2
- package/json-schema/security/NetworkPolicy.json +2 -2
- package/json-schema/security/OWDModel.json +2 -2
- package/json-schema/security/ObjectPermission.json +2 -2
- package/json-schema/security/OwnerSharingRule.json +2 -2
- package/json-schema/security/PasswordPolicy.json +2 -2
- package/json-schema/security/PermissionSet.json +2 -2
- package/json-schema/security/Policy.json +2 -2
- package/json-schema/security/RLSAuditConfig.json +2 -2
- package/json-schema/security/RLSAuditEvent.json +2 -2
- package/json-schema/security/RLSConfig.json +2 -2
- package/json-schema/security/RLSEvaluationResult.json +2 -2
- package/json-schema/security/RLSOperation.json +2 -2
- package/json-schema/security/RLSUserContext.json +2 -2
- package/json-schema/security/RowLevelSecurityPolicy.json +2 -2
- package/json-schema/security/SessionPolicy.json +2 -2
- package/json-schema/security/ShareRecipientType.json +2 -2
- package/json-schema/security/SharingLevel.json +2 -2
- package/json-schema/security/SharingRuleType.json +2 -2
- package/json-schema/security/Territory.json +2 -2
- package/json-schema/security/TerritoryModel.json +2 -2
- package/json-schema/security/TerritoryType.json +2 -2
- package/json-schema/shared/AggregationFunctionEnum.json +2 -2
- package/json-schema/shared/AppName.json +2 -2
- package/json-schema/shared/BaseMetadataRecord.json +2 -2
- package/json-schema/shared/CacheStrategyEnum.json +2 -2
- package/json-schema/shared/CorsConfig.json +2 -2
- package/json-schema/shared/EventName.json +2 -2
- package/json-schema/shared/Expression.json +2 -2
- package/json-schema/shared/ExpressionDialect.json +2 -2
- package/json-schema/shared/ExpressionMeta.json +2 -2
- package/json-schema/shared/FieldName.json +2 -2
- package/json-schema/shared/FlowName.json +2 -2
- package/json-schema/shared/HttpMethod.json +2 -2
- package/json-schema/shared/HttpRequest.json +2 -2
- package/json-schema/shared/IsolationLevelEnum.json +2 -2
- package/json-schema/shared/MetadataFormat.json +2 -2
- package/json-schema/shared/MutationEventEnum.json +2 -2
- package/json-schema/shared/ObjectName.json +2 -2
- package/json-schema/shared/Predicate.json +2 -2
- package/json-schema/shared/RateLimitConfig.json +2 -2
- package/json-schema/shared/RoleName.json +2 -2
- package/json-schema/shared/SnakeCaseIdentifier.json +2 -2
- package/json-schema/shared/SortDirectionEnum.json +2 -2
- package/json-schema/shared/SortItem.json +2 -2
- package/json-schema/shared/StaticMount.json +2 -2
- package/json-schema/shared/SystemIdentifier.json +2 -2
- package/json-schema/shared/ViewName.json +2 -2
- package/json-schema/studio/ActionContribution.json +2 -2
- package/json-schema/studio/ActionLocation.json +2 -2
- package/json-schema/studio/ActivationEvent.json +2 -2
- package/json-schema/studio/CanvasSnapSettings.json +2 -2
- package/json-schema/studio/CanvasZoomSettings.json +2 -2
- package/json-schema/studio/CommandContribution.json +2 -2
- package/json-schema/studio/ERDiagramConfig.json +2 -2
- package/json-schema/studio/ERLayoutAlgorithm.json +2 -2
- package/json-schema/studio/ERNodeDisplay.json +2 -2
- package/json-schema/studio/ElementPaletteItem.json +2 -2
- package/json-schema/studio/FieldEditorConfig.json +2 -2
- package/json-schema/studio/FieldGroup.json +2 -2
- package/json-schema/studio/FieldPropertySection.json +2 -2
- package/json-schema/studio/FlowBuilderConfig.json +2 -2
- package/json-schema/studio/FlowCanvasEdge.json +2 -2
- package/json-schema/studio/FlowCanvasEdgeStyle.json +2 -2
- package/json-schema/studio/FlowCanvasNode.json +2 -2
- package/json-schema/studio/FlowLayoutAlgorithm.json +2 -2
- package/json-schema/studio/FlowLayoutDirection.json +2 -2
- package/json-schema/studio/FlowNodeRenderDescriptor.json +2 -2
- package/json-schema/studio/FlowNodeShape.json +2 -2
- package/json-schema/studio/InterfaceBuilderConfig.json +2 -2
- package/json-schema/studio/MetadataIconContribution.json +2 -2
- package/json-schema/studio/MetadataViewerContribution.json +2 -2
- package/json-schema/studio/ObjectDesignerConfig.json +2 -2
- package/json-schema/studio/ObjectDesignerDefaultView.json +2 -2
- package/json-schema/studio/ObjectFilter.json +2 -2
- package/json-schema/studio/ObjectListDisplayMode.json +2 -2
- package/json-schema/studio/ObjectManagerConfig.json +2 -2
- package/json-schema/studio/ObjectPreviewConfig.json +2 -2
- package/json-schema/studio/ObjectPreviewTab.json +2 -2
- package/json-schema/studio/ObjectSortField.json +2 -2
- package/json-schema/studio/PageBuilderConfig.json +2 -2
- package/json-schema/studio/PanelContribution.json +2 -2
- package/json-schema/studio/PanelLocation.json +2 -2
- package/json-schema/studio/RelationshipDisplay.json +2 -2
- package/json-schema/studio/RelationshipMapperConfig.json +2 -2
- package/json-schema/studio/SidebarGroupContribution.json +2 -2
- package/json-schema/studio/StudioPluginContributions.json +2 -2
- package/json-schema/studio/StudioPluginManifest.json +2 -2
- package/json-schema/studio/ViewMode.json +2 -2
- package/json-schema/system/AccessControlConfig.json +2 -2
- package/json-schema/system/AdvancedAuthConfig.json +2 -2
- package/json-schema/system/AnalyzerConfig.json +2 -2
- package/json-schema/system/AppCompatibilityCheck.json +2 -2
- package/json-schema/system/AppInstallRequest.json +2 -2
- package/json-schema/system/AppInstallResult.json +2 -2
- package/json-schema/system/AppManifest.json +2 -2
- package/json-schema/system/AppTranslationBundle.json +2 -2
- package/json-schema/system/AuditEvent.json +2 -2
- package/json-schema/system/AuditEventActor.json +2 -2
- package/json-schema/system/AuditEventChange.json +2 -2
- package/json-schema/system/AuditEventFilter.json +2 -2
- package/json-schema/system/AuditEventSeverity.json +2 -2
- package/json-schema/system/AuditEventTarget.json +2 -2
- package/json-schema/system/AuditEventType.json +2 -2
- package/json-schema/system/AuditFinding.json +2 -2
- package/json-schema/system/AuditFindingSeverity.json +2 -2
- package/json-schema/system/AuditFindingStatus.json +2 -2
- package/json-schema/system/AuditLogConfig.json +2 -2
- package/json-schema/system/AuditRetentionPolicy.json +2 -2
- package/json-schema/system/AuditSchedule.json +2 -2
- package/json-schema/system/AuditStorageConfig.json +2 -2
- package/json-schema/system/AuthConfig.json +2 -2
- package/json-schema/system/AuthPluginConfig.json +2 -2
- package/json-schema/system/AuthProviderConfig.json +2 -2
- package/json-schema/system/AwarenessEvent.json +2 -2
- package/json-schema/system/AwarenessSession.json +2 -2
- package/json-schema/system/AwarenessUpdate.json +2 -2
- package/json-schema/system/AwarenessUserState.json +2 -2
- package/json-schema/system/BackupRetention.json +2 -2
- package/json-schema/system/BackupStrategy.json +2 -2
- package/json-schema/system/BatchProgress.json +2 -2
- package/json-schema/system/BucketConfig.json +2 -2
- package/json-schema/system/CRDTMergeResult.json +2 -2
- package/json-schema/system/CRDTState.json +2 -2
- package/json-schema/system/CRDTType.json +2 -2
- package/json-schema/system/CacheAvalanchePrevention.json +2 -2
- package/json-schema/system/CacheConfig.json +2 -2
- package/json-schema/system/CacheConsistency.json +2 -2
- package/json-schema/system/CacheInvalidation.json +2 -2
- package/json-schema/system/CacheStrategy.json +2 -2
- package/json-schema/system/CacheTier.json +2 -2
- package/json-schema/system/ChangeImpact.json +2 -2
- package/json-schema/system/ChangePriority.json +2 -2
- package/json-schema/system/ChangeRequest.json +2 -2
- package/json-schema/system/ChangeSchema.json +2 -2
- package/json-schema/system/ChangeStatus.json +2 -2
- package/json-schema/system/ChangeType.json +2 -2
- package/json-schema/system/CollaborationMode.json +2 -2
- package/json-schema/system/CollaborationSession.json +2 -2
- package/json-schema/system/CollaborationSessionConfig.json +2 -2
- package/json-schema/system/CollaborativeCursor.json +2 -2
- package/json-schema/system/ComplianceAuditRequirement.json +2 -2
- package/json-schema/system/ComplianceConfig.json +2 -2
- package/json-schema/system/ComplianceEncryptionRequirement.json +2 -2
- package/json-schema/system/ComplianceFramework.json +2 -2
- package/json-schema/system/ConsoleDestinationConfig.json +2 -2
- package/json-schema/system/ConsumerConfig.json +2 -2
- package/json-schema/system/CoreServiceName.json +2 -2
- package/json-schema/system/CounterOperation.json +2 -2
- package/json-schema/system/CoverageBreakdownEntry.json +2 -2
- package/json-schema/system/CursorColorPreset.json +2 -2
- package/json-schema/system/CursorSelection.json +2 -2
- package/json-schema/system/CursorStyle.json +2 -2
- package/json-schema/system/CursorUpdate.json +2 -2
- package/json-schema/system/DataClassification.json +2 -2
- package/json-schema/system/DataClassificationPolicy.json +2 -2
- package/json-schema/system/DatabaseLevelIsolationStrategy.json +2 -2
- package/json-schema/system/DatabaseProvider.json +2 -2
- package/json-schema/system/DeadLetterQueue.json +2 -2
- package/json-schema/system/DeleteObjectOperation.json +2 -2
- package/json-schema/system/DeployBundle.json +2 -2
- package/json-schema/system/DeployDiff.json +2 -2
- package/json-schema/system/DeployManifest.json +2 -2
- package/json-schema/system/DeployStatusEnum.json +2 -2
- package/json-schema/system/DeployValidationIssue.json +2 -2
- package/json-schema/system/DeployValidationResult.json +2 -2
- package/json-schema/system/EmailAddressConfig.json +2 -2
- package/json-schema/system/EmailAndPasswordConfig.json +2 -2
- package/json-schema/system/EmailProvider.json +2 -2
- package/json-schema/system/EmailServiceConfig.json +2 -2
- package/json-schema/system/EmailTemplateDefinition.json +2 -2
- package/json-schema/system/EmailTemplateDefinitionCategory.json +2 -2
- package/json-schema/system/EmailTemplateDefinitionVariable.json +2 -2
- package/json-schema/system/EmailVerificationConfig.json +2 -2
- package/json-schema/system/EncryptionAlgorithm.json +2 -2
- package/json-schema/system/EncryptionConfig.json +2 -2
- package/json-schema/system/EnvironmentArtifact.json +2 -2
- package/json-schema/system/EnvironmentArtifactChecksum.json +2 -2
- package/json-schema/system/EnvironmentArtifactFunction.json +2 -2
- package/json-schema/system/EnvironmentArtifactFunctionLanguageEnum.json +2 -2
- package/json-schema/system/EnvironmentArtifactHashAlgorithmEnum.json +2 -2
- package/json-schema/system/EnvironmentArtifactManifest.json +2 -2
- package/json-schema/system/EnvironmentArtifactMetadata.json +2 -2
- package/json-schema/system/EnvironmentArtifactPayloadRef.json +2 -2
- package/json-schema/system/EnvironmentArtifactRequirement.json +2 -2
- package/json-schema/system/ExecuteSqlOperation.json +2 -2
- package/json-schema/system/ExtendedLogLevel.json +2 -2
- package/json-schema/system/ExternalServiceDestinationConfig.json +2 -2
- package/json-schema/system/FacetConfig.json +2 -2
- package/json-schema/system/FailoverConfig.json +2 -2
- package/json-schema/system/FailoverMode.json +2 -2
- package/json-schema/system/Feature.json +2 -2
- package/json-schema/system/FieldEncryption.json +2 -2
- package/json-schema/system/FieldTranslation.json +2 -2
- package/json-schema/system/FileDestinationConfig.json +2 -2
- package/json-schema/system/FileMetadata.json +2 -2
- package/json-schema/system/GCounter.json +2 -2
- package/json-schema/system/GDPRConfig.json +2 -2
- package/json-schema/system/HIPAAConfig.json +2 -2
- package/json-schema/system/HistogramBucketConfig.json +2 -2
- package/json-schema/system/HttpDestinationConfig.json +2 -2
- package/json-schema/system/HttpServerConfig.json +2 -2
- package/json-schema/system/Incident.json +2 -2
- package/json-schema/system/IncidentCategory.json +2 -2
- package/json-schema/system/IncidentNotificationMatrix.json +2 -2
- package/json-schema/system/IncidentNotificationRule.json +2 -2
- package/json-schema/system/IncidentResponsePhase.json +2 -2
- package/json-schema/system/IncidentResponsePolicy.json +2 -2
- package/json-schema/system/IncidentSeverity.json +2 -2
- package/json-schema/system/IncidentStatus.json +2 -2
- package/json-schema/system/IntervalSchedule.json +2 -2
- package/json-schema/system/JobExecution.json +2 -2
- package/json-schema/system/JobExecutionStatus.json +2 -2
- package/json-schema/system/KernelServiceMap.json +2 -2
- package/json-schema/system/KeyManagementProvider.json +2 -2
- package/json-schema/system/KeyRotationPolicy.json +2 -2
- package/json-schema/system/LWWRegister.json +2 -2
- package/json-schema/system/LevelIsolationStrategySchema.json +2 -2
- package/json-schema/system/License.json +2 -2
- package/json-schema/system/LicenseMetricType.json +2 -2
- package/json-schema/system/LifecycleAction.json +2 -2
- package/json-schema/system/LifecyclePolicyConfig.json +2 -2
- package/json-schema/system/LifecyclePolicyRule.json +2 -2
- package/json-schema/system/Locale.json +2 -2
- package/json-schema/system/LogDestination.json +2 -2
- package/json-schema/system/LogDestinationType.json +2 -2
- package/json-schema/system/LogEnrichmentConfig.json +2 -2
- package/json-schema/system/LogEntry.json +2 -2
- package/json-schema/system/LogFormat.json +2 -2
- package/json-schema/system/LogLevel.json +2 -2
- package/json-schema/system/LoggerConfig.json +2 -2
- package/json-schema/system/LoggingConfig.json +2 -2
- package/json-schema/system/MaskingConfig.json +2 -2
- package/json-schema/system/MaskingRule.json +2 -2
- package/json-schema/system/MaskingStrategy.json +2 -2
- package/json-schema/system/MaskingVisibilityRule.json +2 -2
- package/json-schema/system/MessageFormat.json +2 -2
- package/json-schema/system/MessageQueueConfig.json +2 -2
- package/json-schema/system/MessageQueueProvider.json +2 -2
- package/json-schema/system/MetadataCollectionInfo.json +2 -2
- package/json-schema/system/MetadataDiffResult.json +2 -2
- package/json-schema/system/MetadataExportOptions.json +2 -2
- package/json-schema/system/MetadataFallbackStrategy.json +2 -2
- package/json-schema/system/MetadataFormat.json +2 -2
- package/json-schema/system/MetadataHistoryQueryOptions.json +2 -2
- package/json-schema/system/MetadataHistoryQueryResult.json +2 -2
- package/json-schema/system/MetadataHistoryRecord.json +2 -2
- package/json-schema/system/MetadataHistoryRetentionPolicy.json +2 -2
- package/json-schema/system/MetadataImportOptions.json +2 -2
- package/json-schema/system/MetadataLoadOptions.json +2 -2
- package/json-schema/system/MetadataLoadResult.json +2 -2
- package/json-schema/system/MetadataLoaderContract.json +2 -2
- package/json-schema/system/MetadataManagerConfig.json +2 -2
- package/json-schema/system/MetadataRecord.json +2 -2
- package/json-schema/system/MetadataSaveOptions.json +2 -2
- package/json-schema/system/MetadataSaveResult.json +2 -2
- package/json-schema/system/MetadataScope.json +2 -2
- package/json-schema/system/MetadataSource.json +2 -2
- package/json-schema/system/MetadataState.json +2 -2
- package/json-schema/system/MetadataStats.json +2 -2
- package/json-schema/system/MetadataWatchEvent.json +2 -2
- package/json-schema/system/MetricAggregationConfig.json +2 -2
- package/json-schema/system/MetricAggregationType.json +2 -2
- package/json-schema/system/MetricDataPoint.json +2 -2
- package/json-schema/system/MetricDefinition.json +2 -2
- package/json-schema/system/MetricExportConfig.json +2 -2
- package/json-schema/system/MetricLabels.json +2 -2
- package/json-schema/system/MetricType.json +2 -2
- package/json-schema/system/MetricUnit.json +2 -2
- package/json-schema/system/MiddlewareConfig.json +2 -2
- package/json-schema/system/MiddlewareType.json +2 -2
- package/json-schema/system/MigrationDependency.json +2 -2
- package/json-schema/system/MigrationPlan.json +2 -2
- package/json-schema/system/MigrationStatement.json +2 -2
- package/json-schema/system/ModifyFieldOperation.json +2 -2
- package/json-schema/system/MultipartUploadConfig.json +2 -2
- package/json-schema/system/MutualTLSConfig.json +2 -2
- package/json-schema/system/NotificationChannel.json +2 -2
- package/json-schema/system/ORSet.json +2 -2
- package/json-schema/system/ORSetElement.json +2 -2
- package/json-schema/system/OTComponent.json +2 -2
- package/json-schema/system/OTOperation.json +2 -2
- package/json-schema/system/OTOperationType.json +2 -2
- package/json-schema/system/OTTransformResult.json +2 -2
- package/json-schema/system/ObjectMetadata.json +2 -2
- package/json-schema/system/ObjectStorageConfig.json +2 -2
- package/json-schema/system/ObjectTranslationData.json +2 -2
- package/json-schema/system/ObjectTranslationNode.json +2 -2
- package/json-schema/system/OidcProviderConfig.json +2 -2
- package/json-schema/system/OidcProvidersConfig.json +2 -2
- package/json-schema/system/OnceSchedule.json +2 -2
- package/json-schema/system/OpenTelemetryCompatibility.json +2 -2
- package/json-schema/system/OtelExporterType.json +2 -2
- package/json-schema/system/PCIDSSConfig.json +2 -2
- package/json-schema/system/PNCounter.json +2 -2
- package/json-schema/system/PackagePublishResult.json +2 -2
- package/json-schema/system/Plan.json +2 -2
- package/json-schema/system/PresignedUrlConfig.json +2 -2
- package/json-schema/system/ProvisioningStep.json +2 -2
- package/json-schema/system/QueueConfig.json +2 -2
- package/json-schema/system/QuotaEnforcementResult.json +2 -2
- package/json-schema/system/RPO.json +2 -2
- package/json-schema/system/RTO.json +2 -2
- package/json-schema/system/RegistryConfig.json +2 -2
- package/json-schema/system/RegistrySyncPolicy.json +2 -2
- package/json-schema/system/RegistryUpstream.json +2 -2
- package/json-schema/system/RemoveFieldOperation.json +2 -2
- package/json-schema/system/RenameObjectOperation.json +2 -2
- package/json-schema/system/ResolvedSettingValue.json +2 -2
- package/json-schema/system/RetryPolicy.json +2 -2
- package/json-schema/system/RollbackPlan.json +2 -2
- package/json-schema/system/RouteHandlerMetadata.json +2 -2
- package/json-schema/system/RowLevelIsolationStrategy.json +2 -2
- package/json-schema/system/SamplingDecision.json +2 -2
- package/json-schema/system/SamplingStrategyType.json +2 -2
- package/json-schema/system/SearchConfig.json +2 -2
- package/json-schema/system/SearchIndexConfig.json +2 -2
- package/json-schema/system/SearchProvider.json +2 -2
- package/json-schema/system/SecurityContextConfig.json +2 -2
- package/json-schema/system/SecurityEventCorrelation.json +2 -2
- package/json-schema/system/ServerCapabilities.json +2 -2
- package/json-schema/system/ServerEvent.json +2 -2
- package/json-schema/system/ServerEventType.json +2 -2
- package/json-schema/system/ServerStatus.json +2 -2
- package/json-schema/system/ServiceConfig.json +2 -2
- package/json-schema/system/ServiceCriticality.json +2 -2
- package/json-schema/system/ServiceLevelObjective.json +2 -2
- package/json-schema/system/ServiceStatus.json +2 -2
- package/json-schema/system/SettingsActionResult.json +2 -2
- package/json-schema/system/SettingsChangeEvent.json +2 -2
- package/json-schema/system/SocialProviderConfig.json +2 -2
- package/json-schema/system/Span.json +2 -2
- package/json-schema/system/SpanAttributeValue.json +2 -2
- package/json-schema/system/SpanAttributes.json +2 -2
- package/json-schema/system/SpanEvent.json +2 -2
- package/json-schema/system/SpanKind.json +2 -2
- package/json-schema/system/SpanLink.json +2 -2
- package/json-schema/system/SpanStatus.json +2 -2
- package/json-schema/system/SpecifierHandler.json +2 -2
- package/json-schema/system/SpecifierOption.json +2 -2
- package/json-schema/system/SpecifierScope.json +2 -2
- package/json-schema/system/SpecifierType.json +2 -2
- package/json-schema/system/StorageAcl.json +2 -2
- package/json-schema/system/StorageClass.json +2 -2
- package/json-schema/system/StorageConnection.json +2 -2
- package/json-schema/system/StorageProvider.json +2 -2
- package/json-schema/system/StorageScope.json +2 -2
- package/json-schema/system/StructuredLogEntry.json +2 -2
- package/json-schema/system/SupplierAssessmentStatus.json +2 -2
- package/json-schema/system/SupplierRiskLevel.json +2 -2
- package/json-schema/system/SupplierSecurityAssessment.json +2 -2
- package/json-schema/system/SupplierSecurityPolicy.json +2 -2
- package/json-schema/system/SupplierSecurityRequirement.json +2 -2
- package/json-schema/system/Task.json +2 -2
- package/json-schema/system/TaskExecutionResult.json +2 -2
- package/json-schema/system/TaskPriority.json +2 -2
- package/json-schema/system/TaskRetryPolicy.json +2 -2
- package/json-schema/system/TaskStatus.json +2 -2
- package/json-schema/system/Tenant.json +2 -2
- package/json-schema/system/TenantConnectionConfig.json +2 -2
- package/json-schema/system/TenantIsolationConfig.json +2 -2
- package/json-schema/system/TenantIsolationLevel.json +2 -2
- package/json-schema/system/TenantPlan.json +2 -2
- package/json-schema/system/TenantProvisioningRequest.json +2 -2
- package/json-schema/system/TenantProvisioningResult.json +2 -2
- package/json-schema/system/TenantProvisioningStatusEnum.json +2 -2
- package/json-schema/system/TenantQuota.json +2 -2
- package/json-schema/system/TenantRegion.json +2 -2
- package/json-schema/system/TenantSecurityPolicy.json +2 -2
- package/json-schema/system/TenantUsage.json +2 -2
- package/json-schema/system/TextCRDTOperation.json +2 -2
- package/json-schema/system/TextCRDTState.json +2 -2
- package/json-schema/system/TimeSeries.json +2 -2
- package/json-schema/system/TimeSeriesDataPoint.json +2 -2
- package/json-schema/system/TopicConfig.json +2 -2
- package/json-schema/system/TraceContext.json +2 -2
- package/json-schema/system/TraceContextPropagation.json +2 -2
- package/json-schema/system/TraceFlags.json +2 -2
- package/json-schema/system/TracePropagationFormat.json +2 -2
- package/json-schema/system/TraceState.json +2 -2
- package/json-schema/system/TrainingCategory.json +2 -2
- package/json-schema/system/TrainingCompletionStatus.json +2 -2
- package/json-schema/system/TrainingCourse.json +2 -2
- package/json-schema/system/TrainingPlan.json +2 -2
- package/json-schema/system/TrainingRecord.json +2 -2
- package/json-schema/system/TranslationBundle.json +2 -2
- package/json-schema/system/TranslationConfig.json +2 -2
- package/json-schema/system/TranslationCoverageResult.json +2 -2
- package/json-schema/system/TranslationData.json +2 -2
- package/json-schema/system/TranslationDiffItem.json +2 -2
- package/json-schema/system/TranslationDiffStatus.json +2 -2
- package/json-schema/system/TranslationFileOrganization.json +2 -2
- package/json-schema/system/UserActivityStatus.json +2 -2
- package/json-schema/system/VectorClock.json +2 -2
- package/json-schema/system/WorkerStats.json +2 -2
- package/json-schema/ui/AIChatWindowProps.json +2 -2
- package/json-schema/ui/ActionParam.json +4 -2
- package/json-schema/ui/ActionType.json +2 -2
- package/json-schema/ui/AddRecordConfig.json +2 -2
- package/json-schema/ui/Animation.json +2 -2
- package/json-schema/ui/AnimationTrigger.json +2 -2
- package/json-schema/ui/AppBranding.json +2 -2
- package/json-schema/ui/AppearanceConfig.json +2 -2
- package/json-schema/ui/AriaProps.json +2 -2
- package/json-schema/ui/BlankPageLayout.json +2 -2
- package/json-schema/ui/BlankPageLayoutItem.json +2 -2
- package/json-schema/ui/BorderRadius.json +2 -2
- package/json-schema/ui/BreakpointColumnMap.json +2 -2
- package/json-schema/ui/BreakpointName.json +2 -2
- package/json-schema/ui/BreakpointOrderMap.json +2 -2
- package/json-schema/ui/Breakpoints.json +2 -2
- package/json-schema/ui/CalendarConfig.json +2 -2
- package/json-schema/ui/ChartAnnotation.json +2 -2
- package/json-schema/ui/ChartAxis.json +2 -2
- package/json-schema/ui/ChartConfig.json +2 -2
- package/json-schema/ui/ChartInteraction.json +2 -2
- package/json-schema/ui/ChartSeries.json +2 -2
- package/json-schema/ui/ChartType.json +2 -2
- package/json-schema/ui/ColorPalette.json +2 -2
- package/json-schema/ui/ColumnSummary.json +2 -2
- package/json-schema/ui/ComponentAnimation.json +2 -2
- package/json-schema/ui/ConflictResolution.json +2 -2
- package/json-schema/ui/Dashboard.json +2 -2
- package/json-schema/ui/DashboardHeader.json +2 -2
- package/json-schema/ui/DashboardHeaderAction.json +2 -2
- package/json-schema/ui/DashboardWidget.json +2 -2
- package/json-schema/ui/DateFormat.json +2 -2
- package/json-schema/ui/DensityMode.json +2 -2
- package/json-schema/ui/DndConfig.json +2 -2
- package/json-schema/ui/DragConstraint.json +2 -2
- package/json-schema/ui/DragHandle.json +2 -2
- package/json-schema/ui/DragItem.json +2 -2
- package/json-schema/ui/DropEffect.json +2 -2
- package/json-schema/ui/DropZone.json +2 -2
- package/json-schema/ui/EasingFunction.json +2 -2
- package/json-schema/ui/ElementButtonProps.json +2 -2
- package/json-schema/ui/ElementDataSource.json +2 -2
- package/json-schema/ui/ElementFilterProps.json +2 -2
- package/json-schema/ui/ElementImageProps.json +2 -2
- package/json-schema/ui/ElementNumberProps.json +2 -2
- package/json-schema/ui/ElementRecordPickerProps.json +2 -2
- package/json-schema/ui/ElementTextProps.json +2 -2
- package/json-schema/ui/EmbedConfig.json +2 -2
- package/json-schema/ui/EvictionPolicy.json +2 -2
- package/json-schema/ui/FocusManagement.json +2 -2
- package/json-schema/ui/FocusTrapConfig.json +2 -2
- package/json-schema/ui/GalleryConfig.json +2 -2
- package/json-schema/ui/GanttConfig.json +2 -2
- package/json-schema/ui/GestureConfig.json +2 -2
- package/json-schema/ui/GestureType.json +2 -2
- package/json-schema/ui/GlobalFilter.json +2 -2
- package/json-schema/ui/GlobalFilterOptionsFrom.json +2 -2
- package/json-schema/ui/GroupingConfig.json +2 -2
- package/json-schema/ui/GroupingField.json +2 -2
- package/json-schema/ui/HttpMethod.json +2 -2
- package/json-schema/ui/HttpRequest.json +2 -2
- package/json-schema/ui/I18nLabel.json +2 -2
- package/json-schema/ui/I18nObject.json +2 -2
- package/json-schema/ui/InterfacePageConfig.json +2 -2
- package/json-schema/ui/JoinedReportBlock.json +2 -2
- package/json-schema/ui/KanbanConfig.json +2 -2
- package/json-schema/ui/KeyboardNavigationConfig.json +2 -2
- package/json-schema/ui/KeyboardShortcut.json +2 -2
- package/json-schema/ui/ListChartConfig.json +2 -2
- package/json-schema/ui/ListColumn.json +2 -2
- package/json-schema/ui/LocaleConfig.json +2 -2
- package/json-schema/ui/LongPressGestureConfig.json +2 -2
- package/json-schema/ui/MotionConfig.json +2 -2
- package/json-schema/ui/NavigationConfig.json +2 -2
- package/json-schema/ui/NavigationMode.json +2 -2
- package/json-schema/ui/Notification.json +2 -2
- package/json-schema/ui/NotificationAction.json +2 -2
- package/json-schema/ui/NotificationConfig.json +2 -2
- package/json-schema/ui/NotificationPosition.json +2 -2
- package/json-schema/ui/NotificationSeverity.json +2 -2
- package/json-schema/ui/NotificationType.json +2 -2
- package/json-schema/ui/NumberFormat.json +2 -2
- package/json-schema/ui/OfflineCacheConfig.json +2 -2
- package/json-schema/ui/OfflineConfig.json +2 -2
- package/json-schema/ui/OfflineStrategy.json +2 -2
- package/json-schema/ui/PageAccordionProps.json +2 -2
- package/json-schema/ui/PageCardProps.json +2 -2
- package/json-schema/ui/PageComponentType.json +2 -2
- package/json-schema/ui/PageHeaderProps.json +2 -2
- package/json-schema/ui/PageTabsProps.json +2 -2
- package/json-schema/ui/PageTransition.json +2 -2
- package/json-schema/ui/PageType.json +2 -2
- package/json-schema/ui/PageVariable.json +2 -2
- package/json-schema/ui/PaginationConfig.json +2 -2
- package/json-schema/ui/PerformanceConfig.json +2 -2
- package/json-schema/ui/PersistStorage.json +2 -2
- package/json-schema/ui/PinchGestureConfig.json +2 -2
- package/json-schema/ui/PluralRule.json +2 -2
- package/json-schema/ui/Portal.json +2 -2
- package/json-schema/ui/PortalActionNavItem.json +2 -2
- package/json-schema/ui/PortalAnonymousEntry.json +2 -2
- package/json-schema/ui/PortalAnonymousRoute.json +2 -2
- package/json-schema/ui/PortalAuthMode.json +2 -2
- package/json-schema/ui/PortalDashboardNavItem.json +2 -2
- package/json-schema/ui/PortalLayout.json +2 -2
- package/json-schema/ui/PortalNavItem.json +2 -2
- package/json-schema/ui/PortalRateLimit.json +2 -2
- package/json-schema/ui/PortalSeo.json +2 -2
- package/json-schema/ui/PortalTheme.json +2 -2
- package/json-schema/ui/PortalUrlNavItem.json +2 -2
- package/json-schema/ui/PortalViewNavItem.json +2 -2
- package/json-schema/ui/RecordActivityProps.json +2 -2
- package/json-schema/ui/RecordChatterProps.json +2 -2
- package/json-schema/ui/RecordDetailsProps.json +2 -2
- package/json-schema/ui/RecordHighlightsField.json +2 -2
- package/json-schema/ui/RecordHighlightsProps.json +2 -2
- package/json-schema/ui/RecordPathProps.json +2 -2
- package/json-schema/ui/RecordRelatedListProps.json +2 -2
- package/json-schema/ui/RecordReviewConfig.json +2 -2
- package/json-schema/ui/Report.json +2 -2
- package/json-schema/ui/ReportChart.json +2 -2
- package/json-schema/ui/ReportColumn.json +2 -2
- package/json-schema/ui/ReportGrouping.json +2 -2
- package/json-schema/ui/ReportType.json +2 -2
- package/json-schema/ui/ResponsiveConfig.json +2 -2
- package/json-schema/ui/RowColorConfig.json +2 -2
- package/json-schema/ui/RowHeight.json +2 -2
- package/json-schema/ui/SelectionConfig.json +2 -2
- package/json-schema/ui/Shadow.json +2 -2
- package/json-schema/ui/SharingConfig.json +2 -2
- package/json-schema/ui/Spacing.json +2 -2
- package/json-schema/ui/SwipeDirection.json +2 -2
- package/json-schema/ui/SwipeGestureConfig.json +2 -2
- package/json-schema/ui/SyncConfig.json +2 -2
- package/json-schema/ui/Theme.json +2 -2
- package/json-schema/ui/ThemeMode.json +2 -2
- package/json-schema/ui/TimelineConfig.json +2 -2
- package/json-schema/ui/TouchInteraction.json +2 -2
- package/json-schema/ui/TouchTargetConfig.json +2 -2
- package/json-schema/ui/TransitionConfig.json +2 -2
- package/json-schema/ui/TransitionPreset.json +2 -2
- package/json-schema/ui/Typography.json +2 -2
- package/json-schema/ui/UserActionsConfig.json +2 -2
- package/json-schema/ui/ViewData.json +28 -2
- package/json-schema/ui/ViewFilterRule.json +2 -2
- package/json-schema/ui/ViewSharing.json +2 -2
- package/json-schema/ui/ViewTab.json +2 -2
- package/json-schema/ui/VisualizationType.json +2 -2
- package/json-schema/ui/WcagContrastLevel.json +2 -2
- package/json-schema/ui/WidgetActionType.json +2 -2
- package/json-schema/ui/WidgetColorVariant.json +2 -2
- package/json-schema/ui/WidgetEvent.json +2 -2
- package/json-schema/ui/WidgetLifecycle.json +2 -2
- package/json-schema/ui/WidgetManifest.json +2 -2
- package/json-schema/ui/WidgetMeasure.json +2 -2
- package/json-schema/ui/WidgetProperty.json +2 -2
- package/json-schema/ui/WidgetSource.json +2 -2
- package/json-schema/ui/ZIndex.json +2 -2
- package/package.json +1 -1
- package/prompts/architecture.md +6 -6
- package/src/api/protocol.zod.ts +20 -0
- package/src/automation/workflow.zod.ts +3 -0
- package/src/cloud/marketplace.zod.ts +10 -0
- package/src/cloud/package.zod.ts +91 -0
- package/src/data/field.zod.ts +4 -1
- package/src/kernel/execution-context.zod.ts +16 -0
- package/src/kernel/metadata-plugin.zod.ts +15 -15
- package/src/ui/app.zod.ts +28 -1
- package/src/ui/view.zod.ts +122 -4
package/dist/ui/index.mjs
CHANGED
|
@@ -426,6 +426,11 @@ var ActionNavItemSchema = lazySchema(() => BaseNavItemSchema.extend({
|
|
|
426
426
|
params: z.record(z.string(), z.unknown()).optional().describe("Parameters passed to the action")
|
|
427
427
|
}).describe("Action definition to execute when clicked")
|
|
428
428
|
}));
|
|
429
|
+
var ComponentNavItemSchema = lazySchema(() => BaseNavItemSchema.extend({
|
|
430
|
+
type: z.literal("component"),
|
|
431
|
+
componentRef: z.string().describe('Component registry key (e.g. "metadata:directory")'),
|
|
432
|
+
params: z.record(z.string(), z.unknown()).optional().describe("Props passed to the component")
|
|
433
|
+
}));
|
|
429
434
|
var GroupNavItemSchema = lazySchema(() => BaseNavItemSchema.extend({
|
|
430
435
|
type: z.literal("group"),
|
|
431
436
|
expanded: z.boolean().default(false).describe("Default expansion state in sidebar")
|
|
@@ -441,6 +446,7 @@ var NavigationItemSchema = z.lazy(
|
|
|
441
446
|
UrlNavItemSchema,
|
|
442
447
|
ReportNavItemSchema,
|
|
443
448
|
ActionNavItemSchema,
|
|
449
|
+
ComponentNavItemSchema,
|
|
444
450
|
GroupNavItemSchema.extend({
|
|
445
451
|
children: z.array(NavigationItemSchema).describe("Child navigation items")
|
|
446
452
|
})
|
|
@@ -566,1401 +572,1843 @@ var App = {
|
|
|
566
572
|
function defineApp(config) {
|
|
567
573
|
return AppSchema.parse(config);
|
|
568
574
|
}
|
|
569
|
-
var
|
|
570
|
-
"
|
|
571
|
-
"
|
|
572
|
-
"
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
"
|
|
576
|
-
"
|
|
575
|
+
var EncryptionAlgorithmSchema = lazySchema(() => z.enum([
|
|
576
|
+
"aes-256-gcm",
|
|
577
|
+
"aes-256-cbc",
|
|
578
|
+
"chacha20-poly1305"
|
|
579
|
+
]).describe("Supported encryption algorithm"));
|
|
580
|
+
var KeyManagementProviderSchema = lazySchema(() => z.enum([
|
|
581
|
+
"local",
|
|
582
|
+
"aws-kms",
|
|
583
|
+
"azure-key-vault",
|
|
584
|
+
"gcp-kms",
|
|
585
|
+
"hashicorp-vault"
|
|
586
|
+
]).describe("Key management service provider"));
|
|
587
|
+
var KeyRotationPolicySchema = lazySchema(() => z.object({
|
|
588
|
+
enabled: z.boolean().default(false).describe("Enable automatic key rotation"),
|
|
589
|
+
frequencyDays: z.number().min(1).default(90).describe("Rotation frequency in days"),
|
|
590
|
+
retainOldVersions: z.number().default(3).describe("Number of old key versions to retain"),
|
|
591
|
+
autoRotate: z.boolean().default(true).describe("Automatically rotate without manual approval")
|
|
592
|
+
}).describe("Policy for automatic encryption key rotation"));
|
|
593
|
+
var EncryptionConfigSchema = lazySchema(() => z.object({
|
|
594
|
+
enabled: z.boolean().default(false).describe("Enable field-level encryption"),
|
|
595
|
+
algorithm: EncryptionAlgorithmSchema.default("aes-256-gcm").describe("Encryption algorithm"),
|
|
596
|
+
keyManagement: z.object({
|
|
597
|
+
provider: KeyManagementProviderSchema.describe("Key management service provider"),
|
|
598
|
+
keyId: z.string().optional().describe("Key identifier in the provider"),
|
|
599
|
+
rotationPolicy: KeyRotationPolicySchema.optional().describe("Key rotation policy")
|
|
600
|
+
}).describe("Key management configuration"),
|
|
601
|
+
scope: z.enum(["field", "record", "table", "database"]).describe("Encryption scope level"),
|
|
602
|
+
deterministicEncryption: z.boolean().default(false).describe("Allows equality queries on encrypted data"),
|
|
603
|
+
searchableEncryption: z.boolean().default(false).describe("Allows search on encrypted data")
|
|
604
|
+
}).describe("Field-level encryption configuration"));
|
|
605
|
+
lazySchema(() => z.object({
|
|
606
|
+
fieldName: z.string().describe("Name of the field to encrypt"),
|
|
607
|
+
encryptionConfig: EncryptionConfigSchema.describe("Encryption settings for this field"),
|
|
608
|
+
indexable: z.boolean().default(false).describe("Allow indexing on encrypted field")
|
|
609
|
+
}).describe("Per-field encryption assignment"));
|
|
610
|
+
var MaskingStrategySchema = lazySchema(() => z.enum([
|
|
611
|
+
"redact",
|
|
612
|
+
// Complete redaction: ****
|
|
613
|
+
"partial",
|
|
614
|
+
// Partial masking: 138****5678
|
|
615
|
+
"hash",
|
|
616
|
+
// Hash value: sha256(value)
|
|
617
|
+
"tokenize",
|
|
618
|
+
// Tokenization: token-12345
|
|
619
|
+
"randomize",
|
|
620
|
+
// Randomize: generate random value
|
|
621
|
+
"nullify",
|
|
622
|
+
// Null value: null
|
|
623
|
+
"substitute"
|
|
624
|
+
// Substitute with dummy data
|
|
625
|
+
]).describe("Data masking strategy for PII protection"));
|
|
626
|
+
var MaskingRuleSchema = lazySchema(() => z.object({
|
|
627
|
+
field: z.string().describe("Field name to apply masking to"),
|
|
628
|
+
strategy: MaskingStrategySchema.describe("Masking strategy to use"),
|
|
629
|
+
pattern: z.string().optional().describe("Regex pattern for partial masking"),
|
|
630
|
+
preserveFormat: z.boolean().default(true).describe("Keep the original data format after masking"),
|
|
631
|
+
preserveLength: z.boolean().default(true).describe("Keep the original data length after masking"),
|
|
632
|
+
roles: z.array(z.string()).optional().describe("Roles that see masked data"),
|
|
633
|
+
exemptRoles: z.array(z.string()).optional().describe("Roles that see unmasked data")
|
|
634
|
+
}).describe("Masking rule for a single field"));
|
|
635
|
+
lazySchema(() => z.object({
|
|
636
|
+
enabled: z.boolean().default(false).describe("Enable data masking"),
|
|
637
|
+
rules: z.array(MaskingRuleSchema).describe("List of field-level masking rules"),
|
|
638
|
+
auditUnmasking: z.boolean().default(true).describe("Log when masked data is accessed unmasked")
|
|
639
|
+
}).describe("Top-level data masking configuration for PII protection"));
|
|
640
|
+
|
|
641
|
+
// src/data/field.zod.ts
|
|
642
|
+
var FieldType = z.enum([
|
|
643
|
+
// Core Text
|
|
644
|
+
"text",
|
|
645
|
+
"textarea",
|
|
646
|
+
"email",
|
|
647
|
+
"url",
|
|
648
|
+
"phone",
|
|
649
|
+
"password",
|
|
650
|
+
// Rich Content
|
|
651
|
+
"markdown",
|
|
652
|
+
"html",
|
|
653
|
+
"richtext",
|
|
654
|
+
// Numbers
|
|
655
|
+
"number",
|
|
656
|
+
"currency",
|
|
657
|
+
"percent",
|
|
658
|
+
// Date & Time
|
|
659
|
+
"date",
|
|
660
|
+
"datetime",
|
|
661
|
+
"time",
|
|
662
|
+
// Logic
|
|
663
|
+
"boolean",
|
|
664
|
+
"toggle",
|
|
665
|
+
// Toggle is a distinct UI from checkbox
|
|
666
|
+
// Selection
|
|
667
|
+
"select",
|
|
668
|
+
// Single select dropdown
|
|
669
|
+
"multiselect",
|
|
670
|
+
// Multi select (often tags)
|
|
671
|
+
"radio",
|
|
672
|
+
// Radio group
|
|
673
|
+
"checkboxes",
|
|
674
|
+
// Checkbox group
|
|
675
|
+
// Relational
|
|
676
|
+
"lookup",
|
|
677
|
+
"master_detail",
|
|
678
|
+
// Dynamic reference
|
|
679
|
+
"tree",
|
|
680
|
+
// Hierarchical reference
|
|
681
|
+
// Media
|
|
682
|
+
"image",
|
|
683
|
+
"file",
|
|
684
|
+
"avatar",
|
|
685
|
+
"video",
|
|
686
|
+
"audio",
|
|
687
|
+
// Calculated / System
|
|
688
|
+
"formula",
|
|
689
|
+
"summary",
|
|
690
|
+
"autonumber",
|
|
691
|
+
// Embedded structured values (stored as JSON on the parent row — no separate table / FK)
|
|
692
|
+
"composite",
|
|
693
|
+
// Single embedded sub-object with declared sub-fields (≈ Strapi component / ACF group)
|
|
694
|
+
"repeater",
|
|
695
|
+
// Repeating embedded sub-object array with declared sub-fields (≈ Strapi repeatable component / ACF repeater)
|
|
696
|
+
// Enhanced Types
|
|
697
|
+
"location",
|
|
698
|
+
// GPS coordinates
|
|
699
|
+
"address",
|
|
700
|
+
// Structured address
|
|
701
|
+
"code",
|
|
702
|
+
// Code editor (JSON/SQL/JS)
|
|
703
|
+
"json",
|
|
704
|
+
// Structured JSON data (untyped escape hatch)
|
|
705
|
+
"color",
|
|
706
|
+
// Color picker
|
|
707
|
+
"rating",
|
|
708
|
+
// Star rating
|
|
709
|
+
"slider",
|
|
710
|
+
// Numeric slider
|
|
711
|
+
"signature",
|
|
712
|
+
// Digital signature
|
|
713
|
+
"qrcode",
|
|
714
|
+
// QR code / Barcode
|
|
715
|
+
"progress",
|
|
716
|
+
// Progress bar
|
|
717
|
+
"tags",
|
|
718
|
+
// Simple tag list
|
|
719
|
+
// AI/ML Types
|
|
720
|
+
"vector"
|
|
721
|
+
// Vector embeddings for AI/ML (semantic search, RAG)
|
|
577
722
|
]);
|
|
578
|
-
var
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
params: z.record(z.string(), z.unknown()).optional().describe("Query parameters"),
|
|
584
|
-
body: z.unknown().optional().describe("Request body for POST/PUT/PATCH")
|
|
723
|
+
var SelectOptionSchema = lazySchema(() => z.object({
|
|
724
|
+
label: z.string().describe("Display label (human-readable, any case allowed)"),
|
|
725
|
+
value: SystemIdentifierSchema.describe("Stored value (lowercase machine identifier)"),
|
|
726
|
+
color: z.string().optional().describe("Color code for badges/charts"),
|
|
727
|
+
default: z.boolean().optional().describe("Is default option")
|
|
585
728
|
}));
|
|
586
729
|
lazySchema(() => z.object({
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
z.array(z.string())
|
|
597
|
-
]).default("*").describe("Allowed origins (* for all)"),
|
|
598
|
-
/**
|
|
599
|
-
* Allowed HTTP methods
|
|
600
|
-
*/
|
|
601
|
-
methods: z.array(HttpMethod).optional().describe("Allowed HTTP methods"),
|
|
602
|
-
/**
|
|
603
|
-
* Allow credentials (cookies, authorization headers)
|
|
604
|
-
*/
|
|
605
|
-
credentials: z.boolean().default(false).describe("Allow credentials (cookies, authorization headers)"),
|
|
606
|
-
/**
|
|
607
|
-
* Preflight cache duration in seconds
|
|
608
|
-
*/
|
|
609
|
-
maxAge: z.number().int().optional().describe("Preflight cache duration in seconds")
|
|
730
|
+
latitude: z.number().min(-90).max(90).describe("Latitude coordinate"),
|
|
731
|
+
longitude: z.number().min(-180).max(180).describe("Longitude coordinate"),
|
|
732
|
+
altitude: z.number().optional().describe("Altitude in meters"),
|
|
733
|
+
accuracy: z.number().optional().describe("Accuracy in meters")
|
|
734
|
+
}));
|
|
735
|
+
var CurrencyConfigSchema = lazySchema(() => z.object({
|
|
736
|
+
precision: z.number().int().min(0).max(10).default(2).describe("Decimal precision (default: 2)"),
|
|
737
|
+
currencyMode: z.enum(["dynamic", "fixed"]).default("dynamic").describe("Currency mode: dynamic (user selectable) or fixed (single currency)"),
|
|
738
|
+
defaultCurrency: z.string().length(3).default("CNY").describe("Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)")
|
|
610
739
|
}));
|
|
611
740
|
lazySchema(() => z.object({
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
*/
|
|
615
|
-
enabled: z.boolean().default(false).describe("Enable rate limiting"),
|
|
616
|
-
/**
|
|
617
|
-
* Time window in milliseconds
|
|
618
|
-
*/
|
|
619
|
-
windowMs: z.number().int().default(6e4).describe("Time window in milliseconds"),
|
|
620
|
-
/**
|
|
621
|
-
* Max requests per window
|
|
622
|
-
*/
|
|
623
|
-
maxRequests: z.number().int().default(100).describe("Max requests per window")
|
|
741
|
+
value: z.number().describe("Monetary amount"),
|
|
742
|
+
currency: z.string().length(3).describe("Currency code (ISO 4217)")
|
|
624
743
|
}));
|
|
625
744
|
lazySchema(() => z.object({
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
directory: z.string().describe("Physical directory to serve"),
|
|
634
|
-
/**
|
|
635
|
-
* Cache-Control header value
|
|
636
|
-
*/
|
|
637
|
-
cacheControl: z.string().optional().describe("Cache-Control header value")
|
|
745
|
+
street: z.string().optional().describe("Street address"),
|
|
746
|
+
city: z.string().optional().describe("City name"),
|
|
747
|
+
state: z.string().optional().describe("State/Province"),
|
|
748
|
+
postalCode: z.string().optional().describe("Postal/ZIP code"),
|
|
749
|
+
country: z.string().optional().describe("Country name or code"),
|
|
750
|
+
countryCode: z.string().optional().describe("ISO country code (e.g., US, GB)"),
|
|
751
|
+
formatted: z.string().optional().describe("Formatted address string")
|
|
638
752
|
}));
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
z.
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
}),
|
|
646
|
-
z.object({
|
|
647
|
-
provider: z.literal("api"),
|
|
648
|
-
read: HttpRequestSchema.optional().describe("Configuration for fetching data"),
|
|
649
|
-
write: HttpRequestSchema.optional().describe("Configuration for submitting data (for forms/editable tables)")
|
|
650
|
-
}),
|
|
651
|
-
z.object({
|
|
652
|
-
provider: z.literal("value"),
|
|
653
|
-
items: z.array(z.unknown()).describe("Static data array")
|
|
654
|
-
})
|
|
655
|
-
]));
|
|
656
|
-
var ViewFilterRuleSchema = lazySchema(() => z.object({
|
|
657
|
-
/** Field name to filter on */
|
|
658
|
-
field: z.string().describe("Field name to filter on"),
|
|
659
|
-
/** Filter operator */
|
|
660
|
-
operator: z.string().describe("Filter operator (e.g. equals, not_equals, contains, this_quarter)"),
|
|
661
|
-
/** Filter value (optional for unary operators like is_null, this_quarter) */
|
|
662
|
-
value: z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(z.union([z.string(), z.number()]))]).optional().describe("Filter value")
|
|
663
|
-
}).describe("View filter rule"));
|
|
664
|
-
var ColumnSummarySchema = lazySchema(() => z.enum([
|
|
665
|
-
"none",
|
|
666
|
-
"count",
|
|
667
|
-
"count_empty",
|
|
668
|
-
"count_filled",
|
|
669
|
-
"count_unique",
|
|
670
|
-
"percent_empty",
|
|
671
|
-
"percent_filled",
|
|
672
|
-
"sum",
|
|
673
|
-
"avg",
|
|
674
|
-
"min",
|
|
675
|
-
"max"
|
|
676
|
-
]).describe("Aggregation function for column footer summary"));
|
|
677
|
-
var ListColumnSchema = lazySchema(() => z.object({
|
|
678
|
-
field: z.string().describe("Field name (snake_case)"),
|
|
679
|
-
label: I18nLabelSchema.optional().describe("Display label override"),
|
|
680
|
-
width: z.number().positive().optional().describe("Column width in pixels"),
|
|
681
|
-
align: z.enum(["left", "center", "right"]).optional().describe("Text alignment"),
|
|
682
|
-
hidden: z.boolean().optional().describe("Hide column by default"),
|
|
683
|
-
sortable: z.boolean().optional().describe("Allow sorting by this column"),
|
|
684
|
-
resizable: z.boolean().optional().describe("Allow resizing this column"),
|
|
685
|
-
wrap: z.boolean().optional().describe("Allow text wrapping"),
|
|
686
|
-
type: z.string().optional().describe('Renderer type override (e.g., "currency", "date")'),
|
|
687
|
-
/** Pinning (Airtable-style frozen columns) */
|
|
688
|
-
pinned: z.enum(["left", "right"]).optional().describe("Pin/freeze column to left or right side"),
|
|
689
|
-
/** Column Footer Summary (Airtable-style aggregation) */
|
|
690
|
-
summary: ColumnSummarySchema.optional().describe("Footer aggregation function for this column"),
|
|
691
|
-
/** Interaction */
|
|
692
|
-
link: z.boolean().optional().describe("Functions as the primary navigation link (triggers View navigation)"),
|
|
693
|
-
action: z.string().optional().describe("Registered Action ID to execute when clicked")
|
|
694
|
-
}));
|
|
695
|
-
var SelectionConfigSchema = lazySchema(() => z.object({
|
|
696
|
-
type: z.enum(["none", "single", "multiple"]).default("none").describe("Selection mode")
|
|
697
|
-
}));
|
|
698
|
-
var PaginationConfigSchema = lazySchema(() => z.object({
|
|
699
|
-
pageSize: z.number().int().positive().default(25).describe("Number of records per page"),
|
|
700
|
-
pageSizeOptions: z.array(z.number().int().positive()).optional().describe("Available page size options")
|
|
701
|
-
}));
|
|
702
|
-
var RowHeightSchema = lazySchema(() => z.enum([
|
|
703
|
-
"compact",
|
|
704
|
-
// Minimal padding, single line
|
|
705
|
-
"short",
|
|
706
|
-
// Reduced padding
|
|
707
|
-
"medium",
|
|
708
|
-
// Default padding
|
|
709
|
-
"tall",
|
|
710
|
-
// Extra padding, multi-line preview
|
|
711
|
-
"extra_tall"
|
|
712
|
-
// Maximum padding, rich content preview
|
|
713
|
-
]).describe("Row height / density setting for list view"));
|
|
714
|
-
var GroupingFieldSchema = lazySchema(() => z.object({
|
|
715
|
-
field: z.string().describe("Field name to group by"),
|
|
716
|
-
order: z.enum(["asc", "desc"]).default("asc").describe("Group sort order"),
|
|
717
|
-
collapsed: z.boolean().default(false).describe("Collapse groups by default")
|
|
718
|
-
}));
|
|
719
|
-
var GroupingConfigSchema = lazySchema(() => z.object({
|
|
720
|
-
fields: z.array(GroupingFieldSchema).min(1).describe("Fields to group by (supports up to 3 levels)")
|
|
721
|
-
}).describe("Record grouping configuration"));
|
|
722
|
-
var GalleryConfigSchema = lazySchema(() => z.object({
|
|
723
|
-
coverField: z.string().optional().describe("Attachment/image field to display as card cover"),
|
|
724
|
-
coverFit: z.enum(["cover", "contain"]).default("cover").describe("Image fit mode for card cover"),
|
|
725
|
-
cardSize: z.enum(["small", "medium", "large"]).default("medium").describe("Card size in gallery view"),
|
|
726
|
-
titleField: z.string().optional().describe("Field to display as card title"),
|
|
727
|
-
visibleFields: z.array(z.string()).optional().describe("Fields to display on card body")
|
|
728
|
-
}).describe("Gallery/card view configuration"));
|
|
729
|
-
var TimelineConfigSchema = lazySchema(() => z.object({
|
|
730
|
-
startDateField: z.string().describe("Field for timeline item start date"),
|
|
731
|
-
endDateField: z.string().optional().describe("Field for timeline item end date"),
|
|
732
|
-
titleField: z.string().describe("Field to display as timeline item title"),
|
|
733
|
-
groupByField: z.string().optional().describe("Field to group timeline rows"),
|
|
734
|
-
colorField: z.string().optional().describe("Field to determine item color"),
|
|
735
|
-
scale: z.enum(["hour", "day", "week", "month", "quarter", "year"]).default("week").describe("Default timeline scale")
|
|
736
|
-
}).describe("Timeline view configuration"));
|
|
737
|
-
var ViewSharingSchema = lazySchema(() => z.object({
|
|
738
|
-
type: z.enum(["personal", "collaborative"]).default("collaborative").describe("View ownership type"),
|
|
739
|
-
lockedBy: z.string().optional().describe("User who locked the view configuration")
|
|
740
|
-
}).describe("View sharing and access configuration"));
|
|
741
|
-
var RowColorConfigSchema = lazySchema(() => z.object({
|
|
742
|
-
field: z.string().describe("Field to derive color from (typically a select/status field)"),
|
|
743
|
-
colors: z.record(z.string(), z.string()).optional().describe("Map of field value to color (hex/token)")
|
|
744
|
-
}).describe("Row color configuration based on field values"));
|
|
745
|
-
var VisualizationTypeSchema = lazySchema(() => z.enum([
|
|
746
|
-
"grid",
|
|
747
|
-
"kanban",
|
|
748
|
-
"gallery",
|
|
749
|
-
"calendar",
|
|
750
|
-
"timeline",
|
|
751
|
-
"gantt",
|
|
752
|
-
"map"
|
|
753
|
-
]).describe("Visualization type that users can switch to"));
|
|
754
|
-
var UserActionsConfigSchema = lazySchema(() => z.object({
|
|
755
|
-
sort: z.boolean().default(true).describe("Allow users to sort records"),
|
|
756
|
-
search: z.boolean().default(true).describe("Allow users to search records"),
|
|
757
|
-
filter: z.boolean().default(true).describe("Allow users to filter records"),
|
|
758
|
-
rowHeight: z.boolean().default(true).describe("Allow users to toggle row height/density"),
|
|
759
|
-
addRecordForm: z.boolean().default(false).describe("Add records through a form instead of inline"),
|
|
760
|
-
buttons: z.array(z.string()).optional().describe("Custom action button IDs to show in the toolbar")
|
|
761
|
-
}).describe("User action toggles for the view toolbar"));
|
|
762
|
-
var AppearanceConfigSchema = lazySchema(() => z.object({
|
|
763
|
-
showDescription: z.boolean().default(true).describe("Show the view description text"),
|
|
764
|
-
allowedVisualizations: z.array(VisualizationTypeSchema).optional().describe('Whitelist of visualization types users can switch between (e.g. ["grid", "gallery", "kanban"])')
|
|
765
|
-
}).describe("Appearance and visualization configuration"));
|
|
766
|
-
var ViewTabSchema = lazySchema(() => z.object({
|
|
767
|
-
name: SnakeCaseIdentifierSchema.describe("Tab identifier (snake_case)"),
|
|
768
|
-
label: I18nLabelSchema.optional().describe("Display label"),
|
|
769
|
-
icon: z.string().optional().describe("Tab icon name"),
|
|
770
|
-
view: z.string().optional().describe("Referenced list view name from listViews"),
|
|
771
|
-
filter: z.array(ViewFilterRuleSchema).optional().describe("Tab-specific filter criteria"),
|
|
772
|
-
order: z.number().int().min(0).optional().describe("Tab display order"),
|
|
773
|
-
pinned: z.boolean().default(false).describe("Pin tab (cannot be removed by users)"),
|
|
774
|
-
isDefault: z.boolean().default(false).describe("Set as the default active tab"),
|
|
775
|
-
visible: z.boolean().default(true).describe("Tab visibility")
|
|
776
|
-
}).describe("Tab configuration for multi-tab view interface"));
|
|
777
|
-
var AddRecordConfigSchema = lazySchema(() => z.object({
|
|
778
|
-
enabled: z.boolean().default(true).describe("Show the add record entry point"),
|
|
779
|
-
position: z.enum(["top", "bottom", "both"]).default("bottom").describe("Position of the add record button"),
|
|
780
|
-
mode: z.enum(["inline", "form", "modal"]).default("inline").describe("How to add a new record"),
|
|
781
|
-
formView: z.string().optional().describe('Named form view to use when mode is "form" or "modal"')
|
|
782
|
-
}).describe("Add record entry point configuration"));
|
|
783
|
-
var KanbanConfigSchema = lazySchema(() => z.object({
|
|
784
|
-
groupByField: z.string().describe("Field to group columns by (usually status/select)"),
|
|
785
|
-
summarizeField: z.string().optional().describe("Field to sum at top of column (e.g. amount)"),
|
|
786
|
-
columns: z.array(z.string()).describe("Fields to show on cards")
|
|
753
|
+
var VectorConfigSchema = lazySchema(() => z.object({
|
|
754
|
+
dimensions: z.number().int().min(1).max(1e4).describe("Vector dimensionality (e.g., 1536 for OpenAI embeddings)"),
|
|
755
|
+
distanceMetric: z.enum(["cosine", "euclidean", "dotProduct", "manhattan"]).default("cosine").describe("Distance/similarity metric for vector search"),
|
|
756
|
+
normalized: z.boolean().default(false).describe("Whether vectors are normalized (unit length)"),
|
|
757
|
+
indexed: z.boolean().default(true).describe("Whether to create a vector index for fast similarity search"),
|
|
758
|
+
indexType: z.enum(["hnsw", "ivfflat", "flat"]).optional().describe("Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)")
|
|
787
759
|
}));
|
|
788
|
-
var
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
760
|
+
var FileAttachmentConfigSchema = lazySchema(() => z.object({
|
|
761
|
+
/** File Size Limits */
|
|
762
|
+
minSize: z.number().min(0).optional().describe("Minimum file size in bytes"),
|
|
763
|
+
maxSize: z.number().min(1).optional().describe("Maximum file size in bytes (e.g., 10485760 = 10MB)"),
|
|
764
|
+
/** File Type Restrictions */
|
|
765
|
+
allowedTypes: z.array(z.string()).optional().describe('Allowed file extensions (e.g., [".pdf", ".docx", ".jpg"])'),
|
|
766
|
+
blockedTypes: z.array(z.string()).optional().describe('Blocked file extensions (e.g., [".exe", ".bat", ".sh"])'),
|
|
767
|
+
allowedMimeTypes: z.array(z.string()).optional().describe('Allowed MIME types (e.g., ["image/jpeg", "application/pdf"])'),
|
|
768
|
+
blockedMimeTypes: z.array(z.string()).optional().describe("Blocked MIME types"),
|
|
769
|
+
/** Virus Scanning */
|
|
770
|
+
virusScan: z.boolean().default(false).describe("Enable virus scanning for uploaded files"),
|
|
771
|
+
virusScanProvider: z.enum(["clamav", "virustotal", "metadefender", "custom"]).optional().describe("Virus scanning service provider"),
|
|
772
|
+
virusScanOnUpload: z.boolean().default(true).describe("Scan files immediately on upload"),
|
|
773
|
+
quarantineOnThreat: z.boolean().default(true).describe("Quarantine files if threat detected"),
|
|
774
|
+
/** Storage Configuration */
|
|
775
|
+
storageProvider: z.string().optional().describe("Object storage provider name (references ObjectStorageConfig)"),
|
|
776
|
+
storageBucket: z.string().optional().describe("Target bucket name"),
|
|
777
|
+
storagePrefix: z.string().optional().describe('Storage path prefix (e.g., "uploads/documents/")'),
|
|
778
|
+
/** Image-Specific Validation */
|
|
779
|
+
imageValidation: z.object({
|
|
780
|
+
minWidth: z.number().min(1).optional().describe("Minimum image width in pixels"),
|
|
781
|
+
maxWidth: z.number().min(1).optional().describe("Maximum image width in pixels"),
|
|
782
|
+
minHeight: z.number().min(1).optional().describe("Minimum image height in pixels"),
|
|
783
|
+
maxHeight: z.number().min(1).optional().describe("Maximum image height in pixels"),
|
|
784
|
+
aspectRatio: z.string().optional().describe('Required aspect ratio (e.g., "16:9", "1:1")'),
|
|
785
|
+
generateThumbnails: z.boolean().default(false).describe("Auto-generate thumbnails"),
|
|
786
|
+
thumbnailSizes: z.array(z.object({
|
|
787
|
+
name: z.string().describe('Thumbnail variant name (e.g., "small", "medium", "large")'),
|
|
788
|
+
width: z.number().min(1).describe("Thumbnail width in pixels"),
|
|
789
|
+
height: z.number().min(1).describe("Thumbnail height in pixels"),
|
|
790
|
+
crop: z.boolean().default(false).describe("Crop to exact dimensions")
|
|
791
|
+
})).optional().describe("Thumbnail size configurations"),
|
|
792
|
+
preserveMetadata: z.boolean().default(false).describe("Preserve EXIF metadata"),
|
|
793
|
+
autoRotate: z.boolean().default(true).describe("Auto-rotate based on EXIF orientation")
|
|
794
|
+
}).optional().describe("Image-specific validation rules"),
|
|
795
|
+
/** Upload Behavior */
|
|
796
|
+
allowMultiple: z.boolean().default(false).describe("Allow multiple file uploads (overrides field.multiple)"),
|
|
797
|
+
allowReplace: z.boolean().default(true).describe("Allow replacing existing files"),
|
|
798
|
+
allowDelete: z.boolean().default(true).describe("Allow deleting uploaded files"),
|
|
799
|
+
requireUpload: z.boolean().default(false).describe("Require at least one file when field is required"),
|
|
800
|
+
/** Metadata Extraction */
|
|
801
|
+
extractMetadata: z.boolean().default(true).describe("Extract file metadata (name, size, type, etc.)"),
|
|
802
|
+
extractText: z.boolean().default(false).describe("Extract text content from documents (OCR/parsing)"),
|
|
803
|
+
/** Versioning */
|
|
804
|
+
versioningEnabled: z.boolean().default(false).describe("Keep previous versions of replaced files"),
|
|
805
|
+
maxVersions: z.number().min(1).optional().describe("Maximum number of versions to retain"),
|
|
806
|
+
/** Access Control */
|
|
807
|
+
publicRead: z.boolean().default(false).describe("Allow public read access to uploaded files"),
|
|
808
|
+
presignedUrlExpiry: z.number().min(60).max(604800).default(3600).describe("Presigned URL expiration in seconds (default: 1 hour)")
|
|
809
|
+
}).refine((data) => {
|
|
810
|
+
if (data.minSize !== void 0 && data.maxSize !== void 0 && data.minSize > data.maxSize) {
|
|
811
|
+
return false;
|
|
812
|
+
}
|
|
813
|
+
return true;
|
|
814
|
+
}, {
|
|
815
|
+
message: "minSize must be less than or equal to maxSize"
|
|
816
|
+
}).refine((data) => {
|
|
817
|
+
if (data.virusScanProvider !== void 0 && data.virusScan !== true) {
|
|
818
|
+
return false;
|
|
819
|
+
}
|
|
820
|
+
return true;
|
|
821
|
+
}, {
|
|
822
|
+
message: "virusScanProvider requires virusScan to be enabled"
|
|
800
823
|
}));
|
|
801
|
-
var
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
824
|
+
var DataQualityRulesSchema = lazySchema(() => z.object({
|
|
825
|
+
/** Enforce uniqueness constraint */
|
|
826
|
+
uniqueness: z.boolean().default(false).describe("Enforce unique values across all records"),
|
|
827
|
+
/** Completeness ratio (0-1) indicating minimum percentage of non-null values */
|
|
828
|
+
completeness: z.number().min(0).max(1).default(0).describe("Minimum ratio of non-null values (0-1, default: 0 = no requirement)"),
|
|
829
|
+
/** Accuracy validation against authoritative source */
|
|
830
|
+
accuracy: z.object({
|
|
831
|
+
source: z.string().describe('Reference data source for validation (e.g., "api.verify.com", "master_data")'),
|
|
832
|
+
threshold: z.number().min(0).max(1).describe("Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)")
|
|
833
|
+
}).optional().describe("Accuracy validation configuration")
|
|
807
834
|
}));
|
|
808
|
-
var
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
"split",
|
|
816
|
-
// Show details side-by-side with the list (master-detail)
|
|
817
|
-
"popover",
|
|
818
|
-
// Show details in a popover (lightweight)
|
|
819
|
-
"new_window",
|
|
820
|
-
// Open in new browser tab/window
|
|
821
|
-
"none"
|
|
822
|
-
// No navigation (read-only list)
|
|
823
|
-
]));
|
|
824
|
-
var NavigationConfigSchema = lazySchema(() => z.object({
|
|
825
|
-
mode: NavigationModeSchema.default("page"),
|
|
826
|
-
/** Target View Config */
|
|
827
|
-
view: z.string().optional().describe('Name of the form view to use for details (e.g. "summary_view", "edit_form")'),
|
|
828
|
-
/** Interaction Triggers */
|
|
829
|
-
preventNavigation: z.boolean().default(false).describe("Disable standard navigation entirely"),
|
|
830
|
-
openNewTab: z.boolean().default(false).describe("Force open in new tab (applies to page mode)"),
|
|
831
|
-
/** Dimensions (for modal/drawer) */
|
|
832
|
-
width: z.union([z.string(), z.number()]).optional().describe('Width of the drawer/modal (e.g. "600px", "50%")')
|
|
835
|
+
var ComputedFieldCacheSchema = lazySchema(() => z.object({
|
|
836
|
+
/** Enable caching for this computed field */
|
|
837
|
+
enabled: z.boolean().describe("Enable caching for computed field results"),
|
|
838
|
+
/** Time-to-live in seconds */
|
|
839
|
+
ttl: z.number().min(0).describe("Cache TTL in seconds (0 = no expiration)"),
|
|
840
|
+
/** Array of field paths that trigger cache invalidation when changed */
|
|
841
|
+
invalidateOn: z.array(z.string()).describe('Field paths that invalidate cache (e.g., ["inventory.quantity", "pricing.base_price"])')
|
|
833
842
|
}));
|
|
834
|
-
var
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
type:
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
columns: z.union([
|
|
860
|
-
z.array(z.string()),
|
|
861
|
-
// Legacy: simple field names
|
|
862
|
-
z.array(ListColumnSchema)
|
|
863
|
-
// Enhanced: detailed column config
|
|
864
|
-
]).describe("Fields to display as columns"),
|
|
865
|
-
filter: z.array(ViewFilterRuleSchema).optional().describe("Filter criteria (JSON Rules)"),
|
|
866
|
-
sort: z.union([
|
|
867
|
-
z.string(),
|
|
868
|
-
//Legacy "field desc"
|
|
869
|
-
z.array(z.object({
|
|
870
|
-
field: z.string(),
|
|
871
|
-
order: z.enum(["asc", "desc"])
|
|
872
|
-
}))
|
|
873
|
-
]).optional(),
|
|
874
|
-
/** Search & Filter */
|
|
875
|
-
searchableFields: z.array(z.string()).optional().describe("Fields enabled for search"),
|
|
876
|
-
filterableFields: z.array(z.string()).optional().describe("Fields enabled for end-user filtering in the top bar"),
|
|
877
|
-
/** Grid Features */
|
|
878
|
-
resizable: z.boolean().optional().describe("Enable column resizing"),
|
|
879
|
-
striped: z.boolean().optional().describe("Striped row styling"),
|
|
880
|
-
bordered: z.boolean().optional().describe("Show borders"),
|
|
881
|
-
compactToolbar: z.boolean().optional().describe("Collapse Group/Color/Density/Hide-fields into a single View settings popover"),
|
|
882
|
-
/** Selection */
|
|
883
|
-
selection: SelectionConfigSchema.optional().describe("Row selection configuration"),
|
|
884
|
-
/** Navigation / Interaction */
|
|
885
|
-
navigation: NavigationConfigSchema.optional().describe("Configuration for item click navigation (page, drawer, modal, etc.)"),
|
|
886
|
-
/** Pagination */
|
|
887
|
-
pagination: PaginationConfigSchema.optional().describe("Pagination configuration"),
|
|
888
|
-
/** Type Specific Config */
|
|
889
|
-
kanban: KanbanConfigSchema.optional(),
|
|
890
|
-
calendar: CalendarConfigSchema.optional(),
|
|
891
|
-
gantt: GanttConfigSchema.optional(),
|
|
892
|
-
gallery: GalleryConfigSchema.optional(),
|
|
893
|
-
timeline: TimelineConfigSchema.optional(),
|
|
894
|
-
chart: ListChartConfigSchema.optional(),
|
|
895
|
-
/** View Metadata (Airtable-style view management) */
|
|
896
|
-
description: I18nLabelSchema.optional().describe("View description for documentation/tooltips"),
|
|
897
|
-
sharing: ViewSharingSchema.optional().describe("View sharing and access configuration"),
|
|
898
|
-
/** Row Height / Density (Airtable-style) */
|
|
899
|
-
rowHeight: RowHeightSchema.optional().describe("Row height / density setting"),
|
|
900
|
-
/** Record Grouping (Airtable-style) */
|
|
901
|
-
grouping: GroupingConfigSchema.optional().describe("Group records by one or more fields"),
|
|
902
|
-
/** Row Color (Airtable-style) */
|
|
903
|
-
rowColor: RowColorConfigSchema.optional().describe("Color rows based on field value"),
|
|
904
|
-
/** Field Visibility & Ordering per View (Airtable-style) */
|
|
905
|
-
hiddenFields: z.array(z.string()).optional().describe("Fields to hide in this specific view"),
|
|
906
|
-
fieldOrder: z.array(z.string()).optional().describe("Explicit field display order for this view"),
|
|
907
|
-
/** Row & Bulk Actions */
|
|
908
|
-
rowActions: z.array(z.string()).optional().describe("Actions available for individual row items"),
|
|
909
|
-
bulkActions: z.array(z.string()).optional().describe("Actions available when multiple rows are selected"),
|
|
910
|
-
bulkActionDefs: z.array(z.record(z.string(), z.any())).optional().describe("Rich bulk action definitions (schema-driven, executed via BulkActionDialog)"),
|
|
911
|
-
/** Performance */
|
|
912
|
-
virtualScroll: z.boolean().optional().describe("Enable virtual scrolling for large datasets"),
|
|
913
|
-
/** Conditional Formatting */
|
|
914
|
-
conditionalFormatting: z.array(z.object({
|
|
915
|
-
condition: ExpressionInputSchema.describe("Predicate (CEL) to evaluate."),
|
|
916
|
-
style: z.record(z.string(), z.string()).describe("CSS styles to apply when condition is true")
|
|
917
|
-
})).optional().describe("Conditional formatting rules for list rows"),
|
|
918
|
-
/** Inline Edit */
|
|
919
|
-
inlineEdit: z.boolean().optional().describe("Allow inline editing of records directly in the list view"),
|
|
920
|
-
/** Export */
|
|
921
|
-
exportOptions: z.array(z.enum(["csv", "xlsx", "pdf", "json"])).optional().describe("Available export format options"),
|
|
922
|
-
/** User Actions (Airtable Interface parity) */
|
|
923
|
-
userActions: UserActionsConfigSchema.optional().describe("User action toggles for the view toolbar"),
|
|
924
|
-
/** Appearance (Airtable Interface parity) */
|
|
925
|
-
appearance: AppearanceConfigSchema.optional().describe("Appearance and visualization configuration"),
|
|
926
|
-
/** Tabs (Airtable Interface parity) */
|
|
927
|
-
tabs: z.array(ViewTabSchema).optional().describe("Tab definitions for multi-tab view interface"),
|
|
928
|
-
/** Add Record (Airtable Interface parity) */
|
|
929
|
-
addRecord: AddRecordConfigSchema.optional().describe("Add record entry point configuration"),
|
|
930
|
-
/** Record Count Display (Airtable Interface parity) */
|
|
931
|
-
showRecordCount: z.boolean().optional().describe("Show record count at the bottom of the list"),
|
|
932
|
-
/** Advanced: Allow Printing (Airtable Interface parity) */
|
|
933
|
-
allowPrinting: z.boolean().optional().describe("Allow users to print the view"),
|
|
934
|
-
/** Empty State */
|
|
935
|
-
emptyState: z.object({
|
|
936
|
-
title: I18nLabelSchema.optional(),
|
|
937
|
-
message: I18nLabelSchema.optional(),
|
|
938
|
-
icon: z.string().optional()
|
|
939
|
-
}).optional().describe("Empty state configuration when no records found"),
|
|
940
|
-
/** ARIA accessibility attributes */
|
|
941
|
-
aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes for the list view"),
|
|
942
|
-
/** Responsive layout overrides per breakpoint */
|
|
943
|
-
responsive: ResponsiveConfigSchema.optional().describe("Responsive layout configuration"),
|
|
944
|
-
/** Performance optimization settings */
|
|
945
|
-
performance: PerformanceConfigSchema.optional().describe("Performance optimization settings")
|
|
946
|
-
}));
|
|
947
|
-
var FormFieldSchema = lazySchema(() => z.object({
|
|
948
|
-
field: z.string().describe("Field name (snake_case)"),
|
|
949
|
-
label: I18nLabelSchema.optional().describe("Display label override"),
|
|
950
|
-
placeholder: I18nLabelSchema.optional().describe("Placeholder text"),
|
|
951
|
-
helpText: I18nLabelSchema.optional().describe("Help/hint text"),
|
|
952
|
-
readonly: z.boolean().optional().describe("Read-only override"),
|
|
953
|
-
required: z.boolean().optional().describe("Required override"),
|
|
954
|
-
hidden: z.boolean().optional().describe("Hidden override"),
|
|
955
|
-
colSpan: z.number().int().min(1).max(4).optional().describe("Column span in grid layout (1-4)"),
|
|
956
|
-
widget: z.string().optional().describe("Custom widget/component name"),
|
|
957
|
-
dependsOn: z.string().optional().describe("Parent field name for cascading"),
|
|
958
|
-
visibleOn: ExpressionInputSchema.optional().describe("Visibility predicate (CEL).")
|
|
959
|
-
}));
|
|
960
|
-
var FormSectionSchema = lazySchema(() => z.object({
|
|
961
|
-
label: I18nLabelSchema.optional(),
|
|
962
|
-
collapsible: z.boolean().default(false),
|
|
963
|
-
collapsed: z.boolean().default(false),
|
|
964
|
-
columns: z.union([
|
|
965
|
-
z.enum(["1", "2", "3", "4"]),
|
|
966
|
-
z.literal(1),
|
|
967
|
-
z.literal(2),
|
|
968
|
-
z.literal(3),
|
|
969
|
-
z.literal(4)
|
|
970
|
-
]).default(2).transform((val) => typeof val === "string" ? parseInt(val) : val),
|
|
971
|
-
fields: z.array(z.union([
|
|
972
|
-
z.string(),
|
|
973
|
-
// Legacy: simple field name
|
|
974
|
-
FormFieldSchema
|
|
975
|
-
// Enhanced: detailed field config
|
|
976
|
-
]))
|
|
977
|
-
}));
|
|
978
|
-
var FormViewSchema = lazySchema(() => z.object({
|
|
979
|
-
type: z.enum([
|
|
980
|
-
"simple",
|
|
981
|
-
// Single column or sections
|
|
982
|
-
"tabbed",
|
|
983
|
-
// Tabs
|
|
984
|
-
"wizard",
|
|
985
|
-
// Step by step
|
|
986
|
-
"split",
|
|
987
|
-
// Master-Detail split
|
|
988
|
-
"drawer",
|
|
989
|
-
// Side panel
|
|
990
|
-
"modal"
|
|
991
|
-
// Dialog
|
|
992
|
-
]).default("simple"),
|
|
993
|
-
/** Data Source Configuration */
|
|
994
|
-
data: ViewDataSchema.optional().describe('Data source configuration (defaults to "object" provider)'),
|
|
995
|
-
sections: z.array(FormSectionSchema).optional(),
|
|
996
|
-
// For simple layout
|
|
997
|
-
groups: z.array(FormSectionSchema).optional(),
|
|
998
|
-
// Legacy support -> alias to sections
|
|
999
|
-
/** Default Sort for Related Lists (e.g., sort child records by date) */
|
|
1000
|
-
defaultSort: z.array(z.object({
|
|
1001
|
-
field: z.string().describe("Field name to sort by"),
|
|
1002
|
-
order: z.enum(["asc", "desc"]).default("desc").describe("Sort direction")
|
|
1003
|
-
})).optional().describe("Default sort order for related list views within this form"),
|
|
1004
|
-
/** Public form sharing configuration */
|
|
1005
|
-
sharing: SharingConfigSchema.optional().describe("Public sharing configuration for this form"),
|
|
843
|
+
var FieldSchema = lazySchema(() => z.object({
|
|
844
|
+
/** Identity */
|
|
845
|
+
name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe("Machine name (snake_case)").optional(),
|
|
846
|
+
label: z.string().optional().describe("Human readable label"),
|
|
847
|
+
type: FieldType.describe("Field Data Type"),
|
|
848
|
+
description: z.string().optional().describe("Tooltip/Help text"),
|
|
849
|
+
format: z.string().optional().describe("Format string (e.g. email, phone)"),
|
|
850
|
+
/** Storage Layer Mapping */
|
|
851
|
+
columnName: z.string().optional().describe("Physical column name in the target datasource. Defaults to the field key when not set."),
|
|
852
|
+
/** Database Constraints */
|
|
853
|
+
required: z.boolean().default(false).describe("Is required"),
|
|
854
|
+
searchable: z.boolean().default(false).describe("Is searchable"),
|
|
855
|
+
multiple: z.boolean().default(false).describe("Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image."),
|
|
856
|
+
unique: z.boolean().default(false).describe("Is unique constraint"),
|
|
857
|
+
defaultValue: z.unknown().optional().describe("Default value"),
|
|
858
|
+
/** Text/String Constraints */
|
|
859
|
+
maxLength: z.number().optional().describe("Max character length"),
|
|
860
|
+
minLength: z.number().optional().describe("Min character length"),
|
|
861
|
+
/** Number Constraints */
|
|
862
|
+
precision: z.number().optional().describe("Total digits"),
|
|
863
|
+
scale: z.number().optional().describe("Decimal places"),
|
|
864
|
+
min: z.number().optional().describe("Minimum value"),
|
|
865
|
+
max: z.number().optional().describe("Maximum value"),
|
|
866
|
+
/** Selection Options */
|
|
867
|
+
options: z.array(SelectOptionSchema).optional().describe("Static options for select/multiselect"),
|
|
1006
868
|
/**
|
|
1007
|
-
*
|
|
1008
|
-
*
|
|
1009
|
-
*
|
|
1010
|
-
*
|
|
1011
|
-
*
|
|
1012
|
-
* -
|
|
869
|
+
* Relationship Config
|
|
870
|
+
*
|
|
871
|
+
* Used by `lookup` and `master_detail` field types to define cross-object references.
|
|
872
|
+
* The `reference` property is **required** for these types — it identifies the target
|
|
873
|
+
* object whose records this field links to. The engine uses `reference` during $expand
|
|
874
|
+
* post-processing to resolve foreign key IDs into full related objects via batch queries.
|
|
875
|
+
*
|
|
876
|
+
* For `master_detail` fields, the parent record controls the lifecycle of child records
|
|
877
|
+
* (e.g., cascade delete). For `lookup` fields, the reference is a soft link.
|
|
1013
878
|
*/
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
z.
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
//
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
/**
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
/**
|
|
1078
|
-
|
|
1079
|
-
/**
|
|
1080
|
-
|
|
1081
|
-
/**
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
}))
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
$ne: z.any().optional(),
|
|
1094
|
-
// Comparison (numeric/date)
|
|
1095
|
-
$gt: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
|
|
1096
|
-
$gte: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
|
|
1097
|
-
$lt: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
|
|
1098
|
-
$lte: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
|
|
1099
|
-
// Set & Range
|
|
1100
|
-
$in: z.array(z.any()).optional(),
|
|
1101
|
-
$nin: z.array(z.any()).optional(),
|
|
1102
|
-
$between: z.tuple([
|
|
1103
|
-
z.union([z.number(), z.date(), FieldReferenceSchema]),
|
|
1104
|
-
z.union([z.number(), z.date(), FieldReferenceSchema])
|
|
1105
|
-
]).optional(),
|
|
1106
|
-
// String-specific
|
|
1107
|
-
$contains: z.string().optional(),
|
|
1108
|
-
$notContains: z.string().optional(),
|
|
1109
|
-
$startsWith: z.string().optional(),
|
|
1110
|
-
$endsWith: z.string().optional(),
|
|
1111
|
-
// Special
|
|
1112
|
-
$null: z.boolean().optional(),
|
|
1113
|
-
$exists: z.boolean().optional()
|
|
1114
|
-
}));
|
|
1115
|
-
var FilterConditionSchema = z.lazy(
|
|
1116
|
-
() => z.record(z.string(), z.unknown()).and(
|
|
1117
|
-
z.object({
|
|
1118
|
-
$and: z.array(FilterConditionSchema).optional(),
|
|
1119
|
-
$or: z.array(FilterConditionSchema).optional(),
|
|
1120
|
-
$not: FilterConditionSchema.optional()
|
|
1121
|
-
})
|
|
1122
|
-
)
|
|
1123
|
-
);
|
|
1124
|
-
lazySchema(() => z.object({
|
|
1125
|
-
where: FilterConditionSchema.optional()
|
|
1126
|
-
}));
|
|
1127
|
-
var NormalizedFilterSchema = z.lazy(
|
|
1128
|
-
() => z.object({
|
|
1129
|
-
$and: z.array(
|
|
1130
|
-
z.union([
|
|
1131
|
-
// Field condition: { field: { $op: value } }
|
|
1132
|
-
z.record(z.string(), FieldOperatorsSchema),
|
|
1133
|
-
// Nested logical group
|
|
1134
|
-
NormalizedFilterSchema
|
|
1135
|
-
])
|
|
1136
|
-
).optional(),
|
|
1137
|
-
$or: z.array(
|
|
1138
|
-
z.union([
|
|
1139
|
-
z.record(z.string(), FieldOperatorsSchema),
|
|
1140
|
-
NormalizedFilterSchema
|
|
1141
|
-
])
|
|
1142
|
-
).optional(),
|
|
1143
|
-
$not: z.union([
|
|
1144
|
-
z.record(z.string(), FieldOperatorsSchema),
|
|
1145
|
-
NormalizedFilterSchema
|
|
1146
|
-
]).optional()
|
|
1147
|
-
})
|
|
1148
|
-
);
|
|
1149
|
-
var SortNodeSchema = lazySchema(() => z.object({
|
|
1150
|
-
field: z.string(),
|
|
1151
|
-
order: z.enum(["asc", "desc"]).default("asc")
|
|
1152
|
-
}));
|
|
1153
|
-
var AggregationFunction = z.enum([
|
|
1154
|
-
"count",
|
|
1155
|
-
"sum",
|
|
1156
|
-
"avg",
|
|
1157
|
-
"min",
|
|
1158
|
-
"max",
|
|
1159
|
-
"count_distinct",
|
|
1160
|
-
"array_agg",
|
|
1161
|
-
"string_agg"
|
|
1162
|
-
]);
|
|
1163
|
-
var DateGranularity = z.enum(["day", "week", "month", "quarter", "year"]);
|
|
1164
|
-
var GroupByNodeSchema = lazySchema(() => z.union([
|
|
1165
|
-
z.string(),
|
|
1166
|
-
z.object({
|
|
1167
|
-
field: z.string().describe("Field to group by"),
|
|
1168
|
-
dateGranularity: DateGranularity.optional().describe("Bucket date values into uniform periods (day/week/month/quarter/year)"),
|
|
1169
|
-
/** Optional alias for the projected group value (defaults to `field`). */
|
|
1170
|
-
alias: z.string().optional().describe("Alias for the projected group value")
|
|
1171
|
-
})
|
|
1172
|
-
]));
|
|
1173
|
-
var AggregationNodeSchema = lazySchema(() => z.object({
|
|
1174
|
-
function: AggregationFunction.describe("Aggregation function"),
|
|
1175
|
-
field: z.string().optional().describe("Field to aggregate (optional for COUNT(*))"),
|
|
1176
|
-
alias: z.string().describe("Result column alias"),
|
|
1177
|
-
distinct: z.boolean().optional().describe("Apply DISTINCT before aggregation"),
|
|
1178
|
-
filter: FilterConditionSchema.optional().describe("Filter/Condition to apply to the aggregation (FILTER WHERE clause)")
|
|
879
|
+
reference: z.string().optional().describe(
|
|
880
|
+
"Target object name (snake_case) for lookup/master_detail fields. Required for relationship types. Used by $expand to resolve foreign key IDs into full objects."
|
|
881
|
+
),
|
|
882
|
+
referenceFilters: z.array(z.string()).optional().describe('Filters applied to lookup dialogs (e.g. "active = true")'),
|
|
883
|
+
writeRequiresMasterRead: z.boolean().optional().describe("If true, user needs read access to master record to edit this field"),
|
|
884
|
+
deleteBehavior: z.enum(["set_null", "cascade", "restrict"]).optional().default("set_null").describe("What happens if referenced record is deleted"),
|
|
885
|
+
/** Calculation — CEL formula. Plain string accepted for back-compat; build emits canonical envelope. */
|
|
886
|
+
expression: ExpressionInputSchema.optional().describe("Formula expression (CEL). e.g. F`record.amount * 0.1`"),
|
|
887
|
+
summaryOperations: z.object({
|
|
888
|
+
object: z.string().describe("Source child object name for roll-up"),
|
|
889
|
+
field: z.string().describe("Field on child object to aggregate"),
|
|
890
|
+
function: z.enum(["count", "sum", "min", "max", "avg"]).describe("Aggregation function to apply")
|
|
891
|
+
}).optional().describe("Roll-up summary definition"),
|
|
892
|
+
/** Enhanced Field Type Configurations */
|
|
893
|
+
// Code field config
|
|
894
|
+
language: z.string().optional().describe("Programming language for syntax highlighting (e.g., javascript, python, sql)"),
|
|
895
|
+
theme: z.string().optional().describe("Code editor theme (e.g., dark, light, monokai)"),
|
|
896
|
+
lineNumbers: z.boolean().optional().describe("Show line numbers in code editor"),
|
|
897
|
+
// Rating field config
|
|
898
|
+
maxRating: z.number().optional().describe("Maximum rating value (default: 5)"),
|
|
899
|
+
allowHalf: z.boolean().optional().describe("Allow half-star ratings"),
|
|
900
|
+
// Location field config
|
|
901
|
+
displayMap: z.boolean().optional().describe("Display map widget for location field"),
|
|
902
|
+
allowGeocoding: z.boolean().optional().describe("Allow address-to-coordinate conversion"),
|
|
903
|
+
// Address field config
|
|
904
|
+
addressFormat: z.enum(["us", "uk", "international"]).optional().describe("Address format template"),
|
|
905
|
+
// Color field config
|
|
906
|
+
colorFormat: z.enum(["hex", "rgb", "rgba", "hsl"]).optional().describe("Color value format"),
|
|
907
|
+
allowAlpha: z.boolean().optional().describe("Allow transparency/alpha channel"),
|
|
908
|
+
presetColors: z.array(z.string()).optional().describe("Preset color options"),
|
|
909
|
+
// Slider field config
|
|
910
|
+
step: z.number().optional().describe("Step increment for slider (default: 1)"),
|
|
911
|
+
showValue: z.boolean().optional().describe("Display current value on slider"),
|
|
912
|
+
marks: z.record(z.string(), z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: "Low", 50: "Medium", 100: "High"})'),
|
|
913
|
+
// QR Code / Barcode field config
|
|
914
|
+
// Note: qrErrorCorrection is only applicable when barcodeFormat='qr'
|
|
915
|
+
// Runtime validation should enforce this constraint
|
|
916
|
+
barcodeFormat: z.enum(["qr", "ean13", "ean8", "code128", "code39", "upca", "upce"]).optional().describe("Barcode format type"),
|
|
917
|
+
qrErrorCorrection: z.enum(["L", "M", "Q", "H"]).optional().describe('QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is "qr"'),
|
|
918
|
+
displayValue: z.boolean().optional().describe("Display human-readable value below barcode/QR code"),
|
|
919
|
+
allowScanning: z.boolean().optional().describe("Enable camera scanning for barcode/QR code input"),
|
|
920
|
+
// Currency field config
|
|
921
|
+
currencyConfig: CurrencyConfigSchema.optional().describe("Configuration for currency field type"),
|
|
922
|
+
// Vector field config
|
|
923
|
+
vectorConfig: VectorConfigSchema.optional().describe("Configuration for vector field type (AI/ML embeddings)"),
|
|
924
|
+
// File attachment field config
|
|
925
|
+
fileAttachmentConfig: FileAttachmentConfigSchema.optional().describe("Configuration for file and attachment field types"),
|
|
926
|
+
/** Enhanced Security & Compliance */
|
|
927
|
+
// Encryption configuration
|
|
928
|
+
encryptionConfig: EncryptionConfigSchema.optional().describe("Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)"),
|
|
929
|
+
// Data masking rules
|
|
930
|
+
maskingRule: MaskingRuleSchema.optional().describe("Data masking rules for PII protection"),
|
|
931
|
+
// Audit trail
|
|
932
|
+
auditTrail: z.boolean().default(false).describe("Enable detailed audit trail for this field (tracks all changes with user and timestamp)"),
|
|
933
|
+
/** Field Dependencies & Relationships */
|
|
934
|
+
// Field dependencies
|
|
935
|
+
dependencies: z.array(z.string()).optional().describe("Array of field names that this field depends on (for formulas, visibility rules, etc.)"),
|
|
936
|
+
/** Computed Field Optimization */
|
|
937
|
+
// Computed field caching
|
|
938
|
+
cached: ComputedFieldCacheSchema.optional().describe("Caching configuration for computed/formula fields"),
|
|
939
|
+
/** Data Quality & Governance */
|
|
940
|
+
// Data quality rules
|
|
941
|
+
dataQuality: DataQualityRulesSchema.optional().describe("Data quality validation and monitoring rules"),
|
|
942
|
+
/** Layout & Grouping */
|
|
943
|
+
group: z.string().optional().describe('Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system")'),
|
|
944
|
+
/** Conditional Requirements */
|
|
945
|
+
conditionalRequired: ExpressionInputSchema.optional().describe("Predicate (CEL) \u2014 field is required when TRUE. e.g. P`record.status == 'closed_won'`"),
|
|
946
|
+
/** Security & Visibility */
|
|
947
|
+
hidden: z.boolean().default(false).describe("Hidden from default UI"),
|
|
948
|
+
readonly: z.boolean().default(false).describe("Read-only in UI"),
|
|
949
|
+
system: z.boolean().optional().describe("Auto-injected system/audit field (e.g. created_at, updated_by, organization_id). Tools that surface system fields separately from author-declared business fields should branch on this flag."),
|
|
950
|
+
sortable: z.boolean().optional().default(true).describe("Whether field is sortable in list views"),
|
|
951
|
+
inlineHelpText: z.string().optional().describe("Help text displayed below the field in forms"),
|
|
952
|
+
trackFeedHistory: z.boolean().optional().describe("Track field changes in Chatter/activity feed (Salesforce pattern)"),
|
|
953
|
+
caseSensitive: z.boolean().optional().describe("Whether text comparisons are case-sensitive"),
|
|
954
|
+
autonumberFormat: z.string().optional().describe('Auto-number display format pattern (e.g., "CASE-{0000}")'),
|
|
955
|
+
/** Indexing */
|
|
956
|
+
index: z.boolean().default(false).describe("Create standard database index"),
|
|
957
|
+
externalId: z.boolean().default(false).describe("Is external ID for upsert operations")
|
|
1179
958
|
}));
|
|
1180
|
-
var
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
on: FilterConditionSchema.describe("Join condition"),
|
|
1189
|
-
subquery: z.lazy(() => QuerySchema).optional().describe("Subquery instead of object")
|
|
1190
|
-
})
|
|
1191
|
-
);
|
|
1192
|
-
var WindowFunction = z.enum([
|
|
1193
|
-
"row_number",
|
|
1194
|
-
"rank",
|
|
1195
|
-
"dense_rank",
|
|
1196
|
-
"percent_rank",
|
|
1197
|
-
"lag",
|
|
1198
|
-
"lead",
|
|
1199
|
-
"first_value",
|
|
1200
|
-
"last_value",
|
|
1201
|
-
"sum",
|
|
1202
|
-
"avg",
|
|
1203
|
-
"count",
|
|
1204
|
-
"min",
|
|
1205
|
-
"max"
|
|
959
|
+
var HttpMethod = z.enum([
|
|
960
|
+
"GET",
|
|
961
|
+
"POST",
|
|
962
|
+
"PUT",
|
|
963
|
+
"DELETE",
|
|
964
|
+
"PATCH",
|
|
965
|
+
"HEAD",
|
|
966
|
+
"OPTIONS"
|
|
1206
967
|
]);
|
|
1207
|
-
var
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
}).optional().describe("Window frame specification")
|
|
1215
|
-
}));
|
|
1216
|
-
var WindowFunctionNodeSchema = lazySchema(() => z.object({
|
|
1217
|
-
function: WindowFunction.describe("Window function name"),
|
|
1218
|
-
field: z.string().optional().describe("Field to operate on (for aggregate window functions)"),
|
|
1219
|
-
alias: z.string().describe("Result column alias"),
|
|
1220
|
-
over: WindowSpecSchema.describe("Window specification (OVER clause)")
|
|
968
|
+
var HttpMethodSchema = lazySchema(() => z.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]));
|
|
969
|
+
var HttpRequestSchema = lazySchema(() => z.object({
|
|
970
|
+
url: z.string().describe("API endpoint URL"),
|
|
971
|
+
method: HttpMethodSchema.optional().default("GET").describe("HTTP method"),
|
|
972
|
+
headers: z.record(z.string(), z.string()).optional().describe("Custom HTTP headers"),
|
|
973
|
+
params: z.record(z.string(), z.unknown()).optional().describe("Query parameters"),
|
|
974
|
+
body: z.unknown().optional().describe("Request body for POST/PUT/PATCH")
|
|
1221
975
|
}));
|
|
1222
|
-
|
|
1223
|
-
|
|
976
|
+
lazySchema(() => z.object({
|
|
977
|
+
/**
|
|
978
|
+
* Enable CORS
|
|
979
|
+
*/
|
|
980
|
+
enabled: z.boolean().default(true).describe("Enable CORS"),
|
|
981
|
+
/**
|
|
982
|
+
* Allowed origins (* for all)
|
|
983
|
+
*/
|
|
984
|
+
origins: z.union([
|
|
1224
985
|
z.string(),
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
)
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
operator: z.enum(["and", "or"]).optional().default("or").describe("Logical operator between terms"),
|
|
1240
|
-
boost: z.record(z.string(), z.number()).optional().describe("Field-specific relevance boosting (field name -> boost factor)"),
|
|
1241
|
-
minScore: z.number().optional().describe("Minimum relevance score threshold"),
|
|
1242
|
-
language: z.string().optional().describe('Language for text analysis (e.g., "en", "zh", "es")'),
|
|
1243
|
-
highlight: z.boolean().optional().default(false).describe("Enable search result highlighting")
|
|
1244
|
-
}));
|
|
1245
|
-
var BaseQuerySchema = z.object({
|
|
1246
|
-
/** Target Entity */
|
|
1247
|
-
object: z.string().describe("Object name (e.g. account)"),
|
|
1248
|
-
/** Select Clause */
|
|
1249
|
-
fields: z.array(FieldNodeSchema).optional().describe("Fields to retrieve"),
|
|
1250
|
-
/** Where Clause (Filtering) */
|
|
1251
|
-
where: FilterConditionSchema.optional().describe("Filtering criteria (WHERE)"),
|
|
1252
|
-
/** Full-Text Search */
|
|
1253
|
-
search: FullTextSearchSchema.optional().describe("Full-text search configuration ($search parameter)"),
|
|
1254
|
-
/** Order By Clause (Sorting) */
|
|
1255
|
-
orderBy: z.array(SortNodeSchema).optional().describe("Sorting instructions (ORDER BY)"),
|
|
1256
|
-
/** Pagination */
|
|
1257
|
-
limit: z.number().optional().describe("Max records to return (LIMIT)"),
|
|
1258
|
-
offset: z.number().optional().describe("Records to skip (OFFSET)"),
|
|
1259
|
-
top: z.number().optional().describe("Alias for limit (OData compatibility)"),
|
|
1260
|
-
cursor: z.record(z.string(), z.unknown()).optional().describe("Cursor for keyset pagination"),
|
|
1261
|
-
/** Joins */
|
|
1262
|
-
joins: z.array(JoinNodeSchema).optional().describe("Explicit Table Joins"),
|
|
1263
|
-
/** Aggregations */
|
|
1264
|
-
aggregations: z.array(AggregationNodeSchema).optional().describe("Aggregation functions"),
|
|
1265
|
-
/** Group By Clause */
|
|
1266
|
-
groupBy: z.array(GroupByNodeSchema).optional().describe("GROUP BY targets (strings or `{field, dateGranularity?}` objects for date bucketing)"),
|
|
1267
|
-
/** Having Clause */
|
|
1268
|
-
having: FilterConditionSchema.optional().describe("HAVING clause for aggregation filtering"),
|
|
1269
|
-
/** Window Functions */
|
|
1270
|
-
windowFunctions: z.array(WindowFunctionNodeSchema).optional().describe("Window functions with OVER clause"),
|
|
1271
|
-
/** Subquery flag */
|
|
1272
|
-
distinct: z.boolean().optional().describe("SELECT DISTINCT flag")
|
|
1273
|
-
});
|
|
1274
|
-
var QuerySchema = lazySchema(() => BaseQuerySchema.extend({
|
|
1275
|
-
expand: z.lazy(() => z.record(z.string(), QuerySchema)).optional().describe(
|
|
1276
|
-
"Recursive relation loading map. Keys are lookup/master_detail field names; values are nested QueryAST objects that control select, filter, sort, and further expansion on the related object. The engine resolves expand via batch $in queries (driver-agnostic) with a default max depth of 3."
|
|
1277
|
-
)
|
|
986
|
+
z.array(z.string())
|
|
987
|
+
]).default("*").describe("Allowed origins (* for all)"),
|
|
988
|
+
/**
|
|
989
|
+
* Allowed HTTP methods
|
|
990
|
+
*/
|
|
991
|
+
methods: z.array(HttpMethod).optional().describe("Allowed HTTP methods"),
|
|
992
|
+
/**
|
|
993
|
+
* Allow credentials (cookies, authorization headers)
|
|
994
|
+
*/
|
|
995
|
+
credentials: z.boolean().default(false).describe("Allow credentials (cookies, authorization headers)"),
|
|
996
|
+
/**
|
|
997
|
+
* Preflight cache duration in seconds
|
|
998
|
+
*/
|
|
999
|
+
maxAge: z.number().int().optional().describe("Preflight cache duration in seconds")
|
|
1278
1000
|
}));
|
|
1279
|
-
|
|
1280
|
-
// src/ui/dashboard.zod.ts
|
|
1281
|
-
var WidgetColorVariantSchema = lazySchema(() => z.enum([
|
|
1282
|
-
"default",
|
|
1283
|
-
"blue",
|
|
1284
|
-
"teal",
|
|
1285
|
-
"orange",
|
|
1286
|
-
"purple",
|
|
1287
|
-
"success",
|
|
1288
|
-
"warning",
|
|
1289
|
-
"danger"
|
|
1290
|
-
]).describe("Widget color variant"));
|
|
1291
|
-
var WidgetActionTypeSchema = lazySchema(() => z.enum([
|
|
1292
|
-
"script",
|
|
1293
|
-
"url",
|
|
1294
|
-
"modal",
|
|
1295
|
-
"flow",
|
|
1296
|
-
"api"
|
|
1297
|
-
]).describe("Widget action type"));
|
|
1298
|
-
var DashboardHeaderActionSchema = lazySchema(() => z.object({
|
|
1299
|
-
/** Action label */
|
|
1300
|
-
label: I18nLabelSchema.describe("Action button label"),
|
|
1301
|
-
/** Action URL or target */
|
|
1302
|
-
actionUrl: z.string().describe("URL or target for the action"),
|
|
1303
|
-
/** Action type */
|
|
1304
|
-
actionType: WidgetActionTypeSchema.optional().describe("Type of action"),
|
|
1305
|
-
/** Icon identifier */
|
|
1306
|
-
icon: z.string().optional().describe("Icon identifier for the action button")
|
|
1307
|
-
}).describe("Dashboard header action"));
|
|
1308
|
-
var DashboardHeaderSchema = lazySchema(() => z.object({
|
|
1309
|
-
/** Whether to show the dashboard title in the header */
|
|
1310
|
-
showTitle: z.boolean().default(true).describe("Show dashboard title in header"),
|
|
1311
|
-
/** Whether to show the dashboard description in the header */
|
|
1312
|
-
showDescription: z.boolean().default(true).describe("Show dashboard description in header"),
|
|
1313
|
-
/** Action buttons displayed in the header */
|
|
1314
|
-
actions: z.array(DashboardHeaderActionSchema).optional().describe("Header action buttons")
|
|
1315
|
-
}).describe("Dashboard header configuration"));
|
|
1316
|
-
var WidgetMeasureSchema = lazySchema(() => z.object({
|
|
1317
|
-
/** Value field to aggregate */
|
|
1318
|
-
valueField: z.string().describe("Field to aggregate"),
|
|
1319
|
-
/** Aggregate function */
|
|
1320
|
-
aggregate: z.enum(["count", "sum", "avg", "min", "max"]).default("count").describe("Aggregate function"),
|
|
1321
|
-
/** Display label for the measure */
|
|
1322
|
-
label: I18nLabelSchema.optional().describe("Measure display label"),
|
|
1323
|
-
/** Number format string (e.g., "$0,0.00", "0.0%") */
|
|
1324
|
-
format: z.string().optional().describe("Number format string")
|
|
1325
|
-
}).describe("Widget measure definition"));
|
|
1326
|
-
var DashboardWidgetSchema = lazySchema(() => z.object({
|
|
1327
|
-
/** Unique widget identifier (snake_case, used for targetWidgets references) */
|
|
1328
|
-
id: SnakeCaseIdentifierSchema.describe("Unique widget identifier (snake_case)"),
|
|
1329
|
-
/** Widget Title */
|
|
1330
|
-
title: I18nLabelSchema.optional().describe("Widget title"),
|
|
1331
|
-
/** Widget Description (displayed below the title) */
|
|
1332
|
-
description: I18nLabelSchema.optional().describe("Widget description text below the header"),
|
|
1333
|
-
/** Visualization Type */
|
|
1334
|
-
type: ChartTypeSchema.default("metric").describe("Visualization type"),
|
|
1335
|
-
/** Chart Configuration */
|
|
1336
|
-
chartConfig: ChartConfigSchema.optional().describe("Chart visualization configuration"),
|
|
1337
|
-
/** Color variant for the widget (e.g., KPI card accent color) */
|
|
1338
|
-
colorVariant: WidgetColorVariantSchema.optional().describe("Widget color variant for theming"),
|
|
1001
|
+
lazySchema(() => z.object({
|
|
1339
1002
|
/**
|
|
1340
|
-
*
|
|
1341
|
-
* not registered in the runtime's SchemaRegistry. Mirrors
|
|
1342
|
-
* `NavigationItem.requiresObject` so cloud-only widgets (e.g. those
|
|
1343
|
-
* keyed on `sys_app` / `sys_package_installation`) silently disappear
|
|
1344
|
-
* in single-environment runtimes instead of rendering a 404 error.
|
|
1345
|
-
*
|
|
1346
|
-
* Defaults to the widget's `object` field when not explicitly set —
|
|
1347
|
-
* any widget that targets an object will be gated on that object's
|
|
1348
|
-
* registration. Set this to a different value (or empty string to
|
|
1349
|
-
* disable) when the widget should appear even if its `object` is
|
|
1350
|
-
* unavailable.
|
|
1003
|
+
* Enable rate limiting
|
|
1351
1004
|
*/
|
|
1352
|
-
|
|
1005
|
+
enabled: z.boolean().default(false).describe("Enable rate limiting"),
|
|
1353
1006
|
/**
|
|
1354
|
-
*
|
|
1355
|
-
* service is not registered. Mirrors `NavigationItem.requiresService`.
|
|
1007
|
+
* Time window in milliseconds
|
|
1356
1008
|
*/
|
|
1357
|
-
|
|
1358
|
-
/**
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
/** Data Source Object */
|
|
1365
|
-
object: z.string().optional().describe("Data source object name"),
|
|
1366
|
-
/** Data Filter (MongoDB-style FilterCondition) */
|
|
1367
|
-
filter: FilterConditionSchema.optional().describe("Data filter criteria"),
|
|
1009
|
+
windowMs: z.number().int().default(6e4).describe("Time window in milliseconds"),
|
|
1010
|
+
/**
|
|
1011
|
+
* Max requests per window
|
|
1012
|
+
*/
|
|
1013
|
+
maxRequests: z.number().int().default(100).describe("Max requests per window")
|
|
1014
|
+
}));
|
|
1015
|
+
lazySchema(() => z.object({
|
|
1368
1016
|
/**
|
|
1369
|
-
*
|
|
1370
|
-
*
|
|
1371
|
-
* When set, the renderer runs a second query against a shifted time
|
|
1372
|
-
* window and surfaces the delta (metric widgets show a secondary
|
|
1373
|
-
* value + arrow; chart widgets render a muted/dashed overlay series).
|
|
1374
|
-
*
|
|
1375
|
-
* - `'previousPeriod'` — auto-detect the comparison window from the
|
|
1376
|
-
* widget's `filter` date macros (e.g. `{current_month_start}` →
|
|
1377
|
-
* `{last_month_start}`). Falls back to no comparison when the
|
|
1378
|
-
* filter contains no resolvable date range.
|
|
1379
|
-
* - `'previousYear'` — shift the resolved filter window back by one
|
|
1380
|
-
* calendar year.
|
|
1381
|
-
* - `{ offset: '7d' | '1M' | '1y' }` — shift by an explicit
|
|
1382
|
-
* ISO-8601-like duration. Units: `d` (days), `w` (weeks),
|
|
1383
|
-
* `M` (months), `y` (years).
|
|
1017
|
+
* URL path to serve from
|
|
1384
1018
|
*/
|
|
1385
|
-
|
|
1386
|
-
z.literal("previousPeriod"),
|
|
1387
|
-
z.literal("previousYear"),
|
|
1388
|
-
z.object({
|
|
1389
|
-
offset: z.string().regex(/^\d+[dwMy]$/, 'Offset must match <N>(d|w|M|y), e.g. "7d", "1M", "1y"')
|
|
1390
|
-
})
|
|
1391
|
-
]).optional().describe("Period-over-period comparison window"),
|
|
1392
|
-
/** Category Field (X-Axis / Group By) */
|
|
1393
|
-
categoryField: z.string().optional().describe("Field for grouping (X-Axis)"),
|
|
1019
|
+
path: z.string().describe("URL path to serve from"),
|
|
1394
1020
|
/**
|
|
1395
|
-
*
|
|
1396
|
-
*
|
|
1397
|
-
* When set and `categoryField` references a date/datetime field, the engine
|
|
1398
|
-
* buckets values into uniform `day` / `week` / `month` / `quarter` / `year`
|
|
1399
|
-
* periods server-side (PostgreSQL `date_trunc`, MySQL `date_format`, SQLite
|
|
1400
|
-
* `strftime`, MongoDB `$dateTrunc`; falls back to in-memory ISO-8601
|
|
1401
|
-
* bucketing otherwise). Without this, raw timestamps are grouped verbatim
|
|
1402
|
-
* which typically yields one bucket per row — making time-series charts
|
|
1403
|
-
* appear flat.
|
|
1404
|
-
*
|
|
1405
|
-
* Mirrors the `dateGranularity` shape of {@link GroupByNodeSchema}.
|
|
1021
|
+
* Physical directory to serve
|
|
1406
1022
|
*/
|
|
1407
|
-
|
|
1408
|
-
/**
|
|
1409
|
-
|
|
1410
|
-
/** Aggregate operation */
|
|
1411
|
-
aggregate: z.enum(["count", "sum", "avg", "min", "max"]).optional().default("count").describe("Aggregate function"),
|
|
1412
|
-
/** Multi-measure definitions for pivot/matrix widgets */
|
|
1413
|
-
measures: z.array(WidgetMeasureSchema).optional().describe("Multiple measures for pivot/matrix analysis"),
|
|
1414
|
-
/**
|
|
1415
|
-
* Layout Position (React-Grid-Layout style)
|
|
1416
|
-
* x: column (0-11)
|
|
1417
|
-
* y: row
|
|
1418
|
-
* w: width (1-12)
|
|
1419
|
-
* h: height
|
|
1023
|
+
directory: z.string().describe("Physical directory to serve"),
|
|
1024
|
+
/**
|
|
1025
|
+
* Cache-Control header value
|
|
1420
1026
|
*/
|
|
1421
|
-
|
|
1422
|
-
x: z.number(),
|
|
1423
|
-
y: z.number(),
|
|
1424
|
-
w: z.number(),
|
|
1425
|
-
h: z.number()
|
|
1426
|
-
}).describe("Grid layout position"),
|
|
1427
|
-
/** Widget specific options (colors, legend, etc.) */
|
|
1428
|
-
options: z.unknown().optional().describe("Widget specific configuration"),
|
|
1429
|
-
/** Responsive layout overrides per breakpoint */
|
|
1430
|
-
responsive: ResponsiveConfigSchema.optional().describe("Responsive layout configuration"),
|
|
1431
|
-
/** ARIA accessibility attributes */
|
|
1432
|
-
aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes")
|
|
1027
|
+
cacheControl: z.string().optional().describe("Cache-Control header value")
|
|
1433
1028
|
}));
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1029
|
+
|
|
1030
|
+
// src/ui/view.zod.ts
|
|
1031
|
+
var ViewDataSchema = lazySchema(() => z.discriminatedUnion("provider", [
|
|
1032
|
+
z.object({
|
|
1033
|
+
provider: z.literal("object"),
|
|
1034
|
+
object: z.string().describe("Target object name")
|
|
1035
|
+
}),
|
|
1036
|
+
z.object({
|
|
1037
|
+
provider: z.literal("api"),
|
|
1038
|
+
read: HttpRequestSchema.optional().describe("Configuration for fetching data"),
|
|
1039
|
+
write: HttpRequestSchema.optional().describe("Configuration for submitting data (for forms/editable tables)")
|
|
1040
|
+
}),
|
|
1041
|
+
z.object({
|
|
1042
|
+
provider: z.literal("value"),
|
|
1043
|
+
items: z.array(z.unknown()).describe("Static data array")
|
|
1044
|
+
}),
|
|
1045
|
+
/**
|
|
1046
|
+
* Schema-bound data source — used by standalone forms whose data is
|
|
1047
|
+
* shaped by a JSON Schema (or Zod-derived schema) rather than by an
|
|
1048
|
+
* ObjectQL object. Powers the metadata editor, action input dialogs,
|
|
1049
|
+
* and any Form that is not bound to a CRUD object.
|
|
1050
|
+
*/
|
|
1051
|
+
z.object({
|
|
1052
|
+
provider: z.literal("schema"),
|
|
1053
|
+
/** Schema identifier (e.g. metadata type name "report"). Resolved at runtime against /meta entries. */
|
|
1054
|
+
schemaId: z.string().describe("Schema identifier \u2014 typically the metadata type name"),
|
|
1055
|
+
/** Optional inline JSON Schema; when omitted the runtime resolves schemaId from the server. */
|
|
1056
|
+
schema: z.record(z.string(), z.unknown()).optional().describe("Inline JSON Schema (Draft 2020-12). Optional when schemaId is resolvable.")
|
|
1057
|
+
})
|
|
1058
|
+
]));
|
|
1059
|
+
var ViewFilterRuleSchema = lazySchema(() => z.object({
|
|
1445
1060
|
/** Field name to filter on */
|
|
1446
1061
|
field: z.string().describe("Field name to filter on"),
|
|
1447
|
-
/**
|
|
1448
|
-
|
|
1449
|
-
/** Filter
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1062
|
+
/** Filter operator */
|
|
1063
|
+
operator: z.string().describe("Filter operator (e.g. equals, not_equals, contains, this_quarter)"),
|
|
1064
|
+
/** Filter value (optional for unary operators like is_null, this_quarter) */
|
|
1065
|
+
value: z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(z.union([z.string(), z.number()]))]).optional().describe("Filter value")
|
|
1066
|
+
}).describe("View filter rule"));
|
|
1067
|
+
var ColumnSummarySchema = lazySchema(() => z.enum([
|
|
1068
|
+
"none",
|
|
1069
|
+
"count",
|
|
1070
|
+
"count_empty",
|
|
1071
|
+
"count_filled",
|
|
1072
|
+
"count_unique",
|
|
1073
|
+
"percent_empty",
|
|
1074
|
+
"percent_filled",
|
|
1075
|
+
"sum",
|
|
1076
|
+
"avg",
|
|
1077
|
+
"min",
|
|
1078
|
+
"max"
|
|
1079
|
+
]).describe("Aggregation function for column footer summary"));
|
|
1080
|
+
var ListColumnSchema = lazySchema(() => z.object({
|
|
1081
|
+
field: z.string().describe("Field name (snake_case)"),
|
|
1082
|
+
label: I18nLabelSchema.optional().describe("Display label override"),
|
|
1083
|
+
width: z.number().positive().optional().describe("Column width in pixels"),
|
|
1084
|
+
align: z.enum(["left", "center", "right"]).optional().describe("Text alignment"),
|
|
1085
|
+
hidden: z.boolean().optional().describe("Hide column by default"),
|
|
1086
|
+
sortable: z.boolean().optional().describe("Allow sorting by this column"),
|
|
1087
|
+
resizable: z.boolean().optional().describe("Allow resizing this column"),
|
|
1088
|
+
wrap: z.boolean().optional().describe("Allow text wrapping"),
|
|
1089
|
+
type: z.string().optional().describe('Renderer type override (e.g., "currency", "date")'),
|
|
1090
|
+
/** Pinning (Airtable-style frozen columns) */
|
|
1091
|
+
pinned: z.enum(["left", "right"]).optional().describe("Pin/freeze column to left or right side"),
|
|
1092
|
+
/** Column Footer Summary (Airtable-style aggregation) */
|
|
1093
|
+
summary: ColumnSummarySchema.optional().describe("Footer aggregation function for this column"),
|
|
1094
|
+
/** Interaction */
|
|
1095
|
+
link: z.boolean().optional().describe("Functions as the primary navigation link (triggers View navigation)"),
|
|
1096
|
+
action: z.string().optional().describe("Registered Action ID to execute when clicked")
|
|
1464
1097
|
}));
|
|
1465
|
-
var
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1098
|
+
var SelectionConfigSchema = lazySchema(() => z.object({
|
|
1099
|
+
type: z.enum(["none", "single", "multiple"]).default("none").describe("Selection mode")
|
|
1100
|
+
}));
|
|
1101
|
+
var PaginationConfigSchema = lazySchema(() => z.object({
|
|
1102
|
+
pageSize: z.number().int().positive().default(25).describe("Number of records per page"),
|
|
1103
|
+
pageSizeOptions: z.array(z.number().int().positive()).optional().describe("Available page size options")
|
|
1104
|
+
}));
|
|
1105
|
+
var RowHeightSchema = lazySchema(() => z.enum([
|
|
1106
|
+
"compact",
|
|
1107
|
+
// Minimal padding, single line
|
|
1108
|
+
"short",
|
|
1109
|
+
// Reduced padding
|
|
1110
|
+
"medium",
|
|
1111
|
+
// Default padding
|
|
1112
|
+
"tall",
|
|
1113
|
+
// Extra padding, multi-line preview
|
|
1114
|
+
"extra_tall"
|
|
1115
|
+
// Maximum padding, rich content preview
|
|
1116
|
+
]).describe("Row height / density setting for list view"));
|
|
1117
|
+
var GroupingFieldSchema = lazySchema(() => z.object({
|
|
1118
|
+
field: z.string().describe("Field name to group by"),
|
|
1119
|
+
order: z.enum(["asc", "desc"]).default("asc").describe("Group sort order"),
|
|
1120
|
+
collapsed: z.boolean().default(false).describe("Collapse groups by default")
|
|
1121
|
+
}));
|
|
1122
|
+
var GroupingConfigSchema = lazySchema(() => z.object({
|
|
1123
|
+
fields: z.array(GroupingFieldSchema).min(1).describe("Fields to group by (supports up to 3 levels)")
|
|
1124
|
+
}).describe("Record grouping configuration"));
|
|
1125
|
+
var GalleryConfigSchema = lazySchema(() => z.object({
|
|
1126
|
+
coverField: z.string().optional().describe("Attachment/image field to display as card cover"),
|
|
1127
|
+
coverFit: z.enum(["cover", "contain"]).default("cover").describe("Image fit mode for card cover"),
|
|
1128
|
+
cardSize: z.enum(["small", "medium", "large"]).default("medium").describe("Card size in gallery view"),
|
|
1129
|
+
titleField: z.string().optional().describe("Field to display as card title"),
|
|
1130
|
+
visibleFields: z.array(z.string()).optional().describe("Fields to display on card body")
|
|
1131
|
+
}).describe("Gallery/card view configuration"));
|
|
1132
|
+
var TimelineConfigSchema = lazySchema(() => z.object({
|
|
1133
|
+
startDateField: z.string().describe("Field for timeline item start date"),
|
|
1134
|
+
endDateField: z.string().optional().describe("Field for timeline item end date"),
|
|
1135
|
+
titleField: z.string().describe("Field to display as timeline item title"),
|
|
1136
|
+
groupByField: z.string().optional().describe("Field to group timeline rows"),
|
|
1137
|
+
colorField: z.string().optional().describe("Field to determine item color"),
|
|
1138
|
+
scale: z.enum(["hour", "day", "week", "month", "quarter", "year"]).default("week").describe("Default timeline scale")
|
|
1139
|
+
}).describe("Timeline view configuration"));
|
|
1140
|
+
var ViewSharingSchema = lazySchema(() => z.object({
|
|
1141
|
+
type: z.enum(["personal", "collaborative"]).default("collaborative").describe("View ownership type"),
|
|
1142
|
+
lockedBy: z.string().optional().describe("User who locked the view configuration")
|
|
1143
|
+
}).describe("View sharing and access configuration"));
|
|
1144
|
+
var RowColorConfigSchema = lazySchema(() => z.object({
|
|
1145
|
+
field: z.string().describe("Field to derive color from (typically a select/status field)"),
|
|
1146
|
+
colors: z.record(z.string(), z.string()).optional().describe("Map of field value to color (hex/token)")
|
|
1147
|
+
}).describe("Row color configuration based on field values"));
|
|
1148
|
+
var VisualizationTypeSchema = lazySchema(() => z.enum([
|
|
1149
|
+
"grid",
|
|
1150
|
+
"kanban",
|
|
1151
|
+
"gallery",
|
|
1152
|
+
"calendar",
|
|
1153
|
+
"timeline",
|
|
1154
|
+
"gantt",
|
|
1155
|
+
"map"
|
|
1156
|
+
]).describe("Visualization type that users can switch to"));
|
|
1157
|
+
var UserActionsConfigSchema = lazySchema(() => z.object({
|
|
1158
|
+
sort: z.boolean().default(true).describe("Allow users to sort records"),
|
|
1159
|
+
search: z.boolean().default(true).describe("Allow users to search records"),
|
|
1160
|
+
filter: z.boolean().default(true).describe("Allow users to filter records"),
|
|
1161
|
+
rowHeight: z.boolean().default(true).describe("Allow users to toggle row height/density"),
|
|
1162
|
+
addRecordForm: z.boolean().default(false).describe("Add records through a form instead of inline"),
|
|
1163
|
+
buttons: z.array(z.string()).optional().describe("Custom action button IDs to show in the toolbar")
|
|
1164
|
+
}).describe("User action toggles for the view toolbar"));
|
|
1165
|
+
var AppearanceConfigSchema = lazySchema(() => z.object({
|
|
1166
|
+
showDescription: z.boolean().default(true).describe("Show the view description text"),
|
|
1167
|
+
allowedVisualizations: z.array(VisualizationTypeSchema).optional().describe('Whitelist of visualization types users can switch between (e.g. ["grid", "gallery", "kanban"])')
|
|
1168
|
+
}).describe("Appearance and visualization configuration"));
|
|
1169
|
+
var ViewTabSchema = lazySchema(() => z.object({
|
|
1170
|
+
name: SnakeCaseIdentifierSchema.describe("Tab identifier (snake_case)"),
|
|
1171
|
+
label: I18nLabelSchema.optional().describe("Display label"),
|
|
1172
|
+
icon: z.string().optional().describe("Tab icon name"),
|
|
1173
|
+
view: z.string().optional().describe("Referenced list view name from listViews"),
|
|
1174
|
+
filter: z.array(ViewFilterRuleSchema).optional().describe("Tab-specific filter criteria"),
|
|
1175
|
+
order: z.number().int().min(0).optional().describe("Tab display order"),
|
|
1176
|
+
pinned: z.boolean().default(false).describe("Pin tab (cannot be removed by users)"),
|
|
1177
|
+
isDefault: z.boolean().default(false).describe("Set as the default active tab"),
|
|
1178
|
+
visible: z.boolean().default(true).describe("Tab visibility")
|
|
1179
|
+
}).describe("Tab configuration for multi-tab view interface"));
|
|
1180
|
+
var AddRecordConfigSchema = lazySchema(() => z.object({
|
|
1181
|
+
enabled: z.boolean().default(true).describe("Show the add record entry point"),
|
|
1182
|
+
position: z.enum(["top", "bottom", "both"]).default("bottom").describe("Position of the add record button"),
|
|
1183
|
+
mode: z.enum(["inline", "form", "modal"]).default("inline").describe("How to add a new record"),
|
|
1184
|
+
formView: z.string().optional().describe('Named form view to use when mode is "form" or "modal"')
|
|
1185
|
+
}).describe("Add record entry point configuration"));
|
|
1186
|
+
var KanbanConfigSchema = lazySchema(() => z.object({
|
|
1187
|
+
groupByField: z.string().describe("Field to group columns by (usually status/select)"),
|
|
1188
|
+
summarizeField: z.string().optional().describe("Field to sum at top of column (e.g. amount)"),
|
|
1189
|
+
columns: z.array(z.string()).describe("Fields to show on cards")
|
|
1494
1190
|
}));
|
|
1495
|
-
var
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
"
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
]);
|
|
1508
|
-
var ReportColumnSchema = lazySchema(() => z.object({
|
|
1509
|
-
field: z.string().describe("Field name"),
|
|
1510
|
-
label: I18nLabelSchema.optional().describe("Override label"),
|
|
1511
|
-
aggregate: z.enum(["sum", "avg", "max", "min", "count", "unique"]).optional().describe("Aggregation function"),
|
|
1512
|
-
/** Responsive visibility/priority per breakpoint */
|
|
1513
|
-
responsive: ResponsiveConfigSchema.optional().describe("Responsive visibility for this column")
|
|
1191
|
+
var ListChartConfigSchema = lazySchema(() => z.object({
|
|
1192
|
+
chartType: z.enum(["bar", "line", "pie", "area", "scatter"]).default("bar").describe("Chart visualisation type"),
|
|
1193
|
+
xAxisField: z.string().describe("Field used as the X axis / category dimension"),
|
|
1194
|
+
yAxisFields: z.array(z.string()).min(1).describe("Field(s) used as the Y axis / measures"),
|
|
1195
|
+
aggregation: z.enum(["sum", "avg", "count", "min", "max"]).optional().describe("Aggregation function applied to Y axis fields"),
|
|
1196
|
+
groupByField: z.string().optional().describe("Optional field used to split / stack the chart")
|
|
1197
|
+
}).describe("List chart view configuration"));
|
|
1198
|
+
var CalendarConfigSchema = lazySchema(() => z.object({
|
|
1199
|
+
startDateField: z.string(),
|
|
1200
|
+
endDateField: z.string().optional(),
|
|
1201
|
+
titleField: z.string(),
|
|
1202
|
+
colorField: z.string().optional()
|
|
1514
1203
|
}));
|
|
1515
|
-
var
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1204
|
+
var GanttConfigSchema = lazySchema(() => z.object({
|
|
1205
|
+
startDateField: z.string(),
|
|
1206
|
+
endDateField: z.string(),
|
|
1207
|
+
titleField: z.string(),
|
|
1208
|
+
progressField: z.string().optional(),
|
|
1209
|
+
dependenciesField: z.string().optional()
|
|
1519
1210
|
}));
|
|
1520
|
-
var
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1211
|
+
var NavigationModeSchema = lazySchema(() => z.enum([
|
|
1212
|
+
"page",
|
|
1213
|
+
// Navigate to a new route (default)
|
|
1214
|
+
"drawer",
|
|
1215
|
+
// Open details in a side drawer/panel
|
|
1216
|
+
"modal",
|
|
1217
|
+
// Open details in a modal dialog
|
|
1218
|
+
"split",
|
|
1219
|
+
// Show details side-by-side with the list (master-detail)
|
|
1220
|
+
"popover",
|
|
1221
|
+
// Show details in a popover (lightweight)
|
|
1222
|
+
"new_window",
|
|
1223
|
+
// Open in new browser tab/window
|
|
1224
|
+
"none"
|
|
1225
|
+
// No navigation (read-only list)
|
|
1226
|
+
]));
|
|
1227
|
+
var NavigationConfigSchema = lazySchema(() => z.object({
|
|
1228
|
+
mode: NavigationModeSchema.default("page"),
|
|
1229
|
+
/** Target View Config */
|
|
1230
|
+
view: z.string().optional().describe('Name of the form view to use for details (e.g. "summary_view", "edit_form")'),
|
|
1231
|
+
/** Interaction Triggers */
|
|
1232
|
+
preventNavigation: z.boolean().default(false).describe("Disable standard navigation entirely"),
|
|
1233
|
+
openNewTab: z.boolean().default(false).describe("Force open in new tab (applies to page mode)"),
|
|
1234
|
+
/** Dimensions (for modal/drawer) */
|
|
1235
|
+
width: z.union([z.string(), z.number()]).optional().describe('Width of the drawer/modal (e.g. "600px", "50%")')
|
|
1525
1236
|
}));
|
|
1526
|
-
var
|
|
1527
|
-
|
|
1528
|
-
name: SnakeCaseIdentifierSchema,
|
|
1529
|
-
/** Human label shown above the block. Falls back to `name`. */
|
|
1237
|
+
var ListViewSchema = lazySchema(() => z.object({
|
|
1238
|
+
name: SnakeCaseIdentifierSchema.optional().describe("Internal view name (lowercase snake_case)"),
|
|
1530
1239
|
label: I18nLabelSchema.optional(),
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1240
|
+
// Display label override (supports i18n)
|
|
1241
|
+
type: z.enum([
|
|
1242
|
+
"grid",
|
|
1243
|
+
// Standard Data Table
|
|
1244
|
+
"kanban",
|
|
1245
|
+
// Board / Columns
|
|
1246
|
+
"gallery",
|
|
1247
|
+
// Card Deck / Masonry
|
|
1248
|
+
"calendar",
|
|
1249
|
+
// Monthly/Weekly/Daily
|
|
1250
|
+
"timeline",
|
|
1251
|
+
// Chronological Stream (Feed)
|
|
1252
|
+
"gantt",
|
|
1253
|
+
// Project Timeline
|
|
1254
|
+
"map",
|
|
1255
|
+
// Geospatial
|
|
1256
|
+
"chart"
|
|
1257
|
+
// Aggregate visualisation
|
|
1258
|
+
]).default("grid"),
|
|
1259
|
+
/** Data Source Configuration */
|
|
1260
|
+
data: ViewDataSchema.optional().describe('Data source configuration (defaults to "object" provider)'),
|
|
1261
|
+
/** Shared Query Config */
|
|
1262
|
+
columns: z.union([
|
|
1263
|
+
z.array(z.string()),
|
|
1264
|
+
// Legacy: simple field names
|
|
1265
|
+
z.array(ListColumnSchema)
|
|
1266
|
+
// Enhanced: detailed column config
|
|
1267
|
+
]).describe("Fields to display as columns"),
|
|
1268
|
+
filter: z.array(ViewFilterRuleSchema).optional().describe("Filter criteria (JSON Rules)"),
|
|
1269
|
+
sort: z.union([
|
|
1270
|
+
z.string(),
|
|
1271
|
+
//Legacy "field desc"
|
|
1272
|
+
z.array(z.object({
|
|
1273
|
+
field: z.string(),
|
|
1274
|
+
order: z.enum(["asc", "desc"])
|
|
1275
|
+
}))
|
|
1276
|
+
]).optional(),
|
|
1277
|
+
/** Search & Filter */
|
|
1278
|
+
searchableFields: z.array(z.string()).optional().describe("Fields enabled for search"),
|
|
1279
|
+
filterableFields: z.array(z.string()).optional().describe("Fields enabled for end-user filtering in the top bar"),
|
|
1280
|
+
/** Grid Features */
|
|
1281
|
+
resizable: z.boolean().optional().describe("Enable column resizing"),
|
|
1282
|
+
striped: z.boolean().optional().describe("Striped row styling"),
|
|
1283
|
+
bordered: z.boolean().optional().describe("Show borders"),
|
|
1284
|
+
compactToolbar: z.boolean().optional().describe("Collapse Group/Color/Density/Hide-fields into a single View settings popover"),
|
|
1285
|
+
/** Selection */
|
|
1286
|
+
selection: SelectionConfigSchema.optional().describe("Row selection configuration"),
|
|
1287
|
+
/** Navigation / Interaction */
|
|
1288
|
+
navigation: NavigationConfigSchema.optional().describe("Configuration for item click navigation (page, drawer, modal, etc.)"),
|
|
1289
|
+
/** Pagination */
|
|
1290
|
+
pagination: PaginationConfigSchema.optional().describe("Pagination configuration"),
|
|
1291
|
+
/** Type Specific Config */
|
|
1292
|
+
kanban: KanbanConfigSchema.optional(),
|
|
1293
|
+
calendar: CalendarConfigSchema.optional(),
|
|
1294
|
+
gantt: GanttConfigSchema.optional(),
|
|
1295
|
+
gallery: GalleryConfigSchema.optional(),
|
|
1296
|
+
timeline: TimelineConfigSchema.optional(),
|
|
1297
|
+
chart: ListChartConfigSchema.optional(),
|
|
1298
|
+
/** View Metadata (Airtable-style view management) */
|
|
1299
|
+
description: I18nLabelSchema.optional().describe("View description for documentation/tooltips"),
|
|
1300
|
+
sharing: ViewSharingSchema.optional().describe("View sharing and access configuration"),
|
|
1301
|
+
/** Row Height / Density (Airtable-style) */
|
|
1302
|
+
rowHeight: RowHeightSchema.optional().describe("Row height / density setting"),
|
|
1303
|
+
/** Record Grouping (Airtable-style) */
|
|
1304
|
+
grouping: GroupingConfigSchema.optional().describe("Group records by one or more fields"),
|
|
1305
|
+
/** Row Color (Airtable-style) */
|
|
1306
|
+
rowColor: RowColorConfigSchema.optional().describe("Color rows based on field value"),
|
|
1307
|
+
/** Field Visibility & Ordering per View (Airtable-style) */
|
|
1308
|
+
hiddenFields: z.array(z.string()).optional().describe("Fields to hide in this specific view"),
|
|
1309
|
+
fieldOrder: z.array(z.string()).optional().describe("Explicit field display order for this view"),
|
|
1310
|
+
/** Row & Bulk Actions */
|
|
1311
|
+
rowActions: z.array(z.string()).optional().describe("Actions available for individual row items"),
|
|
1312
|
+
bulkActions: z.array(z.string()).optional().describe("Actions available when multiple rows are selected"),
|
|
1313
|
+
bulkActionDefs: z.array(z.record(z.string(), z.any())).optional().describe("Rich bulk action definitions (schema-driven, executed via BulkActionDialog)"),
|
|
1314
|
+
/** Performance */
|
|
1315
|
+
virtualScroll: z.boolean().optional().describe("Enable virtual scrolling for large datasets"),
|
|
1316
|
+
/** Conditional Formatting */
|
|
1317
|
+
conditionalFormatting: z.array(z.object({
|
|
1318
|
+
condition: ExpressionInputSchema.describe("Predicate (CEL) to evaluate."),
|
|
1319
|
+
style: z.record(z.string(), z.string()).describe("CSS styles to apply when condition is true")
|
|
1320
|
+
})).optional().describe("Conditional formatting rules for list rows"),
|
|
1321
|
+
/** Inline Edit */
|
|
1322
|
+
inlineEdit: z.boolean().optional().describe("Allow inline editing of records directly in the list view"),
|
|
1323
|
+
/** Export */
|
|
1324
|
+
exportOptions: z.array(z.enum(["csv", "xlsx", "pdf", "json"])).optional().describe("Available export format options"),
|
|
1325
|
+
/** User Actions (Airtable Interface parity) */
|
|
1326
|
+
userActions: UserActionsConfigSchema.optional().describe("User action toggles for the view toolbar"),
|
|
1327
|
+
/** Appearance (Airtable Interface parity) */
|
|
1328
|
+
appearance: AppearanceConfigSchema.optional().describe("Appearance and visualization configuration"),
|
|
1329
|
+
/** Tabs (Airtable Interface parity) */
|
|
1330
|
+
tabs: z.array(ViewTabSchema).optional().describe("Tab definitions for multi-tab view interface"),
|
|
1331
|
+
/** Add Record (Airtable Interface parity) */
|
|
1332
|
+
addRecord: AddRecordConfigSchema.optional().describe("Add record entry point configuration"),
|
|
1333
|
+
/** Record Count Display (Airtable Interface parity) */
|
|
1334
|
+
showRecordCount: z.boolean().optional().describe("Show record count at the bottom of the list"),
|
|
1335
|
+
/** Advanced: Allow Printing (Airtable Interface parity) */
|
|
1336
|
+
allowPrinting: z.boolean().optional().describe("Allow users to print the view"),
|
|
1337
|
+
/** Empty State */
|
|
1338
|
+
emptyState: z.object({
|
|
1339
|
+
title: I18nLabelSchema.optional(),
|
|
1340
|
+
message: I18nLabelSchema.optional(),
|
|
1341
|
+
icon: z.string().optional()
|
|
1342
|
+
}).optional().describe("Empty state configuration when no records found"),
|
|
1565
1343
|
/** ARIA accessibility attributes */
|
|
1566
|
-
aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes"),
|
|
1344
|
+
aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes for the list view"),
|
|
1345
|
+
/** Responsive layout overrides per breakpoint */
|
|
1346
|
+
responsive: ResponsiveConfigSchema.optional().describe("Responsive layout configuration"),
|
|
1567
1347
|
/** Performance optimization settings */
|
|
1568
|
-
performance: PerformanceConfigSchema.optional().describe("Performance optimization settings")
|
|
1348
|
+
performance: PerformanceConfigSchema.optional().describe("Performance optimization settings")
|
|
1349
|
+
}));
|
|
1350
|
+
var FormFieldSchema = lazySchema(() => z.object({
|
|
1351
|
+
/** Field name (snake_case) */
|
|
1352
|
+
field: z.string().describe("Field name (snake_case)"),
|
|
1353
|
+
/** Field type — reuses Data.FieldType. When set, widget is auto-inferred (can be overridden). */
|
|
1354
|
+
type: FieldType.optional().describe("Field type (auto-infers widget if omitted)"),
|
|
1355
|
+
/** Select/multiselect options — only needed when type=select/multiselect/radio/checkboxes */
|
|
1356
|
+
options: z.array(SelectOptionSchema).optional().describe("Options for select/multiselect/radio/checkboxes fields"),
|
|
1357
|
+
/** Reference object for lookup/master_detail fields */
|
|
1358
|
+
reference: z.string().optional().describe("Target object name for lookup/master_detail fields"),
|
|
1359
|
+
/** Text constraints */
|
|
1360
|
+
maxLength: z.number().optional().describe("Maximum character length (for text/textarea/email/url/phone)"),
|
|
1361
|
+
minLength: z.number().optional().describe("Minimum character length"),
|
|
1362
|
+
/** Number constraints */
|
|
1363
|
+
min: z.number().optional().describe("Minimum value (for number/currency/percent/slider)"),
|
|
1364
|
+
max: z.number().optional().describe("Maximum value"),
|
|
1365
|
+
precision: z.number().optional().describe("Total digits (for number/currency)"),
|
|
1366
|
+
scale: z.number().optional().describe("Decimal places"),
|
|
1367
|
+
/** Multi-value flag */
|
|
1368
|
+
multiple: z.boolean().optional().describe("Allow multiple values (for select/lookup/file/image)"),
|
|
1369
|
+
/** UI overrides */
|
|
1370
|
+
label: I18nLabelSchema.optional().describe("Display label override"),
|
|
1371
|
+
placeholder: I18nLabelSchema.optional().describe("Placeholder text"),
|
|
1372
|
+
helpText: I18nLabelSchema.optional().describe("Help/hint text"),
|
|
1373
|
+
readonly: z.boolean().optional().describe("Read-only override"),
|
|
1374
|
+
immutable: z.boolean().optional().describe("Editable on create, locked once the record exists (e.g. machine names)."),
|
|
1375
|
+
required: z.boolean().optional().describe("Required override"),
|
|
1376
|
+
hidden: z.boolean().optional().describe("Hidden override"),
|
|
1377
|
+
colSpan: z.number().int().min(1).max(4).optional().describe("Column span in grid layout (1-4)"),
|
|
1378
|
+
/** Custom widget override — only needed when auto-inference is insufficient */
|
|
1379
|
+
widget: z.string().optional().describe("Custom widget/component name (overrides type-based inference)"),
|
|
1380
|
+
/** For `code` fields: source language (e.g. 'javascript', 'sql', 'json', 'typescript', 'expression', 'cel'). Drives syntax highlighting. */
|
|
1381
|
+
language: z.string().optional().describe("Code editor language (for type=code)"),
|
|
1382
|
+
/**
|
|
1383
|
+
* Sub-fields for `composite` / `repeater` types — declares the inner shape
|
|
1384
|
+
* of an embedded sub-object (composite) or each row of an embedded
|
|
1385
|
+
* sub-object array (repeater). Recursive: composite/repeater can nest.
|
|
1386
|
+
* Ignored for all other field types.
|
|
1387
|
+
*
|
|
1388
|
+
* Use `lookup` / `master_detail` instead when the children are independent
|
|
1389
|
+
* records with their own IDs in a separate object/table.
|
|
1390
|
+
*/
|
|
1391
|
+
fields: z.array(z.lazy(() => FormFieldSchema)).optional().describe("Sub-fields for composite/repeater types"),
|
|
1392
|
+
dependsOn: z.string().optional().describe("Parent field name for cascading"),
|
|
1393
|
+
visibleOn: ExpressionInputSchema.optional().describe("Visibility predicate (CEL).")
|
|
1394
|
+
}));
|
|
1395
|
+
var FormSectionSchema = lazySchema(() => z.object({
|
|
1396
|
+
label: I18nLabelSchema.optional(),
|
|
1397
|
+
description: z.string().optional().describe("Optional description rendered under the section header."),
|
|
1398
|
+
collapsible: z.boolean().default(false),
|
|
1399
|
+
collapsed: z.boolean().default(false),
|
|
1400
|
+
visibleOn: ExpressionInputSchema.optional().describe("Visibility predicate (CEL). Hides the whole section when false."),
|
|
1401
|
+
columns: z.union([
|
|
1402
|
+
z.enum(["1", "2", "3", "4"]),
|
|
1403
|
+
z.literal(1),
|
|
1404
|
+
z.literal(2),
|
|
1405
|
+
z.literal(3),
|
|
1406
|
+
z.literal(4)
|
|
1407
|
+
]).default(1).transform((val) => typeof val === "string" ? parseInt(val) : val),
|
|
1408
|
+
fields: z.array(z.union([
|
|
1409
|
+
z.string(),
|
|
1410
|
+
// Legacy: simple field name
|
|
1411
|
+
FormFieldSchema
|
|
1412
|
+
// Enhanced: detailed field config
|
|
1413
|
+
]))
|
|
1414
|
+
}));
|
|
1415
|
+
var FormViewSchema = lazySchema(() => z.object({
|
|
1416
|
+
type: z.enum([
|
|
1417
|
+
"simple",
|
|
1418
|
+
// Single column or sections
|
|
1419
|
+
"tabbed",
|
|
1420
|
+
// Tabs
|
|
1421
|
+
"wizard",
|
|
1422
|
+
// Step by step
|
|
1423
|
+
"split",
|
|
1424
|
+
// Master-Detail split
|
|
1425
|
+
"drawer",
|
|
1426
|
+
// Side panel
|
|
1427
|
+
"modal"
|
|
1428
|
+
// Dialog
|
|
1429
|
+
]).default("simple"),
|
|
1430
|
+
/** Data Source Configuration */
|
|
1431
|
+
data: ViewDataSchema.optional().describe('Data source configuration (defaults to "object" provider)'),
|
|
1432
|
+
sections: z.array(FormSectionSchema).optional(),
|
|
1433
|
+
// For simple layout
|
|
1434
|
+
groups: z.array(FormSectionSchema).optional(),
|
|
1435
|
+
// Legacy support -> alias to sections
|
|
1436
|
+
/** Default Sort for Related Lists (e.g., sort child records by date) */
|
|
1437
|
+
defaultSort: z.array(z.object({
|
|
1438
|
+
field: z.string().describe("Field name to sort by"),
|
|
1439
|
+
order: z.enum(["asc", "desc"]).default("desc").describe("Sort direction")
|
|
1440
|
+
})).optional().describe("Default sort order for related list views within this form"),
|
|
1441
|
+
/** Public form sharing configuration */
|
|
1442
|
+
sharing: SharingConfigSchema.optional().describe("Public sharing configuration for this form"),
|
|
1569
1443
|
/**
|
|
1570
|
-
*
|
|
1571
|
-
*
|
|
1572
|
-
* A joined report renders multiple independent sub-reports stacked
|
|
1573
|
-
* vertically in the same view. Each block declares its own object,
|
|
1574
|
-
* columns, groupings and filter. The container-level `filter` is ANDed
|
|
1575
|
-
* into every block at query time so a top-level scope (e.g. "this
|
|
1576
|
-
* quarter") flows down without per-block duplication.
|
|
1444
|
+
* What happens after a successful submit.
|
|
1577
1445
|
*
|
|
1578
|
-
*
|
|
1446
|
+
* - `thank-you` (default) — show a confirmation panel
|
|
1447
|
+
* - `redirect` — send the browser to a URL
|
|
1448
|
+
* - `continue` — reset the form so another response can be entered
|
|
1449
|
+
* - `next-record` — advance to the next record (internal queues only)
|
|
1579
1450
|
*/
|
|
1580
|
-
|
|
1451
|
+
submitBehavior: z.union([
|
|
1452
|
+
z.object({
|
|
1453
|
+
kind: z.literal("thank-you"),
|
|
1454
|
+
title: z.string().optional(),
|
|
1455
|
+
message: z.string().optional()
|
|
1456
|
+
}),
|
|
1457
|
+
z.object({
|
|
1458
|
+
kind: z.literal("redirect"),
|
|
1459
|
+
url: z.string(),
|
|
1460
|
+
delayMs: z.number().int().min(0).optional()
|
|
1461
|
+
}),
|
|
1462
|
+
z.object({ kind: z.literal("continue") }),
|
|
1463
|
+
z.object({ kind: z.literal("next-record") })
|
|
1464
|
+
]).optional().describe("Post-submit behavior"),
|
|
1465
|
+
/** ARIA accessibility attributes */
|
|
1466
|
+
aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes for the form view")
|
|
1467
|
+
}));
|
|
1468
|
+
var ViewSchema = lazySchema(() => z.object({
|
|
1469
|
+
list: ListViewSchema.optional(),
|
|
1470
|
+
// Default list view
|
|
1471
|
+
form: FormViewSchema.optional(),
|
|
1472
|
+
// Default form view
|
|
1473
|
+
listViews: z.record(z.string(), ListViewSchema).optional().describe("Additional named list views"),
|
|
1474
|
+
formViews: z.record(z.string(), FormViewSchema).optional().describe("Additional named form views")
|
|
1475
|
+
}));
|
|
1476
|
+
function defineView(config) {
|
|
1477
|
+
return ViewSchema.parse(config);
|
|
1478
|
+
}
|
|
1479
|
+
function defineForm(config) {
|
|
1480
|
+
const { schemaId, ...rest } = config;
|
|
1481
|
+
return FormViewSchema.parse({
|
|
1482
|
+
...rest,
|
|
1483
|
+
data: { provider: "schema", schemaId }
|
|
1484
|
+
});
|
|
1485
|
+
}
|
|
1486
|
+
var FieldReferenceSchema = lazySchema(() => z.object({
|
|
1487
|
+
$field: z.string().describe("Field Reference/Column Name")
|
|
1581
1488
|
}));
|
|
1582
|
-
var Report = {
|
|
1583
|
-
create: (config) => ReportSchema.parse(config)
|
|
1584
|
-
};
|
|
1585
|
-
var EncryptionAlgorithmSchema = lazySchema(() => z.enum([
|
|
1586
|
-
"aes-256-gcm",
|
|
1587
|
-
"aes-256-cbc",
|
|
1588
|
-
"chacha20-poly1305"
|
|
1589
|
-
]).describe("Supported encryption algorithm"));
|
|
1590
|
-
var KeyManagementProviderSchema = lazySchema(() => z.enum([
|
|
1591
|
-
"local",
|
|
1592
|
-
"aws-kms",
|
|
1593
|
-
"azure-key-vault",
|
|
1594
|
-
"gcp-kms",
|
|
1595
|
-
"hashicorp-vault"
|
|
1596
|
-
]).describe("Key management service provider"));
|
|
1597
|
-
var KeyRotationPolicySchema = lazySchema(() => z.object({
|
|
1598
|
-
enabled: z.boolean().default(false).describe("Enable automatic key rotation"),
|
|
1599
|
-
frequencyDays: z.number().min(1).default(90).describe("Rotation frequency in days"),
|
|
1600
|
-
retainOldVersions: z.number().default(3).describe("Number of old key versions to retain"),
|
|
1601
|
-
autoRotate: z.boolean().default(true).describe("Automatically rotate without manual approval")
|
|
1602
|
-
}).describe("Policy for automatic encryption key rotation"));
|
|
1603
|
-
var EncryptionConfigSchema = lazySchema(() => z.object({
|
|
1604
|
-
enabled: z.boolean().default(false).describe("Enable field-level encryption"),
|
|
1605
|
-
algorithm: EncryptionAlgorithmSchema.default("aes-256-gcm").describe("Encryption algorithm"),
|
|
1606
|
-
keyManagement: z.object({
|
|
1607
|
-
provider: KeyManagementProviderSchema.describe("Key management service provider"),
|
|
1608
|
-
keyId: z.string().optional().describe("Key identifier in the provider"),
|
|
1609
|
-
rotationPolicy: KeyRotationPolicySchema.optional().describe("Key rotation policy")
|
|
1610
|
-
}).describe("Key management configuration"),
|
|
1611
|
-
scope: z.enum(["field", "record", "table", "database"]).describe("Encryption scope level"),
|
|
1612
|
-
deterministicEncryption: z.boolean().default(false).describe("Allows equality queries on encrypted data"),
|
|
1613
|
-
searchableEncryption: z.boolean().default(false).describe("Allows search on encrypted data")
|
|
1614
|
-
}).describe("Field-level encryption configuration"));
|
|
1615
1489
|
lazySchema(() => z.object({
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
"redact",
|
|
1622
|
-
// Complete redaction: ****
|
|
1623
|
-
"partial",
|
|
1624
|
-
// Partial masking: 138****5678
|
|
1625
|
-
"hash",
|
|
1626
|
-
// Hash value: sha256(value)
|
|
1627
|
-
"tokenize",
|
|
1628
|
-
// Tokenization: token-12345
|
|
1629
|
-
"randomize",
|
|
1630
|
-
// Randomize: generate random value
|
|
1631
|
-
"nullify",
|
|
1632
|
-
// Null value: null
|
|
1633
|
-
"substitute"
|
|
1634
|
-
// Substitute with dummy data
|
|
1635
|
-
]).describe("Data masking strategy for PII protection"));
|
|
1636
|
-
var MaskingRuleSchema = lazySchema(() => z.object({
|
|
1637
|
-
field: z.string().describe("Field name to apply masking to"),
|
|
1638
|
-
strategy: MaskingStrategySchema.describe("Masking strategy to use"),
|
|
1639
|
-
pattern: z.string().optional().describe("Regex pattern for partial masking"),
|
|
1640
|
-
preserveFormat: z.boolean().default(true).describe("Keep the original data format after masking"),
|
|
1641
|
-
preserveLength: z.boolean().default(true).describe("Keep the original data length after masking"),
|
|
1642
|
-
roles: z.array(z.string()).optional().describe("Roles that see masked data"),
|
|
1643
|
-
exemptRoles: z.array(z.string()).optional().describe("Roles that see unmasked data")
|
|
1644
|
-
}).describe("Masking rule for a single field"));
|
|
1490
|
+
/** Equal to (default) - SQL: = | MongoDB: $eq */
|
|
1491
|
+
$eq: z.any().optional(),
|
|
1492
|
+
/** Not equal to - SQL: <> or != | MongoDB: $ne */
|
|
1493
|
+
$ne: z.any().optional()
|
|
1494
|
+
}));
|
|
1645
1495
|
lazySchema(() => z.object({
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
// Rich Content
|
|
1661
|
-
"markdown",
|
|
1662
|
-
"html",
|
|
1663
|
-
"richtext",
|
|
1664
|
-
// Numbers
|
|
1665
|
-
"number",
|
|
1666
|
-
"currency",
|
|
1667
|
-
"percent",
|
|
1668
|
-
// Date & Time
|
|
1669
|
-
"date",
|
|
1670
|
-
"datetime",
|
|
1671
|
-
"time",
|
|
1672
|
-
// Logic
|
|
1673
|
-
"boolean",
|
|
1674
|
-
"toggle",
|
|
1675
|
-
// Toggle is a distinct UI from checkbox
|
|
1676
|
-
// Selection
|
|
1677
|
-
"select",
|
|
1678
|
-
// Single select dropdown
|
|
1679
|
-
"multiselect",
|
|
1680
|
-
// Multi select (often tags)
|
|
1681
|
-
"radio",
|
|
1682
|
-
// Radio group
|
|
1683
|
-
"checkboxes",
|
|
1684
|
-
// Checkbox group
|
|
1685
|
-
// Relational
|
|
1686
|
-
"lookup",
|
|
1687
|
-
"master_detail",
|
|
1688
|
-
// Dynamic reference
|
|
1689
|
-
"tree",
|
|
1690
|
-
// Hierarchical reference
|
|
1691
|
-
// Media
|
|
1692
|
-
"image",
|
|
1693
|
-
"file",
|
|
1694
|
-
"avatar",
|
|
1695
|
-
"video",
|
|
1696
|
-
"audio",
|
|
1697
|
-
// Calculated / System
|
|
1698
|
-
"formula",
|
|
1699
|
-
"summary",
|
|
1700
|
-
"autonumber",
|
|
1701
|
-
// Enhanced Types
|
|
1702
|
-
"location",
|
|
1703
|
-
// GPS coordinates
|
|
1704
|
-
"address",
|
|
1705
|
-
// Structured address
|
|
1706
|
-
"code",
|
|
1707
|
-
// Code editor (JSON/SQL/JS)
|
|
1708
|
-
"json",
|
|
1709
|
-
// Structured JSON data
|
|
1710
|
-
"color",
|
|
1711
|
-
// Color picker
|
|
1712
|
-
"rating",
|
|
1713
|
-
// Star rating
|
|
1714
|
-
"slider",
|
|
1715
|
-
// Numeric slider
|
|
1716
|
-
"signature",
|
|
1717
|
-
// Digital signature
|
|
1718
|
-
"qrcode",
|
|
1719
|
-
// QR code / Barcode
|
|
1720
|
-
"progress",
|
|
1721
|
-
// Progress bar
|
|
1722
|
-
"tags",
|
|
1723
|
-
// Simple tag list
|
|
1724
|
-
// AI/ML Types
|
|
1725
|
-
"vector"
|
|
1726
|
-
// Vector embeddings for AI/ML (semantic search, RAG)
|
|
1727
|
-
]);
|
|
1728
|
-
var SelectOptionSchema = lazySchema(() => z.object({
|
|
1729
|
-
label: z.string().describe("Display label (human-readable, any case allowed)"),
|
|
1730
|
-
value: SystemIdentifierSchema.describe("Stored value (lowercase machine identifier)"),
|
|
1731
|
-
color: z.string().optional().describe("Color code for badges/charts"),
|
|
1732
|
-
default: z.boolean().optional().describe("Is default option")
|
|
1496
|
+
/** Greater than - SQL: > | MongoDB: $gt */
|
|
1497
|
+
$gt: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
|
|
1498
|
+
/** Greater than or equal to - SQL: >= | MongoDB: $gte */
|
|
1499
|
+
$gte: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
|
|
1500
|
+
/** Less than - SQL: < | MongoDB: $lt */
|
|
1501
|
+
$lt: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
|
|
1502
|
+
/** Less than or equal to - SQL: <= | MongoDB: $lte */
|
|
1503
|
+
$lte: z.union([z.number(), z.date(), FieldReferenceSchema]).optional()
|
|
1504
|
+
}));
|
|
1505
|
+
lazySchema(() => z.object({
|
|
1506
|
+
/** In list - SQL: IN (?, ?, ?) | MongoDB: $in */
|
|
1507
|
+
$in: z.array(z.any()).optional(),
|
|
1508
|
+
/** Not in list - SQL: NOT IN (...) | MongoDB: $nin */
|
|
1509
|
+
$nin: z.array(z.any()).optional()
|
|
1733
1510
|
}));
|
|
1734
1511
|
lazySchema(() => z.object({
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1512
|
+
/** Between (inclusive) - takes [min, max] array */
|
|
1513
|
+
$between: z.tuple([
|
|
1514
|
+
z.union([z.number(), z.date(), FieldReferenceSchema]),
|
|
1515
|
+
z.union([z.number(), z.date(), FieldReferenceSchema])
|
|
1516
|
+
]).optional()
|
|
1739
1517
|
}));
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1518
|
+
lazySchema(() => z.object({
|
|
1519
|
+
/** Contains substring - SQL: LIKE %?% | MongoDB: $regex */
|
|
1520
|
+
$contains: z.string().optional(),
|
|
1521
|
+
/** Does not contain substring - SQL: NOT LIKE %?% | MongoDB: $not: $regex */
|
|
1522
|
+
$notContains: z.string().optional(),
|
|
1523
|
+
/** Starts with prefix - SQL: LIKE ?% | MongoDB: $regex */
|
|
1524
|
+
$startsWith: z.string().optional(),
|
|
1525
|
+
/** Ends with suffix - SQL: LIKE %? | MongoDB: $regex */
|
|
1526
|
+
$endsWith: z.string().optional()
|
|
1744
1527
|
}));
|
|
1745
1528
|
lazySchema(() => z.object({
|
|
1746
|
-
|
|
1747
|
-
|
|
1529
|
+
/** Is null check - SQL: IS NULL (true) / IS NOT NULL (false) | MongoDB: field: null */
|
|
1530
|
+
$null: z.boolean().optional(),
|
|
1531
|
+
/** Field exists check (primarily for NoSQL) - MongoDB: $exists */
|
|
1532
|
+
$exists: z.boolean().optional()
|
|
1533
|
+
}));
|
|
1534
|
+
var FieldOperatorsSchema = lazySchema(() => z.object({
|
|
1535
|
+
// Equality
|
|
1536
|
+
$eq: z.any().optional(),
|
|
1537
|
+
$ne: z.any().optional(),
|
|
1538
|
+
// Comparison (numeric/date)
|
|
1539
|
+
$gt: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
|
|
1540
|
+
$gte: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
|
|
1541
|
+
$lt: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
|
|
1542
|
+
$lte: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
|
|
1543
|
+
// Set & Range
|
|
1544
|
+
$in: z.array(z.any()).optional(),
|
|
1545
|
+
$nin: z.array(z.any()).optional(),
|
|
1546
|
+
$between: z.tuple([
|
|
1547
|
+
z.union([z.number(), z.date(), FieldReferenceSchema]),
|
|
1548
|
+
z.union([z.number(), z.date(), FieldReferenceSchema])
|
|
1549
|
+
]).optional(),
|
|
1550
|
+
// String-specific
|
|
1551
|
+
$contains: z.string().optional(),
|
|
1552
|
+
$notContains: z.string().optional(),
|
|
1553
|
+
$startsWith: z.string().optional(),
|
|
1554
|
+
$endsWith: z.string().optional(),
|
|
1555
|
+
// Special
|
|
1556
|
+
$null: z.boolean().optional(),
|
|
1557
|
+
$exists: z.boolean().optional()
|
|
1558
|
+
}));
|
|
1559
|
+
var FilterConditionSchema = z.lazy(
|
|
1560
|
+
() => z.record(z.string(), z.unknown()).and(
|
|
1561
|
+
z.object({
|
|
1562
|
+
$and: z.array(FilterConditionSchema).optional(),
|
|
1563
|
+
$or: z.array(FilterConditionSchema).optional(),
|
|
1564
|
+
$not: FilterConditionSchema.optional()
|
|
1565
|
+
})
|
|
1566
|
+
)
|
|
1567
|
+
);
|
|
1568
|
+
lazySchema(() => z.object({
|
|
1569
|
+
where: FilterConditionSchema.optional()
|
|
1570
|
+
}));
|
|
1571
|
+
var NormalizedFilterSchema = z.lazy(
|
|
1572
|
+
() => z.object({
|
|
1573
|
+
$and: z.array(
|
|
1574
|
+
z.union([
|
|
1575
|
+
// Field condition: { field: { $op: value } }
|
|
1576
|
+
z.record(z.string(), FieldOperatorsSchema),
|
|
1577
|
+
// Nested logical group
|
|
1578
|
+
NormalizedFilterSchema
|
|
1579
|
+
])
|
|
1580
|
+
).optional(),
|
|
1581
|
+
$or: z.array(
|
|
1582
|
+
z.union([
|
|
1583
|
+
z.record(z.string(), FieldOperatorsSchema),
|
|
1584
|
+
NormalizedFilterSchema
|
|
1585
|
+
])
|
|
1586
|
+
).optional(),
|
|
1587
|
+
$not: z.union([
|
|
1588
|
+
z.record(z.string(), FieldOperatorsSchema),
|
|
1589
|
+
NormalizedFilterSchema
|
|
1590
|
+
]).optional()
|
|
1591
|
+
})
|
|
1592
|
+
);
|
|
1593
|
+
var SortNodeSchema = lazySchema(() => z.object({
|
|
1594
|
+
field: z.string(),
|
|
1595
|
+
order: z.enum(["asc", "desc"]).default("asc")
|
|
1596
|
+
}));
|
|
1597
|
+
var AggregationFunction = z.enum([
|
|
1598
|
+
"count",
|
|
1599
|
+
"sum",
|
|
1600
|
+
"avg",
|
|
1601
|
+
"min",
|
|
1602
|
+
"max",
|
|
1603
|
+
"count_distinct",
|
|
1604
|
+
"array_agg",
|
|
1605
|
+
"string_agg"
|
|
1606
|
+
]);
|
|
1607
|
+
var DateGranularity = z.enum(["day", "week", "month", "quarter", "year"]);
|
|
1608
|
+
var GroupByNodeSchema = lazySchema(() => z.union([
|
|
1609
|
+
z.string(),
|
|
1610
|
+
z.object({
|
|
1611
|
+
field: z.string().describe("Field to group by"),
|
|
1612
|
+
dateGranularity: DateGranularity.optional().describe("Bucket date values into uniform periods (day/week/month/quarter/year)"),
|
|
1613
|
+
/** Optional alias for the projected group value (defaults to `field`). */
|
|
1614
|
+
alias: z.string().optional().describe("Alias for the projected group value")
|
|
1615
|
+
})
|
|
1616
|
+
]));
|
|
1617
|
+
var AggregationNodeSchema = lazySchema(() => z.object({
|
|
1618
|
+
function: AggregationFunction.describe("Aggregation function"),
|
|
1619
|
+
field: z.string().optional().describe("Field to aggregate (optional for COUNT(*))"),
|
|
1620
|
+
alias: z.string().describe("Result column alias"),
|
|
1621
|
+
distinct: z.boolean().optional().describe("Apply DISTINCT before aggregation"),
|
|
1622
|
+
filter: FilterConditionSchema.optional().describe("Filter/Condition to apply to the aggregation (FILTER WHERE clause)")
|
|
1623
|
+
}));
|
|
1624
|
+
var JoinType = z.enum(["inner", "left", "right", "full"]);
|
|
1625
|
+
var JoinStrategy = z.enum(["auto", "database", "hash", "loop"]);
|
|
1626
|
+
var JoinNodeSchema = z.lazy(
|
|
1627
|
+
() => z.object({
|
|
1628
|
+
type: JoinType.describe("Join type"),
|
|
1629
|
+
strategy: JoinStrategy.optional().describe("Execution strategy hint"),
|
|
1630
|
+
object: z.string().describe("Object/table to join"),
|
|
1631
|
+
alias: z.string().optional().describe("Table alias"),
|
|
1632
|
+
on: FilterConditionSchema.describe("Join condition"),
|
|
1633
|
+
subquery: z.lazy(() => QuerySchema).optional().describe("Subquery instead of object")
|
|
1634
|
+
})
|
|
1635
|
+
);
|
|
1636
|
+
var WindowFunction = z.enum([
|
|
1637
|
+
"row_number",
|
|
1638
|
+
"rank",
|
|
1639
|
+
"dense_rank",
|
|
1640
|
+
"percent_rank",
|
|
1641
|
+
"lag",
|
|
1642
|
+
"lead",
|
|
1643
|
+
"first_value",
|
|
1644
|
+
"last_value",
|
|
1645
|
+
"sum",
|
|
1646
|
+
"avg",
|
|
1647
|
+
"count",
|
|
1648
|
+
"min",
|
|
1649
|
+
"max"
|
|
1650
|
+
]);
|
|
1651
|
+
var WindowSpecSchema = lazySchema(() => z.object({
|
|
1652
|
+
partitionBy: z.array(z.string()).optional().describe("PARTITION BY fields"),
|
|
1653
|
+
orderBy: z.array(SortNodeSchema).optional().describe("ORDER BY specification"),
|
|
1654
|
+
frame: z.object({
|
|
1655
|
+
type: z.enum(["rows", "range"]).optional(),
|
|
1656
|
+
start: z.string().optional().describe('Frame start (e.g., "UNBOUNDED PRECEDING", "1 PRECEDING")'),
|
|
1657
|
+
end: z.string().optional().describe('Frame end (e.g., "CURRENT ROW", "1 FOLLOWING")')
|
|
1658
|
+
}).optional().describe("Window frame specification")
|
|
1659
|
+
}));
|
|
1660
|
+
var WindowFunctionNodeSchema = lazySchema(() => z.object({
|
|
1661
|
+
function: WindowFunction.describe("Window function name"),
|
|
1662
|
+
field: z.string().optional().describe("Field to operate on (for aggregate window functions)"),
|
|
1663
|
+
alias: z.string().describe("Result column alias"),
|
|
1664
|
+
over: WindowSpecSchema.describe("Window specification (OVER clause)")
|
|
1665
|
+
}));
|
|
1666
|
+
var FieldNodeSchema = z.lazy(
|
|
1667
|
+
() => z.union([
|
|
1668
|
+
z.string(),
|
|
1669
|
+
// Primitive field: "name"
|
|
1670
|
+
z.object({
|
|
1671
|
+
field: z.string(),
|
|
1672
|
+
// Relationship field: "owner"
|
|
1673
|
+
fields: z.array(FieldNodeSchema).optional(),
|
|
1674
|
+
// Nested select: ["name", "email"]
|
|
1675
|
+
alias: z.string().optional()
|
|
1676
|
+
})
|
|
1677
|
+
])
|
|
1678
|
+
);
|
|
1679
|
+
var FullTextSearchSchema = lazySchema(() => z.object({
|
|
1680
|
+
query: z.string().describe("Search query text"),
|
|
1681
|
+
fields: z.array(z.string()).optional().describe("Fields to search in (if not specified, searches all text fields)"),
|
|
1682
|
+
fuzzy: z.boolean().optional().default(false).describe("Enable fuzzy matching (tolerates typos)"),
|
|
1683
|
+
operator: z.enum(["and", "or"]).optional().default("or").describe("Logical operator between terms"),
|
|
1684
|
+
boost: z.record(z.string(), z.number()).optional().describe("Field-specific relevance boosting (field name -> boost factor)"),
|
|
1685
|
+
minScore: z.number().optional().describe("Minimum relevance score threshold"),
|
|
1686
|
+
language: z.string().optional().describe('Language for text analysis (e.g., "en", "zh", "es")'),
|
|
1687
|
+
highlight: z.boolean().optional().default(false).describe("Enable search result highlighting")
|
|
1688
|
+
}));
|
|
1689
|
+
var BaseQuerySchema = z.object({
|
|
1690
|
+
/** Target Entity */
|
|
1691
|
+
object: z.string().describe("Object name (e.g. account)"),
|
|
1692
|
+
/** Select Clause */
|
|
1693
|
+
fields: z.array(FieldNodeSchema).optional().describe("Fields to retrieve"),
|
|
1694
|
+
/** Where Clause (Filtering) */
|
|
1695
|
+
where: FilterConditionSchema.optional().describe("Filtering criteria (WHERE)"),
|
|
1696
|
+
/** Full-Text Search */
|
|
1697
|
+
search: FullTextSearchSchema.optional().describe("Full-text search configuration ($search parameter)"),
|
|
1698
|
+
/** Order By Clause (Sorting) */
|
|
1699
|
+
orderBy: z.array(SortNodeSchema).optional().describe("Sorting instructions (ORDER BY)"),
|
|
1700
|
+
/** Pagination */
|
|
1701
|
+
limit: z.number().optional().describe("Max records to return (LIMIT)"),
|
|
1702
|
+
offset: z.number().optional().describe("Records to skip (OFFSET)"),
|
|
1703
|
+
top: z.number().optional().describe("Alias for limit (OData compatibility)"),
|
|
1704
|
+
cursor: z.record(z.string(), z.unknown()).optional().describe("Cursor for keyset pagination"),
|
|
1705
|
+
/** Joins */
|
|
1706
|
+
joins: z.array(JoinNodeSchema).optional().describe("Explicit Table Joins"),
|
|
1707
|
+
/** Aggregations */
|
|
1708
|
+
aggregations: z.array(AggregationNodeSchema).optional().describe("Aggregation functions"),
|
|
1709
|
+
/** Group By Clause */
|
|
1710
|
+
groupBy: z.array(GroupByNodeSchema).optional().describe("GROUP BY targets (strings or `{field, dateGranularity?}` objects for date bucketing)"),
|
|
1711
|
+
/** Having Clause */
|
|
1712
|
+
having: FilterConditionSchema.optional().describe("HAVING clause for aggregation filtering"),
|
|
1713
|
+
/** Window Functions */
|
|
1714
|
+
windowFunctions: z.array(WindowFunctionNodeSchema).optional().describe("Window functions with OVER clause"),
|
|
1715
|
+
/** Subquery flag */
|
|
1716
|
+
distinct: z.boolean().optional().describe("SELECT DISTINCT flag")
|
|
1717
|
+
});
|
|
1718
|
+
var QuerySchema = lazySchema(() => BaseQuerySchema.extend({
|
|
1719
|
+
expand: z.lazy(() => z.record(z.string(), QuerySchema)).optional().describe(
|
|
1720
|
+
"Recursive relation loading map. Keys are lookup/master_detail field names; values are nested QueryAST objects that control select, filter, sort, and further expansion on the related object. The engine resolves expand via batch $in queries (driver-agnostic) with a default max depth of 3."
|
|
1721
|
+
)
|
|
1722
|
+
}));
|
|
1723
|
+
|
|
1724
|
+
// src/ui/dashboard.zod.ts
|
|
1725
|
+
var WidgetColorVariantSchema = lazySchema(() => z.enum([
|
|
1726
|
+
"default",
|
|
1727
|
+
"blue",
|
|
1728
|
+
"teal",
|
|
1729
|
+
"orange",
|
|
1730
|
+
"purple",
|
|
1731
|
+
"success",
|
|
1732
|
+
"warning",
|
|
1733
|
+
"danger"
|
|
1734
|
+
]).describe("Widget color variant"));
|
|
1735
|
+
var WidgetActionTypeSchema = lazySchema(() => z.enum([
|
|
1736
|
+
"script",
|
|
1737
|
+
"url",
|
|
1738
|
+
"modal",
|
|
1739
|
+
"flow",
|
|
1740
|
+
"api"
|
|
1741
|
+
]).describe("Widget action type"));
|
|
1742
|
+
var DashboardHeaderActionSchema = lazySchema(() => z.object({
|
|
1743
|
+
/** Action label */
|
|
1744
|
+
label: I18nLabelSchema.describe("Action button label"),
|
|
1745
|
+
/** Action URL or target */
|
|
1746
|
+
actionUrl: z.string().describe("URL or target for the action"),
|
|
1747
|
+
/** Action type */
|
|
1748
|
+
actionType: WidgetActionTypeSchema.optional().describe("Type of action"),
|
|
1749
|
+
/** Icon identifier */
|
|
1750
|
+
icon: z.string().optional().describe("Icon identifier for the action button")
|
|
1751
|
+
}).describe("Dashboard header action"));
|
|
1752
|
+
var DashboardHeaderSchema = lazySchema(() => z.object({
|
|
1753
|
+
/** Whether to show the dashboard title in the header */
|
|
1754
|
+
showTitle: z.boolean().default(true).describe("Show dashboard title in header"),
|
|
1755
|
+
/** Whether to show the dashboard description in the header */
|
|
1756
|
+
showDescription: z.boolean().default(true).describe("Show dashboard description in header"),
|
|
1757
|
+
/** Action buttons displayed in the header */
|
|
1758
|
+
actions: z.array(DashboardHeaderActionSchema).optional().describe("Header action buttons")
|
|
1759
|
+
}).describe("Dashboard header configuration"));
|
|
1760
|
+
var WidgetMeasureSchema = lazySchema(() => z.object({
|
|
1761
|
+
/** Value field to aggregate */
|
|
1762
|
+
valueField: z.string().describe("Field to aggregate"),
|
|
1763
|
+
/** Aggregate function */
|
|
1764
|
+
aggregate: z.enum(["count", "sum", "avg", "min", "max"]).default("count").describe("Aggregate function"),
|
|
1765
|
+
/** Display label for the measure */
|
|
1766
|
+
label: I18nLabelSchema.optional().describe("Measure display label"),
|
|
1767
|
+
/** Number format string (e.g., "$0,0.00", "0.0%") */
|
|
1768
|
+
format: z.string().optional().describe("Number format string")
|
|
1769
|
+
}).describe("Widget measure definition"));
|
|
1770
|
+
var DashboardWidgetSchema = lazySchema(() => z.object({
|
|
1771
|
+
/** Unique widget identifier (snake_case, used for targetWidgets references) */
|
|
1772
|
+
id: SnakeCaseIdentifierSchema.describe("Unique widget identifier (snake_case)"),
|
|
1773
|
+
/** Widget Title */
|
|
1774
|
+
title: I18nLabelSchema.optional().describe("Widget title"),
|
|
1775
|
+
/** Widget Description (displayed below the title) */
|
|
1776
|
+
description: I18nLabelSchema.optional().describe("Widget description text below the header"),
|
|
1777
|
+
/** Visualization Type */
|
|
1778
|
+
type: ChartTypeSchema.default("metric").describe("Visualization type"),
|
|
1779
|
+
/** Chart Configuration */
|
|
1780
|
+
chartConfig: ChartConfigSchema.optional().describe("Chart visualization configuration"),
|
|
1781
|
+
/** Color variant for the widget (e.g., KPI card accent color) */
|
|
1782
|
+
colorVariant: WidgetColorVariantSchema.optional().describe("Widget color variant for theming"),
|
|
1783
|
+
/**
|
|
1784
|
+
* Runtime capability gate — widget is hidden when the named object is
|
|
1785
|
+
* not registered in the runtime's SchemaRegistry. Mirrors
|
|
1786
|
+
* `NavigationItem.requiresObject` so cloud-only widgets (e.g. those
|
|
1787
|
+
* keyed on `sys_app` / `sys_package_installation`) silently disappear
|
|
1788
|
+
* in single-environment runtimes instead of rendering a 404 error.
|
|
1789
|
+
*
|
|
1790
|
+
* Defaults to the widget's `object` field when not explicitly set —
|
|
1791
|
+
* any widget that targets an object will be gated on that object's
|
|
1792
|
+
* registration. Set this to a different value (or empty string to
|
|
1793
|
+
* disable) when the widget should appear even if its `object` is
|
|
1794
|
+
* unavailable.
|
|
1795
|
+
*/
|
|
1796
|
+
requiresObject: z.string().optional().describe("Hide the widget unless the named object is registered"),
|
|
1797
|
+
/**
|
|
1798
|
+
* Runtime capability gate — widget is hidden when the named kernel
|
|
1799
|
+
* service is not registered. Mirrors `NavigationItem.requiresService`.
|
|
1800
|
+
*/
|
|
1801
|
+
requiresService: z.string().optional().describe("Hide the widget unless the named kernel service is registered"),
|
|
1802
|
+
/** Action URL for the widget header action button */
|
|
1803
|
+
actionUrl: z.string().optional().describe("URL or target for the widget action button"),
|
|
1804
|
+
/** Action type for the widget header action button */
|
|
1805
|
+
actionType: WidgetActionTypeSchema.optional().describe("Type of action for the widget action button"),
|
|
1806
|
+
/** Icon for the widget header action button */
|
|
1807
|
+
actionIcon: z.string().optional().describe("Icon identifier for the widget action button"),
|
|
1808
|
+
/** Data Source Object */
|
|
1809
|
+
object: z.string().optional().describe("Data source object name"),
|
|
1810
|
+
/** Data Filter (MongoDB-style FilterCondition) */
|
|
1811
|
+
filter: FilterConditionSchema.optional().describe("Data filter criteria"),
|
|
1812
|
+
/**
|
|
1813
|
+
* Period-over-period comparison primitive.
|
|
1814
|
+
*
|
|
1815
|
+
* When set, the renderer runs a second query against a shifted time
|
|
1816
|
+
* window and surfaces the delta (metric widgets show a secondary
|
|
1817
|
+
* value + arrow; chart widgets render a muted/dashed overlay series).
|
|
1818
|
+
*
|
|
1819
|
+
* - `'previousPeriod'` — auto-detect the comparison window from the
|
|
1820
|
+
* widget's `filter` date macros (e.g. `{current_month_start}` →
|
|
1821
|
+
* `{last_month_start}`). Falls back to no comparison when the
|
|
1822
|
+
* filter contains no resolvable date range.
|
|
1823
|
+
* - `'previousYear'` — shift the resolved filter window back by one
|
|
1824
|
+
* calendar year.
|
|
1825
|
+
* - `{ offset: '7d' | '1M' | '1y' }` — shift by an explicit
|
|
1826
|
+
* ISO-8601-like duration. Units: `d` (days), `w` (weeks),
|
|
1827
|
+
* `M` (months), `y` (years).
|
|
1828
|
+
*/
|
|
1829
|
+
compareTo: z.union([
|
|
1830
|
+
z.literal("previousPeriod"),
|
|
1831
|
+
z.literal("previousYear"),
|
|
1832
|
+
z.object({
|
|
1833
|
+
offset: z.string().regex(/^\d+[dwMy]$/, 'Offset must match <N>(d|w|M|y), e.g. "7d", "1M", "1y"')
|
|
1834
|
+
})
|
|
1835
|
+
]).optional().describe("Period-over-period comparison window"),
|
|
1836
|
+
/** Category Field (X-Axis / Group By) */
|
|
1837
|
+
categoryField: z.string().optional().describe("Field for grouping (X-Axis)"),
|
|
1838
|
+
/**
|
|
1839
|
+
* Date Bucketing Granularity for `categoryField`
|
|
1840
|
+
*
|
|
1841
|
+
* When set and `categoryField` references a date/datetime field, the engine
|
|
1842
|
+
* buckets values into uniform `day` / `week` / `month` / `quarter` / `year`
|
|
1843
|
+
* periods server-side (PostgreSQL `date_trunc`, MySQL `date_format`, SQLite
|
|
1844
|
+
* `strftime`, MongoDB `$dateTrunc`; falls back to in-memory ISO-8601
|
|
1845
|
+
* bucketing otherwise). Without this, raw timestamps are grouped verbatim
|
|
1846
|
+
* which typically yields one bucket per row — making time-series charts
|
|
1847
|
+
* appear flat.
|
|
1848
|
+
*
|
|
1849
|
+
* Mirrors the `dateGranularity` shape of {@link GroupByNodeSchema}.
|
|
1850
|
+
*/
|
|
1851
|
+
categoryGranularity: DateGranularity.optional().describe("Bucket categoryField date values into day/week/month/quarter/year periods"),
|
|
1852
|
+
/** Value Field (Y-Axis) */
|
|
1853
|
+
valueField: z.string().optional().describe("Field for values (Y-Axis)"),
|
|
1854
|
+
/** Aggregate operation */
|
|
1855
|
+
aggregate: z.enum(["count", "sum", "avg", "min", "max"]).optional().default("count").describe("Aggregate function"),
|
|
1856
|
+
/** Multi-measure definitions for pivot/matrix widgets */
|
|
1857
|
+
measures: z.array(WidgetMeasureSchema).optional().describe("Multiple measures for pivot/matrix analysis"),
|
|
1858
|
+
/**
|
|
1859
|
+
* Layout Position (React-Grid-Layout style)
|
|
1860
|
+
* x: column (0-11)
|
|
1861
|
+
* y: row
|
|
1862
|
+
* w: width (1-12)
|
|
1863
|
+
* h: height
|
|
1864
|
+
*/
|
|
1865
|
+
layout: z.object({
|
|
1866
|
+
x: z.number(),
|
|
1867
|
+
y: z.number(),
|
|
1868
|
+
w: z.number(),
|
|
1869
|
+
h: z.number()
|
|
1870
|
+
}).describe("Grid layout position"),
|
|
1871
|
+
/** Widget specific options (colors, legend, etc.) */
|
|
1872
|
+
options: z.unknown().optional().describe("Widget specific configuration"),
|
|
1873
|
+
/** Responsive layout overrides per breakpoint */
|
|
1874
|
+
responsive: ResponsiveConfigSchema.optional().describe("Responsive layout configuration"),
|
|
1875
|
+
/** ARIA accessibility attributes */
|
|
1876
|
+
aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes")
|
|
1748
1877
|
}));
|
|
1749
|
-
lazySchema(() => z.object({
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1878
|
+
var GlobalFilterOptionsFromSchema = lazySchema(() => z.object({
|
|
1879
|
+
/** Source object name to fetch options from */
|
|
1880
|
+
object: z.string().describe("Source object name"),
|
|
1881
|
+
/** Field to use as option value */
|
|
1882
|
+
valueField: z.string().describe("Field to use as option value"),
|
|
1883
|
+
/** Field to use as option label */
|
|
1884
|
+
labelField: z.string().describe("Field to use as option label"),
|
|
1885
|
+
/** Optional filter to apply when fetching options */
|
|
1886
|
+
filter: FilterConditionSchema.optional().describe("Filter to apply to source object")
|
|
1887
|
+
}).describe("Dynamic filter options from object"));
|
|
1888
|
+
var GlobalFilterSchema = lazySchema(() => z.object({
|
|
1889
|
+
/** Field name to filter on */
|
|
1890
|
+
field: z.string().describe("Field name to filter on"),
|
|
1891
|
+
/** Display label for the filter */
|
|
1892
|
+
label: I18nLabelSchema.optional().describe("Display label for the filter"),
|
|
1893
|
+
/** Filter input type */
|
|
1894
|
+
type: z.enum(["text", "select", "date", "number", "lookup"]).optional().describe("Filter input type"),
|
|
1895
|
+
/** Static options for select/lookup filters */
|
|
1896
|
+
options: z.array(z.object({
|
|
1897
|
+
value: z.union([z.string(), z.number(), z.boolean()]).describe("Option value"),
|
|
1898
|
+
label: I18nLabelSchema
|
|
1899
|
+
})).optional().describe("Static filter options"),
|
|
1900
|
+
/** Dynamic data binding for filter options */
|
|
1901
|
+
optionsFrom: GlobalFilterOptionsFromSchema.optional().describe("Dynamic filter options from object"),
|
|
1902
|
+
/** Default filter value */
|
|
1903
|
+
defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional().describe("Default filter value"),
|
|
1904
|
+
/** Filter application scope */
|
|
1905
|
+
scope: z.enum(["dashboard", "widget"]).default("dashboard").describe("Filter application scope"),
|
|
1906
|
+
/** Widget IDs to apply this filter to (when scope is widget) */
|
|
1907
|
+
targetWidgets: z.array(z.string()).optional().describe("Widget IDs to apply this filter to")
|
|
1757
1908
|
}));
|
|
1758
|
-
var
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1909
|
+
var DashboardSchema = lazySchema(() => z.object({
|
|
1910
|
+
/** Machine name */
|
|
1911
|
+
name: SnakeCaseIdentifierSchema.describe("Dashboard unique name"),
|
|
1912
|
+
/** Display label */
|
|
1913
|
+
label: I18nLabelSchema.describe("Dashboard label"),
|
|
1914
|
+
/** Description */
|
|
1915
|
+
description: I18nLabelSchema.optional().describe("Dashboard description"),
|
|
1916
|
+
/** Structured header configuration */
|
|
1917
|
+
header: DashboardHeaderSchema.optional().describe("Dashboard header configuration"),
|
|
1918
|
+
/** Collection of widgets */
|
|
1919
|
+
widgets: z.array(DashboardWidgetSchema).describe("Widgets to display"),
|
|
1920
|
+
/** Grid column count — defaults to 12 for a standard 12-column grid */
|
|
1921
|
+
columns: z.number().int().min(1).max(24).optional().describe("Number of grid columns (default 12)"),
|
|
1922
|
+
/** Grid gap in Tailwind spacing units (e.g. 4 = 1rem) */
|
|
1923
|
+
gap: z.number().int().min(0).optional().describe("Grid gap in Tailwind spacing units"),
|
|
1924
|
+
/** Auto-refresh */
|
|
1925
|
+
refreshInterval: z.number().optional().describe("Auto-refresh interval in seconds"),
|
|
1926
|
+
/** Dashboard Date Range (Global time filter) */
|
|
1927
|
+
dateRange: z.object({
|
|
1928
|
+
field: z.string().optional().describe("Default date field name for time-based filtering"),
|
|
1929
|
+
defaultRange: z.enum(["today", "yesterday", "this_week", "last_week", "this_month", "last_month", "this_quarter", "last_quarter", "this_year", "last_year", "last_7_days", "last_30_days", "last_90_days", "custom"]).default("this_month").describe("Default date range preset"),
|
|
1930
|
+
allowCustomRange: z.boolean().default(true).describe("Allow users to pick a custom date range")
|
|
1931
|
+
}).optional().describe("Global dashboard date range filter configuration"),
|
|
1932
|
+
/** Global Filters */
|
|
1933
|
+
globalFilters: z.array(GlobalFilterSchema).optional().describe("Global filters that apply to all widgets in the dashboard"),
|
|
1934
|
+
/** ARIA accessibility attributes */
|
|
1935
|
+
aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes"),
|
|
1936
|
+
/** Performance optimization settings */
|
|
1937
|
+
performance: PerformanceConfigSchema.optional().describe("Performance optimization settings")
|
|
1764
1938
|
}));
|
|
1765
|
-
var
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
imageValidation: z.object({
|
|
1785
|
-
minWidth: z.number().min(1).optional().describe("Minimum image width in pixels"),
|
|
1786
|
-
maxWidth: z.number().min(1).optional().describe("Maximum image width in pixels"),
|
|
1787
|
-
minHeight: z.number().min(1).optional().describe("Minimum image height in pixels"),
|
|
1788
|
-
maxHeight: z.number().min(1).optional().describe("Maximum image height in pixels"),
|
|
1789
|
-
aspectRatio: z.string().optional().describe('Required aspect ratio (e.g., "16:9", "1:1")'),
|
|
1790
|
-
generateThumbnails: z.boolean().default(false).describe("Auto-generate thumbnails"),
|
|
1791
|
-
thumbnailSizes: z.array(z.object({
|
|
1792
|
-
name: z.string().describe('Thumbnail variant name (e.g., "small", "medium", "large")'),
|
|
1793
|
-
width: z.number().min(1).describe("Thumbnail width in pixels"),
|
|
1794
|
-
height: z.number().min(1).describe("Thumbnail height in pixels"),
|
|
1795
|
-
crop: z.boolean().default(false).describe("Crop to exact dimensions")
|
|
1796
|
-
})).optional().describe("Thumbnail size configurations"),
|
|
1797
|
-
preserveMetadata: z.boolean().default(false).describe("Preserve EXIF metadata"),
|
|
1798
|
-
autoRotate: z.boolean().default(true).describe("Auto-rotate based on EXIF orientation")
|
|
1799
|
-
}).optional().describe("Image-specific validation rules"),
|
|
1800
|
-
/** Upload Behavior */
|
|
1801
|
-
allowMultiple: z.boolean().default(false).describe("Allow multiple file uploads (overrides field.multiple)"),
|
|
1802
|
-
allowReplace: z.boolean().default(true).describe("Allow replacing existing files"),
|
|
1803
|
-
allowDelete: z.boolean().default(true).describe("Allow deleting uploaded files"),
|
|
1804
|
-
requireUpload: z.boolean().default(false).describe("Require at least one file when field is required"),
|
|
1805
|
-
/** Metadata Extraction */
|
|
1806
|
-
extractMetadata: z.boolean().default(true).describe("Extract file metadata (name, size, type, etc.)"),
|
|
1807
|
-
extractText: z.boolean().default(false).describe("Extract text content from documents (OCR/parsing)"),
|
|
1808
|
-
/** Versioning */
|
|
1809
|
-
versioningEnabled: z.boolean().default(false).describe("Keep previous versions of replaced files"),
|
|
1810
|
-
maxVersions: z.number().min(1).optional().describe("Maximum number of versions to retain"),
|
|
1811
|
-
/** Access Control */
|
|
1812
|
-
publicRead: z.boolean().default(false).describe("Allow public read access to uploaded files"),
|
|
1813
|
-
presignedUrlExpiry: z.number().min(60).max(604800).default(3600).describe("Presigned URL expiration in seconds (default: 1 hour)")
|
|
1814
|
-
}).refine((data) => {
|
|
1815
|
-
if (data.minSize !== void 0 && data.maxSize !== void 0 && data.minSize > data.maxSize) {
|
|
1816
|
-
return false;
|
|
1817
|
-
}
|
|
1818
|
-
return true;
|
|
1819
|
-
}, {
|
|
1820
|
-
message: "minSize must be less than or equal to maxSize"
|
|
1821
|
-
}).refine((data) => {
|
|
1822
|
-
if (data.virusScanProvider !== void 0 && data.virusScan !== true) {
|
|
1823
|
-
return false;
|
|
1824
|
-
}
|
|
1825
|
-
return true;
|
|
1826
|
-
}, {
|
|
1827
|
-
message: "virusScanProvider requires virusScan to be enabled"
|
|
1939
|
+
var Dashboard = {
|
|
1940
|
+
create: (config) => DashboardSchema.parse(config)
|
|
1941
|
+
};
|
|
1942
|
+
var ReportType = z.enum([
|
|
1943
|
+
"tabular",
|
|
1944
|
+
// Simple list
|
|
1945
|
+
"summary",
|
|
1946
|
+
// Grouped by row
|
|
1947
|
+
"matrix",
|
|
1948
|
+
// Grouped by row and column
|
|
1949
|
+
"joined"
|
|
1950
|
+
// Joined multiple blocks
|
|
1951
|
+
]);
|
|
1952
|
+
var ReportColumnSchema = lazySchema(() => z.object({
|
|
1953
|
+
field: z.string().describe("Field name"),
|
|
1954
|
+
label: I18nLabelSchema.optional().describe("Override label"),
|
|
1955
|
+
aggregate: z.enum(["sum", "avg", "max", "min", "count", "unique"]).optional().describe("Aggregation function"),
|
|
1956
|
+
/** Responsive visibility/priority per breakpoint */
|
|
1957
|
+
responsive: ResponsiveConfigSchema.optional().describe("Responsive visibility for this column")
|
|
1828
1958
|
}));
|
|
1829
|
-
var
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
completeness: z.number().min(0).max(1).default(0).describe("Minimum ratio of non-null values (0-1, default: 0 = no requirement)"),
|
|
1834
|
-
/** Accuracy validation against authoritative source */
|
|
1835
|
-
accuracy: z.object({
|
|
1836
|
-
source: z.string().describe('Reference data source for validation (e.g., "api.verify.com", "master_data")'),
|
|
1837
|
-
threshold: z.number().min(0).max(1).describe("Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)")
|
|
1838
|
-
}).optional().describe("Accuracy validation configuration")
|
|
1959
|
+
var ReportGroupingSchema = lazySchema(() => z.object({
|
|
1960
|
+
field: z.string().describe("Field to group by"),
|
|
1961
|
+
sortOrder: z.enum(["asc", "desc"]).default("asc"),
|
|
1962
|
+
dateGranularity: z.enum(["day", "week", "month", "quarter", "year"]).optional().describe("For date fields")
|
|
1839
1963
|
}));
|
|
1840
|
-
var
|
|
1841
|
-
/**
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
/** Array of field paths that trigger cache invalidation when changed */
|
|
1846
|
-
invalidateOn: z.array(z.string()).describe('Field paths that invalidate cache (e.g., ["inventory.quantity", "pricing.base_price"])')
|
|
1964
|
+
var ReportChartSchema = lazySchema(() => ChartConfigSchema.extend({
|
|
1965
|
+
/** Report-specific chart configuration */
|
|
1966
|
+
xAxis: z.string().describe("Grouping field for X-Axis"),
|
|
1967
|
+
yAxis: z.string().describe("Summary field for Y-Axis"),
|
|
1968
|
+
groupBy: z.string().optional().describe("Additional grouping field")
|
|
1847
1969
|
}));
|
|
1848
|
-
var
|
|
1970
|
+
var JoinedReportBlockSchema = lazySchema(() => z.object({
|
|
1971
|
+
/** Stable id for the block (used as react key, telemetry, deeplinks). */
|
|
1972
|
+
name: SnakeCaseIdentifierSchema,
|
|
1973
|
+
/** Human label shown above the block. Falls back to `name`. */
|
|
1974
|
+
label: I18nLabelSchema.optional(),
|
|
1975
|
+
/** Optional description rendered below the label. */
|
|
1976
|
+
description: I18nLabelSchema.optional(),
|
|
1977
|
+
/** Block report type — `joined` is intentionally excluded (no recursion). */
|
|
1978
|
+
type: z.enum(["tabular", "summary", "matrix"]).default("tabular"),
|
|
1979
|
+
/** Object queried by this block. Defaults to the container's objectName. */
|
|
1980
|
+
objectName: z.string().optional(),
|
|
1981
|
+
/** Columns to display / aggregate. Same shape as `Report.columns`. */
|
|
1982
|
+
columns: z.array(ReportColumnSchema),
|
|
1983
|
+
/** Row groupings (same shape as `Report.groupingsDown`). */
|
|
1984
|
+
groupingsDown: z.array(ReportGroupingSchema).optional(),
|
|
1985
|
+
/** Column groupings — only meaningful when `type: matrix`. */
|
|
1986
|
+
groupingsAcross: z.array(ReportGroupingSchema).optional(),
|
|
1987
|
+
/** Block-specific filter, ANDed with the container filter at render time. */
|
|
1988
|
+
filter: FilterConditionSchema.optional(),
|
|
1989
|
+
/** Optional inline chart configuration. */
|
|
1990
|
+
chart: ReportChartSchema.optional()
|
|
1991
|
+
}));
|
|
1992
|
+
var ReportSchema = lazySchema(() => z.object({
|
|
1849
1993
|
/** Identity */
|
|
1850
|
-
name:
|
|
1851
|
-
label:
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
/**
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
/**
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
min: z.number().optional().describe("Minimum value"),
|
|
1870
|
-
max: z.number().optional().describe("Maximum value"),
|
|
1871
|
-
/** Selection Options */
|
|
1872
|
-
options: z.array(SelectOptionSchema).optional().describe("Static options for select/multiselect"),
|
|
1994
|
+
name: SnakeCaseIdentifierSchema.describe("Report unique name"),
|
|
1995
|
+
label: I18nLabelSchema.describe("Report label"),
|
|
1996
|
+
description: I18nLabelSchema.optional(),
|
|
1997
|
+
/** Data Source */
|
|
1998
|
+
objectName: z.string().describe("Primary object"),
|
|
1999
|
+
/** Report Configuration */
|
|
2000
|
+
type: ReportType.default("tabular").describe("Report format type"),
|
|
2001
|
+
columns: z.array(ReportColumnSchema).describe("Columns to display"),
|
|
2002
|
+
/** Grouping (for Summary/Matrix) */
|
|
2003
|
+
groupingsDown: z.array(ReportGroupingSchema).optional().describe("Row groupings"),
|
|
2004
|
+
groupingsAcross: z.array(ReportGroupingSchema).optional().describe("Column groupings (Matrix only)"),
|
|
2005
|
+
/** Filtering (MongoDB-style FilterCondition) */
|
|
2006
|
+
filter: FilterConditionSchema.optional().describe("Filter criteria"),
|
|
2007
|
+
/** Visualization */
|
|
2008
|
+
chart: ReportChartSchema.optional().describe("Embedded chart configuration"),
|
|
2009
|
+
/** ARIA accessibility attributes */
|
|
2010
|
+
aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes"),
|
|
2011
|
+
/** Performance optimization settings */
|
|
2012
|
+
performance: PerformanceConfigSchema.optional().describe("Performance optimization settings"),
|
|
1873
2013
|
/**
|
|
1874
|
-
*
|
|
1875
|
-
*
|
|
1876
|
-
*
|
|
1877
|
-
*
|
|
1878
|
-
*
|
|
1879
|
-
*
|
|
1880
|
-
*
|
|
1881
|
-
*
|
|
1882
|
-
*
|
|
2014
|
+
* Joined report blocks — only meaningful when `type: 'joined'`.
|
|
2015
|
+
*
|
|
2016
|
+
* A joined report renders multiple independent sub-reports stacked
|
|
2017
|
+
* vertically in the same view. Each block declares its own object,
|
|
2018
|
+
* columns, groupings and filter. The container-level `filter` is ANDed
|
|
2019
|
+
* into every block at query time so a top-level scope (e.g. "this
|
|
2020
|
+
* quarter") flows down without per-block duplication.
|
|
2021
|
+
*
|
|
2022
|
+
* Renderers must ignore `blocks` when `type !== 'joined'`.
|
|
1883
2023
|
*/
|
|
1884
|
-
|
|
1885
|
-
"Target object name (snake_case) for lookup/master_detail fields. Required for relationship types. Used by $expand to resolve foreign key IDs into full objects."
|
|
1886
|
-
),
|
|
1887
|
-
referenceFilters: z.array(z.string()).optional().describe('Filters applied to lookup dialogs (e.g. "active = true")'),
|
|
1888
|
-
writeRequiresMasterRead: z.boolean().optional().describe("If true, user needs read access to master record to edit this field"),
|
|
1889
|
-
deleteBehavior: z.enum(["set_null", "cascade", "restrict"]).optional().default("set_null").describe("What happens if referenced record is deleted"),
|
|
1890
|
-
/** Calculation — CEL formula. Plain string accepted for back-compat; build emits canonical envelope. */
|
|
1891
|
-
expression: ExpressionInputSchema.optional().describe("Formula expression (CEL). e.g. F`record.amount * 0.1`"),
|
|
1892
|
-
summaryOperations: z.object({
|
|
1893
|
-
object: z.string().describe("Source child object name for roll-up"),
|
|
1894
|
-
field: z.string().describe("Field on child object to aggregate"),
|
|
1895
|
-
function: z.enum(["count", "sum", "min", "max", "avg"]).describe("Aggregation function to apply")
|
|
1896
|
-
}).optional().describe("Roll-up summary definition"),
|
|
1897
|
-
/** Enhanced Field Type Configurations */
|
|
1898
|
-
// Code field config
|
|
1899
|
-
language: z.string().optional().describe("Programming language for syntax highlighting (e.g., javascript, python, sql)"),
|
|
1900
|
-
theme: z.string().optional().describe("Code editor theme (e.g., dark, light, monokai)"),
|
|
1901
|
-
lineNumbers: z.boolean().optional().describe("Show line numbers in code editor"),
|
|
1902
|
-
// Rating field config
|
|
1903
|
-
maxRating: z.number().optional().describe("Maximum rating value (default: 5)"),
|
|
1904
|
-
allowHalf: z.boolean().optional().describe("Allow half-star ratings"),
|
|
1905
|
-
// Location field config
|
|
1906
|
-
displayMap: z.boolean().optional().describe("Display map widget for location field"),
|
|
1907
|
-
allowGeocoding: z.boolean().optional().describe("Allow address-to-coordinate conversion"),
|
|
1908
|
-
// Address field config
|
|
1909
|
-
addressFormat: z.enum(["us", "uk", "international"]).optional().describe("Address format template"),
|
|
1910
|
-
// Color field config
|
|
1911
|
-
colorFormat: z.enum(["hex", "rgb", "rgba", "hsl"]).optional().describe("Color value format"),
|
|
1912
|
-
allowAlpha: z.boolean().optional().describe("Allow transparency/alpha channel"),
|
|
1913
|
-
presetColors: z.array(z.string()).optional().describe("Preset color options"),
|
|
1914
|
-
// Slider field config
|
|
1915
|
-
step: z.number().optional().describe("Step increment for slider (default: 1)"),
|
|
1916
|
-
showValue: z.boolean().optional().describe("Display current value on slider"),
|
|
1917
|
-
marks: z.record(z.string(), z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: "Low", 50: "Medium", 100: "High"})'),
|
|
1918
|
-
// QR Code / Barcode field config
|
|
1919
|
-
// Note: qrErrorCorrection is only applicable when barcodeFormat='qr'
|
|
1920
|
-
// Runtime validation should enforce this constraint
|
|
1921
|
-
barcodeFormat: z.enum(["qr", "ean13", "ean8", "code128", "code39", "upca", "upce"]).optional().describe("Barcode format type"),
|
|
1922
|
-
qrErrorCorrection: z.enum(["L", "M", "Q", "H"]).optional().describe('QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is "qr"'),
|
|
1923
|
-
displayValue: z.boolean().optional().describe("Display human-readable value below barcode/QR code"),
|
|
1924
|
-
allowScanning: z.boolean().optional().describe("Enable camera scanning for barcode/QR code input"),
|
|
1925
|
-
// Currency field config
|
|
1926
|
-
currencyConfig: CurrencyConfigSchema.optional().describe("Configuration for currency field type"),
|
|
1927
|
-
// Vector field config
|
|
1928
|
-
vectorConfig: VectorConfigSchema.optional().describe("Configuration for vector field type (AI/ML embeddings)"),
|
|
1929
|
-
// File attachment field config
|
|
1930
|
-
fileAttachmentConfig: FileAttachmentConfigSchema.optional().describe("Configuration for file and attachment field types"),
|
|
1931
|
-
/** Enhanced Security & Compliance */
|
|
1932
|
-
// Encryption configuration
|
|
1933
|
-
encryptionConfig: EncryptionConfigSchema.optional().describe("Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)"),
|
|
1934
|
-
// Data masking rules
|
|
1935
|
-
maskingRule: MaskingRuleSchema.optional().describe("Data masking rules for PII protection"),
|
|
1936
|
-
// Audit trail
|
|
1937
|
-
auditTrail: z.boolean().default(false).describe("Enable detailed audit trail for this field (tracks all changes with user and timestamp)"),
|
|
1938
|
-
/** Field Dependencies & Relationships */
|
|
1939
|
-
// Field dependencies
|
|
1940
|
-
dependencies: z.array(z.string()).optional().describe("Array of field names that this field depends on (for formulas, visibility rules, etc.)"),
|
|
1941
|
-
/** Computed Field Optimization */
|
|
1942
|
-
// Computed field caching
|
|
1943
|
-
cached: ComputedFieldCacheSchema.optional().describe("Caching configuration for computed/formula fields"),
|
|
1944
|
-
/** Data Quality & Governance */
|
|
1945
|
-
// Data quality rules
|
|
1946
|
-
dataQuality: DataQualityRulesSchema.optional().describe("Data quality validation and monitoring rules"),
|
|
1947
|
-
/** Layout & Grouping */
|
|
1948
|
-
group: z.string().optional().describe('Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system")'),
|
|
1949
|
-
/** Conditional Requirements */
|
|
1950
|
-
conditionalRequired: ExpressionInputSchema.optional().describe("Predicate (CEL) \u2014 field is required when TRUE. e.g. P`record.status == 'closed_won'`"),
|
|
1951
|
-
/** Security & Visibility */
|
|
1952
|
-
hidden: z.boolean().default(false).describe("Hidden from default UI"),
|
|
1953
|
-
readonly: z.boolean().default(false).describe("Read-only in UI"),
|
|
1954
|
-
system: z.boolean().optional().describe("Auto-injected system/audit field (e.g. created_at, updated_by, organization_id). Tools that surface system fields separately from author-declared business fields should branch on this flag."),
|
|
1955
|
-
sortable: z.boolean().optional().default(true).describe("Whether field is sortable in list views"),
|
|
1956
|
-
inlineHelpText: z.string().optional().describe("Help text displayed below the field in forms"),
|
|
1957
|
-
trackFeedHistory: z.boolean().optional().describe("Track field changes in Chatter/activity feed (Salesforce pattern)"),
|
|
1958
|
-
caseSensitive: z.boolean().optional().describe("Whether text comparisons are case-sensitive"),
|
|
1959
|
-
autonumberFormat: z.string().optional().describe('Auto-number display format pattern (e.g., "CASE-{0000}")'),
|
|
1960
|
-
/** Indexing */
|
|
1961
|
-
index: z.boolean().default(false).describe("Create standard database index"),
|
|
1962
|
-
externalId: z.boolean().default(false).describe("Is external ID for upsert operations")
|
|
2024
|
+
blocks: z.array(JoinedReportBlockSchema).optional().describe("Sub-reports for type=joined")
|
|
1963
2025
|
}));
|
|
2026
|
+
var Report = {
|
|
2027
|
+
create: (config) => ReportSchema.parse(config)
|
|
2028
|
+
};
|
|
2029
|
+
|
|
2030
|
+
// src/ui/report.form.ts
|
|
2031
|
+
var reportForm = defineForm({
|
|
2032
|
+
schemaId: "report",
|
|
2033
|
+
type: "simple",
|
|
2034
|
+
sections: [
|
|
2035
|
+
{
|
|
2036
|
+
label: "Basics",
|
|
2037
|
+
description: "Identity and data source.",
|
|
2038
|
+
columns: 2,
|
|
2039
|
+
fields: [
|
|
2040
|
+
{ field: "name", type: "text", colSpan: 1, required: true, helpText: "snake_case unique identifier" },
|
|
2041
|
+
{ field: "label", type: "text", colSpan: 1, required: true },
|
|
2042
|
+
{ field: "description", type: "textarea", colSpan: 2 },
|
|
2043
|
+
{ field: "objectName", widget: "ref:object", colSpan: 1, helpText: "Data source object" },
|
|
2044
|
+
{ field: "type", colSpan: 1, helpText: "Report type: tabular/summary/matrix/joined" }
|
|
2045
|
+
]
|
|
2046
|
+
},
|
|
2047
|
+
{
|
|
2048
|
+
label: "Columns",
|
|
2049
|
+
description: "Columns shown in the report output.",
|
|
2050
|
+
fields: [
|
|
2051
|
+
{ field: "columns", type: "repeater", helpText: "Columns to display in the report" }
|
|
2052
|
+
]
|
|
2053
|
+
},
|
|
2054
|
+
{
|
|
2055
|
+
label: "Groupings",
|
|
2056
|
+
description: "How rows (and columns, for matrix reports) are grouped.",
|
|
2057
|
+
fields: [
|
|
2058
|
+
{ field: "groupingsDown", type: "repeater", helpText: "Row grouping levels" },
|
|
2059
|
+
// CEL visibility — only Matrix reports use column groupings.
|
|
2060
|
+
{ field: "groupingsAcross", type: "repeater", visibleOn: "data.type == 'matrix'", helpText: "Column grouping levels (matrix only)" }
|
|
2061
|
+
]
|
|
2062
|
+
},
|
|
2063
|
+
{
|
|
2064
|
+
label: "Joined blocks",
|
|
2065
|
+
description: "Additional blocks joined into a single report (joined reports only).",
|
|
2066
|
+
visibleOn: "data.type == 'joined'",
|
|
2067
|
+
fields: [
|
|
2068
|
+
{ field: "blocks", type: "repeater", helpText: "Join multiple objects (joined report only)" }
|
|
2069
|
+
]
|
|
2070
|
+
},
|
|
2071
|
+
{
|
|
2072
|
+
label: "Filter & chart",
|
|
2073
|
+
description: "Report-level filters and chart presentation.",
|
|
2074
|
+
collapsible: true,
|
|
2075
|
+
collapsed: true,
|
|
2076
|
+
fields: [
|
|
2077
|
+
{ field: "filter", type: "repeater", helpText: "Report-level filters" },
|
|
2078
|
+
{ field: "chart", type: "composite", helpText: "Chart config (type, legend, colors)" }
|
|
2079
|
+
]
|
|
2080
|
+
},
|
|
2081
|
+
{
|
|
2082
|
+
label: "Advanced",
|
|
2083
|
+
description: "Accessibility and performance tuning.",
|
|
2084
|
+
collapsible: true,
|
|
2085
|
+
collapsed: true,
|
|
2086
|
+
fields: [
|
|
2087
|
+
{ field: "aria", type: "composite", helpText: "Accessibility labels" },
|
|
2088
|
+
{ field: "performance", type: "composite", helpText: "Caching and optimization" }
|
|
2089
|
+
]
|
|
2090
|
+
}
|
|
2091
|
+
]
|
|
2092
|
+
});
|
|
2093
|
+
|
|
2094
|
+
// src/ui/view.form.ts
|
|
2095
|
+
var viewForm = defineForm({
|
|
2096
|
+
schemaId: "view",
|
|
2097
|
+
type: "simple",
|
|
2098
|
+
sections: [
|
|
2099
|
+
{
|
|
2100
|
+
label: "Basics",
|
|
2101
|
+
description: "Identity and primary surface.",
|
|
2102
|
+
columns: 2,
|
|
2103
|
+
fields: [
|
|
2104
|
+
{ field: "name", type: "text", required: true, colSpan: 1, helpText: "snake_case, unique per environment" },
|
|
2105
|
+
{ field: "label", type: "text", required: true, colSpan: 1 },
|
|
2106
|
+
{ field: "description", type: "textarea", colSpan: 2 },
|
|
2107
|
+
{ field: "type", required: true, colSpan: 1, helpText: "Primary view surface" },
|
|
2108
|
+
{ field: "data", widget: "json", colSpan: 2, helpText: 'Data source \u2014 e.g. {"provider":"object","object":"task"}' }
|
|
2109
|
+
]
|
|
2110
|
+
},
|
|
2111
|
+
{
|
|
2112
|
+
label: "Columns & filters",
|
|
2113
|
+
description: "What rows show and how users filter them.",
|
|
2114
|
+
fields: [
|
|
2115
|
+
{ field: "columns", type: "repeater", required: true, helpText: "Columns to display (field names from selected object)" },
|
|
2116
|
+
{ field: "filter", type: "repeater", helpText: "Filter conditions" },
|
|
2117
|
+
{ field: "sort", type: "repeater", helpText: "Default sort order" },
|
|
2118
|
+
{ field: "searchableFields", widget: "string-tags", helpText: "Field names available for quick search" },
|
|
2119
|
+
{ field: "filterableFields", widget: "string-tags", helpText: "Field names available for filtering" }
|
|
2120
|
+
]
|
|
2121
|
+
},
|
|
2122
|
+
{
|
|
2123
|
+
label: "Table options",
|
|
2124
|
+
description: "Grid-only display options.",
|
|
2125
|
+
visibleOn: "data.type == 'grid' || data.type == null",
|
|
2126
|
+
collapsible: true,
|
|
2127
|
+
collapsed: true,
|
|
2128
|
+
columns: 2,
|
|
2129
|
+
fields: [
|
|
2130
|
+
{ field: "resizable", colSpan: 1 },
|
|
2131
|
+
{ field: "striped", colSpan: 1 },
|
|
2132
|
+
{ field: "bordered", colSpan: 1 },
|
|
2133
|
+
{ field: "compactToolbar", colSpan: 1 },
|
|
2134
|
+
{ field: "rowHeight", colSpan: 1 },
|
|
2135
|
+
{ field: "selection", type: "composite", colSpan: 2 },
|
|
2136
|
+
{ field: "pagination", type: "composite", colSpan: 2 }
|
|
2137
|
+
]
|
|
2138
|
+
},
|
|
2139
|
+
{
|
|
2140
|
+
label: "Kanban",
|
|
2141
|
+
description: "Kanban-specific board configuration.",
|
|
2142
|
+
visibleOn: "data.type == 'kanban'",
|
|
2143
|
+
fields: [{ field: "kanban", type: "composite" }]
|
|
2144
|
+
},
|
|
2145
|
+
{
|
|
2146
|
+
label: "Calendar",
|
|
2147
|
+
description: "Calendar-specific configuration.",
|
|
2148
|
+
visibleOn: "data.type == 'calendar'",
|
|
2149
|
+
fields: [{ field: "calendar", type: "composite" }]
|
|
2150
|
+
},
|
|
2151
|
+
{
|
|
2152
|
+
label: "Gantt",
|
|
2153
|
+
description: "Gantt-specific configuration.",
|
|
2154
|
+
visibleOn: "data.type == 'gantt'",
|
|
2155
|
+
fields: [{ field: "gantt", type: "composite" }]
|
|
2156
|
+
},
|
|
2157
|
+
{
|
|
2158
|
+
label: "Gallery",
|
|
2159
|
+
description: "Gallery-specific configuration.",
|
|
2160
|
+
visibleOn: "data.type == 'gallery'",
|
|
2161
|
+
fields: [{ field: "gallery", type: "composite" }]
|
|
2162
|
+
},
|
|
2163
|
+
{
|
|
2164
|
+
label: "Timeline",
|
|
2165
|
+
description: "Timeline-specific configuration.",
|
|
2166
|
+
visibleOn: "data.type == 'timeline'",
|
|
2167
|
+
fields: [{ field: "timeline", type: "composite" }]
|
|
2168
|
+
},
|
|
2169
|
+
{
|
|
2170
|
+
label: "Chart",
|
|
2171
|
+
description: "Chart-specific configuration.",
|
|
2172
|
+
visibleOn: "data.type == 'chart'",
|
|
2173
|
+
fields: [{ field: "chart", type: "composite" }]
|
|
2174
|
+
},
|
|
2175
|
+
{
|
|
2176
|
+
label: "Navigation & sharing",
|
|
2177
|
+
description: "Where this view appears and who can see it.",
|
|
2178
|
+
collapsible: true,
|
|
2179
|
+
collapsed: true,
|
|
2180
|
+
fields: [
|
|
2181
|
+
{ field: "navigation", type: "composite" },
|
|
2182
|
+
{ field: "sharing", type: "composite" }
|
|
2183
|
+
]
|
|
2184
|
+
}
|
|
2185
|
+
]
|
|
2186
|
+
});
|
|
2187
|
+
|
|
2188
|
+
// src/ui/app.form.ts
|
|
2189
|
+
var appForm = defineForm({
|
|
2190
|
+
schemaId: "app",
|
|
2191
|
+
type: "simple",
|
|
2192
|
+
sections: [
|
|
2193
|
+
{
|
|
2194
|
+
label: "Basics",
|
|
2195
|
+
description: "App identity and activation.",
|
|
2196
|
+
columns: 2,
|
|
2197
|
+
fields: [
|
|
2198
|
+
{ field: "name", type: "text", required: true, colSpan: 1, helpText: "snake_case, unique" },
|
|
2199
|
+
{ field: "label", type: "text", required: true, colSpan: 1 },
|
|
2200
|
+
{ field: "description", type: "textarea", colSpan: 2 },
|
|
2201
|
+
{ field: "version", type: "text", colSpan: 1 },
|
|
2202
|
+
{ field: "icon", type: "text", colSpan: 1, helpText: 'Lucide icon name (e.g. "users", "briefcase")' },
|
|
2203
|
+
{ field: "active", type: "boolean", colSpan: 1 },
|
|
2204
|
+
{ field: "isDefault", type: "boolean", colSpan: 1, helpText: "Make this the default app for new users" }
|
|
2205
|
+
]
|
|
2206
|
+
},
|
|
2207
|
+
{
|
|
2208
|
+
label: "Navigation",
|
|
2209
|
+
description: "Sidebar items and area grouping.",
|
|
2210
|
+
fields: [
|
|
2211
|
+
{ field: "navigation", type: "composite", helpText: "Nav tree \u2014 recursive structure" },
|
|
2212
|
+
{ field: "areas", type: "repeater", helpText: "Group items into collapsible areas" },
|
|
2213
|
+
{ field: "homePageId", type: "text", helpText: "Landing page when app opens" },
|
|
2214
|
+
{ field: "mobileNavigation", type: "composite", helpText: "Bottom tab bar config for mobile" }
|
|
2215
|
+
]
|
|
2216
|
+
},
|
|
2217
|
+
{
|
|
2218
|
+
label: "Content",
|
|
2219
|
+
description: "Objects and APIs this app uses.",
|
|
2220
|
+
fields: [
|
|
2221
|
+
{ field: "objects", widget: "object-selector", multiple: true, helpText: "Object names this app exposes" },
|
|
2222
|
+
{ field: "apis", type: "composite", helpText: "API endpoint definitions" },
|
|
2223
|
+
{ field: "defaultAgent", type: "text", helpText: "AI agent for the ambient assistant button" }
|
|
2224
|
+
]
|
|
2225
|
+
},
|
|
2226
|
+
{
|
|
2227
|
+
label: "Branding",
|
|
2228
|
+
description: "Theme colors and logo.",
|
|
2229
|
+
collapsible: true,
|
|
2230
|
+
collapsed: true,
|
|
2231
|
+
fields: [{ field: "branding", type: "composite", helpText: "Primary/secondary colors, logo, theme" }]
|
|
2232
|
+
},
|
|
2233
|
+
{
|
|
2234
|
+
label: "Access & sharing",
|
|
2235
|
+
description: "Who can access this app and how it can be embedded.",
|
|
2236
|
+
collapsible: true,
|
|
2237
|
+
collapsed: true,
|
|
2238
|
+
fields: [
|
|
2239
|
+
{ field: "requiredPermissions", widget: "string-tags", helpText: "Permissions needed to access this app" },
|
|
2240
|
+
{ field: "sharing", type: "composite", helpText: "Public/internal/restricted access control" },
|
|
2241
|
+
{ field: "embed", type: "composite", helpText: "iFrame embed configuration" },
|
|
2242
|
+
{ field: "aria", type: "composite", helpText: "Accessibility labels" }
|
|
2243
|
+
]
|
|
2244
|
+
}
|
|
2245
|
+
]
|
|
2246
|
+
});
|
|
2247
|
+
|
|
2248
|
+
// src/ui/dashboard.form.ts
|
|
2249
|
+
var dashboardForm = defineForm({
|
|
2250
|
+
schemaId: "dashboard",
|
|
2251
|
+
type: "simple",
|
|
2252
|
+
sections: [
|
|
2253
|
+
{
|
|
2254
|
+
label: "Basics",
|
|
2255
|
+
description: "Dashboard identity and description.",
|
|
2256
|
+
columns: 2,
|
|
2257
|
+
fields: [
|
|
2258
|
+
{ field: "name", type: "text", required: true, colSpan: 1, helpText: "snake_case unique identifier" },
|
|
2259
|
+
{ field: "label", type: "text", required: true, colSpan: 1, helpText: "Display name" },
|
|
2260
|
+
{ field: "description", type: "textarea", colSpan: 2 }
|
|
2261
|
+
]
|
|
2262
|
+
},
|
|
2263
|
+
{
|
|
2264
|
+
label: "Layout",
|
|
2265
|
+
description: "Grid sizing and refresh cadence.",
|
|
2266
|
+
columns: 3,
|
|
2267
|
+
fields: [
|
|
2268
|
+
{ field: "columns", type: "number", colSpan: 1, helpText: "Grid columns (default 12)" },
|
|
2269
|
+
{ field: "gap", type: "number", colSpan: 1, helpText: "Grid gap (Tailwind units)" },
|
|
2270
|
+
{ field: "refreshInterval", type: "number", colSpan: 1, helpText: "Auto-refresh (seconds)" },
|
|
2271
|
+
{ field: "header", type: "composite", colSpan: 3, helpText: "Dashboard header config (title, subtitle, actions)" }
|
|
2272
|
+
]
|
|
2273
|
+
},
|
|
2274
|
+
{
|
|
2275
|
+
label: "Widgets",
|
|
2276
|
+
description: "Cards and charts placed on the grid.",
|
|
2277
|
+
fields: [
|
|
2278
|
+
{ field: "widgets", type: "repeater", required: true, helpText: "Dashboard widgets with position and sizing" }
|
|
2279
|
+
]
|
|
2280
|
+
},
|
|
2281
|
+
{
|
|
2282
|
+
label: "Filters",
|
|
2283
|
+
description: "Default and global filters applied across widgets.",
|
|
2284
|
+
collapsible: true,
|
|
2285
|
+
collapsed: true,
|
|
2286
|
+
fields: [
|
|
2287
|
+
{ field: "dateRange", type: "composite", helpText: "Default date range selector" },
|
|
2288
|
+
{ field: "globalFilters", type: "repeater", helpText: "Filters applied to all widgets" }
|
|
2289
|
+
]
|
|
2290
|
+
},
|
|
2291
|
+
{
|
|
2292
|
+
label: "Advanced",
|
|
2293
|
+
description: "Accessibility and performance tuning.",
|
|
2294
|
+
collapsible: true,
|
|
2295
|
+
collapsed: true,
|
|
2296
|
+
fields: [
|
|
2297
|
+
{ field: "aria", type: "composite", helpText: "Accessibility labels" },
|
|
2298
|
+
{ field: "performance", type: "composite", helpText: "Caching and optimization config" }
|
|
2299
|
+
]
|
|
2300
|
+
}
|
|
2301
|
+
]
|
|
2302
|
+
});
|
|
2303
|
+
|
|
2304
|
+
// src/ui/action.form.ts
|
|
2305
|
+
var actionForm = defineForm({
|
|
2306
|
+
schemaId: "action",
|
|
2307
|
+
type: "simple",
|
|
2308
|
+
sections: [
|
|
2309
|
+
{
|
|
2310
|
+
label: "Basics",
|
|
2311
|
+
description: "Action identity and presentation.",
|
|
2312
|
+
columns: 2,
|
|
2313
|
+
fields: [
|
|
2314
|
+
{ field: "name", required: true, colSpan: 1, helpText: "Unique identifier (snake_case)" },
|
|
2315
|
+
{ field: "label", required: true, colSpan: 1, helpText: "Button text shown to users" },
|
|
2316
|
+
{ field: "objectName", widget: "ref:object", colSpan: 1, helpText: "Object this action belongs to (optional)" },
|
|
2317
|
+
{ field: "icon", colSpan: 1, helpText: 'Lucide icon name (e.g., "check", "x-circle")' },
|
|
2318
|
+
{ field: "type", required: true, colSpan: 1, helpText: "What happens when clicked" },
|
|
2319
|
+
{ field: "variant", colSpan: 1, helpText: "Button style (primary=blue, danger=red, ghost=transparent)" }
|
|
2320
|
+
]
|
|
2321
|
+
},
|
|
2322
|
+
{
|
|
2323
|
+
label: "Behavior",
|
|
2324
|
+
description: "Configure what happens when the action is triggered.",
|
|
2325
|
+
fields: [
|
|
2326
|
+
{ field: "target", visibleOn: "data.type != 'script'", helpText: "URL, flow name, or API endpoint to call" },
|
|
2327
|
+
{ field: "method", visibleOn: "data.type == 'api'", helpText: "HTTP method (GET, POST, PUT, DELETE)" },
|
|
2328
|
+
{ field: "body", widget: "code", visibleOn: "data.type == 'script'", helpText: "JavaScript code to execute" },
|
|
2329
|
+
{ field: "params", type: "repeater", helpText: "User input parameters (show form before executing)" },
|
|
2330
|
+
{ field: "confirmText", helpText: 'Confirmation message (e.g., "Are you sure?")' },
|
|
2331
|
+
{ field: "successMessage", helpText: "Success message after completion" },
|
|
2332
|
+
{ field: "refreshAfter", helpText: "Refresh the list/page after action completes" }
|
|
2333
|
+
]
|
|
2334
|
+
},
|
|
2335
|
+
{
|
|
2336
|
+
label: "Placement",
|
|
2337
|
+
description: "Where and when the action button appears.",
|
|
2338
|
+
collapsible: true,
|
|
2339
|
+
collapsed: true,
|
|
2340
|
+
fields: [
|
|
2341
|
+
{ field: "locations", type: "repeater", helpText: "Where to show this action (toolbar, row menu, etc.)" },
|
|
2342
|
+
{ field: "component", helpText: "How to render (button, icon, menu item)" },
|
|
2343
|
+
{ field: "visible", widget: "textarea", helpText: "CEL expression: show only when condition is true" },
|
|
2344
|
+
{ field: "disabled", widget: "textarea", helpText: "CEL expression: disable when condition is true" },
|
|
2345
|
+
{ field: "shortcut", helpText: 'Keyboard shortcut (e.g., "Ctrl+S", "Cmd+Enter")' }
|
|
2346
|
+
]
|
|
2347
|
+
},
|
|
2348
|
+
{
|
|
2349
|
+
label: "Advanced",
|
|
2350
|
+
description: "Bulk operations, AI exposure, and API request shape.",
|
|
2351
|
+
collapsible: true,
|
|
2352
|
+
collapsed: true,
|
|
2353
|
+
columns: 2,
|
|
2354
|
+
fields: [
|
|
2355
|
+
{ field: "bulkEnabled", colSpan: 1, helpText: "Allow applying to multiple selected records" },
|
|
2356
|
+
{ field: "aiExposed", colSpan: 1, helpText: "Allow AI agents to call this action" },
|
|
2357
|
+
{ field: "recordIdParam", visibleOn: "data.type == 'api'", colSpan: 1, helpText: "Body parameter name for record ID" },
|
|
2358
|
+
{ field: "recordIdField", visibleOn: "data.type == 'api' && data.recordIdParam", colSpan: 1, helpText: 'Field to use as record ID (default: "id")' },
|
|
2359
|
+
{ field: "bodyShape", visibleOn: "data.type == 'api'", colSpan: 2, helpText: "Request body structure (flat or nested)" }
|
|
2360
|
+
]
|
|
2361
|
+
}
|
|
2362
|
+
]
|
|
2363
|
+
});
|
|
2364
|
+
|
|
2365
|
+
// src/ui/page.form.ts
|
|
2366
|
+
var pageForm = defineForm({
|
|
2367
|
+
schemaId: "page",
|
|
2368
|
+
type: "simple",
|
|
2369
|
+
sections: [
|
|
2370
|
+
{
|
|
2371
|
+
label: "Basics",
|
|
2372
|
+
description: "Page identity and template.",
|
|
2373
|
+
columns: 2,
|
|
2374
|
+
fields: [
|
|
2375
|
+
{ field: "name", required: true, colSpan: 1, helpText: "Unique identifier (snake_case)" },
|
|
2376
|
+
{ field: "label", required: true, colSpan: 1, helpText: "Page title shown to users" },
|
|
2377
|
+
{ field: "icon", colSpan: 1, helpText: "Icon for navigation menu" },
|
|
2378
|
+
{ field: "type", colSpan: 1, helpText: "Page type (record, home, app, dashboard, etc.)" },
|
|
2379
|
+
{ field: "template", colSpan: 2, helpText: 'Layout template (e.g., "header-sidebar-main")' },
|
|
2380
|
+
{ field: "description", widget: "textarea", colSpan: 2, helpText: "Page description for navigation" }
|
|
2381
|
+
]
|
|
2382
|
+
},
|
|
2383
|
+
{
|
|
2384
|
+
label: "Data Context",
|
|
2385
|
+
description: "Record binding and page-local state.",
|
|
2386
|
+
fields: [
|
|
2387
|
+
{ field: "object", widget: "ref:object", helpText: "Bound object (for Record pages)" },
|
|
2388
|
+
{ field: "variables", type: "repeater", helpText: "Local page state variables" }
|
|
2389
|
+
]
|
|
2390
|
+
},
|
|
2391
|
+
{
|
|
2392
|
+
label: "Layout",
|
|
2393
|
+
description: "Page regions and components placed within them.",
|
|
2394
|
+
fields: [
|
|
2395
|
+
{ field: "regions", type: "repeater", required: true, helpText: "Layout regions (header, main, sidebar, footer) with components" }
|
|
2396
|
+
]
|
|
2397
|
+
},
|
|
2398
|
+
{
|
|
2399
|
+
label: "Advanced",
|
|
2400
|
+
description: "Activation, audience, and accessibility.",
|
|
2401
|
+
collapsible: true,
|
|
2402
|
+
collapsed: true,
|
|
2403
|
+
fields: [
|
|
2404
|
+
{ field: "isDefault", helpText: "Set as default page for this page type" },
|
|
2405
|
+
{ field: "kind", helpText: "Page override mode: full or slotted (for record pages)" },
|
|
2406
|
+
{ field: "assignedProfiles", widget: "string-tags", helpText: "Profiles that can access this page" },
|
|
2407
|
+
{ field: "aria", type: "composite", helpText: "Accessibility attributes (ARIA labels, roles)" }
|
|
2408
|
+
]
|
|
2409
|
+
}
|
|
2410
|
+
]
|
|
2411
|
+
});
|
|
1964
2412
|
var HookBodyCapability = z.enum([
|
|
1965
2413
|
"api.read",
|
|
1966
2414
|
"api.write",
|
|
@@ -3684,6 +4132,6 @@ function definePortal(config) {
|
|
|
3684
4132
|
return PortalSchema.parse(config);
|
|
3685
4133
|
}
|
|
3686
4134
|
|
|
3687
|
-
export { AIChatWindowProps, Action, ActionNavItemSchema, ActionParamSchema, ActionSchema, ActionType, AddRecordConfigSchema, AnimationSchema, AnimationTriggerSchema, App, AppBrandingSchema, AppSchema, AppearanceConfigSchema, AriaPropsSchema, BlankPageLayoutItemSchema, BlankPageLayoutSchema, BorderRadiusSchema, BreakpointColumnMapSchema, BreakpointName, BreakpointOrderMapSchema, BreakpointsSchema, CalendarConfigSchema, ChartAnnotationSchema, ChartAxisSchema, ChartConfigSchema, ChartInteractionSchema, ChartSeriesSchema, ChartTypeSchema, ColorPaletteSchema, ColumnSummarySchema, ComponentAnimationSchema, ComponentPropsMap, ConflictResolutionSchema, Dashboard, DashboardHeaderActionSchema, DashboardHeaderSchema, DashboardNavItemSchema, DashboardSchema, DashboardWidgetSchema, DateFormatSchema, DensityMode, DensityModeSchema, DndConfigSchema, DragConstraintSchema, DragHandleSchema, DragItemSchema, DropEffectSchema, DropZoneSchema, EasingFunctionSchema, ElementButtonPropsSchema, ElementDataSourceSchema, ElementFilterPropsSchema, ElementFormPropsSchema, ElementImagePropsSchema, ElementNumberPropsSchema, ElementRecordPickerPropsSchema, ElementTextPropsSchema, EmbedConfigSchema, EvictionPolicySchema, FieldWidgetPropsSchema, FocusManagementSchema, FocusTrapConfigSchema, FormFieldSchema, FormSectionSchema, FormViewSchema, GalleryConfigSchema, GanttConfigSchema, GestureConfigSchema, GestureTypeSchema, GlobalFilterOptionsFromSchema, GlobalFilterSchema, GroupNavItemSchema, GroupingConfigSchema, GroupingFieldSchema, HttpMethodSchema, HttpRequestSchema, I18nLabelSchema, I18nObjectSchema, InterfacePageConfigSchema, JoinedReportBlockSchema, KanbanConfigSchema, KeyboardNavigationConfigSchema, KeyboardShortcutSchema, ListChartConfigSchema, ListColumnSchema, ListViewSchema, LocaleConfigSchema, LongPressGestureConfigSchema, MotionConfigSchema, NavigationAreaSchema, NavigationConfigSchema, NavigationItemSchema, NavigationModeSchema, NotificationActionSchema, NotificationConfigSchema, NotificationPositionSchema, NotificationSchema, NotificationSeveritySchema, NotificationTypeSchema, NumberFormatSchema, ObjectNavItemSchema, OfflineCacheConfigSchema, OfflineConfigSchema, OfflineStrategySchema, PageAccordionProps, PageCardProps, PageComponentSchema, PageComponentType, PageHeaderProps, PageNavItemSchema, PageRegionSchema, PageSchema, PageTabsProps, PageTransitionSchema, PageTypeSchema, PageVariableSchema, PaginationConfigSchema, PerformanceConfigSchema, PersistStorageSchema, PinchGestureConfigSchema, PluralRuleSchema, Portal, PortalActionNavItemSchema, PortalAnonymousEntrySchema, PortalAnonymousRouteSchema, PortalAuthModeSchema, PortalDashboardNavItemSchema, PortalLayoutSchema, PortalNavItemSchema, PortalRateLimitSchema, PortalSchema, PortalSeoSchema, PortalThemeSchema, PortalUrlNavItemSchema, PortalViewNavItemSchema, RecordActivityProps, RecordChatterProps, RecordDetailsProps, RecordHighlightsField, RecordHighlightsProps, RecordPathProps, RecordRelatedListProps, RecordReviewConfigSchema, Report, ReportChartSchema, ReportColumnSchema, ReportGroupingSchema, ReportNavItemSchema, ReportSchema, ReportType, ResponsiveConfigSchema, RowColorConfigSchema, RowHeightSchema, SelectionConfigSchema, ShadowSchema, SharingConfigSchema, SpacingSchema, SwipeDirectionSchema, SwipeGestureConfigSchema, SyncConfigSchema, ThemeMode, ThemeModeSchema, ThemeSchema, TimelineConfigSchema, TouchInteractionSchema, TouchTargetConfigSchema, TransitionConfigSchema, TransitionPresetSchema, TypographySchema, UrlNavItemSchema, UserActionsConfigSchema, ViewDataSchema, ViewFilterRuleSchema, ViewSchema, ViewSharingSchema, ViewTabSchema, VisualizationTypeSchema, WcagContrastLevel, WcagContrastLevelSchema, WidgetActionTypeSchema, WidgetColorVariantSchema, WidgetEventSchema, WidgetLifecycleSchema, WidgetManifestSchema, WidgetMeasureSchema, WidgetPropertySchema, WidgetSourceSchema, ZIndexSchema, defineApp, definePortal, defineView };
|
|
4135
|
+
export { AIChatWindowProps, Action, ActionNavItemSchema, ActionParamSchema, ActionSchema, ActionType, AddRecordConfigSchema, AnimationSchema, AnimationTriggerSchema, App, AppBrandingSchema, AppSchema, AppearanceConfigSchema, AriaPropsSchema, BlankPageLayoutItemSchema, BlankPageLayoutSchema, BorderRadiusSchema, BreakpointColumnMapSchema, BreakpointName, BreakpointOrderMapSchema, BreakpointsSchema, CalendarConfigSchema, ChartAnnotationSchema, ChartAxisSchema, ChartConfigSchema, ChartInteractionSchema, ChartSeriesSchema, ChartTypeSchema, ColorPaletteSchema, ColumnSummarySchema, ComponentAnimationSchema, ComponentNavItemSchema, ComponentPropsMap, ConflictResolutionSchema, Dashboard, DashboardHeaderActionSchema, DashboardHeaderSchema, DashboardNavItemSchema, DashboardSchema, DashboardWidgetSchema, DateFormatSchema, DensityMode, DensityModeSchema, DndConfigSchema, DragConstraintSchema, DragHandleSchema, DragItemSchema, DropEffectSchema, DropZoneSchema, EasingFunctionSchema, ElementButtonPropsSchema, ElementDataSourceSchema, ElementFilterPropsSchema, ElementFormPropsSchema, ElementImagePropsSchema, ElementNumberPropsSchema, ElementRecordPickerPropsSchema, ElementTextPropsSchema, EmbedConfigSchema, EvictionPolicySchema, FieldWidgetPropsSchema, FocusManagementSchema, FocusTrapConfigSchema, FormFieldSchema, FormSectionSchema, FormViewSchema, GalleryConfigSchema, GanttConfigSchema, GestureConfigSchema, GestureTypeSchema, GlobalFilterOptionsFromSchema, GlobalFilterSchema, GroupNavItemSchema, GroupingConfigSchema, GroupingFieldSchema, HttpMethodSchema, HttpRequestSchema, I18nLabelSchema, I18nObjectSchema, InterfacePageConfigSchema, JoinedReportBlockSchema, KanbanConfigSchema, KeyboardNavigationConfigSchema, KeyboardShortcutSchema, ListChartConfigSchema, ListColumnSchema, ListViewSchema, LocaleConfigSchema, LongPressGestureConfigSchema, MotionConfigSchema, NavigationAreaSchema, NavigationConfigSchema, NavigationItemSchema, NavigationModeSchema, NotificationActionSchema, NotificationConfigSchema, NotificationPositionSchema, NotificationSchema, NotificationSeveritySchema, NotificationTypeSchema, NumberFormatSchema, ObjectNavItemSchema, OfflineCacheConfigSchema, OfflineConfigSchema, OfflineStrategySchema, PageAccordionProps, PageCardProps, PageComponentSchema, PageComponentType, PageHeaderProps, PageNavItemSchema, PageRegionSchema, PageSchema, PageTabsProps, PageTransitionSchema, PageTypeSchema, PageVariableSchema, PaginationConfigSchema, PerformanceConfigSchema, PersistStorageSchema, PinchGestureConfigSchema, PluralRuleSchema, Portal, PortalActionNavItemSchema, PortalAnonymousEntrySchema, PortalAnonymousRouteSchema, PortalAuthModeSchema, PortalDashboardNavItemSchema, PortalLayoutSchema, PortalNavItemSchema, PortalRateLimitSchema, PortalSchema, PortalSeoSchema, PortalThemeSchema, PortalUrlNavItemSchema, PortalViewNavItemSchema, RecordActivityProps, RecordChatterProps, RecordDetailsProps, RecordHighlightsField, RecordHighlightsProps, RecordPathProps, RecordRelatedListProps, RecordReviewConfigSchema, Report, ReportChartSchema, ReportColumnSchema, ReportGroupingSchema, ReportNavItemSchema, ReportSchema, ReportType, ResponsiveConfigSchema, RowColorConfigSchema, RowHeightSchema, SelectionConfigSchema, ShadowSchema, SharingConfigSchema, SpacingSchema, SwipeDirectionSchema, SwipeGestureConfigSchema, SyncConfigSchema, ThemeMode, ThemeModeSchema, ThemeSchema, TimelineConfigSchema, TouchInteractionSchema, TouchTargetConfigSchema, TransitionConfigSchema, TransitionPresetSchema, TypographySchema, UrlNavItemSchema, UserActionsConfigSchema, ViewDataSchema, ViewFilterRuleSchema, ViewSchema, ViewSharingSchema, ViewTabSchema, VisualizationTypeSchema, WcagContrastLevel, WcagContrastLevelSchema, WidgetActionTypeSchema, WidgetColorVariantSchema, WidgetEventSchema, WidgetLifecycleSchema, WidgetManifestSchema, WidgetMeasureSchema, WidgetPropertySchema, WidgetSourceSchema, ZIndexSchema, actionForm, appForm, dashboardForm, defineApp, defineForm, definePortal, defineView, pageForm, reportForm, viewForm };
|
|
3688
4136
|
//# sourceMappingURL=index.mjs.map
|
|
3689
4137
|
//# sourceMappingURL=index.mjs.map
|