@objectstack/spec 6.7.0 → 6.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +25 -3
- package/dist/contracts/index.d.ts +25 -3
- package/dist/data/index.d.mts +304 -3
- package/dist/data/index.d.ts +304 -3
- package/dist/data/index.js +285 -3
- package/dist/data/index.js.map +1 -1
- package/dist/data/index.mjs +283 -4
- package/dist/data/index.mjs.map +1 -1
- 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.js +15 -15
- package/dist/kernel/index.js.map +1 -1
- package/dist/kernel/index.mjs +15 -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/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 +2 -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 +2 -2
- package/json-schema/data/DataEngineAggregateRequest.json +2 -2
- package/json-schema/data/DataEngineBatchRequest.json +2 -2
- package/json-schema/data/DataEngineCountOptions.json +2 -2
- package/json-schema/data/DataEngineCountRequest.json +2 -2
- package/json-schema/data/DataEngineDeleteOptions.json +2 -2
- package/json-schema/data/DataEngineDeleteRequest.json +2 -2
- package/json-schema/data/DataEngineExecuteRequest.json +2 -2
- package/json-schema/data/DataEngineFilter.json +2 -2
- package/json-schema/data/DataEngineFindOneRequest.json +2 -2
- package/json-schema/data/DataEngineFindRequest.json +2 -2
- package/json-schema/data/DataEngineInsertOptions.json +2 -2
- package/json-schema/data/DataEngineInsertRequest.json +2 -2
- package/json-schema/data/DataEngineQueryOptions.json +2 -2
- package/json-schema/data/DataEngineRequest.json +2 -2
- package/json-schema/data/DataEngineSort.json +2 -2
- package/json-schema/data/DataEngineUpdateOptions.json +2 -2
- package/json-schema/data/DataEngineUpdateRequest.json +2 -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 +2 -2
- package/json-schema/data/EngineCountOptions.json +2 -2
- package/json-schema/data/EngineDeleteOptions.json +2 -2
- package/json-schema/data/EngineQueryOptions.json +2 -2
- package/json-schema/data/EngineUpdateOptions.json +2 -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 +2 -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 +3807 -3316
- 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/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/metadata-plugin.zod.ts +15 -15
- package/src/ui/app.zod.ts +28 -1
- package/src/ui/view.zod.ts +122 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/lazy-schema.ts","../../src/shared/identifiers.zod.ts","../../src/shared/expression.zod.ts","../../src/automation/workflow.zod.ts","../../src/automation/flow.zod.ts","../../src/automation/execution.zod.ts","../../src/automation/webhook.zod.ts","../../src/automation/approval.zod.ts","../../src/automation/etl.zod.ts","../../src/automation/trigger-registry.zod.ts","../../src/shared/mapping.zod.ts","../../src/automation/sync.zod.ts","../../src/automation/state-machine.zod.ts","../../src/automation/node-executor.zod.ts","../../src/automation/bpmn-interop.zod.ts"],"names":["z"],"mappings":"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","file":"index.mjs","sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { z } from 'zod';\n\n/**\n * Wrap a Zod schema constructor so its body is only evaluated on first use.\n *\n * Why: building Zod schemas at module-load creates millions of closures that\n * dominate dev-server RSS even though most schemas are never parsed in a\n * given session. Wrapping the constructor in a Proxy defers allocation until\n * the first property access (`.parse`, `.shape`, `._def`, etc.) and reuses\n * a single cached instance thereafter.\n *\n * Type system: the returned Proxy is structurally indistinguishable from the\n * underlying ZodType, so `z.infer<typeof X>` and `.parse()` callers do not\n * need to change.\n *\n * Emergency rollback: set `OS_EAGER_SCHEMAS=1` to evaluate the\n * factory immediately and bypass the Proxy entirely.\n */\nexport function lazySchema<T extends z.ZodTypeAny>(factory: () => T): T {\n if (typeof process !== 'undefined' && process.env?.OS_EAGER_SCHEMAS === '1') {\n return factory();\n }\n\n let cached: T | undefined;\n const resolve = (): T => {\n if (cached === undefined) cached = factory();\n return cached;\n };\n\n const target = function lazyZod() {} as unknown as T;\n\n const proxy = new Proxy(target as object, {\n get(_t, prop) {\n const real = resolve() as unknown as Record<PropertyKey, unknown>;\n const value = real[prop];\n if (typeof value === 'function') {\n return (value as (...a: unknown[]) => unknown).bind(real);\n }\n return value;\n },\n set(_t, prop, value) {\n const real = resolve() as unknown as Record<PropertyKey, unknown>;\n real[prop] = value;\n return true;\n },\n has(_t, prop) {\n return prop in (resolve() as object);\n },\n ownKeys() {\n return Reflect.ownKeys(resolve() as object);\n },\n getOwnPropertyDescriptor(_t, prop) {\n return Reflect.getOwnPropertyDescriptor(resolve() as object, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(resolve() as object);\n },\n });\n\n return proxy as T;\n}\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * System Identifier Schema\n * \n * Universal naming convention for all machine identifiers (API Names) in ObjectStack.\n * Enforces lowercase with underscores or dots to ensure:\n * - Cross-platform compatibility (case-insensitive filesystems)\n * - URL-friendliness (no encoding needed)\n * - Database consistency (no collation issues)\n * - Security (no case-sensitivity bugs in permission checks)\n * \n * **Applies to all metadata that acts as a machine identifier:**\n * - Object names (tables/collections)\n * - Field names\n * - Role names\n * - Permission set names\n * - Action/trigger names\n * - Event keys\n * - App IDs\n * - Menu/page IDs\n * - Select option values\n * - Workflow names\n * - Webhook names\n * \n * **Naming Convention Summary:**\n * | Type | Pattern | Example |\n * |------|---------|---------|\n * | Machine ID | snake_case | `crm_account`, `btn_submit`, `role_admin` |\n * | Event keys | dot.notation | `user.login`, `order.created` |\n * | Labels | Any case | `Client Account`, `Submit Form` |\n * \n * @example Valid identifiers\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * - 'order.created' (for events)\n * - 'api_v2_endpoint'\n * \n * @example Invalid identifiers (will be rejected)\n * - 'Account' (uppercase)\n * - 'CrmAccount' (camelCase)\n * - 'crm-account' (kebab-case - use underscore instead)\n * - 'user profile' (spaces)\n */\nimport { lazySchema } from './lazy-schema';\nexport const SystemIdentifierSchema = lazySchema(() => z\n .string()\n .min(2, { message: 'System identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., \"user_profile\" or \"order.created\")',\n })\n .describe('System identifier (lowercase with underscores or dots)'));\n\n/**\n * Strict Snake Case Identifier\n * \n * More restrictive than SystemIdentifierSchema - only allows underscores (no dots).\n * Use this for identifiers that should NOT contain dots (e.g., database table/column names).\n * \n * @example Valid\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * \n * @example Invalid\n * - 'user.profile' (dots not allowed)\n * - 'UserProfile' (uppercase)\n */\nexport const SnakeCaseIdentifierSchema = lazySchema(() => z\n .string()\n .min(2, { message: 'Identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_]*$/, {\n message:\n 'Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., \"user_profile\")',\n })\n .describe('Snake case identifier (lowercase with underscores only)'));\n\n/**\n * Event Name Identifier\n * \n * Specialized identifier for event names that encourages dot notation.\n * Used in event-driven systems, message queues, and webhooks.\n * \n * Pattern: `namespace.action` or `entity.event_type`\n * \n * @example Valid\n * - 'user.created'\n * - 'order.paid'\n * - 'user.login_success'\n * - 'alarm.high_cpu'\n * \n * @example Invalid\n * - 'UserCreated' (camelCase)\n * - 'user_created' (should use dots for namespacing)\n */\nexport const EventNameSchema = lazySchema(() => z\n .string()\n .min(3, { message: 'Event name must be at least 3 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'Event name must be lowercase with dots for namespacing (e.g., \"user.created\", \"order.paid\")',\n })\n .describe('Event name (lowercase with dot notation for namespacing)'));\n\n/**\n * Type Exports\n */\nexport type SystemIdentifier = z.infer<typeof SystemIdentifierSchema>;\nexport type SnakeCaseIdentifier = z.infer<typeof SnakeCaseIdentifierSchema>;\nexport type EventName = z.infer<typeof EventNameSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * # Expression Protocol\n *\n * Canonical wire format for all \"expression\"-shaped metadata across ObjectStack\n * (formula fields, predicates, conditions, criteria, visibility rules, seed\n * dynamic values, …).\n *\n * The persisted form is `{ dialect, source }` (and, after `objectstack\n * compile` normalization, `{ dialect, ast }`). String-only shorthand is\n * accepted at *input* time for developer ergonomics; build emits the canonical\n * envelope.\n *\n * ## Dialects\n *\n * | dialect | engine | use |\n * |:---|:---|:---|\n * | `cel` | `@objectstack/formula` (cel-js + ObjectStack stdlib) | formulas, predicates, seed dynamic values |\n * | `js` | sandboxed L2 hook bodies (`isolated-vm` / `quickjs`) | mapping, hook bodies |\n * | `cron` | `cron-parser` | job schedules |\n *\n * SQL fragments (analytics joins, partial indexes) are intentionally **not**\n * routed through this schema — they stay driver-native because their security\n * posture and portability story differ.\n *\n * @see content/docs/concepts/north-star.mdx §8 \"No private expression DSL\"\n */\n\n/** Supported expression dialects. */\nexport const ExpressionDialect = z.enum(['cel', 'js', 'cron', 'template']);\nexport type ExpressionDialect = z.infer<typeof ExpressionDialect>;\n\n/**\n * Authorship metadata for an expression. Optional but encouraged for AI-\n * generated artifacts so audit/explanation tooling has something to render.\n */\nexport const ExpressionMetaSchema = z.object({\n /** Human-readable rationale (often AI-emitted). */\n rationale: z.string().optional(),\n /** Identifier of the agent / tool that produced this expression. */\n generatedBy: z.string().optional(),\n});\nexport type ExpressionMeta = z.infer<typeof ExpressionMetaSchema>;\n\n/**\n * Canonical Expression envelope.\n *\n * Phase 1 (M9.1): `source` is the canonical persisted form. `ast` is reserved\n * and accepted as opaque structured value — `objectstack compile` will fill it\n * in M9.2 with the engine's parsed AST so the artifact carries an AST-only\n * representation.\n *\n * Phase 2 (M9.2+): `ast` becomes required in build output; `source` is kept\n * only for round-trip / debug.\n */\nexport const ExpressionSchema = z.object({\n /** Which engine evaluates `source` / `ast`. */\n dialect: ExpressionDialect,\n /** Surface syntax. Required while `ast` is not yet populated. */\n source: z.string().min(1).optional(),\n /**\n * Engine-native AST. Opaque at the spec layer; each engine validates its own\n * shape. For `dialect: 'cel'` this is the cel-js parsed AST node.\n */\n ast: z.unknown().optional(),\n /** Optional authorship metadata. */\n meta: ExpressionMetaSchema.optional(),\n}).refine(e => e.source !== undefined || e.ast !== undefined, {\n message: 'Expression requires at least one of `source` or `ast`',\n});\nexport type Expression = z.infer<typeof ExpressionSchema>;\n\n/**\n * Author-time input shape: a bare string is shorthand for `{ dialect: 'cel',\n * source }`. Engines that need other dialects must use the full envelope.\n *\n * Build (`objectstack compile`) normalizes this union to `Expression` so the\n * persisted artifact never contains the bare-string form.\n */\nexport const ExpressionInputSchema = z.union([\n z.string().min(1).transform((source): Expression => ({ dialect: 'cel', source })),\n ExpressionSchema,\n]);\nexport type ExpressionInput = z.input<typeof ExpressionInputSchema>;\n\n/**\n * Cron-typed input shape: a bare string is shorthand for `{ dialect: 'cron',\n * source }` (not `cel`). Use this for `schedule` / `cronExpression` fields so\n * authors can write `'0 9 * * 1-5'` without manually wrapping.\n */\nexport const CronExpressionInputSchema = z.union([\n z.string().min(1).transform((source): Expression => ({ dialect: 'cron', source })),\n ExpressionSchema,\n]);\nexport type CronExpressionInput = z.input<typeof CronExpressionInputSchema>;\n\n/**\n * Template-typed input shape: a bare string is shorthand for\n * `{ dialect: 'template', source }`. Use this for notification subjects/bodies,\n * titleFormat, prompt templates — anything with `{{var}}` interpolation.\n */\nexport const TemplateExpressionInputSchema = z.union([\n z.string().min(1).transform((source): Expression => ({ dialect: 'template', source })),\n ExpressionSchema,\n]);\nexport type TemplateExpressionInput = z.input<typeof TemplateExpressionInputSchema>;\n\n/**\n * Predicate — an Expression whose evaluation is expected to be boolean.\n * Spec layer cannot enforce return type at parse time; this alias exists for\n * intent documentation and future runtime type-check wiring.\n */\nexport const PredicateSchema = ExpressionSchema;\nexport type Predicate = z.infer<typeof PredicateSchema>;\n\nexport const PredicateInputSchema = ExpressionInputSchema;\nexport type PredicateInput = z.input<typeof PredicateInputSchema>;\n\n/**\n * Construct an Expression literal from a CEL source string. Used by DX\n * shorthand (`cel\\`...\\``) and by codegen tools.\n */\nexport function expression(source: string, dialect: ExpressionDialect = 'cel', meta?: ExpressionMeta): Expression {\n return { dialect, source, ...(meta ? { meta } : {}) };\n}\n\n/**\n * Tagged-template helpers for inline expression authoring.\n *\n * ```ts\n * import { cel, F, P } from '@objectstack/spec';\n *\n * const f = { formula: F`record.amount * 0.1` };\n * const v = { visible: P`record.status == \"open\"` };\n * const d = { close_date: cel`now() + duration(\"P30D\")` };\n * ```\n *\n * Each helper produces an {@link Expression} envelope with `dialect: 'cel'`\n * and the rendered template string as `source`. The CLI `objectstack compile`\n * step (M9.2) parses these into ASTs at build time so the persisted artifact\n * is dialect-AST only.\n */\nfunction renderTemplate(strings: TemplateStringsArray, values: readonly unknown[]): string {\n if (values.length === 0) return strings[0] ?? '';\n let out = strings[0] ?? '';\n for (let i = 0; i < values.length; i++) {\n const v = values[i];\n // Inline literal substitution. Strings get JSON-escaped so `${name}` for\n // `name = 'O\\'Brien'` produces a valid CEL string literal. Numbers and\n // booleans render as their toString. Anything exotic should be passed via\n // the variable scope (record/input) rather than interpolated.\n if (typeof v === 'string') out += JSON.stringify(v);\n else if (typeof v === 'number' || typeof v === 'boolean') out += String(v);\n else if (v === null || v === undefined) out += 'null';\n else out += JSON.stringify(v);\n out += strings[i + 1] ?? '';\n }\n return out;\n}\n\n/** Tagged template — produces a CEL Expression envelope. */\nexport function cel(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n return { dialect: 'cel', source: renderTemplate(strings, values) };\n}\n\n/** Formula alias of {@link cel} — semantic shorthand for computed-field formulas. */\nexport const F = cel;\n\n/** Predicate alias of {@link cel} — semantic shorthand for boolean conditions. */\nexport const P = cel;\n\n/**\n * Tagged template — produces a Mustache-template Expression envelope. Use for\n * notification subjects, prompt bodies, titleFormat strings, etc. Variable\n * scope is the same as CEL (`{{record.x}}`, `{{os.user.id}}`).\n */\nexport function tmpl(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n // Templates do not get JSON.stringify on substitution — interpolation happens\n // at evaluate time via `{{path}}` markers, so we keep raw substitutions here.\n let out = strings[0] ?? '';\n for (let i = 0; i < values.length; i++) {\n out += String(values[i]);\n out += strings[i + 1] ?? '';\n }\n return { dialect: 'template', source: out };\n}\n\n/** Tagged template — produces a cron Expression envelope. */\nexport function cron(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n let out = strings[0] ?? '';\n for (let i = 0; i < values.length; i++) {\n out += String(values[i]);\n out += strings[i + 1] ?? '';\n }\n return { dialect: 'cron', source: out };\n}\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\nimport { ExpressionInputSchema } from '../shared/expression.zod';\n\n/**\n * Trigger events for workflow automation\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const WorkflowTriggerType = z.enum([\n 'on_create', // When record is created\n 'on_update', // When record is updated\n 'on_create_or_update', // Both\n 'on_delete', // When record is deleted\n 'schedule' // Time-based (cron)\n]);\n\n/**\n * Schema for Workflow Field Update Action\n * @example\n * {\n * name: \"update_status\",\n * type: \"field_update\",\n * field: \"status\",\n * value: \"approved\"\n * }\n */\nexport const FieldUpdateActionSchema = lazySchema(() => z.object({\n name: z.string().describe('Action name'),\n type: z.literal('field_update'),\n field: z.string().describe('Field to update'),\n value: z.unknown().describe('Value or Formula to set'),\n}));\n\n/**\n * Schema for Workflow Email Alert Action\n * @example\n * {\n * name: \"send_approval_email\",\n * type: \"email_alert\",\n * template: \"approval_request_email\",\n * recipients: [\"user_id_123\", \"manager_field\"]\n * }\n */\nexport const EmailAlertActionSchema = lazySchema(() => z.object({\n name: z.string().describe('Action name'),\n type: z.literal('email_alert'),\n template: z.string().describe('Email template ID/DevName'),\n recipients: z.array(z.string()).describe('List of recipient emails or user IDs'),\n}));\n\n/**\n * Schema for Connector Action Reference\n * Executes a capability defined in an integration connector.\n * Replaces hardcoded vendor actions (Slack, Twilio, etc).\n * \n * @example Send Slack Message\n * {\n * name: \"notify_slack\",\n * type: \"connector_action\",\n * connectorId: \"slack\",\n * actionId: \"post_message\",\n * input: {\n * channel: \"#general\",\n * text: \"New deal closed: {name}\"\n * }\n * }\n */\nexport const ConnectorActionRefSchema = lazySchema(() => z.object({\n name: z.string().describe('Action name'),\n type: z.literal('connector_action'),\n connectorId: z.string().describe('Target Connector ID (e.g. slack, twilio)'),\n actionId: z.string().describe('Target Action ID (e.g. send_message)'),\n input: z.record(z.string(), z.unknown()).describe('Input parameters matching the action schema'),\n}));\n\n/**\n * Schema for HTTP Callout Action\n * Makes a REST API call to an external service.\n * @example\n * {\n * name: \"sync_to_erp\",\n * type: \"http_call\",\n * url: \"https://erp.api/orders\",\n * method: \"POST\",\n * headers: { \"Authorization\": \"Bearer {token}\" },\n * body: \"{ ... }\"\n * }\n */\nexport const HttpCallActionSchema = lazySchema(() => z.object({\n name: z.string().describe('Action name'),\n type: z.literal('http_call'),\n url: z.string().describe('Target URL'),\n method: z.enum(['GET', 'POST', 'PUT', 'DELETE', 'PATCH']).default('POST').describe('HTTP Method'),\n headers: z.record(z.string(), z.string()).optional().describe('HTTP Headers'),\n body: z.string().optional().describe('Request body (JSON or text)'),\n}));\n\n/**\n * Schema for Workflow Task Creation Action\n * @example\n * {\n * name: \"create_followup_task\",\n * type: \"task_creation\",\n * taskObject: \"tasks\",\n * subject: \"Follow up with client\",\n * dueDate: \"TODAY() + 3\"\n * }\n */\nexport const TaskCreationActionSchema = lazySchema(() => z.object({\n name: z.string().describe('Action name'),\n type: z.literal('task_creation'),\n taskObject: z.string().describe('Task object name (e.g., \"task\", \"project_task\")'),\n subject: z.string().describe('Task subject/title'),\n description: z.string().optional().describe('Task description'),\n assignedTo: z.string().optional().describe('User ID or field reference for assignee'),\n dueDate: ExpressionInputSchema.optional().describe('Due date — CEL expression evaluated at task creation, e.g. cel`now() + duration(\"P3D\")`'),\n priority: z.string().optional().describe('Task priority'),\n relatedTo: z.string().optional().describe('Related record ID or field reference'),\n additionalFields: z.record(z.string(), z.unknown()).optional().describe('Additional custom fields'),\n}));\n\n/**\n * Schema for Workflow Push Notification Action\n */\nexport const PushNotificationActionSchema = lazySchema(() => z.object({\n name: z.string().describe('Action name'),\n type: z.literal('push_notification'),\n title: z.string().describe('Notification title'),\n body: z.string().describe('Notification body text'),\n recipients: z.array(z.string()).describe('User IDs or device tokens'),\n data: z.record(z.string(), z.unknown()).optional().describe('Additional data payload'),\n badge: z.number().optional().describe('Badge count (iOS)'),\n sound: z.string().optional().describe('Notification sound'),\n clickAction: z.string().optional().describe('Action/URL when notification is clicked'),\n}));\n\n/**\n * Schema for Workflow Custom Script Action\n */\nexport const CustomScriptActionSchema = lazySchema(() => z.object({\n name: z.string().describe('Action name'),\n type: z.literal('custom_script'),\n language: z.enum(['javascript', 'typescript', 'python']).default('javascript').describe('Script language'),\n code: z.string().describe('Script code to execute'),\n timeout: z.number().default(30000).describe('Execution timeout in milliseconds'),\n context: z.record(z.string(), z.unknown()).optional().describe('Additional context variables'),\n}));\n\n/**\n * Universal Workflow Action Schema\n * Union of all supported action types.\n */\nexport const WorkflowActionSchema = lazySchema(() => z.discriminatedUnion('type', [\n FieldUpdateActionSchema,\n EmailAlertActionSchema,\n HttpCallActionSchema,\n ConnectorActionRefSchema,\n TaskCreationActionSchema,\n PushNotificationActionSchema,\n CustomScriptActionSchema,\n]));\n\nexport type WorkflowAction = z.infer<typeof WorkflowActionSchema>;\n\n/**\n * Time Trigger Definition\n * Schedules actions to run relative to a specific time or date field.\n */\nexport const TimeTriggerSchema = lazySchema(() => z.object({\n id: z.string().optional().describe('Unique identifier'),\n \n /** Timing Logic */\n timeLength: z.number().int().describe('Duration amount (e.g. 1, 30)'),\n timeUnit: z.enum(['minutes', 'hours', 'days']).describe('Unit of time'),\n \n /** Reference Point */\n offsetDirection: z.enum(['before', 'after']).describe('Before or After the reference date'),\n offsetFrom: z.enum(['trigger_date', 'date_field']).describe('Basis for calculation'),\n dateField: z.string().optional().describe('Date field to calculate from (required if offsetFrom is date_field)'),\n \n /** Actions */\n actions: z.array(WorkflowActionSchema).describe('Actions to execute at the scheduled time'),\n}));\n\n/**\n * Schema for Workflow Rules (Automation)\n * \n * **NAMING CONVENTION:**\n * Workflow names are machine identifiers and must be lowercase snake_case.\n * \n * @example Good workflow names\n * - 'send_welcome_email'\n * - 'update_lead_status'\n * - 'notify_manager_on_close'\n * - 'calculate_discount'\n * \n * @example Bad workflow names (will be rejected)\n * - 'SendWelcomeEmail' (PascalCase)\n * - 'updateLeadStatus' (camelCase)\n * - 'Send Welcome Email' (spaces)\n * \n * @example Complete Workflow\n * {\n * name: \"new_lead_process\",\n * objectName: \"lead\",\n * triggerType: \"on_create\",\n * criteria: \"amount > 1000\",\n * active: true,\n * actions: [\n * {\n * name: \"set_status\",\n * type: \"field_update\",\n * field: \"status\",\n * value: \"new\"\n * },\n * {\n * name: \"notify_team\",\n * type: \"connector_action\",\n * connectorId: \"slack\",\n * actionId: \"post_message\",\n * input: { channel: \"#sales\", text: \"New high value lead!\" }\n * }\n * ],\n * timeTriggers: [\n * {\n * timeLength: 2,\n * timeUnit: \"days\",\n * offsetDirection: \"after\",\n * offsetFrom: \"trigger_date\",\n * actions: [\n * {\n * name: \"followup_check\",\n * type: \"task_creation\",\n * taskObject: \"task\",\n * subject: \"Follow up lead\",\n * dueDate: \"TODAY()\"\n * }\n * ]\n * }\n * ]\n * }\n */\nexport const WorkflowRuleSchema = lazySchema(() => z.object({\n /** Machine name */\n name: SnakeCaseIdentifierSchema.describe('Unique workflow name (lowercase snake_case)'),\n \n /** Target Object */\n objectName: z.string().describe('Target Object'),\n \n /** When to evaluate the rule */\n triggerType: WorkflowTriggerType.describe('When to evaluate'),\n \n /** \n * Condition to start the workflow.\n * If empty, runs on every trigger event.\n */\n criteria: ExpressionInputSchema.optional().describe('Predicate (CEL). If TRUE, actions execute.'),\n \n /** Actions to execute immediately */\n actions: z.array(WorkflowActionSchema).optional().describe('Immediate actions'),\n \n /** \n * Time-Dependent Actions \n * Actions scheduled to run in the future.\n */\n timeTriggers: z.array(TimeTriggerSchema).optional().describe('Scheduled actions relative to trigger or date field'),\n \n /** Active status */\n active: z.boolean().default(true).describe('Whether this workflow is active'),\n\n /** Execution Order */\n executionOrder: z.number().int().min(0).default(100).describe('Deterministic execution order when multiple workflows match (lower runs first)'),\n \n /** Recursion Control */\n reevaluateOnChange: z.boolean().default(false).describe('Re-evaluate rule if field updates change the record validity'),\n}));\n\nexport type WorkflowRule = z.infer<typeof WorkflowRuleSchema>;\nexport type TimeTrigger = z.infer<typeof TimeTriggerSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { ExpressionInputSchema } from '../shared/expression.zod';\n\n/**\n * Flow Node Types\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const FlowNodeAction = z.enum([\n 'start', // Trigger\n 'end', // Return/Stop\n 'decision', // If/Else logic\n 'assignment', // Set Variable\n 'loop', // For Each\n 'create_record', // CRUD: Create\n 'update_record', // CRUD: Update\n 'delete_record', // CRUD: Delete\n 'get_record', // CRUD: Get/Query\n 'http_request', // Webhook/API Call\n 'script', // Custom Script (JS/TS)\n 'screen', // Screen / User-Input Element\n 'wait', // Delay/Sleep\n 'subflow', // Call another flow\n 'connector_action', // Zapier-style integration action\n 'parallel_gateway', // BPMN Parallel Gateway — AND-split (all outgoing branches execute concurrently)\n 'join_gateway', // BPMN Join Gateway — AND-join (waits for all incoming branches to complete)\n 'boundary_event', // BPMN Boundary Event — attached to a host node for timer/error/signal interrupts\n]);\n\n/**\n * Flow Variable Schema\n * Variables available within the flow execution context.\n */\nexport const FlowVariableSchema = lazySchema(() => z.object({\n name: z.string().describe('Variable name'),\n type: z.string().describe('Data type (text, number, boolean, object, list)'),\n isInput: z.boolean().default(false).describe('Is input parameter'),\n isOutput: z.boolean().default(false).describe('Is output parameter'),\n}));\n\n/**\n * Flow Node Schema\n * A single step in the visual logic graph.\n * \n * @example Decision Node\n * {\n * id: \"dec_1\",\n * type: \"decision\",\n * label: \"Is High Value?\",\n * config: {\n * conditions: [\n * { label: \"Yes\", expression: \"{amount} > 10000\" },\n * { label: \"No\", expression: \"true\" } // default\n * ]\n * },\n * position: { x: 300, y: 200 }\n * }\n */\nexport const FlowNodeSchema = lazySchema(() => z.object({\n id: z.string().describe('Node unique ID'),\n type: FlowNodeAction.describe('Action type'),\n label: z.string().describe('Node label'),\n \n /** Node Configuration Options (Specific to type) */\n config: z.record(z.string(), z.unknown()).optional().describe('Node configuration'),\n \n /** \n * Connector Action Configuration\n * Used when type is 'connector_action'\n */\n connectorConfig: z.object({\n connectorId: z.string(),\n actionId: z.string(),\n input: z.record(z.string(), z.unknown()).describe('Mapped inputs for the action'),\n }).optional(),\n\n /** UI Position (for the canvas) */\n position: z.object({ x: z.number(), y: z.number() }).optional(),\n\n /** Node-level execution timeout */\n timeoutMs: z.number().int().min(0).optional().describe('Maximum execution time for this node in milliseconds'),\n\n /** Node input schema declaration for Studio form generation and runtime validation */\n inputSchema: z.record(z.string(), z.object({\n type: z.enum(['string', 'number', 'boolean', 'object', 'array']).describe('Parameter type'),\n required: z.boolean().default(false).describe('Whether the parameter is required'),\n description: z.string().optional().describe('Parameter description'),\n })).optional().describe('Input parameter schema for this node'),\n\n /** Node output schema declaration */\n outputSchema: z.record(z.string(), z.object({\n type: z.enum(['string', 'number', 'boolean', 'object', 'array']).describe('Output type'),\n description: z.string().optional().describe('Output description'),\n })).optional().describe('Output schema declaration for this node'),\n\n /**\n * Wait Event Configuration (for 'wait' nodes)\n * Defines what external event or condition should resume the paused execution.\n * Industry alignment: BPMN Intermediate Catch Events, Temporal Signals.\n */\n waitEventConfig: z.object({\n /** Type of event to wait for */\n eventType: z.enum(['timer', 'signal', 'webhook', 'manual', 'condition'])\n .describe('What kind of event resumes the execution'),\n /** Duration to wait (ISO 8601 duration or milliseconds) — for timer events */\n timerDuration: z.string().optional().describe('ISO 8601 duration (e.g., \"PT1H\") or wait time for timer events'),\n /** Signal name to listen for — for signal/webhook events */\n signalName: z.string().optional().describe('Named signal or webhook event to wait for'),\n /** Timeout before auto-failing or continuing — optional guard */\n timeoutMs: z.number().int().min(0).optional().describe('Maximum wait time before timeout (ms)'),\n /** Action to take on timeout */\n onTimeout: z.enum(['fail', 'continue']).default('fail').describe('Behavior when the wait times out'),\n }).optional().describe('Configuration for wait node event resumption'),\n\n /**\n * Boundary Event Configuration (for 'boundary_event' nodes)\n * Attaches an event handler to a host activity node (BPMN Boundary Event pattern).\n * Industry alignment: BPMN Boundary Error/Timer/Signal Events.\n */\n boundaryConfig: z.object({\n /** ID of the host node this boundary event is attached to */\n attachedToNodeId: z.string().describe('Host node ID this boundary event monitors'),\n /** Type of boundary event */\n eventType: z.enum(['error', 'timer', 'signal', 'cancel'])\n .describe('Boundary event trigger type'),\n /** Whether the boundary event interrupts the host activity */\n interrupting: z.boolean().default(true)\n .describe('If true, the host activity is cancelled when this event fires'),\n /** Error code filter — only for error boundary events */\n errorCode: z.string().optional().describe('Specific error code to catch (empty = catch all errors)'),\n /** Timer duration — only for timer boundary events */\n timerDuration: z.string().optional().describe('ISO 8601 duration for timer boundary events'),\n /** Signal name — only for signal boundary events */\n signalName: z.string().optional().describe('Named signal to catch'),\n }).optional().describe('Configuration for boundary events attached to host nodes'),\n}));\n\n/**\n * Flow Edge Schema\n * Connections between nodes.\n */\nexport const FlowEdgeSchema = lazySchema(() => z.object({\n id: z.string().describe('Edge unique ID'),\n source: z.string().describe('Source Node ID'),\n target: z.string().describe('Target Node ID'),\n \n /** Condition for this path (only for decision/branch nodes) */\n condition: ExpressionInputSchema.optional().describe('Predicate (CEL) returning boolean used for branching.'),\n \n type: z.enum(['default', 'fault', 'conditional']).default('default')\n .describe('Connection type: default (normal flow), fault (error path), or conditional (expression-guarded)'),\n label: z.string().optional().describe('Label on the connector'),\n\n /**\n * Default Sequence Flow marker (BPMN Default Flow semantics).\n * When true, this edge is taken when no sibling conditional edges match.\n * Only meaningful on outgoing edges of decision/gateway nodes.\n */\n isDefault: z.boolean().default(false)\n .describe('Marks this edge as the default path when no other conditions match'),\n}));\n\n/**\n * Flow Schema\n * Visual Business Logic Orchestration.\n * \n * @example Simple Approval Logic\n * {\n * name: \"approve_order_flow\",\n * label: \"Approve Large Orders\",\n * type: \"record_change\",\n * status: \"active\",\n * nodes: [\n * { id: \"start\", type: \"start\", label: \"Start\", position: {x: 0, y: 0} },\n * { id: \"check_amount\", type: \"decision\", label: \"Check Amount\", position: {x: 0, y: 100} },\n * { id: \"auto_approve\", type: \"update_record\", label: \"Auto Approve\", position: {x: -100, y: 200} },\n * { id: \"submit_for_approval\", type: \"connector_action\", label: \"Submit\", position: {x: 100, y: 200} }\n * ],\n * edges: [\n * { id: \"e1\", source: \"start\", target: \"check_amount\" },\n * { id: \"e2\", source: \"check_amount\", target: \"auto_approve\", condition: \"{amount} < 500\" },\n * { id: \"e3\", source: \"check_amount\", target: \"submit_for_approval\", condition: \"{amount} >= 500\" }\n * ]\n * }\n */\nexport const FlowSchema = lazySchema(() => z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name'),\n label: z.string().describe('Flow label'),\n description: z.string().optional(),\n \n /** Metadata & Versioning */\n version: z.number().int().default(1).describe('Version number'),\n status: z.enum(['draft', 'active', 'obsolete', 'invalid']).default('draft').describe('Deployment status'),\n template: z.boolean().default(false).describe('Is logic template (Subflow)'),\n\n /** Trigger Type */\n type: z.enum(['autolaunched', 'record_change', 'schedule', 'screen', 'api']).describe('Flow type'),\n \n /** Configuration Variables */\n variables: z.array(FlowVariableSchema).optional().describe('Flow variables'),\n \n /** Graph Definition */\n nodes: z.array(FlowNodeSchema).describe('Flow nodes'),\n edges: z.array(FlowEdgeSchema).describe('Flow connections'),\n \n /** Execution Config */\n active: z.boolean().default(false).describe('Is active (Deprecated: use status)'),\n runAs: z.enum(['system', 'user']).default('user').describe('Execution context'),\n\n /** Error Handling Strategy */\n errorHandling: z.object({\n strategy: z.enum(['fail', 'retry', 'continue']).default('fail').describe('How to handle node execution errors'),\n maxRetries: z.number().int().min(0).max(10).default(0).describe('Number of retry attempts (only for retry strategy)'),\n retryDelayMs: z.number().int().min(0).default(1000).describe('Delay between retries in milliseconds'),\n backoffMultiplier: z.number().min(1).default(1).describe('Multiplier for exponential backoff between retries'),\n maxRetryDelayMs: z.number().int().min(0).default(30000).describe('Maximum delay between retries in milliseconds'),\n jitter: z.boolean().default(false).describe('Add random jitter to retry delay to avoid thundering herd'),\n fallbackNodeId: z.string().optional().describe('Node ID to jump to on unrecoverable error'),\n }).optional().describe('Flow-level error handling configuration'),\n}));\n\n/**\n * Type-safe factory for creating flow definitions.\n *\n * Validates the config at creation time using Zod `.parse()`.\n *\n * @example\n * ```ts\n * const onCreateFlow = defineFlow({\n * name: 'on_task_create',\n * label: 'On Task Create',\n * type: 'record_change',\n * nodes: [\n * { id: 'start', type: 'start', label: 'Start' },\n * { id: 'end', type: 'end', label: 'End' },\n * ],\n * edges: [{ id: 'e1', source: 'start', target: 'end' }],\n * });\n * ```\n */\nexport function defineFlow(config: z.input<typeof FlowSchema>): FlowParsed {\n return FlowSchema.parse(config);\n}\n\nexport type Flow = z.input<typeof FlowSchema>;\nexport type FlowParsed = z.infer<typeof FlowSchema>;\nexport type FlowNode = z.input<typeof FlowNodeSchema>;\nexport type FlowNodeParsed = z.infer<typeof FlowNodeSchema>;\nexport type FlowEdge = z.input<typeof FlowEdgeSchema>;\nexport type FlowEdgeParsed = z.infer<typeof FlowEdgeSchema>;\n\n/**\n * Flow Version History Schema\n * Tracks historical versions of flow definitions for rollback support.\n *\n * Industry alignment: Salesforce Flow Versions, n8n Workflow History.\n */\nexport const FlowVersionHistorySchema = lazySchema(() => z.object({\n flowName: z.string().describe('Flow machine name'),\n version: z.number().int().min(1).describe('Version number'),\n definition: FlowSchema.describe('Complete flow definition snapshot'),\n createdAt: z.string().datetime().describe('When this version was created'),\n createdBy: z.string().optional().describe('User who created this version'),\n changeNote: z.string().optional().describe('Description of what changed in this version'),\n}));\n\nexport type FlowVersionHistory = z.input<typeof FlowVersionHistorySchema>;\nexport type FlowVersionHistoryParsed = z.infer<typeof FlowVersionHistorySchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { CronExpressionInputSchema } from '../shared/expression.zod';\n\n/**\n * Automation Execution Protocol\n *\n * Defines schemas for execution logging, error tracking, checkpointing,\n * concurrency control, and scheduled execution persistence.\n *\n * Industry alignment: Salesforce Flow Interviews, Temporal Workflow History,\n * AWS Step Functions execution logs.\n */\n\n// ==========================================\n// 1. Execution Status\n// ==========================================\n\n/**\n * Execution Status Enum\n * Tracks the lifecycle of a flow execution instance.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const ExecutionStatus = z.enum([\n 'pending', // Queued, not yet started\n 'running', // Currently executing\n 'paused', // Paused at a wait/checkpoint node\n 'completed', // Successfully finished\n 'failed', // Terminated with error\n 'cancelled', // Manually cancelled\n 'timed_out', // Exceeded max execution time\n 'retrying', // Failed and retrying\n]);\nexport type ExecutionStatus = z.infer<typeof ExecutionStatus>;\n\n// ==========================================\n// 2. Execution Log\n// ==========================================\n\n/**\n * Execution Step Log Entry\n * Records the result of executing a single node in the flow graph.\n */\nexport const ExecutionStepLogSchema = lazySchema(() => z.object({\n nodeId: z.string().describe('Node ID that was executed'),\n nodeType: z.string().describe('Node action type (e.g., \"decision\", \"http_request\")'),\n nodeLabel: z.string().optional().describe('Human-readable node label'),\n status: z.enum(['success', 'failure', 'skipped']).describe('Step execution result'),\n startedAt: z.string().datetime().describe('When the step started'),\n completedAt: z.string().datetime().optional().describe('When the step completed'),\n durationMs: z.number().int().min(0).optional().describe('Step execution duration in milliseconds'),\n input: z.record(z.string(), z.unknown()).optional().describe('Input data passed to the node'),\n output: z.record(z.string(), z.unknown()).optional().describe('Output data produced by the node'),\n error: z.object({\n code: z.string().describe('Error code'),\n message: z.string().describe('Error message'),\n stack: z.string().optional().describe('Stack trace'),\n }).optional().describe('Error details if step failed'),\n retryAttempt: z.number().int().min(0).optional().describe('Retry attempt number (0 = first try)'),\n}));\nexport type ExecutionStepLog = z.infer<typeof ExecutionStepLogSchema>;\n\n/**\n * Execution Log Schema\n * Full execution history for a single flow run.\n *\n * @example\n * {\n * id: 'exec_001',\n * flowName: 'approve_order_flow',\n * flowVersion: 1,\n * status: 'completed',\n * trigger: { type: 'record_change', recordId: 'rec_123', object: 'order' },\n * steps: [\n * { nodeId: 'start', nodeType: 'start', status: 'success', startedAt: '...', durationMs: 1 },\n * { nodeId: 'check_amount', nodeType: 'decision', status: 'success', startedAt: '...', durationMs: 5 },\n * ],\n * startedAt: '2026-02-01T10:00:00Z',\n * completedAt: '2026-02-01T10:00:01Z',\n * durationMs: 1050,\n * }\n */\nexport const ExecutionLogSchema = lazySchema(() => z.object({\n /** Unique execution ID */\n id: z.string().describe('Execution instance ID'),\n\n /** Flow reference */\n flowName: z.string().describe('Machine name of the executed flow'),\n flowVersion: z.number().int().optional().describe('Version of the flow that was executed'),\n\n /** Execution status */\n status: ExecutionStatus.describe('Current execution status'),\n\n /** Trigger context */\n trigger: z.object({\n type: z.string().describe('Trigger type (e.g., \"record_change\", \"schedule\", \"api\", \"manual\")'),\n recordId: z.string().optional().describe('Triggering record ID'),\n object: z.string().optional().describe('Triggering object name'),\n userId: z.string().optional().describe('User who triggered the execution'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional trigger context'),\n }).describe('What triggered this execution'),\n\n /** Step-by-step execution history */\n steps: z.array(ExecutionStepLogSchema).describe('Ordered list of executed steps'),\n\n /** Execution variables snapshot */\n variables: z.record(z.string(), z.unknown()).optional().describe('Final state of flow variables'),\n\n /** Timing */\n startedAt: z.string().datetime().describe('Execution start timestamp'),\n completedAt: z.string().datetime().optional().describe('Execution completion timestamp'),\n durationMs: z.number().int().min(0).optional().describe('Total execution duration in milliseconds'),\n\n /** Context */\n runAs: z.enum(['system', 'user']).optional().describe('Execution context identity'),\n tenantId: z.string().optional().describe('Tenant ID for multi-tenant isolation'),\n}));\nexport type ExecutionLog = z.infer<typeof ExecutionLogSchema>;\n\n// ==========================================\n// 3. Execution Error Tracking & Diagnostics\n// ==========================================\n\n/**\n * Execution Error Severity\n */\nexport const ExecutionErrorSeverity = z.enum([\n 'warning', // Non-fatal issue (e.g., deprecated node type)\n 'error', // Node-level failure (may be retried)\n 'critical', // Flow-level failure (execution terminated)\n]);\nexport type ExecutionErrorSeverity = z.infer<typeof ExecutionErrorSeverity>;\n\n/**\n * Execution Error Schema\n * Detailed error record for diagnostics and troubleshooting.\n */\nexport const ExecutionErrorSchema = lazySchema(() => z.object({\n id: z.string().describe('Error record ID'),\n executionId: z.string().describe('Parent execution ID'),\n nodeId: z.string().optional().describe('Node where the error occurred'),\n severity: ExecutionErrorSeverity.describe('Error severity level'),\n code: z.string().describe('Machine-readable error code'),\n message: z.string().describe('Human-readable error message'),\n stack: z.string().optional().describe('Stack trace for debugging'),\n context: z.record(z.string(), z.unknown()).optional()\n .describe('Additional diagnostic context (input data, config snapshot)'),\n timestamp: z.string().datetime().describe('When the error occurred'),\n retryable: z.boolean().default(false).describe('Whether this error can be retried'),\n resolvedAt: z.string().datetime().optional().describe('When the error was resolved (e.g., after successful retry)'),\n}));\nexport type ExecutionError = z.infer<typeof ExecutionErrorSchema>;\n\n// ==========================================\n// 4. Checkpointing / Resume\n// ==========================================\n\n/**\n * Checkpoint Schema\n * Captures the execution state at a specific node for pause/resume.\n *\n * Used by wait nodes, user-input screens, and crash recovery.\n */\nexport const CheckpointSchema = lazySchema(() => z.object({\n /** Unique checkpoint ID */\n id: z.string().describe('Checkpoint ID'),\n\n /** Execution reference */\n executionId: z.string().describe('Parent execution ID'),\n flowName: z.string().describe('Flow machine name'),\n\n /** State snapshot */\n currentNodeId: z.string().describe('Node ID where execution is paused'),\n variables: z.record(z.string(), z.unknown()).describe('Flow variable state at checkpoint'),\n completedNodeIds: z.array(z.string()).describe('List of node IDs already executed'),\n\n /** Timing */\n createdAt: z.string().datetime().describe('Checkpoint creation timestamp'),\n expiresAt: z.string().datetime().optional().describe('Checkpoint expiration (auto-cleanup)'),\n\n /** Reason */\n reason: z.enum(['wait', 'screen_input', 'approval', 'error', 'manual_pause', 'parallel_join', 'boundary_event'])\n .describe('Why the execution was checkpointed'),\n}));\nexport type Checkpoint = z.infer<typeof CheckpointSchema>;\n\n// ==========================================\n// 5. Concurrency Control\n// ==========================================\n\n/**\n * Concurrency Policy Schema\n * Controls how concurrent executions of the same flow are handled.\n *\n * Industry alignment: Salesforce \"Allow multiple instances\", Temporal \"Workflow ID reuse policy\"\n */\nexport const ConcurrencyPolicySchema = lazySchema(() => z.object({\n /** Maximum concurrent executions of this flow */\n maxConcurrent: z.number().int().min(1).default(1)\n .describe('Maximum number of concurrent executions allowed'),\n\n /** What to do when max concurrency is reached */\n onConflict: z.enum(['queue', 'reject', 'cancel_existing'])\n .default('queue')\n .describe('queue = enqueue for later, reject = fail immediately, cancel_existing = stop running instance'),\n\n /** Lock scope for concurrency */\n lockScope: z.enum(['global', 'per_record', 'per_user'])\n .default('global')\n .describe('Scope of the concurrency lock'),\n\n /** Queue timeout (only when onConflict is \"queue\") */\n queueTimeoutMs: z.number().int().min(0).optional()\n .describe('Maximum time to wait in queue before timing out (ms)'),\n}));\nexport type ConcurrencyPolicy = z.infer<typeof ConcurrencyPolicySchema>;\n\n// ==========================================\n// 6. Scheduled Execution Persistence\n// ==========================================\n\n/**\n * Schedule State Schema\n * Tracks the runtime state of scheduled flow executions.\n *\n * Persists next-run times, pause/resume state, and execution history references.\n */\nexport const ScheduleStateSchema = lazySchema(() => z.object({\n /** Unique schedule ID */\n id: z.string().describe('Schedule instance ID'),\n\n /** Flow reference */\n flowName: z.string().describe('Flow machine name'),\n\n /** Schedule configuration */\n cronExpression: CronExpressionInputSchema.describe('Cron expression — cron`0 9 * * MON-FRI`'),\n timezone: z.string().default('UTC').describe('IANA timezone for cron evaluation'),\n\n /** Runtime state */\n status: z.enum(['active', 'paused', 'disabled', 'expired'])\n .default('active')\n .describe('Current schedule status'),\n nextRunAt: z.string().datetime().optional().describe('Next scheduled execution timestamp'),\n lastRunAt: z.string().datetime().optional().describe('Last execution timestamp'),\n lastExecutionId: z.string().optional().describe('Execution ID of the last run'),\n lastRunStatus: ExecutionStatus.optional().describe('Status of the last run'),\n\n /** Execution tracking */\n totalRuns: z.number().int().min(0).default(0).describe('Total number of executions'),\n consecutiveFailures: z.number().int().min(0).default(0).describe('Consecutive failed executions'),\n\n /** Bounds */\n startDate: z.string().datetime().optional().describe('Schedule effective start date'),\n endDate: z.string().datetime().optional().describe('Schedule expiration date'),\n maxRuns: z.number().int().min(1).optional().describe('Maximum total executions before auto-disable'),\n\n /** Metadata */\n createdAt: z.string().datetime().describe('Schedule creation timestamp'),\n updatedAt: z.string().datetime().optional().describe('Last update timestamp'),\n createdBy: z.string().optional().describe('User who created the schedule'),\n}));\nexport type ScheduleState = z.infer<typeof ScheduleStateSchema>;\n\n// ==========================================\n// Type Exports\n// ==========================================\n\nexport type ExecutionStepLogParsed = z.infer<typeof ExecutionStepLogSchema>;\nexport type ExecutionLogParsed = z.infer<typeof ExecutionLogSchema>;\nexport type ExecutionErrorParsed = z.infer<typeof ExecutionErrorSchema>;\nexport type CheckpointParsed = z.infer<typeof CheckpointSchema>;\nexport type ConcurrencyPolicyParsed = z.infer<typeof ConcurrencyPolicySchema>;\nexport type ScheduleStateParsed = z.infer<typeof ScheduleStateSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * Webhook Trigger Event\n * When should this webhook fire?\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const WebhookTriggerType = z.enum([\n 'create', \n 'update', \n 'delete', \n 'undelete',\n 'api' // Manually triggered\n]);\n\n/**\n * CANONICAL WEBHOOK DEFINITION\n * \n * This is the single source of truth for webhook configuration across ObjectStack.\n * All other protocols (workflow, connector, etc.) should import and reference this schema.\n * \n * Webhook Protocol - Outbound HTTP Integration\n * Push data to external URLs when events occur in the system.\n * \n * **NAMING CONVENTION:**\n * Webhook names are machine identifiers and must be lowercase snake_case.\n * \n * @example Good webhook names\n * - 'stripe_payment_sync'\n * - 'slack_notification'\n * - 'crm_lead_export'\n * \n * @example Bad webhook names (will be rejected)\n * - 'StripePaymentSync' (PascalCase)\n * - 'slackNotification' (camelCase)\n * \n * @example Basic webhook configuration\n * ```typescript\n * const webhook: Webhook = {\n * name: 'slack_notification',\n * label: 'Slack Order Notification',\n * object: 'order',\n * triggers: ['create', 'update'],\n * url: 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXX',\n * method: 'POST',\n * headers: { 'Content-Type': 'application/json' },\n * authentication: {\n * type: 'bearer',\n * credentials: { token: process.env.SLACK_TOKEN }\n * },\n * retryPolicy: {\n * maxRetries: 3,\n * backoffStrategy: 'exponential'\n * }\n * }\n * ```\n */\nexport const WebhookSchema = lazySchema(() => z.object({\n name: SnakeCaseIdentifierSchema.describe('Webhook unique name (lowercase snake_case)'),\n label: z.string().optional().describe('Human-readable webhook label'),\n \n /** Scope */\n object: z.string().optional().describe('Object to listen to (optional for manual webhooks)'),\n triggers: z.array(WebhookTriggerType).optional().describe('Events that trigger execution'),\n \n /** Target */\n url: z.string().url().describe('External webhook endpoint URL'),\n method: z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE']).default('POST').describe('HTTP method'),\n \n /** Headers */\n headers: z.record(z.string(), z.string()).optional().describe('Custom HTTP headers'),\n \n /** Body/Payload */\n body: z.unknown().optional().describe('Request body payload (if not using default record data)'),\n \n /** Payload Configuration */\n payloadFields: z.array(z.string()).optional().describe('Fields to include. Empty = All'),\n includeSession: z.boolean().default(false).describe('Include user session info'),\n \n /** Authentication */\n authentication: z.object({\n type: z.enum(['none', 'bearer', 'basic', 'api-key']).describe('Authentication type'),\n credentials: z.record(z.string(), z.string()).optional().describe('Authentication credentials'),\n }).optional().describe('Authentication configuration'),\n \n /** Retry Policy */\n retryPolicy: z.object({\n maxRetries: z.number().int().min(0).max(10).default(3).describe('Maximum retry attempts'),\n backoffStrategy: z.enum(['exponential', 'linear', 'fixed']).default('exponential').describe('Backoff strategy'),\n initialDelayMs: z.number().int().min(100).default(1000).describe('Initial retry delay in milliseconds'),\n maxDelayMs: z.number().int().min(1000).default(60000).describe('Maximum retry delay in milliseconds'),\n }).optional().describe('Retry policy configuration'),\n \n /** Timeout */\n timeoutMs: z.number().int().min(1000).max(300000).default(30000).describe('Request timeout in milliseconds'),\n \n /** Security */\n secret: z.string().optional().describe('Signing secret for HMAC signature verification'),\n \n /** Status */\n isActive: z.boolean().default(true).describe('Whether webhook is active'),\n \n /** Metadata */\n description: z.string().optional().describe('Webhook description'),\n tags: z.array(z.string()).optional().describe('Tags for organization'),\n}));\n\n/**\n * Webhook Receiver Schema (Inbound)\n * Handling incoming HTTP hooks from Stripe, Slack, etc.\n * \n * **NAMING CONVENTION:**\n * Webhook receiver names are machine identifiers and must be lowercase snake_case.\n * \n * @example Good names\n * - 'stripe_webhook_handler'\n * - 'github_events'\n * - 'twilio_status_callback'\n * \n * @example Bad names (will be rejected)\n * - 'StripeWebhookHandler' (PascalCase)\n */\nexport const WebhookReceiverSchema = lazySchema(() => z.object({\n name: SnakeCaseIdentifierSchema.describe('Webhook receiver unique name (lowercase snake_case)'),\n path: z.string().describe('URL Path (e.g. /webhooks/stripe)'),\n \n /** Verification */\n verificationType: z.enum(['none', 'header_token', 'hmac', 'ip_whitelist']).default('none'),\n verificationParams: z.object({\n header: z.string().optional(),\n secret: z.string().optional(),\n ips: z.array(z.string()).optional()\n }).optional(),\n \n /** Action */\n action: z.enum(['trigger_flow', 'script', 'upsert_record']).default('trigger_flow'),\n target: z.string().describe('Flow ID or Script name'),\n}));\n\nexport type Webhook = z.infer<typeof WebhookSchema>;\nexport type WebhookReceiver = z.infer<typeof WebhookReceiverSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\nimport { ExpressionInputSchema } from '../shared/expression.zod';\n\n/**\n * Approval Step Approver Type\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const ApproverType = z.enum([\n 'user', // Specific user(s)\n 'role', // Users with specific role (sys_member.role)\n 'team', // Members of a flat collaboration team (sys_team)\n 'department', // Members of a department + all descendant departments (sys_department)\n 'manager', // Submitter's manager (sys_user.manager_id)\n 'field', // User ID defined in a record field\n 'queue' // Data ownership queue\n]);\n\n/**\n * Approval Action Type\n * Actions to execute on transition\n */\nexport const ApprovalActionType = z.enum([\n 'field_update',\n 'email_alert',\n 'webhook',\n 'script',\n 'connector_action', // Added for Zapier-style integrations\n 'inbox_notify', // M11.C15.B — write a sys_notification row\n]);\n\n/**\n * definition of an action to perform\n */\nexport const ApprovalActionSchema = lazySchema(() => z.object({\n type: ApprovalActionType,\n name: z.string().describe('Action name'),\n config: z.record(z.string(), z.unknown()).describe('Action configuration'),\n \n /** For connector actions */\n connectorId: z.string().optional(),\n actionId: z.string().optional(),\n}));\n\n/**\n * Approval Process Step\n */\nexport const ApprovalStepSchema = lazySchema(() => z.object({\n name: SnakeCaseIdentifierSchema.describe('Step machine name'),\n label: z.string().describe('Step display label'),\n description: z.string().optional(),\n \n /** Entry criteria for this step */\n entryCriteria: ExpressionInputSchema.optional().describe('Predicate (CEL) to enter this step.'),\n \n /** Who can approve */\n approvers: z.array(z.object({\n type: ApproverType,\n value: z.string().describe('User ID, Role Name, or Field Name')\n })).min(1).describe('List of allowed approvers'),\n \n /** Approval Logic */\n behavior: z.enum(['first_response', 'unanimous']).default('first_response')\n .describe('How to handle multiple approvers'),\n \n /** Rejection behavior */\n rejectionBehavior: z.enum(['reject_process', 'back_to_previous'])\n .default('reject_process').describe('What happens if rejected'),\n\n /** Actions */\n onApprove: z.array(ApprovalActionSchema).optional().describe('Actions on step approval'),\n onReject: z.array(ApprovalActionSchema).optional().describe('Actions on step rejection'),\n}));\n\n/**\n * Approval Process Protocol\n * \n * Defines a complex review and approval cycle for a record.\n * Manages state locking, notifications, and transition logic.\n */\nexport const ApprovalProcessSchema = lazySchema(() => z.object({\n name: SnakeCaseIdentifierSchema.describe('Unique process name'),\n label: z.string().describe('Human readable label'),\n object: z.string().describe('Target Object Name'),\n \n active: z.boolean().default(false),\n description: z.string().optional(),\n \n /** Entry Criteria for the entire process */\n entryCriteria: ExpressionInputSchema.optional().describe('Predicate (CEL) to allow submission.'),\n \n /** Record Locking */\n lockRecord: z.boolean().default(true).describe('Lock record from editing during approval'),\n\n /**\n * M11.C15.B — name of a field on the business object where the\n * engine mirrors the request status (e.g. `'approval_status'`).\n * Values written: 'pending' | 'approved' | 'rejected' | 'recalled'\n * | 'not_submitted'. The field should be declared as readonly on\n * the object so users can filter / display it but not edit it.\n * If omitted, no status mirror is written and the engine only\n * exposes status via `sys_approval_request`.\n */\n approvalStatusField: z.string().optional().describe(\n 'Field name on the business object to mirror the request status.',\n ),\n \n /** Steps */\n steps: z.array(ApprovalStepSchema).min(1).describe('Sequence of approval steps'),\n\n /** Escalation Configuration (SLA-based auto-escalation) */\n escalation: z.object({\n enabled: z.boolean().default(false).describe('Enable SLA-based escalation'),\n timeoutHours: z.number().min(1).describe('Hours before escalation triggers'),\n action: z.enum(['reassign', 'auto_approve', 'auto_reject', 'notify']).default('notify').describe('Action to take on escalation timeout'),\n escalateTo: z.string().optional().describe('User ID, role, or manager level to escalate to'),\n notifySubmitter: z.boolean().default(true).describe('Notify the original submitter on escalation'),\n }).optional().describe('SLA escalation configuration for pending approval steps'),\n \n /** Global Actions */\n onSubmit: z.array(ApprovalActionSchema).optional().describe('Actions on initial submission'),\n onFinalApprove: z.array(ApprovalActionSchema).optional().describe('Actions on final approval'),\n onFinalReject: z.array(ApprovalActionSchema).optional().describe('Actions on final rejection'),\n onRecall: z.array(ApprovalActionSchema).optional().describe('Actions on recall'),\n}));\n\nexport const ApprovalProcess = Object.assign(ApprovalProcessSchema, {\n create: <T extends z.input<typeof ApprovalProcessSchema>>(config: T) => config,\n});\n\nexport type ApprovalProcess = z.infer<typeof ApprovalProcessSchema>;\nexport type ApprovalStep = z.infer<typeof ApprovalStepSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { CronExpressionInputSchema } from '../shared/expression.zod';\n\n/**\n * ETL (Extract, Transform, Load) Pipeline Protocol - LEVEL 2: Data Engineering\n * \n * Inspired by modern data integration platforms like Airbyte, Fivetran, and Apache NiFi.\n * \n * **Positioning in 3-Layer Architecture:**\n * - **L1: Simple Sync** (automation/sync.zod.ts) - Business users - Sync Salesforce to Sheets\n * - **L2: ETL Pipeline** (THIS FILE) - Data engineers - Aggregate 10 sources to warehouse\n * - **L3: Enterprise Connector** (integration/connector.zod.ts) - System integrators - Full SAP integration\n * \n * ETL pipelines enable automated data synchronization between systems, transforming\n * data as it moves from source to destination.\n * \n * **SCOPE: Advanced multi-source, multi-stage transformations.**\n * Supports complex operations: joins, aggregations, filtering, custom SQL.\n * \n * ## When to Use This Layer\n * \n * **Use ETL Pipeline when:**\n * - Combining data from multiple sources\n * - Need aggregations, joins, transformations\n * - Building data warehouses or analytics platforms\n * - Complex data transformations required\n * \n * **Examples:**\n * - Sales data from Salesforce + Marketing from HubSpot → Data Warehouse\n * - Multi-region databases → Consolidated reporting\n * - Legacy system migration with transformation\n * \n * **When to downgrade:**\n * - Simple 1:1 sync → Use {@link file://./sync.zod.ts | Simple Sync}\n * \n * **When to upgrade:**\n * - Need full connector lifecycle (auth, webhooks, rate limits) → Use {@link file://../integration/connector.zod.ts | Enterprise Connector}\n * \n * @see {@link file://./sync.zod.ts} for Level 1 (simple sync)\n * @see {@link file://../integration/connector.zod.ts} for Level 3 (enterprise integration)\n * \n * ## Use Cases\n * \n * 1. **Data Warehouse Population**\n * - Extract from multiple operational systems\n * - Transform to analytical schema\n * - Load into data warehouse\n * \n * 2. **System Integration**\n * - Sync data between CRM and Marketing Automation\n * - Keep product catalog synchronized across e-commerce platforms\n * - Replicate data for backup/disaster recovery\n * \n * 3. **Data Migration**\n * - Move data from legacy systems to modern platforms\n * - Consolidate data from multiple sources\n * - Split monolithic databases into microservices\n * \n * @see https://airbyte.com/\n * @see https://docs.fivetran.com/\n * @see https://nifi.apache.org/\n * \n * @example\n * ```typescript\n * const salesforceToDB: ETLPipeline = {\n * name: 'salesforce_to_postgres',\n * label: 'Salesforce Accounts to PostgreSQL',\n * source: {\n * type: 'api',\n * connector: 'salesforce',\n * config: { object: 'Account' }\n * },\n * destination: {\n * type: 'database',\n * connector: 'postgres',\n * config: { table: 'accounts' }\n * },\n * transformations: [\n * { type: 'map', config: { 'Name': 'account_name' } }\n * ],\n * schedule: '0 2 * * *' // Daily at 2 AM\n * }\n * ```\n */\n\n/**\n * ETL Source/Destination Type\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const ETLEndpointTypeSchema = lazySchema(() => z.enum([\n 'database', // SQL/NoSQL databases\n 'api', // REST/GraphQL APIs\n 'file', // CSV, JSON, XML, Excel files\n 'stream', // Kafka, RabbitMQ, Kinesis\n 'object', // ObjectStack object\n 'warehouse', // Data warehouse (Snowflake, BigQuery, Redshift)\n 'storage', // S3, Azure Blob, Google Cloud Storage\n 'spreadsheet', // Google Sheets, Excel Online\n]));\n\nexport type ETLEndpointType = z.infer<typeof ETLEndpointTypeSchema>;\n\n/**\n * ETL Source Configuration\n */\nexport const ETLSourceSchema = lazySchema(() => z.object({\n /**\n * Source type\n */\n type: ETLEndpointTypeSchema.describe('Source type'),\n\n /**\n * Connector identifier\n * References a registered connector\n * \n * @example \"salesforce\", \"postgres\", \"mysql\", \"s3\"\n */\n connector: z.string().optional().describe('Connector ID'),\n\n /**\n * Source-specific configuration\n * Structure varies by source type\n * \n * @example For database: { table: 'customers', schema: 'public' }\n * @example For API: { endpoint: '/api/users', method: 'GET' }\n * @example For file: { path: 's3://bucket/data.csv', format: 'csv' }\n */\n config: z.record(z.string(), z.unknown()).describe('Source configuration'),\n\n /**\n * Incremental sync configuration\n * Allows extracting only changed data\n */\n incremental: z.object({\n enabled: z.boolean().default(false),\n cursorField: z.string().describe('Field to track progress (e.g., updated_at)'),\n cursorValue: z.unknown().optional().describe('Last processed value'),\n }).optional().describe('Incremental extraction config'),\n}));\n\nexport type ETLSource = z.infer<typeof ETLSourceSchema>;\n\n/**\n * ETL Destination Configuration\n */\nexport const ETLDestinationSchema = lazySchema(() => z.object({\n /**\n * Destination type\n */\n type: ETLEndpointTypeSchema.describe('Destination type'),\n\n /**\n * Connector identifier\n */\n connector: z.string().optional().describe('Connector ID'),\n\n /**\n * Destination-specific configuration\n */\n config: z.record(z.string(), z.unknown()).describe('Destination configuration'),\n\n /**\n * Write mode\n */\n writeMode: z.enum([\n 'append', // Add new records\n 'overwrite', // Replace all data\n 'upsert', // Insert or update based on key\n 'merge', // Smart merge based on business rules\n ]).default('append').describe('How to write data'),\n\n /**\n * Primary key fields for upsert/merge\n */\n primaryKey: z.array(z.string()).optional().describe('Primary key fields'),\n}));\n\nexport type ETLDestination = z.infer<typeof ETLDestinationSchema>;\n\n/**\n * ETL Transformation Type\n */\nexport const ETLTransformationTypeSchema = lazySchema(() => z.enum([\n 'map', // Field mapping/renaming\n 'filter', // Row filtering\n 'aggregate', // Aggregation/grouping\n 'join', // Joining with other data\n 'script', // Custom JavaScript/Python script\n 'lookup', // Enrich with lookup data\n 'split', // Split one record into multiple\n 'merge', // Merge multiple records into one\n 'normalize', // Data normalization\n 'deduplicate', // Remove duplicates\n]));\n\nexport type ETLTransformationType = z.infer<typeof ETLTransformationTypeSchema>;\n\n/**\n * ETL Transformation Configuration\n */\nexport const ETLTransformationSchema = lazySchema(() => z.object({\n /**\n * Transformation name\n */\n name: z.string().optional().describe('Transformation name'),\n\n /**\n * Transformation type\n */\n type: ETLTransformationTypeSchema.describe('Transformation type'),\n\n /**\n * Transformation-specific configuration\n * \n * @example For map: { oldField: 'newField' }\n * @example For filter: { condition: 'status == \"active\"' }\n * @example For script: { language: 'javascript', code: '...' }\n */\n config: z.record(z.string(), z.unknown()).describe('Transformation config'),\n\n /**\n * Whether to continue on error\n */\n continueOnError: z.boolean().default(false).describe('Continue on error'),\n}));\n\nexport type ETLTransformation = z.infer<typeof ETLTransformationSchema>;\n\n/**\n * ETL Sync Mode\n */\nexport const ETLSyncModeSchema = lazySchema(() => z.enum([\n 'full', // Full refresh - extract all data every time\n 'incremental', // Only extract changed data\n 'cdc', // Change Data Capture - real-time streaming\n]));\n\nexport type ETLSyncMode = z.infer<typeof ETLSyncModeSchema>;\n\n/**\n * ETL Pipeline Schema\n * \n * Complete definition of a data pipeline from source to destination with transformations.\n */\nexport const ETLPipelineSchema = lazySchema(() => z.object({\n /**\n * Pipeline identifier (snake_case)\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Pipeline identifier (snake_case)'),\n\n /**\n * Human-readable pipeline name\n */\n label: z.string().optional().describe('Pipeline display name'),\n\n /**\n * Pipeline description\n */\n description: z.string().optional().describe('Pipeline description'),\n\n /**\n * Data source configuration\n */\n source: ETLSourceSchema.describe('Data source'),\n\n /**\n * Data destination configuration\n */\n destination: ETLDestinationSchema.describe('Data destination'),\n\n /**\n * Transformation steps\n * Applied in order from source to destination\n */\n transformations: z.array(ETLTransformationSchema)\n .optional()\n .describe('Transformation pipeline'),\n\n /**\n * Sync mode\n */\n syncMode: ETLSyncModeSchema.default('full').describe('Sync mode'),\n\n /**\n * Execution schedule (cron expression)\n * \n * @example \"0 2 * * *\" - Daily at 2 AM\n * @example \"0 *\\/4 * * *\" - Every 4 hours\n * @example \"0 0 * * 0\" - Weekly on Sunday\n */\n schedule: CronExpressionInputSchema.optional().describe('Cron schedule expression'),\n\n /**\n * Whether pipeline is enabled\n */\n enabled: z.boolean().default(true).describe('Pipeline enabled status'),\n\n /**\n * Retry configuration for failed runs\n */\n retry: z.object({\n maxAttempts: z.number().int().min(0).default(3).describe('Max retry attempts'),\n backoffMs: z.number().int().min(0).default(60000).describe('Backoff in milliseconds'),\n }).optional().describe('Retry configuration'),\n\n /**\n * Notification configuration\n */\n notifications: z.object({\n onSuccess: z.array(z.string()).optional().describe('Email addresses for success notifications'),\n onFailure: z.array(z.string()).optional().describe('Email addresses for failure notifications'),\n }).optional().describe('Notification settings'),\n\n /**\n * Pipeline tags for organization\n */\n tags: z.array(z.string()).optional().describe('Pipeline tags'),\n\n /**\n * Custom metadata\n */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Custom metadata'),\n}));\n\nexport type ETLPipeline = z.infer<typeof ETLPipelineSchema>;\n\n/**\n * ETL Run Status\n */\nexport const ETLRunStatusSchema = lazySchema(() => z.enum([\n 'pending', // Queued for execution\n 'running', // Currently executing\n 'succeeded', // Completed successfully\n 'failed', // Failed with errors\n 'cancelled', // Manually cancelled\n 'timeout', // Timed out\n]));\n\nexport type ETLRunStatus = z.infer<typeof ETLRunStatusSchema>;\n\n/**\n * ETL Pipeline Run Result\n * \n * Result of a pipeline execution\n */\nexport const ETLPipelineRunSchema = lazySchema(() => z.object({\n /**\n * Run ID\n */\n id: z.string().describe('Run identifier'),\n\n /**\n * Pipeline name\n */\n pipelineName: z.string().describe('Pipeline name'),\n\n /**\n * Run status\n */\n status: ETLRunStatusSchema.describe('Run status'),\n\n /**\n * Start timestamp\n */\n startedAt: z.string().datetime().describe('Start time'),\n\n /**\n * End timestamp\n */\n completedAt: z.string().datetime().optional().describe('Completion time'),\n\n /**\n * Duration in milliseconds\n */\n durationMs: z.number().optional().describe('Duration in ms'),\n\n /**\n * Statistics\n */\n stats: z.object({\n recordsRead: z.number().int().default(0).describe('Records extracted'),\n recordsWritten: z.number().int().default(0).describe('Records loaded'),\n recordsErrored: z.number().int().default(0).describe('Records with errors'),\n bytesProcessed: z.number().int().default(0).describe('Bytes processed'),\n }).optional().describe('Run statistics'),\n\n /**\n * Error information\n */\n error: z.object({\n message: z.string().describe('Error message'),\n code: z.string().optional().describe('Error code'),\n details: z.unknown().optional().describe('Error details'),\n }).optional().describe('Error information'),\n\n /**\n * Execution logs\n */\n logs: z.array(z.string()).optional().describe('Execution logs'),\n}));\n\nexport type ETLPipelineRun = z.infer<typeof ETLPipelineRunSchema>;\n\n/**\n * Helper factory for creating ETL pipelines\n */\nexport const ETL = {\n /**\n * Create a simple database-to-database pipeline\n */\n databaseSync: (params: {\n name: string;\n sourceTable: string;\n destTable: string;\n schedule?: import(\"../shared/expression.zod\").CronExpressionInput;\n }): ETLPipeline => ({\n name: params.name,\n source: {\n type: 'database',\n config: { table: params.sourceTable },\n },\n destination: {\n type: 'database',\n config: { table: params.destTable },\n writeMode: 'upsert',\n },\n syncMode: 'incremental',\n schedule: typeof params.schedule === 'string' ? { dialect: 'cron', source: params.schedule } : params.schedule,\n enabled: true,\n }),\n\n /**\n * Create an API to database pipeline\n */\n apiToDatabase: (params: {\n name: string;\n apiConnector: string;\n destTable: string;\n schedule?: import(\"../shared/expression.zod\").CronExpressionInput;\n }): ETLPipeline => ({\n name: params.name,\n source: {\n type: 'api',\n connector: params.apiConnector,\n config: {},\n },\n destination: {\n type: 'database',\n config: { table: params.destTable },\n writeMode: 'append',\n },\n syncMode: 'full',\n schedule: typeof params.schedule === 'string' ? { dialect: 'cron', source: params.schedule } : params.schedule,\n enabled: true,\n }),\n} as const;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Trigger Registry Protocol\n * \n * Lightweight automation triggers for simple integrations.\n * Inspired by Zapier, n8n, and Workato connector architectures.\n * \n * ## When to use Trigger Registry vs. Integration Connector?\n * \n * **Use `automation/trigger-registry.zod.ts` when:**\n * - Building simple automation triggers (e.g., \"when Slack message received, create task\")\n * - No complex authentication needed (simple API keys, basic auth)\n * - Lightweight, single-purpose integrations\n * - Quick setup with minimal configuration\n * - Webhook-based or polling triggers for automation workflows\n * \n * **Use `integration/connector.zod.ts` when:**\n * - Building enterprise-grade connectors (e.g., Salesforce, SAP, Oracle)\n * - Complex OAuth2/SAML authentication required\n * - Bidirectional sync with field mapping and transformations\n * - Webhook management and rate limiting required\n * - Full CRUD operations and data synchronization\n * \n * ## Use Cases\n * \n * 1. **Simple Automation Triggers**\n * - Slack notifications on record updates\n * - Twilio SMS on workflow events\n * - SendGrid email templates\n * \n * 2. **Lightweight Operations**\n * - Single-action integrations (send, notify, log)\n * - No bidirectional sync required\n * - Webhook receivers for incoming events\n * \n * 3. **Quick Integrations**\n * - Payment webhooks (Stripe, PayPal)\n * - Communication triggers (Twilio, SendGrid, Slack)\n * - Simple API calls to third-party services\n * \n * @see https://zapier.com/developer/documentation/v2/\n * @see https://docs.n8n.io/integrations/creating-nodes/\n * @see ../../integration/connector.zod.ts for enterprise connectors\n * \n * @example\n * ```typescript\n * const slackNotifier: Connector = {\n * id: 'slack_notify',\n * name: 'Slack Notification',\n * category: 'communication',\n * authentication: {\n * type: 'apiKey',\n * fields: [{ name: 'webhook_url', label: 'Webhook URL', type: 'url' }]\n * },\n * operations: [\n * { id: 'send_message', name: 'Send Message', type: 'action' }\n * ]\n * }\n * ```\n */\n\n/**\n * Connector Category\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const ConnectorCategorySchema = lazySchema(() => z.enum([\n 'crm', // Customer Relationship Management\n 'payment', // Payment processors\n 'communication', // Email, SMS, Chat\n 'storage', // File storage\n 'analytics', // Analytics platforms\n 'database', // Databases\n 'marketing', // Marketing automation\n 'accounting', // Accounting software\n 'hr', // Human resources\n 'productivity', // Productivity tools\n 'ecommerce', // E-commerce platforms\n 'support', // Customer support\n 'devtools', // Developer tools\n 'social', // Social media\n 'other', // Other category\n]));\n\nexport type ConnectorCategory = z.infer<typeof ConnectorCategorySchema>;\n\n/**\n * Authentication Type\n */\nexport const AuthenticationTypeSchema = lazySchema(() => z.enum([\n 'none', // No authentication\n 'apiKey', // API key\n 'basic', // Basic auth (username/password)\n 'bearer', // Bearer token\n 'oauth1', // OAuth 1.0\n 'oauth2', // OAuth 2.0\n 'custom', // Custom authentication\n]));\n\nexport type AuthenticationType = z.infer<typeof AuthenticationTypeSchema>;\n\n/**\n * Authentication Field Schema\n */\nexport const AuthFieldSchema = lazySchema(() => z.object({\n /**\n * Field name (machine name)\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Field name (snake_case)'),\n\n /**\n * Field label\n */\n label: z.string().describe('Field label'),\n\n /**\n * Field type\n */\n type: z.enum(['text', 'password', 'url', 'select'])\n .default('text')\n .describe('Field type'),\n\n /**\n * Field description\n */\n description: z.string().optional().describe('Field description'),\n\n /**\n * Whether field is required\n */\n required: z.boolean().default(true).describe('Required field'),\n\n /**\n * Default value\n */\n default: z.string().optional().describe('Default value'),\n\n /**\n * Options for select fields\n */\n options: z.array(z.object({\n label: z.string(),\n value: z.string(),\n })).optional().describe('Select field options'),\n\n /**\n * Placeholder text\n */\n placeholder: z.string().optional().describe('Placeholder text'),\n}));\n\nexport type AuthField = z.infer<typeof AuthFieldSchema>;\n\n/**\n * OAuth 2.0 Configuration\n */\nexport const OAuth2ConfigSchema = lazySchema(() => z.object({\n /**\n * Authorization URL\n */\n authorizationUrl: z.string().url().describe('Authorization endpoint URL'),\n\n /**\n * Token URL\n */\n tokenUrl: z.string().url().describe('Token endpoint URL'),\n\n /**\n * Scopes to request\n */\n scopes: z.array(z.string()).optional().describe('OAuth scopes'),\n\n /**\n * Client ID field name\n */\n clientIdField: z.string().default('client_id').describe('Client ID field name'),\n\n /**\n * Client secret field name\n */\n clientSecretField: z.string().default('client_secret').describe('Client secret field name'),\n}));\n\nexport type OAuth2Config = z.infer<typeof OAuth2ConfigSchema>;\n\n/**\n * Authentication Configuration\n */\nexport const AuthenticationSchema = lazySchema(() => z.object({\n /**\n * Authentication type\n */\n type: AuthenticationTypeSchema.describe('Authentication type'),\n\n /**\n * Authentication fields\n * Configuration fields needed for this auth type\n */\n fields: z.array(AuthFieldSchema).optional().describe('Authentication fields'),\n\n /**\n * OAuth 2.0 configuration (when type is oauth2)\n */\n oauth2: OAuth2ConfigSchema.optional().describe('OAuth 2.0 configuration'),\n\n /**\n * Test authentication instructions\n */\n test: z.object({\n url: z.string().optional().describe('Test endpoint URL'),\n method: z.enum(['GET', 'POST', 'PUT', 'DELETE']).default('GET').describe('HTTP method'),\n }).optional().describe('Authentication test configuration'),\n}));\n\nexport type Authentication = z.infer<typeof AuthenticationSchema>;\n\n/**\n * Connector Operation Type\n */\nexport const OperationTypeSchema = lazySchema(() => z.enum([\n 'read', // Read/query data\n 'write', // Create/update data\n 'delete', // Delete data\n 'search', // Search operation\n 'trigger', // Webhook/polling trigger\n 'action', // Custom action\n]));\n\nexport type OperationType = z.infer<typeof OperationTypeSchema>;\n\n/**\n * Operation Parameter Schema\n */\nexport const OperationParameterSchema = lazySchema(() => z.object({\n /**\n * Parameter name\n */\n name: z.string().describe('Parameter name'),\n\n /**\n * Parameter label\n */\n label: z.string().describe('Parameter label'),\n\n /**\n * Parameter description\n */\n description: z.string().optional().describe('Parameter description'),\n\n /**\n * Parameter type\n */\n type: z.enum(['string', 'number', 'boolean', 'array', 'object', 'date', 'file'])\n .describe('Parameter type'),\n\n /**\n * Whether parameter is required\n */\n required: z.boolean().default(false).describe('Required parameter'),\n\n /**\n * Default value\n */\n default: z.unknown().optional().describe('Default value'),\n\n /**\n * Validation schema\n */\n validation: z.record(z.string(), z.unknown()).optional().describe('Validation rules'),\n\n /**\n * Dynamic options function\n */\n dynamicOptions: z.string().optional().describe('Function to load dynamic options'),\n}));\n\nexport type OperationParameter = z.infer<typeof OperationParameterSchema>;\n\n/**\n * Connector Operation Schema\n */\nexport const ConnectorOperationSchema = lazySchema(() => z.object({\n /**\n * Operation identifier\n */\n id: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Operation ID (snake_case)'),\n\n /**\n * Operation name\n */\n name: z.string().describe('Operation name'),\n\n /**\n * Operation description\n */\n description: z.string().optional().describe('Operation description'),\n\n /**\n * Operation type\n */\n type: OperationTypeSchema.describe('Operation type'),\n\n /**\n * Input parameters\n */\n inputSchema: z.array(OperationParameterSchema)\n .optional()\n .describe('Input parameters'),\n\n /**\n * Output schema\n */\n outputSchema: z.record(z.string(), z.unknown())\n .optional()\n .describe('Output schema'),\n\n /**\n * Sample output for documentation\n */\n sampleOutput: z.unknown().optional().describe('Sample output'),\n\n /**\n * Whether operation supports pagination\n */\n supportsPagination: z.boolean().default(false).describe('Supports pagination'),\n\n /**\n * Whether operation supports filtering\n */\n supportsFiltering: z.boolean().default(false).describe('Supports filtering'),\n}));\n\nexport type ConnectorOperation = z.infer<typeof ConnectorOperationSchema>;\n\n/**\n * Connector Trigger Schema\n * \n * Triggers are special operations that watch for events and initiate workflows.\n */\nexport const ConnectorTriggerSchema = lazySchema(() => z.object({\n /**\n * Trigger identifier\n */\n id: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Trigger ID (snake_case)'),\n\n /**\n * Trigger name\n */\n name: z.string().describe('Trigger name'),\n\n /**\n * Trigger description\n */\n description: z.string().optional().describe('Trigger description'),\n\n /**\n * Trigger type\n */\n type: z.enum(['webhook', 'polling', 'stream'])\n .describe('Trigger mechanism'),\n\n /**\n * Trigger configuration\n */\n config: z.record(z.string(), z.unknown())\n .optional()\n .describe('Trigger configuration'),\n\n /**\n * Output schema\n */\n outputSchema: z.record(z.string(), z.unknown())\n .optional()\n .describe('Event payload schema'),\n\n /**\n * Polling interval (for polling triggers)\n * In milliseconds\n */\n pollingIntervalMs: z.number().int().min(1000)\n .optional()\n .describe('Polling interval in ms'),\n}));\n\nexport type ConnectorTrigger = z.infer<typeof ConnectorTriggerSchema>;\n\n/**\n * Connector Schema\n * \n * Complete definition of a connector to an external system.\n */\nexport const ConnectorSchema = lazySchema(() => z.object({\n /**\n * Connector identifier\n * Must be globally unique\n */\n id: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Connector ID (snake_case)'),\n\n /**\n * Connector name\n */\n name: z.string().describe('Connector name'),\n\n /**\n * Connector description\n */\n description: z.string().optional().describe('Connector description'),\n\n /**\n * Connector version (semver)\n */\n version: z.string().optional().describe('Connector version'),\n\n /**\n * Connector icon URL or name\n */\n icon: z.string().optional().describe('Connector icon'),\n\n /**\n * Connector category\n */\n category: ConnectorCategorySchema.describe('Connector category'),\n\n /**\n * Base URL for API calls\n */\n baseUrl: z.string().url().optional().describe('API base URL'),\n\n /**\n * Authentication configuration\n */\n authentication: AuthenticationSchema.describe('Authentication config'),\n\n /**\n * Available operations\n */\n operations: z.array(ConnectorOperationSchema)\n .optional()\n .describe('Connector operations'),\n\n /**\n * Available triggers\n */\n triggers: z.array(ConnectorTriggerSchema)\n .optional()\n .describe('Connector triggers'),\n\n /**\n * Rate limiting information\n */\n rateLimit: z.object({\n requestsPerSecond: z.number().optional().describe('Max requests per second'),\n requestsPerMinute: z.number().optional().describe('Max requests per minute'),\n requestsPerHour: z.number().optional().describe('Max requests per hour'),\n }).optional().describe('Rate limiting'),\n\n /**\n * Connector author\n */\n author: z.string().optional().describe('Connector author'),\n\n /**\n * Documentation URL\n */\n documentation: z.string().url().optional().describe('Documentation URL'),\n\n /**\n * Homepage URL\n */\n homepage: z.string().url().optional().describe('Homepage URL'),\n\n /**\n * License\n */\n license: z.string().optional().describe('License (SPDX identifier)'),\n\n /**\n * Tags for discovery\n */\n tags: z.array(z.string()).optional().describe('Connector tags'),\n\n /**\n * Whether connector is verified/certified\n */\n verified: z.boolean().default(false).describe('Verified connector'),\n\n /**\n * Custom metadata\n */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Custom metadata'),\n}));\n\nexport type Connector = z.infer<typeof ConnectorSchema>;\n\n/**\n * Connector Instance Schema\n * \n * A configured instance of a connector with credentials.\n */\nexport const ConnectorInstanceSchema = lazySchema(() => z.object({\n /**\n * Instance ID\n */\n id: z.string().describe('Instance ID'),\n\n /**\n * Connector ID this instance uses\n */\n connectorId: z.string().describe('Connector ID'),\n\n /**\n * Instance name\n */\n name: z.string().describe('Instance name'),\n\n /**\n * Instance description\n */\n description: z.string().optional().describe('Instance description'),\n\n /**\n * Authentication credentials (encrypted)\n */\n credentials: z.record(z.string(), z.unknown()).describe('Encrypted credentials'),\n\n /**\n * Additional configuration\n */\n config: z.record(z.string(), z.unknown()).optional().describe('Additional config'),\n\n /**\n * Whether instance is active\n */\n active: z.boolean().default(true).describe('Instance active status'),\n\n /**\n * Created timestamp\n */\n createdAt: z.string().datetime().optional().describe('Creation time'),\n\n /**\n * Last tested timestamp\n */\n lastTestedAt: z.string().datetime().optional().describe('Last test time'),\n\n /**\n * Test status\n */\n testStatus: z.enum(['unknown', 'success', 'failed'])\n .default('unknown')\n .describe('Connection test status'),\n}));\n\nexport type ConnectorInstance = z.infer<typeof ConnectorInstanceSchema>;\n\n/**\n * Helper factory for creating connectors\n */\nexport const Connector = {\n /**\n * Create a basic API key connector\n */\n apiKey: (params: {\n id: string;\n name: string;\n category: ConnectorCategory;\n baseUrl: string;\n }): Connector => ({\n id: params.id,\n name: params.name,\n category: params.category,\n baseUrl: params.baseUrl,\n authentication: {\n type: 'apiKey',\n fields: [\n {\n name: 'api_key',\n label: 'API Key',\n type: 'password',\n required: true,\n },\n ],\n },\n verified: false,\n }),\n\n /**\n * Create an OAuth 2.0 connector\n */\n oauth2: (params: {\n id: string;\n name: string;\n category: ConnectorCategory;\n baseUrl: string;\n authUrl: string;\n tokenUrl: string;\n scopes?: string[];\n }): Connector => ({\n id: params.id,\n name: params.name,\n category: params.category,\n baseUrl: params.baseUrl,\n authentication: {\n type: 'oauth2',\n oauth2: {\n authorizationUrl: params.authUrl,\n tokenUrl: params.tokenUrl,\n clientIdField: 'client_id',\n clientSecretField: 'client_secret',\n scopes: params.scopes,\n },\n },\n verified: false,\n }),\n} as const;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { ExpressionInputSchema } from './expression.zod';\n\n/**\n * Base Field Mapping Protocol\n * \n * Shared by: ETL, Sync, Connector, External Lookup\n * \n * This module provides the canonical field mapping schema used across\n * ObjectStack for data transformation and synchronization.\n * \n * **Use Cases:**\n * - ETL pipelines (data/mapping.zod.ts)\n * - Data synchronization (automation/sync.zod.ts)\n * - Integration connectors (integration/connector.zod.ts)\n * - External lookups (data/external-lookup.zod.ts)\n * \n * @example Basic field mapping\n * ```typescript\n * const mapping: FieldMapping = {\n * source: 'external_user_id',\n * target: 'user_id',\n * };\n * ```\n * \n * @example With transformation\n * ```typescript\n * const mapping: FieldMapping = {\n * source: 'user_name',\n * target: 'name',\n * transform: { type: 'cast', targetType: 'string' },\n * defaultValue: 'Unknown'\n * };\n * ```\n */\n\n/**\n * Transform Type Schema\n * \n * Defines the type of transformation to apply to a field value.\n * Implementations can extend this for domain-specific transforms.\n */\nimport { lazySchema } from './lazy-schema';\nexport const TransformTypeSchema = lazySchema(() => z.discriminatedUnion('type', [\n z.object({\n type: z.literal('constant'),\n value: z.unknown().describe('Constant value to use'),\n }).describe('Set a constant value'),\n \n z.object({\n type: z.literal('cast'),\n targetType: z.enum(['string', 'number', 'boolean', 'date']).describe('Target data type'),\n }).describe('Cast to a specific data type'),\n \n z.object({\n type: z.literal('lookup'),\n table: z.string().describe('Lookup table name'),\n keyField: z.string().describe('Field to match on'),\n valueField: z.string().describe('Field to retrieve'),\n }).describe('Lookup value from another table'),\n \n z.object({\n type: z.literal('javascript'),\n expression: ExpressionInputSchema.describe('JS expression (dialect=\"js\" recommended). e.g. value.toUpperCase()'),\n }).describe('Custom JavaScript transformation'),\n \n z.object({\n type: z.literal('map'),\n mappings: z.record(z.string(), z.unknown()).describe('Value mappings (e.g., {\"Active\": \"active\"})'),\n }).describe('Map values using a dictionary'),\n]));\n\nexport type TransformType = z.infer<typeof TransformTypeSchema>;\n\n/**\n * Field Mapping Schema\n * \n * Base schema for mapping fields between source and target systems.\n * \n * **NAMING CONVENTION:**\n * - source: Field name in the source system\n * - target: Field name in the target system (should be snake_case for ObjectStack)\n * \n * @example\n * ```typescript\n * {\n * source: 'FirstName',\n * target: 'first_name',\n * transform: { type: 'cast', targetType: 'string' },\n * defaultValue: ''\n * }\n * ```\n */\nexport const FieldMappingSchema = lazySchema(() => z.object({\n /**\n * Source field name\n */\n source: z.string().describe('Source field name'),\n \n /**\n * Target field name (should be snake_case for ObjectStack)\n */\n target: z.string().describe('Target field name'),\n \n /**\n * Transformation to apply\n */\n transform: TransformTypeSchema.optional().describe('Transformation to apply'),\n \n /**\n * Default value if source is null/undefined\n */\n defaultValue: z.unknown().optional().describe('Default if source is null/undefined'),\n}));\n\nexport type FieldMapping = z.infer<typeof FieldMappingSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { FieldMappingSchema } from '../shared/mapping.zod';\nimport { ExpressionInputSchema, CronExpressionInputSchema } from '../shared/expression.zod';\n\n/**\n * Data Sync Protocol - LEVEL 1: Simple Synchronization\n * \n * Inspired by Salesforce Connect, Segment Sync, and Census Reverse ETL.\n * \n * **Positioning in 3-Layer Architecture:**\n * - **L1: Simple Sync** (THIS FILE) - Business users - Sync Salesforce to Sheets\n * - **L2: ETL Pipeline** (automation/etl.zod.ts) - Data engineers - Aggregate 10 sources to warehouse\n * - **L3: Enterprise Connector** (integration/connector.zod.ts) - System integrators - Full SAP integration\n * \n * Data sync provides bidirectional or unidirectional data synchronization\n * between ObjectStack and external systems, maintaining data consistency\n * across platforms.\n * \n * **SCOPE: Simple field mappings only. NO complex transformations.**\n * For complex transformations (joins, aggregates, custom SQL), use ETL Pipeline (Level 2).\n * \n * ## When to Use This Layer\n * \n * **Use Simple Sync when:**\n * - Syncing 1:1 fields between two systems\n * - Simple field transformations (uppercase, cast, etc.)\n * - No complex logic required\n * - Business users need to configure integrations\n * \n * **Examples:**\n * - Salesforce Contact ↔ Google Sheets\n * - HubSpot Company ↔ CRM Account\n * - Shopify Orders → Accounting System\n * \n * **When to upgrade:**\n * - Need multi-source joins → Use {@link file://./etl.zod.ts | ETL Pipeline}\n * - Need complex authentication/webhooks → Use {@link file://../integration/connector.zod.ts | Enterprise Connector}\n * - Need aggregations or data warehousing → Use {@link file://./etl.zod.ts | ETL Pipeline}\n * \n * @see {@link file://./etl.zod.ts} for Level 2 (data engineering)\n * @see {@link file://../integration/connector.zod.ts} for Level 3 (enterprise integration)\n * \n * ## Use Cases\n * \n * 1. **CRM Integration**\n * - Sync contacts between ObjectStack and Salesforce\n * - Keep opportunity data synchronized\n * - Bidirectional updates\n * \n * 2. **Customer Data Platform (CDP)**\n * - Sync user profiles to Segment\n * - Enrichment data from Clearbit\n * - Marketing automation sync\n * \n * 3. **Operational Analytics**\n * - Sync production data to analytics warehouse\n * - Real-time dashboards\n * - Business intelligence\n * \n * @see https://help.salesforce.com/s/articleView?id=sf.platform_connect_about.htm\n * @see https://segment.com/docs/connections/sync/\n * @see https://www.getcensus.com/\n * \n * @example\n * ```typescript\n * const contactSync: DataSyncConfig = {\n * name: 'salesforce_contact_sync',\n * label: 'Salesforce Contact Sync',\n * source: {\n * object: 'contact',\n * filters: { status: 'active' }\n * },\n * destination: {\n * connector: 'salesforce',\n * operation: 'upsert_contact',\n * mapping: {\n * first_name: 'FirstName',\n * last_name: 'LastName',\n * email: 'Email'\n * }\n * },\n * syncMode: 'incremental',\n * schedule: '0 * * * *' // Hourly\n * }\n * ```\n */\n\n/**\n * Sync Direction\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const SyncDirectionSchema = lazySchema(() => z.enum([\n 'push', // ObjectStack -> External (one-way)\n 'pull', // External -> ObjectStack (one-way)\n 'bidirectional', // Both directions\n]));\n\nexport type SyncDirection = z.infer<typeof SyncDirectionSchema>;\n\n/**\n * Sync Mode\n */\nexport const SyncModeSchema = lazySchema(() => z.enum([\n 'full', // Full refresh every time\n 'incremental', // Only sync changed records\n 'realtime', // Real-time streaming sync\n]));\n\nexport type SyncMode = z.infer<typeof SyncModeSchema>;\n\n/**\n * Conflict Resolution Strategy\n */\nexport const ConflictResolutionSchema = lazySchema(() => z.enum([\n 'source_wins', // Source system always wins\n 'destination_wins', // Destination system always wins\n 'latest_wins', // Most recently modified wins\n 'manual', // Flag for manual resolution\n 'merge', // Smart merge (custom logic)\n]));\n\nexport type ConflictResolution = z.infer<typeof ConflictResolutionSchema>;\n\n/**\n * Field Mapping for Data Sync\n * \n * Uses the canonical field mapping protocol from shared/mapping.zod.ts\n * for simple 1:1 field transformations.\n * \n * @see {@link FieldMappingSchema} for the base field mapping schema\n */\n\n/**\n * Data Source Configuration\n */\nexport const DataSourceConfigSchema = lazySchema(() => z.object({\n /**\n * Source object name\n * For ObjectStack objects\n */\n object: z.string().optional().describe('ObjectStack object name'),\n\n /**\n * Filter conditions\n * Only sync records matching these filters\n */\n filters: z.unknown().optional().describe('Filter conditions'),\n\n /**\n * Fields to include\n * If not specified, all fields are synced\n */\n fields: z.array(z.string()).optional().describe('Fields to sync'),\n\n /**\n * External connector instance ID\n * For external data sources\n */\n connectorInstanceId: z.string().optional().describe('Connector instance ID'),\n\n /**\n * External resource identifier\n * e.g., Salesforce object name, database table, API endpoint\n */\n externalResource: z.string().optional().describe('External resource ID'),\n}));\n\nexport type DataSourceConfig = z.infer<typeof DataSourceConfigSchema>;\n\n/**\n * Data Destination Configuration\n */\nexport const DataDestinationConfigSchema = lazySchema(() => z.object({\n /**\n * Destination object name\n * For ObjectStack objects\n */\n object: z.string().optional().describe('ObjectStack object name'),\n\n /**\n * Connector instance ID\n * For external destinations\n */\n connectorInstanceId: z.string().optional().describe('Connector instance ID'),\n\n /**\n * Operation to perform\n */\n operation: z.enum([\n 'insert', // Create new records only\n 'update', // Update existing records only\n 'upsert', // Insert or update based on key\n 'delete', // Delete records\n 'sync', // Full synchronization\n ]).describe('Sync operation'),\n\n /**\n * Field mappings\n * Maps source fields to destination fields\n */\n mapping: z.union([\n z.record(z.string(), z.string()), // Simple mapping: { sourceField: 'destField' }\n z.array(FieldMappingSchema), // Advanced mapping with transformations\n ]).optional().describe('Field mappings'),\n\n /**\n * External resource identifier\n */\n externalResource: z.string().optional().describe('External resource ID'),\n\n /**\n * Match key for upsert operations\n * Fields to use for matching existing records\n */\n matchKey: z.array(z.string()).optional().describe('Match key fields'),\n}));\n\nexport type DataDestinationConfig = z.infer<typeof DataDestinationConfigSchema>;\n\n/**\n * Data Sync Configuration Schema\n * \n * Complete definition of a data synchronization between systems.\n */\nexport const DataSyncConfigSchema = lazySchema(() => z.object({\n /**\n * Sync configuration name (snake_case)\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Sync configuration name (snake_case)'),\n\n /**\n * Human-readable label\n */\n label: z.string().optional().describe('Sync display name'),\n\n /**\n * Description\n */\n description: z.string().optional().describe('Sync description'),\n\n /**\n * Source configuration\n */\n source: DataSourceConfigSchema.describe('Data source'),\n\n /**\n * Destination configuration\n */\n destination: DataDestinationConfigSchema.describe('Data destination'),\n\n /**\n * Sync direction\n */\n direction: SyncDirectionSchema.default('push').describe('Sync direction'),\n\n /**\n * Sync mode\n */\n syncMode: SyncModeSchema.default('incremental').describe('Sync mode'),\n\n /**\n * Conflict resolution strategy\n */\n conflictResolution: ConflictResolutionSchema\n .default('latest_wins')\n .describe('Conflict resolution'),\n\n /**\n * Execution schedule (cron expression)\n * For scheduled syncs\n * \n * @example \"0 * * * *\" - Hourly\n * @example \"*\\/15 * * * *\" - Every 15 minutes\n */\n schedule: CronExpressionInputSchema.optional().describe('Cron schedule'),\n\n /**\n * Whether sync is enabled\n */\n enabled: z.boolean().default(true).describe('Sync enabled'),\n\n /**\n * Change tracking field\n * Field to track when records were last modified\n * Used for incremental sync\n * \n * @example \"updated_at\", \"modified_date\"\n */\n changeTrackingField: z.string()\n .optional()\n .describe('Field for change tracking'),\n\n /**\n * Batch size\n * Number of records to process per batch\n */\n batchSize: z.number().int().min(1).max(10000)\n .default(100)\n .describe('Batch size for processing'),\n\n /**\n * Retry configuration\n */\n retry: z.object({\n maxAttempts: z.number().int().min(0).default(3).describe('Max retries'),\n backoffMs: z.number().int().min(0).default(30000).describe('Backoff duration'),\n }).optional().describe('Retry configuration'),\n\n /**\n * Pre-sync validation rules\n */\n validation: z.object({\n required: z.array(z.string()).optional().describe('Required fields'),\n unique: z.array(z.string()).optional().describe('Unique constraint fields'),\n custom: z.array(z.object({\n name: z.string(),\n condition: ExpressionInputSchema.describe('Validation predicate (CEL).'),\n message: z.string().describe('Error message'),\n })).optional().describe('Custom validation rules'),\n }).optional().describe('Validation rules'),\n\n /**\n * Error handling configuration\n */\n errorHandling: z.object({\n onValidationError: z.enum(['skip', 'fail', 'log']).default('skip'),\n onSyncError: z.enum(['skip', 'fail', 'retry']).default('retry'),\n notifyOnError: z.array(z.string()).optional().describe('Email notifications'),\n }).optional().describe('Error handling'),\n\n /**\n * Performance optimization\n */\n optimization: z.object({\n parallelBatches: z.boolean().default(false).describe('Process batches in parallel'),\n cacheEnabled: z.boolean().default(true).describe('Enable caching'),\n compressionEnabled: z.boolean().default(false).describe('Enable compression'),\n }).optional().describe('Performance optimization'),\n\n /**\n * Audit and logging\n */\n audit: z.object({\n logLevel: z.enum(['none', 'error', 'warn', 'info', 'debug']).default('info'),\n retainLogsForDays: z.number().int().min(1).default(30),\n trackChanges: z.boolean().default(true).describe('Track all changes'),\n }).optional().describe('Audit configuration'),\n\n /**\n * Tags for organization\n */\n tags: z.array(z.string()).optional().describe('Sync tags'),\n\n /**\n * Custom metadata\n */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Custom metadata'),\n}));\n\nexport type DataSyncConfig = z.infer<typeof DataSyncConfigSchema>;\n\n/**\n * Sync Execution Status\n */\nexport const SyncExecutionStatusSchema = lazySchema(() => z.enum([\n 'pending', // Queued\n 'running', // Currently executing\n 'completed', // Successfully completed\n 'partial', // Completed with some errors\n 'failed', // Failed\n 'cancelled', // Manually cancelled\n]));\n\nexport type SyncExecutionStatus = z.infer<typeof SyncExecutionStatusSchema>;\n\n/**\n * Sync Execution Result Schema\n * \n * Result of a sync execution.\n */\nexport const SyncExecutionResultSchema = lazySchema(() => z.object({\n /**\n * Execution ID\n */\n id: z.string().describe('Execution ID'),\n\n /**\n * Sync configuration name\n */\n syncName: z.string().describe('Sync name'),\n\n /**\n * Execution status\n */\n status: SyncExecutionStatusSchema.describe('Execution status'),\n\n /**\n * Start timestamp\n */\n startedAt: z.string().datetime().describe('Start time'),\n\n /**\n * End timestamp\n */\n completedAt: z.string().datetime().optional().describe('Completion time'),\n\n /**\n * Duration in milliseconds\n */\n durationMs: z.number().optional().describe('Duration in ms'),\n\n /**\n * Statistics\n */\n stats: z.object({\n recordsProcessed: z.number().int().default(0).describe('Total records processed'),\n recordsInserted: z.number().int().default(0).describe('Records inserted'),\n recordsUpdated: z.number().int().default(0).describe('Records updated'),\n recordsDeleted: z.number().int().default(0).describe('Records deleted'),\n recordsSkipped: z.number().int().default(0).describe('Records skipped'),\n recordsErrored: z.number().int().default(0).describe('Records with errors'),\n conflictsDetected: z.number().int().default(0).describe('Conflicts detected'),\n conflictsResolved: z.number().int().default(0).describe('Conflicts resolved'),\n }).optional().describe('Execution statistics'),\n\n /**\n * Errors encountered\n */\n errors: z.array(z.object({\n recordId: z.string().optional().describe('Record ID'),\n field: z.string().optional().describe('Field name'),\n message: z.string().describe('Error message'),\n code: z.string().optional().describe('Error code'),\n })).optional().describe('Errors'),\n\n /**\n * Execution logs\n */\n logs: z.array(z.string()).optional().describe('Execution logs'),\n}));\n\nexport type SyncExecutionResult = z.infer<typeof SyncExecutionResultSchema>;\n\n/**\n * Helper factory for creating sync configurations\n */\nexport const Sync = {\n /**\n * Create a simple object-to-object sync\n */\n objectSync: (params: {\n name: string;\n sourceObject: string;\n destObject: string;\n mapping: Record<string, string>;\n schedule?: string | import(\"../shared/expression.zod\").Expression;\n }): DataSyncConfig => ({\n name: params.name,\n source: {\n object: params.sourceObject,\n },\n destination: {\n object: params.destObject,\n operation: 'upsert',\n mapping: params.mapping,\n },\n direction: 'push',\n syncMode: 'incremental',\n conflictResolution: 'latest_wins',\n batchSize: 100,\n schedule: typeof params.schedule === 'string' ? { dialect: 'cron' as const, source: params.schedule } : params.schedule,\n enabled: true,\n }),\n\n /**\n * Create a connector sync\n */\n connectorSync: (params: {\n name: string;\n sourceObject: string;\n connectorInstanceId: string;\n externalResource: string;\n mapping: Record<string, string>;\n schedule?: string | import(\"../shared/expression.zod\").Expression;\n }): DataSyncConfig => ({\n name: params.name,\n source: {\n object: params.sourceObject,\n },\n destination: {\n connectorInstanceId: params.connectorInstanceId,\n externalResource: params.externalResource,\n operation: 'upsert',\n mapping: params.mapping,\n },\n direction: 'push',\n syncMode: 'incremental',\n conflictResolution: 'latest_wins',\n batchSize: 100,\n schedule: typeof params.schedule === 'string' ? { dialect: 'cron' as const, source: params.schedule } : params.schedule,\n enabled: true,\n }),\n\n /**\n * Create a bidirectional sync\n */\n bidirectionalSync: (params: {\n name: string;\n object: string;\n connectorInstanceId: string;\n externalResource: string;\n mapping: Record<string, string>;\n schedule?: string | import(\"../shared/expression.zod\").Expression;\n }): DataSyncConfig => ({\n name: params.name,\n source: {\n object: params.object,\n },\n destination: {\n connectorInstanceId: params.connectorInstanceId,\n externalResource: params.externalResource,\n operation: 'sync',\n mapping: params.mapping,\n },\n direction: 'bidirectional',\n syncMode: 'incremental',\n conflictResolution: 'latest_wins',\n batchSize: 100,\n schedule: typeof params.schedule === 'string' ? { dialect: 'cron' as const, source: params.schedule } : params.schedule,\n enabled: true,\n }),\n} as const;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * XState-inspired State Machine Protocol\n * Used to define strict business logic constraints and lifecycle management.\n * Prevent AI \"hallucinations\" by enforcing valid valid transitions.\n */\n\n// --- Primitives ---\n\n/**\n * References a named action (side effect)\n * Can be a script, a webhook, or a field update.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const ActionRefSchema = lazySchema(() => z.union([\n z.string().describe('Action Name'),\n z.object({\n type: z.string(), // e.g., 'xstate.assign', 'log', 'email'\n params: z.record(z.string(), z.unknown()).optional()\n })\n]));\n\n/**\n * References a named condition (guard)\n * Must evaluate to true for the transition to occur.\n */\nexport const GuardRefSchema = lazySchema(() => z.union([\n z.string().describe('Guard Name (e.g., \"isManager\", \"amountGT1000\")'),\n z.object({\n type: z.string(),\n params: z.record(z.string(), z.unknown()).optional()\n })\n]));\n\n// --- Core Structure ---\n\n/**\n * State Transition Definition\n * \"When EVENT happens, if GUARD is true, go to TARGET and run ACTIONS\"\n */\nexport const TransitionSchema = lazySchema(() => z.object({\n target: z.string().optional().describe('Target State ID'),\n cond: GuardRefSchema.optional().describe('Condition (Guard) required to take this path'),\n actions: z.array(ActionRefSchema).optional().describe('Actions to execute during transition'),\n description: z.string().optional().describe('Human readable description of this rule'),\n}));\n\n/**\n * Event Definition (Signals)\n */\nexport const EventSchema = lazySchema(() => z.object({\n type: z.string().describe('Event Type (e.g. \"APPROVE\", \"REJECT\", \"Submit\")'),\n // Payload validation schema could go here if we want deep validation\n schema: z.record(z.string(), z.unknown()).optional().describe('Expected event payload structure'),\n}));\n\nexport type ActionRef = z.infer<typeof ActionRefSchema>;\nexport type Transition = z.infer<typeof TransitionSchema>;\n\nexport type StateNodeConfig = {\n type?: 'atomic' | 'compound' | 'parallel' | 'final' | 'history';\n entry?: ActionRef[];\n exit?: ActionRef[];\n on?: Record<string, string | Transition | Transition[]>;\n always?: Transition[];\n initial?: string;\n states?: Record<string, StateNodeConfig>;\n meta?: {\n label?: string;\n description?: string;\n color?: string;\n aiInstructions?: string;\n };\n};\n\n/**\n * State Node Definition\n */\nexport const StateNodeSchema: z.ZodType<StateNodeConfig> = z.lazy(() => z.object({\n /** Type of state */\n type: z.enum(['atomic', 'compound', 'parallel', 'final', 'history']).default('atomic'),\n \n /** Entry/Exit Actions */\n entry: z.array(ActionRefSchema).optional().describe('Actions to run when entering this state'),\n exit: z.array(ActionRefSchema).optional().describe('Actions to run when leaving this state'),\n \n /** Transitions (Events) */\n on: z.record(z.string(), z.union([\n z.string(), // Shorthand target\n TransitionSchema, \n z.array(TransitionSchema)\n ])).optional().describe('Map of Event Type -> Transition Definition'),\n \n /** Always Transitions (Eventless) */\n always: z.array(TransitionSchema).optional(),\n\n /** Nesting (Hierarchical States) */\n initial: z.string().optional().describe('Initial child state (if compound)'),\n states: z.record(z.string(), StateNodeSchema).optional(),\n \n /** Metadata for UI/AI */\n meta: z.object({\n label: z.string().optional(),\n description: z.string().optional(),\n color: z.string().optional(), // For UI diagrams\n // Instructions for AI Agent when in this state\n aiInstructions: z.string().optional().describe('Specific instructions for AI when in this state'),\n }).optional(),\n}));\n\n/**\n * Top-Level State Machine Definition\n */\nexport const StateMachineSchema = lazySchema(() => z.object({\n id: SnakeCaseIdentifierSchema.describe('Unique Machine ID'),\n description: z.string().optional(),\n \n /** Context (Memory) Schema */\n contextSchema: z.record(z.string(), z.unknown()).optional().describe('Zod Schema for the machine context/memory'),\n \n /** Initial State */\n initial: z.string().describe('Initial State ID'),\n \n /** State Definitions */\n states: z.record(z.string(), StateNodeSchema).describe('State Nodes'),\n \n /** Global Listeners */\n on: z.record(z.string(), z.union([z.string(), TransitionSchema, z.array(TransitionSchema)])).optional(),\n}));\n\nexport type StateMachineConfig = z.infer<typeof StateMachineSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\n/**\n * @module automation/node-executor\n *\n * Node Executor Plugin Protocol — Wait Node Pause/Resume\n *\n * Defines the specification for node executor plugins, with a focus on\n * the `wait` node executor that supports flow pause and external-event\n * resume (signal, manual, webhook, condition).\n *\n * The protocol covers:\n * - **WaitResumePayload**: The payload delivered when a paused flow is resumed\n * - **WaitExecutorConfig**: Configuration for the wait executor plugin\n * - **NodeExecutorDescriptor**: Generic node executor plugin descriptor\n */\n\nimport { z } from 'zod';\n\n// ─── Wait Event Types ────────────────────────────────────────────────\n\n/**\n * Wait event type — determines how a wait node is resumed.\n * Mirrors the `waitEventConfig.eventType` in flow.zod.ts.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const WaitEventTypeSchema = lazySchema(() => z.enum([\n 'timer', // Resume after duration/datetime\n 'signal', // Resume on named signal dispatch\n 'webhook', // Resume on incoming webhook call\n 'manual', // Resume by manual operator action\n 'condition', // Resume when a data condition is met (polling)\n]).describe('Wait event type determining how a paused flow is resumed'));\n\nexport type WaitEventType = z.infer<typeof WaitEventTypeSchema>;\n\n// ─── Wait Resume Payload ─────────────────────────────────────────────\n\n/**\n * Payload delivered when a paused wait node is resumed by an external event.\n * The runtime engine passes this to the flow executor to continue execution.\n */\nexport const WaitResumePayloadSchema = lazySchema(() => z.object({\n /** The execution id of the paused flow */\n executionId: z.string().describe('Execution ID of the paused flow'),\n\n /** The checkpoint id being resumed */\n checkpointId: z.string().describe('Checkpoint ID to resume from'),\n\n /** The node id of the wait node being resumed */\n nodeId: z.string().describe('Wait node ID being resumed'),\n\n /** The event type that triggered the resume */\n eventType: WaitEventTypeSchema.describe('Event type that triggered resume'),\n\n /** Signal name (for signal events) */\n signalName: z.string().optional().describe('Signal name (when eventType is signal)'),\n\n /** Webhook payload data (for webhook events) */\n webhookPayload: z.record(z.string(), z.unknown()).optional()\n .describe('Webhook request payload (when eventType is webhook)'),\n\n /** Who/what triggered the resume */\n resumedBy: z.string().optional().describe('User ID or system identifier that triggered resume'),\n\n /** Timestamp of the resume event */\n resumedAt: z.string().datetime().describe('ISO 8601 timestamp of the resume event'),\n\n /** Additional variables to merge into flow context on resume */\n variables: z.record(z.string(), z.unknown()).optional()\n .describe('Variables to merge into flow context upon resume'),\n}).describe('Payload for resuming a paused wait node'));\n\nexport type WaitResumePayload = z.infer<typeof WaitResumePayloadSchema>;\n\n// ─── Wait Executor Config ────────────────────────────────────────────\n\n/**\n * Timeout behavior when a wait node exceeds its timeout.\n */\nexport const WaitTimeoutBehaviorSchema = lazySchema(() => z.enum([\n 'fail', // Mark execution as failed\n 'continue', // Continue to next node (skip wait)\n 'fallback', // Execute a fallback edge\n]).describe('Behavior when a wait node exceeds its timeout'));\n\nexport type WaitTimeoutBehavior = z.infer<typeof WaitTimeoutBehaviorSchema>;\n\n/**\n * Configuration for the wait node executor plugin.\n * Controls polling intervals, webhook endpoint patterns, and timeout behavior.\n */\nexport const WaitExecutorConfigSchema = lazySchema(() => z.object({\n /** Default timeout for wait nodes without explicit timeout (ms) */\n defaultTimeoutMs: z.number().int().min(0).default(86400000)\n .describe('Default timeout in ms (default: 24 hours)'),\n\n /** Default timeout behavior */\n defaultTimeoutBehavior: WaitTimeoutBehaviorSchema.default('fail')\n .describe('Default behavior when wait timeout is exceeded'),\n\n /** Polling interval for condition-based waits (ms) */\n conditionPollIntervalMs: z.number().int().min(1000).default(30000)\n .describe('Polling interval for condition waits in ms (default: 30s)'),\n\n /** Maximum polling attempts for condition waits (0 = unlimited until timeout) */\n conditionMaxPolls: z.number().int().min(0).default(0)\n .describe('Max polling attempts for condition waits (0 = unlimited)'),\n\n /** Webhook endpoint URL pattern (runtime fills in execution/node ids) */\n webhookUrlPattern: z.string().default('/api/v1/automation/resume/{executionId}/{nodeId}')\n .describe('URL pattern for webhook resume endpoints'),\n\n /** Whether to persist checkpoints to durable storage */\n persistCheckpoints: z.boolean().default(true)\n .describe('Persist wait checkpoints to durable storage'),\n\n /** Maximum concurrent paused executions (0 = unlimited) */\n maxPausedExecutions: z.number().int().min(0).default(0)\n .describe('Max concurrent paused executions (0 = unlimited)'),\n}).describe('Wait node executor plugin configuration'));\n\nexport type WaitExecutorConfig = z.infer<typeof WaitExecutorConfigSchema>;\n\n// ─── Node Executor Descriptor ────────────────────────────────────────\n\n/**\n * Generic node executor plugin descriptor.\n * Each node type (wait, script, http_request, etc.) can register\n * a custom executor via this descriptor.\n */\nexport const NodeExecutorDescriptorSchema = lazySchema(() => z.object({\n /** Unique executor identifier */\n id: z.string().describe('Unique executor plugin identifier'),\n\n /** Human-readable name */\n name: z.string().describe('Display name'),\n\n /** The FlowNodeAction types this executor handles */\n nodeTypes: z.array(z.string()).min(1)\n .describe('FlowNodeAction types this executor handles'),\n\n /** Executor plugin version (semver) */\n version: z.string().describe('Plugin version (semver)'),\n\n /** Description of the executor */\n description: z.string().optional().describe('Executor description'),\n\n /** Whether this executor supports async pause/resume */\n supportsPause: z.boolean().default(false)\n .describe('Whether the executor supports async pause/resume'),\n\n /** Whether this executor supports cancellation mid-execution */\n supportsCancellation: z.boolean().default(false)\n .describe('Whether the executor supports mid-execution cancellation'),\n\n /** Whether this executor supports retry on failure */\n supportsRetry: z.boolean().default(true)\n .describe('Whether the executor supports retry on failure'),\n\n /** Executor-specific configuration schema (JSON Schema reference) */\n configSchemaRef: z.string().optional()\n .describe('JSON Schema $ref for executor-specific config'),\n}).describe('Node executor plugin descriptor'));\n\nexport type NodeExecutorDescriptor = z.infer<typeof NodeExecutorDescriptorSchema>;\n\n// ─── Built-in Wait Executor Descriptor ───────────────────────────────\n\n/**\n * Built-in descriptor for the wait node executor.\n * Runtime implementations should register this or a compatible executor.\n */\nexport const WAIT_EXECUTOR_DESCRIPTOR: NodeExecutorDescriptor = {\n id: 'objectstack:wait-executor',\n name: 'Wait Node Executor',\n nodeTypes: ['wait'],\n version: '1.0.0',\n description: 'Pauses flow execution and resumes on timer, signal, webhook, manual action, or condition events.',\n supportsPause: true,\n supportsCancellation: true,\n supportsRetry: true,\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\n/**\n * @module automation/bpmn-interop\n *\n * BPMN XML Interoperability Protocol\n *\n * Defines the specification for importing and exporting BPMN 2.0 XML\n * process definitions. This enables interoperability with external BPM\n * tools (Camunda, Activiti, jBPM, etc.) via a plugin-based approach.\n *\n * **Priority:** Low — long-term planning, not a core requirement.\n */\n\nimport { z } from 'zod';\n\n// ─── BPMN Element Mapping ────────────────────────────────────────────\n\n/**\n * Mapping between a BPMN XML element type and an ObjectStack FlowNodeAction.\n * Used during import/export to translate between the two models.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const BpmnElementMappingSchema = lazySchema(() => z.object({\n /** BPMN XML element type (e.g., \"bpmn:parallelGateway\", \"bpmn:serviceTask\") */\n bpmnType: z.string().describe('BPMN XML element type (e.g., \"bpmn:parallelGateway\")'),\n\n /** Corresponding ObjectStack FlowNodeAction */\n flowNodeAction: z.string().describe('ObjectStack FlowNodeAction value'),\n\n /** Whether this mapping is bidirectional (supports both import and export) */\n bidirectional: z.boolean().default(true).describe('Whether the mapping supports both import and export'),\n\n /** Notes about mapping limitations or special handling */\n notes: z.string().optional().describe('Notes about mapping limitations'),\n}).describe('Mapping between BPMN XML element and ObjectStack FlowNodeAction'));\n\nexport type BpmnElementMapping = z.infer<typeof BpmnElementMappingSchema>;\n\n// ─── BPMN Import Options ─────────────────────────────────────────────\n\n/**\n * Strategy for handling BPMN elements that have no direct ObjectStack mapping.\n */\nexport const BpmnUnmappedStrategySchema = lazySchema(() => z.enum([\n 'skip', // Skip unmapped elements silently\n 'warn', // Import with warnings\n 'error', // Fail on unmapped elements\n 'comment', // Import as annotation/comment nodes\n]).describe('Strategy for unmapped BPMN elements during import'));\n\nexport type BpmnUnmappedStrategy = z.infer<typeof BpmnUnmappedStrategySchema>;\n\n/**\n * Options for importing a BPMN 2.0 XML process definition into an ObjectStack flow.\n */\nexport const BpmnImportOptionsSchema = lazySchema(() => z.object({\n /** Strategy for unmapped BPMN elements */\n unmappedStrategy: BpmnUnmappedStrategySchema.default('warn')\n .describe('How to handle unmapped BPMN elements'),\n\n /** Custom element mappings (override or extend built-in mappings) */\n customMappings: z.array(BpmnElementMappingSchema).optional()\n .describe('Custom element mappings to override or extend defaults'),\n\n /** Whether to import BPMN DI (diagram interchange) layout positions */\n importLayout: z.boolean().default(true)\n .describe('Import BPMN DI layout positions into canvas node coordinates'),\n\n /** Whether to import BPMN documentation as node descriptions */\n importDocumentation: z.boolean().default(true)\n .describe('Import BPMN documentation elements as node descriptions'),\n\n /** Target flow name (if not derived from BPMN process name) */\n flowName: z.string().optional()\n .describe('Override flow name (defaults to BPMN process name)'),\n\n /** Whether to validate the imported flow against ObjectStack schema */\n validateAfterImport: z.boolean().default(true)\n .describe('Validate imported flow against FlowSchema after import'),\n}).describe('Options for importing BPMN 2.0 XML into an ObjectStack flow'));\n\nexport type BpmnImportOptions = z.infer<typeof BpmnImportOptionsSchema>;\n\n// ─── BPMN Export Options ─────────────────────────────────────────────\n\n/**\n * BPMN XML target version for export.\n */\nexport const BpmnVersionSchema = lazySchema(() => z.enum([\n '2.0', // BPMN 2.0 (most common, default)\n '2.0.2', // BPMN 2.0.2 (latest revision)\n]).describe('BPMN specification version for export'));\n\nexport type BpmnVersion = z.infer<typeof BpmnVersionSchema>;\n\n/**\n * Options for exporting an ObjectStack flow as BPMN 2.0 XML.\n */\nexport const BpmnExportOptionsSchema = lazySchema(() => z.object({\n /** Target BPMN version */\n version: BpmnVersionSchema.default('2.0')\n .describe('Target BPMN specification version'),\n\n /** Whether to include BPMN DI (diagram interchange) layout data */\n includeLayout: z.boolean().default(true)\n .describe('Include BPMN DI layout data from canvas positions'),\n\n /** Whether to include ObjectStack-specific extensions as BPMN extension elements */\n includeExtensions: z.boolean().default(false)\n .describe('Include ObjectStack extensions in BPMN extensionElements'),\n\n /** Custom element mappings (override built-in for export) */\n customMappings: z.array(BpmnElementMappingSchema).optional()\n .describe('Custom element mappings for export'),\n\n /** Whether to pretty-print the XML output */\n prettyPrint: z.boolean().default(true)\n .describe('Pretty-print XML output with indentation'),\n\n /** XML namespace prefix for BPMN elements */\n namespacePrefix: z.string().default('bpmn')\n .describe('XML namespace prefix for BPMN elements'),\n}).describe('Options for exporting an ObjectStack flow as BPMN 2.0 XML'));\n\nexport type BpmnExportOptions = z.infer<typeof BpmnExportOptionsSchema>;\n\n// ─── BPMN Import/Export Result ───────────────────────────────────────\n\n/**\n * Diagnostic message from BPMN import/export operations.\n */\nexport const BpmnDiagnosticSchema = lazySchema(() => z.object({\n /** Severity level */\n severity: z.enum(['info', 'warning', 'error']).describe('Diagnostic severity'),\n\n /** Human-readable message */\n message: z.string().describe('Diagnostic message'),\n\n /** BPMN element ID (if applicable) */\n bpmnElementId: z.string().optional().describe('BPMN element ID related to this diagnostic'),\n\n /** ObjectStack node ID (if applicable) */\n nodeId: z.string().optional().describe('ObjectStack node ID related to this diagnostic'),\n}).describe('Diagnostic message from BPMN import/export'));\n\nexport type BpmnDiagnostic = z.infer<typeof BpmnDiagnosticSchema>;\n\n/**\n * Result of a BPMN import or export operation.\n */\nexport const BpmnInteropResultSchema = lazySchema(() => z.object({\n /** Whether the operation completed successfully */\n success: z.boolean().describe('Whether the operation completed successfully'),\n\n /** Diagnostic messages (warnings, errors, info) */\n diagnostics: z.array(BpmnDiagnosticSchema).default([])\n .describe('Diagnostic messages from the operation'),\n\n /** Number of elements successfully mapped */\n mappedCount: z.number().int().min(0).default(0)\n .describe('Number of elements successfully mapped'),\n\n /** Number of elements skipped or unmapped */\n unmappedCount: z.number().int().min(0).default(0)\n .describe('Number of elements that could not be mapped'),\n}).describe('Result of a BPMN import/export operation'));\n\nexport type BpmnInteropResult = z.infer<typeof BpmnInteropResultSchema>;\n\n// ─── Built-in Element Mappings ───────────────────────────────────────\n\n/**\n * Built-in element mappings between BPMN 2.0 XML types and ObjectStack FlowNodeAction.\n * Import/export plugins should use these as defaults, with user overrides applied on top.\n */\nexport const BUILT_IN_BPMN_MAPPINGS: BpmnElementMapping[] = [\n { bpmnType: 'bpmn:startEvent', flowNodeAction: 'start', bidirectional: true },\n { bpmnType: 'bpmn:endEvent', flowNodeAction: 'end', bidirectional: true },\n { bpmnType: 'bpmn:exclusiveGateway', flowNodeAction: 'decision', bidirectional: true },\n { bpmnType: 'bpmn:parallelGateway', flowNodeAction: 'parallel_gateway', bidirectional: true },\n { bpmnType: 'bpmn:serviceTask', flowNodeAction: 'http_request', bidirectional: true, notes: 'Maps HTTP/connector tasks' },\n { bpmnType: 'bpmn:scriptTask', flowNodeAction: 'script', bidirectional: true },\n { bpmnType: 'bpmn:userTask', flowNodeAction: 'screen', bidirectional: true },\n { bpmnType: 'bpmn:callActivity', flowNodeAction: 'subflow', bidirectional: true },\n { bpmnType: 'bpmn:intermediateCatchEvent', flowNodeAction: 'wait', bidirectional: true, notes: 'Timer/signal/message catch events' },\n { bpmnType: 'bpmn:boundaryEvent', flowNodeAction: 'boundary_event', bidirectional: true },\n { bpmnType: 'bpmn:task', flowNodeAction: 'assignment', bidirectional: true, notes: 'Generic BPMN task maps to assignment' },\n];\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/shared/lazy-schema.ts","../../src/shared/identifiers.zod.ts","../../src/shared/expression.zod.ts","../../src/automation/workflow.zod.ts","../../src/ui/i18n.zod.ts","../../src/ui/sharing.zod.ts","../../src/ui/responsive.zod.ts","../../src/system/encryption.zod.ts","../../src/system/masking.zod.ts","../../src/data/field.zod.ts","../../src/shared/http.zod.ts","../../src/ui/view.zod.ts","../../src/automation/workflow.form.ts","../../src/automation/flow.zod.ts","../../src/automation/flow.form.ts","../../src/automation/execution.zod.ts","../../src/automation/webhook.zod.ts","../../src/automation/approval.zod.ts","../../src/automation/approval.form.ts","../../src/automation/etl.zod.ts","../../src/automation/trigger-registry.zod.ts","../../src/shared/mapping.zod.ts","../../src/automation/sync.zod.ts","../../src/automation/state-machine.zod.ts","../../src/automation/node-executor.zod.ts","../../src/automation/bpmn-interop.zod.ts"],"names":["z"],"mappings":";;;;;AAoBO,SAAS,WAAmC,OAAA,EAAqB;AACtE,EAAA,IAAI,OAAO,OAAA,KAAY,WAAA,IAAe,OAAA,CAAQ,GAAA,EAAK,qBAAqB,GAAA,EAAK;AAC3E,IAAA,OAAO,OAAA,EAAQ;AAAA,EACjB;AAEA,EAAA,IAAI,MAAA;AACJ,EAAA,MAAM,UAAU,MAAS;AACvB,IAAA,IAAI,MAAA,KAAW,MAAA,EAAW,MAAA,GAAS,OAAA,EAAQ;AAC3C,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,MAAA,GAAS,SAAS,OAAA,GAAU;AAAA,EAAC,CAAA;AAEnC,EAAA,MAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,MAAA,EAAkB;AAAA,IACxC,GAAA,CAAI,IAAI,IAAA,EAAM;AACZ,MAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,MAAA,MAAM,KAAA,GAAQ,KAAK,IAAI,CAAA;AACvB,MAAA,IAAI,OAAO,UAAU,UAAA,EAAY;AAC/B,QAAA,OAAQ,KAAA,CAAuC,KAAK,IAAI,CAAA;AAAA,MAC1D;AACA,MAAA,OAAO,KAAA;AAAA,IACT,CAAA;AAAA,IACA,GAAA,CAAI,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO;AACnB,MAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,MAAA,IAAA,CAAK,IAAI,CAAA,GAAI,KAAA;AACb,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAAA,IACA,GAAA,CAAI,IAAI,IAAA,EAAM;AACZ,MAAA,OAAO,QAAS,OAAA,EAAQ;AAAA,IAC1B,CAAA;AAAA,IACA,OAAA,GAAU;AACR,MAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,OAAA,EAAmB,CAAA;AAAA,IAC5C,CAAA;AAAA,IACA,wBAAA,CAAyB,IAAI,IAAA,EAAM;AACjC,MAAA,OAAO,OAAA,CAAQ,wBAAA,CAAyB,OAAA,EAAQ,EAAa,IAAI,CAAA;AAAA,IACnE,CAAA;AAAA,IACA,cAAA,GAAiB;AACf,MAAA,OAAO,OAAA,CAAQ,cAAA,CAAe,OAAA,EAAmB,CAAA;AAAA,IACnD;AAAA,GACD,CAAA;AAED,EAAA,OAAO,KAAA;AACT;;;ACdO,IAAM,sBAAA,GAAyB,UAAA,CAAW,MAAM,CAAA,CACpD,QAAO,CACP,GAAA,CAAI,CAAA,EAAG,EAAE,OAAA,EAAS,iDAAA,EAAmD,CAAA,CACrE,MAAM,oBAAA,EAAsB;AAAA,EAC3B,OAAA,EACE;AACJ,CAAC,CAAA,CACA,QAAA,CAAS,wDAAwD,CAAC,CAAA;AAiB9D,IAAM,yBAAA,GAA4B,UAAA,CAAW,MAAM,CAAA,CACvD,QAAO,CACP,GAAA,CAAI,CAAA,EAAG,EAAE,OAAA,EAAS,0CAAA,EAA4C,CAAA,CAC9D,MAAM,mBAAA,EAAqB;AAAA,EAC1B,OAAA,EACE;AACJ,CAAC,CAAA,CACA,QAAA,CAAS,yDAAyD,CAAC,CAAA;AAoBvC,UAAA,CAAW,MAAM,CAAA,CAC7C,QAAO,CACP,GAAA,CAAI,CAAA,EAAG,EAAE,OAAA,EAAS,0CAAA,EAA4C,CAAA,CAC9D,MAAM,oBAAA,EAAsB;AAAA,EAC3B,OAAA,EACE;AACJ,CAAC,CAAA,CACA,QAAA,CAAS,0DAA0D,CAAC;AC1EhE,IAAM,iBAAA,GAAoBA,EAAE,IAAA,CAAK,CAAC,OAAO,IAAA,EAAM,MAAA,EAAQ,UAAU,CAAC,CAAA;AAOlE,IAAM,oBAAA,GAAuBA,EAAE,MAAA,CAAO;AAAA;AAAA,EAE3C,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAE/B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAC1B,CAAC,CAAA;AAcM,IAAM,gBAAA,GAAmBA,EAAE,MAAA,CAAO;AAAA;AAAA,EAEvC,OAAA,EAAS,iBAAA;AAAA;AAAA,EAET,QAAQA,CAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,QAAA,EAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAKnC,GAAA,EAAKA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA;AAAA,EAE1B,IAAA,EAAM,qBAAqB,QAAA;AAC7B,CAAC,CAAA,CAAE,OAAO,CAAA,CAAA,KAAK,CAAA,CAAE,WAAW,MAAA,IAAa,CAAA,CAAE,QAAQ,MAAA,EAAW;AAAA,EAC5D,OAAA,EAAS;AACX,CAAC,CAAA;AAUM,IAAM,qBAAA,GAAwBA,EAAE,KAAA,CAAM;AAAA,EAC3CA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,SAAA,CAAU,CAAC,MAAA,MAAwB,EAAE,OAAA,EAAS,KAAA,EAAO,QAAO,CAAE,CAAA;AAAA,EAChF;AACF,CAAC,CAAA;AAQM,IAAM,yBAAA,GAA4BA,EAAE,KAAA,CAAM;AAAA,EAC/CA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,SAAA,CAAU,CAAC,MAAA,MAAwB,EAAE,OAAA,EAAS,MAAA,EAAQ,QAAO,CAAE,CAAA;AAAA,EACjF;AACF,CAAC,CAAA;AAQ4CA,EAAE,KAAA,CAAM;AAAA,EACnDA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,SAAA,CAAU,CAAC,MAAA,MAAwB,EAAE,OAAA,EAAS,UAAA,EAAY,QAAO,CAAE,CAAA;AAAA,EACrF;AACF,CAAC;;;ACjGM,IAAM,mBAAA,GAAsBA,EAAE,IAAA,CAAK;AAAA,EACxC,WAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA,qBAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAYM,IAAM,uBAAA,GAA0B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC/D,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,aAAa,CAAA;AAAA,EACvC,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,cAAc,CAAA;AAAA,EAC9B,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iBAAiB,CAAA;AAAA,EAC5C,KAAA,EAAOA,CAAAA,CAAE,OAAA,EAAQ,CAAE,SAAS,yBAAyB;AACvD,CAAC,CAAC;AAYK,IAAM,sBAAA,GAAyB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC9D,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,aAAa,CAAA;AAAA,EACvC,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,aAAa,CAAA;AAAA,EAC7B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,2BAA2B,CAAA;AAAA,EACzD,UAAA,EAAYA,EAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA,CAAE,SAAS,sCAAsC;AACjF,CAAC,CAAC;AAmBK,IAAM,wBAAA,GAA2B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAChE,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,aAAa,CAAA;AAAA,EACvC,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAClC,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,0CAA0C,CAAA;AAAA,EAC3E,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,sCAAsC,CAAA;AAAA,EACpE,KAAA,EAAOA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,6CAA6C;AACjG,CAAC,CAAC;AAeK,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC5D,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,aAAa,CAAA;AAAA,EACvC,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,WAAW,CAAA;AAAA,EAC3B,GAAA,EAAKA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,YAAY,CAAA;AAAA,EACrC,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,CAAC,OAAO,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,OAAO,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,CAAE,SAAS,aAAa,CAAA;AAAA,EAChG,OAAA,EAASA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,cAAc,CAAA;AAAA,EAC5E,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,6BAA6B;AACpE,CAAC,CAAC;AAaK,IAAM,wBAAA,GAA2B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAChE,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,aAAa,CAAA;AAAA,EACvC,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,eAAe,CAAA;AAAA,EAC/B,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iDAAiD,CAAA;AAAA,EACjF,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,oBAAoB,CAAA;AAAA,EACjD,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kBAAkB,CAAA;AAAA,EAC9D,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yCAAyC,CAAA;AAAA,EACpF,OAAA,EAAS,qBAAA,CAAsB,QAAA,EAAS,CAAE,SAAS,8FAAyF,CAAA;AAAA,EAC5I,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA,EACxD,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sCAAsC,CAAA;AAAA,EAChF,gBAAA,EAAkBA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,0BAA0B;AACpG,CAAC,CAAC;AAKK,IAAM,4BAAA,GAA+B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACpE,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,aAAa,CAAA;AAAA,EACvC,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,mBAAmB,CAAA;AAAA,EACnC,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,oBAAoB,CAAA;AAAA,EAC/C,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,wBAAwB,CAAA;AAAA,EAClD,UAAA,EAAYA,EAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA,CAAE,SAAS,2BAA2B,CAAA;AAAA,EACpE,IAAA,EAAMA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,yBAAyB,CAAA;AAAA,EACrF,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,EACzD,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,EAC1D,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yCAAyC;AACvF,CAAC,CAAC;AAKK,IAAM,wBAAA,GAA2B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAChE,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,aAAa,CAAA;AAAA,EACvC,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,eAAe,CAAA;AAAA,EAC/B,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,CAAC,YAAA,EAAc,YAAA,EAAc,QAAQ,CAAC,CAAA,CAAE,OAAA,CAAQ,YAAY,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,EACzG,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,wBAAwB,CAAA;AAAA,EAClD,OAAA,EAASA,EAAE,MAAA,EAAO,CAAE,QAAQ,GAAK,CAAA,CAAE,SAAS,mCAAmC,CAAA;AAAA,EAC/E,OAAA,EAASA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,8BAA8B;AAC/F,CAAC,CAAC;AAMK,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,mBAAmB,MAAA,EAAQ;AAAA,EAChF,uBAAA;AAAA,EACA,sBAAA;AAAA,EACA,oBAAA;AAAA,EACA,wBAAA;AAAA,EACA,wBAAA;AAAA,EACA,4BAAA;AAAA,EACA;AACF,CAAC,CAAC;AAQK,IAAM,iBAAA,GAAoB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACzD,IAAIA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA;AAAA,EAGtD,YAAYA,CAAAA,CAAE,MAAA,GAAS,GAAA,EAAI,CAAE,SAAS,8BAA8B,CAAA;AAAA,EACpE,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,SAAS,MAAM,CAAC,CAAA,CAAE,QAAA,CAAS,cAAc,CAAA;AAAA;AAAA,EAGtE,eAAA,EAAiBA,EAAE,IAAA,CAAK,CAAC,UAAU,OAAO,CAAC,CAAA,CAAE,QAAA,CAAS,oCAAoC,CAAA;AAAA,EAC1F,UAAA,EAAYA,EAAE,IAAA,CAAK,CAAC,gBAAgB,YAAY,CAAC,CAAA,CAAE,QAAA,CAAS,uBAAuB,CAAA;AAAA,EACnF,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qEAAqE,CAAA;AAAA;AAAA,EAG/G,SAASA,CAAAA,CAAE,KAAA,CAAM,oBAAoB,CAAA,CAAE,SAAS,0CAA0C;AAC5F,CAAC,CAAC;AA4DK,IAAM,kBAAA,GAAqB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAE1D,IAAA,EAAM,yBAAA,CAA0B,QAAA,CAAS,6CAA6C,CAAA;AAAA;AAAA,EAGtF,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,eAAe,CAAA;AAAA;AAAA,EAG/C,WAAA,EAAa,mBAAA,CAAoB,QAAA,CAAS,kBAAkB,CAAA;AAAA;AAAA,EAG5D,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uDAAuD,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnG,QAAA,EAAU,qBAAA,CAAsB,QAAA,EAAS,CAAE,SAAS,4CAA4C,CAAA;AAAA;AAAA,EAGhG,OAAA,EAASA,EAAE,KAAA,CAAM,oBAAoB,EAAE,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM9E,YAAA,EAAcA,EAAE,KAAA,CAAM,iBAAiB,EAAE,QAAA,EAAS,CAAE,SAAS,qDAAqD,CAAA;AAAA;AAAA,EAGlH,MAAA,EAAQA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,iCAAiC,CAAA;AAAA;AAAA,EAG5E,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,GAAG,CAAA,CAAE,SAAS,gFAAgF,CAAA;AAAA;AAAA,EAG9I,kBAAA,EAAoBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,8DAA8D;AACxH,CAAC,CAAC;ACtQ8B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAExD,GAAA,EAAKA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iDAAiD,CAAA;AAAA;AAAA,EAG1E,cAAcA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kDAAkD,CAAA;AAAA;AAAA,EAG/F,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,KAAA,CAAM,CAACA,CAAAA,CAAE,MAAA,EAAO,EAAGA,EAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAC,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,+CAA+C;AAClJ,CAAC,CAAC;AAkBK,IAAM,eAAA,GAAkB,WAAW,MAAMA,CAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,6EAA6E,CAAC,CAAA;AAuB3I,IAAM,eAAA,GAAkB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAEvD,SAAA,EAAW,eAAA,CAAgB,QAAA,EAAS,CAAE,SAAS,2DAA2D,CAAA;AAAA;AAAA,EAG1G,iBAAiBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,4EAA4E,CAAA;AAAA;AAAA,EAG5H,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iEAAiE;AACxG,CAAC,CAAA,CAAE,QAAA,CAAS,+BAA+B,CAAC,CAAA;AAsBZ,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAExD,GAAA,EAAKA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iBAAiB,CAAA;AAAA;AAAA,EAE1C,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8BAA8B,CAAA;AAAA;AAAA,EAEnE,KAAKA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sCAAsC,CAAA;AAAA;AAAA,EAE1E,KAAKA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iDAAiD,CAAA;AAAA;AAAA,EAErF,KAAKA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,4CAA4C,CAAA;AAAA;AAAA,EAEhF,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,4CAA4C,CAAA;AAAA;AAAA,EAEjF,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,6CAA6C;AAC1E,CAAC,CAAA,CAAE,QAAA,CAAS,wCAAwC,CAAC;AAkB9C,IAAM,kBAAA,GAAqB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC1D,KAAA,EAAOA,CAAAA,CAAE,IAAA,CAAK,CAAC,WAAW,UAAA,EAAY,SAAA,EAAW,MAAM,CAAC,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,CACxE,SAAS,yBAAyB,CAAA;AAAA,EACrC,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,6CAA6C,CAAA;AAAA,EACtF,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uDAAuD,CAAA;AAAA,EAC5F,uBAAuBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mCAAmC,CAAA;AAAA,EACzF,uBAAuBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mCAAmC,CAAA;AAAA,EACzF,aAAaA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,kDAAkD;AACjG,CAAC,CAAA,CAAE,QAAA,CAAS,yBAAyB,CAAC,CAAA;AAkB/B,IAAM,gBAAA,GAAmB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACxD,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,MAAA,EAAQ,QAAA,EAAU,OAAO,CAAC,CAAA,CAAE,QAAA,EAAS,CAC7D,SAAS,oBAAoB,CAAA;AAAA,EAChC,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,MAAA,EAAQ,QAAA,EAAU,OAAO,CAAC,CAAA,CAAE,QAAA,EAAS,CAC7D,SAAS,oBAAoB,CAAA;AAAA,EAChC,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,2CAA2C,CAAA;AAAA,EACpF,QAAQA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,oBAAoB;AAC9D,CAAC,CAAA,CAAE,QAAA,CAAS,4BAA4B,CAAC,CAAA;AAqBP,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAE1D,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,+CAA+C,CAAA;AAAA;AAAA,EAGzE,aAAA,EAAeA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CACzC,QAAA,CAAS,mEAAmE,CAAA;AAAA;AAAA,EAG/E,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,KAAA,EAAO,KAAK,CAAC,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA,CAC5C,QAAA,CAAS,gDAAgD,CAAA;AAAA;AAAA,EAG5D,YAAA,EAAc,kBAAA,CAAmB,QAAA,EAAS,CAAE,SAAS,iCAAiC,CAAA;AAAA;AAAA,EAGtF,UAAA,EAAY,gBAAA,CAAiB,QAAA,EAAS,CAAE,SAAS,oCAAoC;AACvF,CAAC,CAAA,CAAE,QAAA,CAAS,sBAAsB,CAAC;ACxL5B,IAAM,mBAAA,GAAsB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC3D,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,uBAAuB,CAAA;AAAA,EACpE,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,4BAA4B,CAAA;AAAA,EACvE,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yCAAyC,CAAA;AAAA,EAClF,cAAA,EAAgBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAC1C,QAAA,CAAS,kEAAkE,CAAA;AAAA,EAC9E,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAC5B,SAAS,yCAAyC,CAAA;AAAA,EACrD,cAAA,EAAgBA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,GAAW,OAAA,CAAQ,KAAK,CAAA,CACjD,QAAA,CAAS,qCAAqC;AACnD,CAAC,CAAC,CAAA;AAO+B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACzD,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,yBAAyB,CAAA;AAAA,EACtE,cAAA,EAAgBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAC1C,QAAA,CAAS,8DAA8D,CAAA;AAAA,EAC1E,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,OAAA,CAAQ,MAAM,CAAA,CAAE,QAAA,CAAS,yBAAyB,CAAA;AAAA,EAC/E,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,OAAA,CAAQ,OAAO,CAAA,CAAE,QAAA,CAAS,0BAA0B,CAAA;AAAA,EAClF,UAAA,EAAYA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,GAAW,OAAA,CAAQ,IAAI,CAAA,CAAE,QAAA,CAAS,gCAAgC,CAAA;AAAA,EAC1F,cAAA,EAAgBA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,GAAW,OAAA,CAAQ,KAAK,CAAA,CAAE,QAAA,CAAS,0BAA0B,CAAA;AAAA,EACzF,UAAA,EAAYA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,GAAW,OAAA,CAAQ,IAAI,CAAA,CAAE,QAAA,CAAS,4BAA4B;AACxF,CAAC,CAAC;ACpCK,IAAM,cAAA,GAAiBA,CAAAA,CAAE,IAAA,CAAK,CAAC,IAAA,EAAM,MAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,KAAK,CAAC,CAAA;AA0BnE,IAAM,yBAAA,GAA4B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACjE,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,QAAA,EAAS;AAAA,EACvC,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,QAAA,EAAS;AAAA,EACvC,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,QAAA,EAAS;AAAA,EACvC,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,QAAA,EAAS;AAAA,EACvC,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,QAAA,EAAS;AAAA,EACvC,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,QAAA;AACnC,CAAC,CAAA,CAAE,QAAA,CAAS,oCAAoC,CAAC,CAAA;AAO1C,IAAM,wBAAA,GAA2B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAChE,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACpB,CAAC,CAAA,CAAE,QAAA,CAAS,8BAA8B,CAAC,CAAA;AAEpC,IAAM,sBAAA,GAAyB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAE9D,UAAA,EAAY,cAAA,CAAe,QAAA,EAAS,CACjC,SAAS,mCAAmC,CAAA;AAAA;AAAA,EAG/C,QAAA,EAAUA,EAAE,KAAA,CAAM,cAAc,EAAE,QAAA,EAAS,CACxC,SAAS,2BAA2B,CAAA;AAAA;AAAA,EAGvC,OAAA,EAAS,yBAAA,CAA0B,QAAA,EAAS,CAAE,SAAS,6BAA6B,CAAA;AAAA;AAAA,EAGpF,KAAA,EAAO,wBAAA,CAAyB,QAAA,EAAS,CAAE,SAAS,8BAA8B;AACpF,CAAC,CAAA,CAAE,QAAA,CAAS,iCAAiC,CAAC,CAAA;AAoBvC,IAAM,uBAAA,GAA0B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAE/D,UAAUA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAC5B,SAAS,qDAAqD,CAAA;AAAA;AAAA,EAGjE,aAAA,EAAeA,EAAE,MAAA,CAAO;AAAA,IACtB,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,0BAA0B,CAAA;AAAA,IACvE,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8CAA8C,CAAA;AAAA,IACzF,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kDAAkD;AAAA,GAC5F,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,iCAAiC,CAAA;AAAA;AAAA,EAGxD,aAAA,EAAeA,EAAE,IAAA,CAAK;AAAA,IACpB,MAAA;AAAA,IACA,aAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GACD,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,mCAAmC,CAAA;AAAA;AAAA,EAG1D,UAAUA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAC5B,SAAS,2CAA2C,CAAA;AAAA;AAAA,EAGvD,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAC3B,SAAS,yCAAyC,CAAA;AAAA;AAAA,EAGrD,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAC7B,SAAS,yDAAyD;AACvE,CAAC,CAAA,CAAE,QAAA,CAAS,wCAAwC,CAAC,CAAA;AClH9C,IAAM,yBAAA,GAA4B,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EAC/D,aAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAC,CAAA,CAAE,QAAA,CAAS,gCAAgC,CAAC,CAAA;AAItC,IAAM,2BAAA,GAA8B,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EACjE,OAAA;AAAA,EACA,SAAA;AAAA,EACA,iBAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAC,CAAA,CAAE,QAAA,CAAS,iCAAiC,CAAC,CAAA;AAIvC,IAAM,uBAAA,GAA0B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC/D,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,+BAA+B,CAAA;AAAA,EAC5E,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA,CAAE,QAAA,CAAS,4BAA4B,CAAA;AAAA,EAClF,iBAAA,EAAmBA,EAAE,MAAA,EAAO,CAAE,QAAQ,CAAC,CAAA,CAAE,SAAS,sCAAsC,CAAA;AAAA,EACxF,UAAA,EAAYA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,8CAA8C;AAC/F,CAAC,CAAA,CAAE,QAAA,CAAS,8CAA8C,CAAC,CAAA;AAKpD,IAAM,sBAAA,GAAyB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC9D,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,+BAA+B,CAAA;AAAA,EAC5E,WAAW,yBAAA,CAA0B,OAAA,CAAQ,aAAa,CAAA,CAAE,SAAS,sBAAsB,CAAA;AAAA,EAC3F,aAAA,EAAeA,EAAE,MAAA,CAAO;AAAA,IACtB,QAAA,EAAU,2BAAA,CAA4B,QAAA,CAAS,iCAAiC,CAAA;AAAA,IAChF,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gCAAgC,CAAA;AAAA,IACtE,cAAA,EAAgB,uBAAA,CAAwB,QAAA,EAAS,CAAE,SAAS,qBAAqB;AAAA,GAClF,CAAA,CAAE,QAAA,CAAS,8BAA8B,CAAA;AAAA,EAC1C,KAAA,EAAOA,CAAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,QAAA,EAAU,OAAA,EAAS,UAAU,CAAC,CAAA,CAAE,QAAA,CAAS,wBAAwB,CAAA;AAAA,EACzF,uBAAA,EAAyBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,2CAA2C,CAAA;AAAA,EACxG,oBAAA,EAAsBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,iCAAiC;AAC7F,CAAC,CAAA,CAAE,QAAA,CAAS,sCAAsC,CAAC,CAAA;AAKd,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC7D,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,8BAA8B,CAAA;AAAA,EAC7D,gBAAA,EAAkB,sBAAA,CAAuB,QAAA,CAAS,oCAAoC,CAAA;AAAA,EACtF,SAAA,EAAWA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,mCAAmC;AACpF,CAAC,CAAA,CAAE,QAAA,CAAS,iCAAiC,CAAC;ACjDvC,IAAM,qBAAA,GAAwB,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EAC3D,QAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA,MAAA;AAAA;AAAA,EACA,UAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAA,CAAE,QAAA,CAAS,0CAA0C,CAAC,CAAA;AAIhD,IAAM,iBAAA,GAAoB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACzD,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gCAAgC,CAAA;AAAA,EAC3D,QAAA,EAAU,qBAAA,CAAsB,QAAA,CAAS,yBAAyB,CAAA;AAAA,EAClE,SAASA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mCAAmC,CAAA;AAAA,EAC3E,cAAA,EAAgBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,6CAA6C,CAAA;AAAA,EAChG,cAAA,EAAgBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,6CAA6C,CAAA;AAAA,EAChG,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,4BAA4B,CAAA;AAAA,EAC3E,WAAA,EAAaA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,8BAA8B;AACrF,CAAC,CAAA,CAAE,QAAA,CAAS,iCAAiC,CAAC,CAAA;AAKX,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC3D,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,qBAAqB,CAAA;AAAA,EAClE,OAAOA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,SAAS,mCAAmC,CAAA;AAAA,EAC9E,cAAA,EAAgBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,2CAA2C;AAChG,CAAC,CAAA,CAAE,QAAA,CAAS,yDAAyD,CAAC;;;ACzB/D,IAAM,SAAA,GAAYA,EAAE,IAAA,CAAK;AAAA;AAAA,EAE9B,MAAA;AAAA,EAAQ,UAAA;AAAA,EAAY,OAAA;AAAA,EAAS,KAAA;AAAA,EAAO,OAAA;AAAA,EAAS,UAAA;AAAA;AAAA,EAE7C,UAAA;AAAA,EAAY,MAAA;AAAA,EAAQ,UAAA;AAAA;AAAA,EAEpB,QAAA;AAAA,EAAU,UAAA;AAAA,EAAY,SAAA;AAAA;AAAA,EAEtB,MAAA;AAAA,EAAQ,UAAA;AAAA,EAAY,MAAA;AAAA;AAAA,EAEpB,SAAA;AAAA,EAAW,QAAA;AAAA;AAAA;AAAA,EAEX,QAAA;AAAA;AAAA,EACA,aAAA;AAAA;AAAA,EACA,OAAA;AAAA;AAAA,EACA,YAAA;AAAA;AAAA;AAAA,EAEA,QAAA;AAAA,EAAU,eAAA;AAAA;AAAA,EACV,MAAA;AAAA;AAAA;AAAA,EAEA,OAAA;AAAA,EAAS,MAAA;AAAA,EAAQ,QAAA;AAAA,EAAU,OAAA;AAAA,EAAS,OAAA;AAAA;AAAA,EAEpC,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW,YAAA;AAAA;AAAA,EAEtB,WAAA;AAAA;AAAA,EACA,UAAA;AAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA,MAAA;AAAA;AAAA,EACA,MAAA;AAAA;AAAA,EACA,OAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,UAAA;AAAA;AAAA,EACA,MAAA;AAAA;AAAA;AAAA,EAEA;AAAA;AACF,CAAC,CAAA;AAsBM,IAAM,kBAAA,GAAqB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC1D,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,kDAAkD,CAAA;AAAA,EAC7E,KAAA,EAAO,sBAAA,CAAuB,QAAA,CAAS,6CAA6C,CAAA;AAAA,EACpF,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8BAA8B,CAAA;AAAA,EACpE,SAASA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,mBAAmB;AAC9D,CAAC,CAAC,CAAA;AAMuC,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACjE,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,QAAA,CAAS,qBAAqB,CAAA;AAAA,EACpE,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,IAAI,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,CAAS,sBAAsB,CAAA;AAAA,EACxE,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,EAC7D,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB;AAC/D,CAAC,CAAC;AAYK,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC5D,WAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,SAAS,gCAAgC,CAAA;AAAA,EAC/F,YAAA,EAAcA,CAAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,OAAO,CAAC,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,CAAE,QAAA,CAAS,qEAAqE,CAAA;AAAA,EAC5I,eAAA,EAAiBA,CAAAA,CAAE,MAAA,EAAO,CAAE,MAAA,CAAO,CAAC,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA,CAAE,QAAA,CAAS,gEAAgE;AAChI,CAAC,CAAC,CAAA;AASiC,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC3D,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iBAAiB,CAAA;AAAA,EAC5C,QAAA,EAAUA,EAAE,MAAA,EAAO,CAAE,OAAO,CAAC,CAAA,CAAE,SAAS,0BAA0B;AACpE,CAAC,CAAC;AAM2B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACrD,QAAQA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA,EACvD,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,WAAW,CAAA;AAAA,EAChD,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA,EACtD,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iBAAiB,CAAA;AAAA,EAC5D,SAASA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,EAC9D,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iCAAiC,CAAA;AAAA,EAC7E,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,0BAA0B;AACtE,CAAC,CAAC;AA0BK,IAAM,kBAAA,GAAqB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC1D,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAK,CAAA,CAAE,SAAS,0DAA0D,CAAA;AAAA,EAClH,cAAA,EAAgBA,CAAAA,CAAE,IAAA,CAAK,CAAC,UAAU,WAAA,EAAa,YAAA,EAAc,WAAW,CAAC,CAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA,CAAE,SAAS,8CAA8C,CAAA;AAAA,EACpJ,UAAA,EAAYA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,8CAA8C,CAAA;AAAA,EAC9F,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,6DAA6D,CAAA;AAAA,EACzG,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,SAAA,EAAW,MAAM,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,6EAA6E;AAClJ,CAAC,CAAC,CAAA;AA+BK,IAAM,0BAAA,GAA6B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAElE,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,4BAA4B,CAAA;AAAA,EAC3E,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,oDAAoD,CAAA;AAAA;AAAA,EAGnG,YAAA,EAAcA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,2DAA2D,CAAA;AAAA,EACjH,YAAA,EAAcA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,yDAAyD,CAAA;AAAA,EAC/G,gBAAA,EAAkBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,8DAA8D,CAAA;AAAA,EACxH,gBAAA,EAAkBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,oBAAoB,CAAA;AAAA;AAAA,EAG9E,SAAA,EAAWA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,0CAA0C,CAAA;AAAA,EACzF,iBAAA,EAAmBA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,YAAA,EAAc,cAAA,EAAgB,QAAQ,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,iCAAiC,CAAA;AAAA,EACnI,iBAAA,EAAmBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,kCAAkC,CAAA;AAAA,EACxF,kBAAA,EAAoBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,qCAAqC,CAAA;AAAA;AAAA,EAG5F,iBAAiBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,+DAA+D,CAAA;AAAA,EAC/G,eAAeA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,EAClE,eAAeA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kDAAkD,CAAA;AAAA;AAAA,EAGhG,eAAA,EAAiBA,EAAE,MAAA,CAAO;AAAA,IACxB,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,+BAA+B,CAAA;AAAA,IAC/E,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,+BAA+B,CAAA;AAAA,IAC/E,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,gCAAgC,CAAA;AAAA,IACjF,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,gCAAgC,CAAA;AAAA,IACjF,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,6CAA6C,CAAA;AAAA,IACzF,kBAAA,EAAoBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,0BAA0B,CAAA;AAAA,IAClF,cAAA,EAAgBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,MAC/B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,2DAA2D,CAAA;AAAA,MACrF,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,2BAA2B,CAAA;AAAA,MAC7D,MAAA,EAAQA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,4BAA4B,CAAA;AAAA,MAC/D,IAAA,EAAMA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,0BAA0B;AAAA,KACrE,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,IACvD,gBAAA,EAAkBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,wBAAwB,CAAA;AAAA,IAC9E,UAAA,EAAYA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,uCAAuC;AAAA,GACvF,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,iCAAiC,CAAA;AAAA;AAAA,EAGxD,aAAA,EAAeA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,wDAAwD,CAAA;AAAA,EAC3G,YAAA,EAAcA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,gCAAgC,CAAA;AAAA,EACjF,WAAA,EAAaA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,+BAA+B,CAAA;AAAA,EAC/E,aAAA,EAAeA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,kDAAkD,CAAA;AAAA;AAAA,EAGrG,eAAA,EAAiBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,gDAAgD,CAAA;AAAA,EACpG,WAAA,EAAaA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,mDAAmD,CAAA;AAAA;AAAA,EAGpG,iBAAA,EAAmBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,0CAA0C,CAAA;AAAA,EACjG,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,sCAAsC,CAAA;AAAA;AAAA,EAGzF,UAAA,EAAYA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,4CAA4C,CAAA;AAAA,EAC5F,kBAAA,EAAoBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,EAAE,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA,CAAE,OAAA,CAAQ,IAAI,CAAA,CAAE,SAAS,uDAAuD;AACnI,CAAC,CAAA,CAAE,MAAA,CAAO,CAAC,IAAA,KAAS;AAElB,EAAA,IAAI,IAAA,CAAK,YAAY,MAAA,IAAa,IAAA,CAAK,YAAY,MAAA,IAAa,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,OAAA,EAAS;AAC3F,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA;AACT,CAAA,EAAG;AAAA,EACD,OAAA,EAAS;AACX,CAAC,CAAA,CAAE,MAAA,CAAO,CAAC,IAAA,KAAS;AAElB,EAAA,IAAI,IAAA,CAAK,iBAAA,KAAsB,MAAA,IAAa,IAAA,CAAK,cAAc,IAAA,EAAM;AACnE,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA;AACT,CAAA,EAAG;AAAA,EACD,OAAA,EAAS;AACX,CAAC,CAAC,CAAA;AAgBK,IAAM,sBAAA,GAAyB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAE9D,UAAA,EAAYA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,0CAA0C,CAAA;AAAA;AAAA,EAG1F,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,SAAS,qEAAqE,CAAA;AAAA;AAAA,EAGhI,QAAA,EAAUA,EAAE,MAAA,CAAO;AAAA,IACjB,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,8EAA8E,CAAA;AAAA,IAC1G,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,CAAS,mEAAmE;AAAA,GACjH,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,mCAAmC;AAC5D,CAAC,CAAC,CAAA;AAaK,IAAM,wBAAA,GAA2B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAEhE,OAAA,EAASA,CAAAA,CAAE,OAAA,EAAQ,CAAE,SAAS,2CAA2C,CAAA;AAAA;AAAA,EAGzE,GAAA,EAAKA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,0CAA0C,CAAA;AAAA;AAAA,EAG1E,YAAA,EAAcA,EAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA,CAAE,SAAS,wFAAwF;AACrI,CAAC,CAAC,CAAA;AA8ByB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAEnD,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,CAAM,oBAAoB,CAAA,CAAE,QAAA,CAAS,2BAA2B,CAAA,CAAE,QAAA,EAAS;AAAA,EAC5F,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,EAC5D,IAAA,EAAM,SAAA,CAAU,QAAA,CAAS,iBAAiB,CAAA;AAAA,EAC1C,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,EAC/D,QAAQA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mCAAmC,CAAA;AAAA;AAAA,EAG1E,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,wFAAwF,CAAA;AAAA;AAAA,EAGnI,QAAA,EAAUA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,aAAa,CAAA;AAAA,EAC3D,UAAA,EAAYA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,eAAe,CAAA;AAAA,EAC/D,QAAA,EAAUA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,2FAA2F,CAAA;AAAA,EACzI,MAAA,EAAQA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,sBAAsB,CAAA;AAAA,EAClE,cAAcA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA;AAAA,EAG7D,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,EAChE,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA;AAAA,EAGhE,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,cAAc,CAAA;AAAA,EACxD,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA,EACtD,KAAKA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA,EACnD,KAAKA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA;AAAA,EAGnD,OAAA,EAASA,EAAE,KAAA,CAAM,kBAAkB,EAAE,QAAA,EAAS,CAAE,SAAS,uCAAuC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAahG,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA;AAAA,IAC/B;AAAA,GAEF;AAAA,EACA,gBAAA,EAAkBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,0DAA0D,CAAA;AAAA,EACpH,yBAAyBA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,qEAAqE,CAAA;AAAA,EAC9H,cAAA,EAAgBA,CAAAA,CAAE,IAAA,CAAK,CAAC,YAAY,SAAA,EAAW,UAAU,CAAC,CAAA,CAAE,UAAS,CAAE,OAAA,CAAQ,UAAU,CAAA,CAAE,SAAS,8CAA8C,CAAA;AAAA;AAAA,EAGlJ,UAAA,EAAY,qBAAA,CAAsB,QAAA,EAAS,CAAE,SAAS,uDAAuD,CAAA;AAAA,EAC7G,iBAAA,EAAmBA,EAAE,MAAA,CAAO;AAAA,IAC1B,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,sCAAsC,CAAA;AAAA,IAClE,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,oCAAoC,CAAA;AAAA,IAC/D,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,KAAK,CAAC,CAAA,CAAE,QAAA,CAAS,+BAA+B;AAAA,GACjG,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,4BAA4B,CAAA;AAAA;AAAA;AAAA,EAInD,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8EAA8E,CAAA;AAAA,EACvH,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gDAAgD,CAAA;AAAA,EACtF,aAAaA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,kCAAkC,CAAA;AAAA;AAAA,EAG/E,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mCAAmC,CAAA;AAAA,EAC7E,WAAWA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,yBAAyB,CAAA;AAAA;AAAA,EAGpE,YAAYA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,uCAAuC,CAAA;AAAA,EACnF,gBAAgBA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,wCAAwC,CAAA;AAAA;AAAA,EAGxF,aAAA,EAAeA,CAAAA,CAAE,IAAA,CAAK,CAAC,IAAA,EAAM,IAAA,EAAM,eAAe,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,yBAAyB,CAAA;AAAA;AAAA,EAGlG,WAAA,EAAaA,CAAAA,CAAE,IAAA,CAAK,CAAC,KAAA,EAAO,KAAA,EAAO,MAAA,EAAQ,KAAK,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,EAC3F,YAAYA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,kCAAkC,CAAA;AAAA,EAC9E,YAAA,EAAcA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,sBAAsB,CAAA;AAAA;AAAA,EAG5E,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,wCAAwC,CAAA;AAAA,EAC7E,WAAWA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,iCAAiC,CAAA;AAAA,EAC5E,KAAA,EAAOA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,sFAAsF,CAAA;AAAA;AAAA;AAAA;AAAA,EAKlJ,eAAeA,CAAAA,CAAE,IAAA,CAAK,CAAC,IAAA,EAAM,SAAS,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,MAAA,EAAQ,MAAM,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA,EAC7H,iBAAA,EAAmBA,CAAAA,CAAE,IAAA,CAAK,CAAC,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,wGAAwG,CAAA;AAAA,EAC5K,cAAcA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,oDAAoD,CAAA;AAAA,EAClG,eAAeA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,kDAAkD,CAAA;AAAA;AAAA,EAGjG,cAAA,EAAgB,oBAAA,CAAqB,QAAA,EAAS,CAAE,SAAS,uCAAuC,CAAA;AAAA;AAAA,EAGhG,YAAA,EAAc,kBAAA,CAAmB,QAAA,EAAS,CAAE,SAAS,wDAAwD,CAAA;AAAA;AAAA,EAG7G,oBAAA,EAAsB,0BAAA,CAA2B,QAAA,EAAS,CAAE,SAAS,mDAAmD,CAAA;AAAA;AAAA;AAAA,EAIxH,gBAAA,EAAkB,sBAAA,CAAuB,QAAA,EAAS,CAAE,SAAS,8EAA8E,CAAA;AAAA;AAAA,EAG3I,WAAA,EAAa,iBAAA,CAAkB,QAAA,EAAS,CAAE,SAAS,uCAAuC,CAAA;AAAA;AAAA,EAG1F,UAAA,EAAYA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,yFAAyF,CAAA;AAAA;AAAA;AAAA,EAIzI,YAAA,EAAcA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,wFAAwF,CAAA;AAAA;AAAA;AAAA,EAI9I,MAAA,EAAQ,wBAAA,CAAyB,QAAA,EAAS,CAAE,SAAS,mDAAmD,CAAA;AAAA;AAAA;AAAA,EAIxG,WAAA,EAAa,sBAAA,CAAuB,QAAA,EAAS,CAAE,SAAS,8CAA8C,CAAA;AAAA;AAAA,EAGtG,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yGAAyG,CAAA;AAAA;AAAA,EAG/I,mBAAA,EAAqB,qBAAA,CAAsB,QAAA,EAAS,CAAE,SAAS,2FAAwF,CAAA;AAAA;AAAA,EAGvJ,MAAA,EAAQA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,wBAAwB,CAAA;AAAA,EACpE,QAAA,EAAUA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,EAC/D,QAAQA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,+LAA+L,CAAA;AAAA,EACvO,QAAA,EAAUA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,GAAW,OAAA,CAAQ,IAAI,CAAA,CAAE,QAAA,CAAS,yCAAyC,CAAA;AAAA,EACjG,gBAAgBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8CAA8C,CAAA;AAAA,EAC7F,kBAAkBA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,mEAAmE,CAAA;AAAA,EACrH,eAAeA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,6CAA6C,CAAA;AAAA,EAC5F,kBAAkBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,0DAA0D,CAAA;AAAA;AAAA,EAE3G,KAAA,EAAOA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,gCAAgC,CAAA;AAAA,EAC3E,UAAA,EAAYA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,sCAAsC;AACxF,CAAC,CAAC;ACvdK,IAAM,UAAA,GAAaA,EAAE,IAAA,CAAK;AAAA,EAC/B,KAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAC,CAAA;AASM,IAAM,gBAAA,GAAmB,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,OAAA,EAAS,QAAQ,CAAC,CAAC,CAAA;AAS3F,IAAM,iBAAA,GAAoB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACzD,GAAA,EAAKA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,kBAAkB,CAAA;AAAA,EAC3C,MAAA,EAAQ,iBAAiB,QAAA,EAAS,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,aAAa,CAAA;AAAA,EACzE,OAAA,EAASA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA,EACnF,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,kBAAkB,CAAA;AAAA,EAChF,MAAMA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,iCAAiC;AACzE,CAAC,CAAC,CAAA;AAyB8B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAIxD,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,aAAa,CAAA;AAAA;AAAA;AAAA;AAAA,EAKzD,OAAA,EAASA,EAAE,KAAA,CAAM;AAAA,IACfA,EAAE,MAAA,EAAO;AAAA,IACTA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ;AAAA,GACnB,CAAA,CAAE,OAAA,CAAQ,GAAG,CAAA,CAAE,SAAS,6BAA6B,CAAA;AAAA;AAAA;AAAA;AAAA,EAKtD,OAAA,EAASA,EAAE,KAAA,CAAM,UAAU,EAAE,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKvE,WAAA,EAAaA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,oDAAoD,CAAA;AAAA;AAAA;AAAA;AAAA,EAKrG,MAAA,EAAQA,EAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,qCAAqC;AACpF,CAAC,CAAC;AAsBmC,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAI7D,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,sBAAsB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKnE,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,GAAK,CAAA,CAAE,QAAA,CAAS,6BAA6B,CAAA;AAAA;AAAA;AAAA;AAAA,EAKhF,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,GAAG,CAAA,CAAE,QAAA,CAAS,yBAAyB;AAC/E,CAAC,CAAC;AAuB+B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAIzD,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,wBAAwB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKlD,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,6BAA6B,CAAA;AAAA;AAAA;AAAA;AAAA,EAK5D,cAAcA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,4BAA4B;AAC3E,CAAC,CAAC;;;AC1JK,IAAM,cAAA,GAAiB,UAAA,CAAW,MAAMA,CAAAA,CAAE,mBAAmB,UAAA,EAAY;AAAA,EAC9EA,EAAE,MAAA,CAAO;AAAA,IACP,QAAA,EAAUA,CAAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA;AAAA,IAC5B,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,oBAAoB;AAAA,GACjD,CAAA;AAAA,EACDA,EAAE,MAAA,CAAO;AAAA,IACP,QAAA,EAAUA,CAAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAAA,IACzB,IAAA,EAAM,iBAAA,CAAkB,QAAA,EAAS,CAAE,SAAS,iCAAiC,CAAA;AAAA,IAC7E,KAAA,EAAO,iBAAA,CAAkB,QAAA,EAAS,CAAE,SAAS,+DAA+D;AAAA,GAC7G,CAAA;AAAA,EACDA,EAAE,MAAA,CAAO;AAAA,IACP,QAAA,EAAUA,CAAAA,CAAE,OAAA,CAAQ,OAAO,CAAA;AAAA,IAC3B,KAAA,EAAOA,EAAE,KAAA,CAAMA,CAAAA,CAAE,SAAS,CAAA,CAAE,SAAS,mBAAmB;AAAA,GACzD,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAODA,EAAE,MAAA,CAAO;AAAA,IACP,QAAA,EAAUA,CAAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA;AAAA;AAAA,IAE5B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,2DAAsD,CAAA;AAAA;AAAA,IAEpF,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,2EAA2E;AAAA,GAC1I;AACH,CAAC,CAAC,CAAA;AAeK,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAE5D,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,yBAAyB,CAAA;AAAA;AAAA,EAEpD,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mEAAmE,CAAA;AAAA;AAAA,EAEjG,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAM,CAACA,EAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAQ,EAAGA,CAAAA,CAAE,MAAK,EAAGA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAM,CAACA,CAAAA,CAAE,MAAA,EAAO,EAAGA,EAAE,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAC,CAAA,CACvG,QAAA,EAAS,CAAE,SAAS,cAAc;AACvC,CAAC,CAAA,CAAE,QAAA,CAAS,kBAAkB,CAAC,CAAA;AAQxB,IAAM,mBAAA,GAAsB,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EACzD,MAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAC,CAAA,CAAE,QAAA,CAAS,gDAAgD,CAAC,CAAA;AAMtD,IAAM,gBAAA,GAAmB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACxD,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,yBAAyB,CAAA;AAAA,EACpD,KAAA,EAAO,eAAA,CAAgB,QAAA,EAAS,CAAE,SAAS,wBAAwB,CAAA;AAAA,EACnE,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,wBAAwB,CAAA;AAAA,EACzE,KAAA,EAAOA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,QAAA,EAAU,OAAO,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,gBAAgB,CAAA;AAAA,EAC/E,QAAQA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,wBAAwB,CAAA;AAAA,EAChE,UAAUA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,8BAA8B,CAAA;AAAA,EACxE,WAAWA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,4BAA4B,CAAA;AAAA,EACvE,MAAMA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA,EAC3D,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mDAAmD,CAAA;AAAA;AAAA,EAGxF,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,OAAO,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,yCAAyC,CAAA;AAAA;AAAA,EAG/F,OAAA,EAAS,mBAAA,CAAoB,QAAA,EAAS,CAAE,SAAS,6CAA6C,CAAA;AAAA;AAAA,EAG9F,MAAMA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,qEAAqE,CAAA;AAAA,EAC3G,QAAQA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8CAA8C;AACvF,CAAC,CAAC,CAAA;AAKK,IAAM,qBAAA,GAAwB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC7D,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,QAAA,EAAU,UAAU,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,CAAE,SAAS,gBAAgB;AACxF,CAAC,CAAC,CAAA;AAKK,IAAM,sBAAA,GAAyB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC9D,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS,CAAE,OAAA,CAAQ,EAAE,CAAA,CAAE,QAAA,CAAS,4BAA4B,CAAA;AAAA,EACvF,eAAA,EAAiBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,QAAO,CAAE,GAAA,EAAI,CAAE,QAAA,EAAU,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,6BAA6B;AACzG,CAAC,CAAC,CAAA;AAMK,IAAM,eAAA,GAAkB,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EACrD,SAAA;AAAA;AAAA,EACA,OAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,MAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAA,CAAE,QAAA,CAAS,4CAA4C,CAAC,CAAA;AAMlD,IAAM,mBAAA,GAAsB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC3D,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,wBAAwB,CAAA;AAAA,EACnD,KAAA,EAAOA,CAAAA,CAAE,IAAA,CAAK,CAAC,KAAA,EAAO,MAAM,CAAC,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA,CAAE,QAAA,CAAS,kBAAkB,CAAA;AAAA,EACzE,SAAA,EAAWA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,4BAA4B;AAC7E,CAAC,CAAC,CAAA;AAMK,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC5D,MAAA,EAAQA,EAAE,KAAA,CAAM,mBAAmB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,CAAS,8CAA8C;AACrG,CAAC,CAAA,CAAE,QAAA,CAAS,+BAA+B,CAAC,CAAA;AAMrC,IAAM,mBAAA,GAAsB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC3D,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iDAAiD,CAAA;AAAA,EAC5F,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,SAAS,CAAC,CAAA,CAAE,OAAA,CAAQ,OAAO,CAAA,CAAE,QAAA,CAAS,+BAA+B,CAAA;AAAA,EAChG,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,QAAA,EAAU,OAAO,CAAC,CAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA,CAAE,SAAS,2BAA2B,CAAA;AAAA,EACrG,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gCAAgC,CAAA;AAAA,EAC3E,aAAA,EAAeA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,gCAAgC;AACzF,CAAC,CAAA,CAAE,QAAA,CAAS,iCAAiC,CAAC,CAAA;AAMvC,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC5D,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,oCAAoC,CAAA;AAAA,EACxE,cAAcA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kCAAkC,CAAA;AAAA,EAC/E,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,yCAAyC,CAAA;AAAA,EACzE,cAAcA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8BAA8B,CAAA;AAAA,EAC3E,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,EAC1E,OAAOA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,OAAO,MAAA,EAAQ,OAAA,EAAS,SAAA,EAAW,MAAM,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,CAAE,SAAS,wBAAwB;AACtH,CAAC,CAAA,CAAE,QAAA,CAAS,6BAA6B,CAAC,CAAA;AAMnC,IAAM,iBAAA,GAAoB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACzD,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,UAAA,EAAY,eAAe,CAAC,CAAA,CAAE,OAAA,CAAQ,eAAe,CAAA,CAAE,QAAA,CAAS,qBAAqB,CAAA;AAAA,EACnG,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,wCAAwC;AACnF,CAAC,CAAA,CAAE,QAAA,CAAS,uCAAuC,CAAC,CAAA;AAM7C,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC5D,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,8DAA8D,CAAA;AAAA,EACzF,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,yCAAyC;AACxG,CAAC,CAAA,CAAE,QAAA,CAAS,+CAA+C,CAAC,CAAA;AAOrD,IAAM,uBAAA,GAA0B,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EAC7D,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAC,CAAA,CAAE,QAAA,CAAS,6CAA6C,CAAC,CAAA;AASnD,IAAM,uBAAA,GAA0B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC/D,IAAA,EAAMA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,6BAA6B,CAAA;AAAA,EACtE,MAAA,EAAQA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,+BAA+B,CAAA;AAAA,EAC1E,MAAA,EAAQA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,+BAA+B,CAAA;AAAA,EAC1E,SAAA,EAAWA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,0CAA0C,CAAA;AAAA,EACxF,aAAA,EAAeA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,8CAA8C,CAAA;AAAA,EACjG,OAAA,EAASA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,iDAAiD;AACpG,CAAC,CAAA,CAAE,QAAA,CAAS,0CAA0C,CAAC,CAAA;AAQhD,IAAM,sBAAA,GAAyB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC9D,eAAA,EAAiBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,gCAAgC,CAAA;AAAA,EACpF,qBAAA,EAAuBA,EAAE,KAAA,CAAM,uBAAuB,EAAE,QAAA,EAAS,CAC9D,SAAS,gGAAgG;AAC9G,CAAC,CAAA,CAAE,QAAA,CAAS,4CAA4C,CAAC,CAAA;AASlD,IAAM,aAAA,GAAgB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACrD,IAAA,EAAM,yBAAA,CAA0B,QAAA,CAAS,6BAA6B,CAAA;AAAA,EACtE,KAAA,EAAO,eAAA,CAAgB,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA,EAC1D,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA,EACpD,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,0CAA0C,CAAA;AAAA,EAC/E,MAAA,EAAQA,EAAE,KAAA,CAAM,oBAAoB,EAAE,QAAA,EAAS,CAAE,SAAS,8BAA8B,CAAA;AAAA,EACxF,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,mBAAmB,CAAA;AAAA,EACtE,MAAA,EAAQA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,sCAAsC,CAAA;AAAA,EAClF,SAAA,EAAWA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,+BAA+B,CAAA;AAAA,EAC9E,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,gBAAgB;AAC9D,CAAC,CAAA,CAAE,QAAA,CAAS,gDAAgD,CAAC,CAAA;AAQtD,IAAM,qBAAA,GAAwB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC7D,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,iCAAiC,CAAA;AAAA,EAC7E,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,CAAC,KAAA,EAAO,QAAA,EAAU,MAAM,CAAC,CAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA,CAAE,SAAS,mCAAmC,CAAA;AAAA,EAC1G,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,MAAA,EAAQ,OAAO,CAAC,CAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA,CAAE,SAAS,yBAAyB,CAAA;AAAA,EAC9F,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uDAAuD;AAClG,CAAC,CAAA,CAAE,QAAA,CAAS,sCAAsC,CAAC,CAAA;AAK5C,IAAM,kBAAA,GAAqB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC1D,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mDAAmD,CAAA;AAAA,EACrF,gBAAgBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,6CAA6C,CAAA;AAAA,EAC5F,OAAA,EAASA,EAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA,CAAE,SAAS,yBAAyB;AACjE,CAAC,CAAC,CAAA;AAQK,IAAM,qBAAA,GAAwB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC7D,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,OAAO,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAQ,SAAS,CAAC,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA,CAAE,SAAS,0BAA0B,CAAA;AAAA,EAC/G,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,+CAA+C,CAAA;AAAA,EAC/E,WAAA,EAAaA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,CAAS,wCAAwC,CAAA;AAAA,EACzF,WAAA,EAAaA,CAAAA,CAAE,IAAA,CAAK,CAAC,OAAO,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,KAAK,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,+CAA+C,CAAA;AAAA,EAC9H,cAAcA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gDAAgD;AAC/F,CAAC,CAAA,CAAE,QAAA,CAAS,+BAA+B,CAAC,CAAA;AAKrC,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC5D,cAAA,EAAgBA,EAAE,MAAA,EAAO;AAAA,EACzB,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,EACrB,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACzB,CAAC,CAAC,CAAA;AAKK,IAAM,iBAAA,GAAoB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACzD,cAAA,EAAgBA,EAAE,MAAA,EAAO;AAAA,EACzB,YAAA,EAAcA,EAAE,MAAA,EAAO;AAAA,EACvB,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,EACrB,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAChC,CAAC,CAAC,CAAA;AAMK,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EAC1D,MAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,OAAA;AAAA;AAAA,EACA,OAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA,YAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAC,CAAA;AAKK,IAAM,sBAAA,GAAyB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC9D,IAAA,EAAM,oBAAA,CAAqB,OAAA,CAAQ,MAAM,CAAA;AAAA;AAAA,EAGzC,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,6EAA6E,CAAA;AAAA;AAAA,EAGlH,iBAAA,EAAmBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,sCAAsC,CAAA;AAAA,EAC7F,UAAA,EAAYA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,8CAA8C,CAAA;AAAA;AAAA,EAG9F,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAM,CAACA,EAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,MAAA,EAAQ,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,iDAAiD;AAChH,CAAC,CAAC,CAAA;AA6BK,IAAM,cAAA,GAAiB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACtD,IAAA,EAAM,yBAAA,CAA0B,QAAA,EAAS,CAAE,SAAS,2CAA2C,CAAA;AAAA,EAC/F,KAAA,EAAO,gBAAgB,QAAA,EAAS;AAAA;AAAA,EAChC,IAAA,EAAMA,EAAE,IAAA,CAAK;AAAA,IACX,MAAA;AAAA;AAAA,IACA,QAAA;AAAA;AAAA,IACA,SAAA;AAAA;AAAA,IACA,UAAA;AAAA;AAAA,IACA,UAAA;AAAA;AAAA,IACA,OAAA;AAAA;AAAA,IACA,KAAA;AAAA;AAAA,IACA;AAAA;AAAA,GACD,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA;AAAA,EAGjB,IAAA,EAAM,cAAA,CAAe,QAAA,EAAS,CAAE,SAAS,2DAA2D,CAAA;AAAA;AAAA,EAGpG,OAAA,EAASA,EAAE,KAAA,CAAM;AAAA,IACfA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA;AAAA;AAAA,IAClBA,CAAAA,CAAE,MAAM,gBAAgB;AAAA;AAAA,GACzB,CAAA,CAAE,QAAA,CAAS,8BAA8B,CAAA;AAAA,EAC1C,MAAA,EAAQA,EAAE,KAAA,CAAM,oBAAoB,EAAE,QAAA,EAAS,CAAE,SAAS,8BAA8B,CAAA;AAAA,EACxF,IAAA,EAAMA,EAAE,KAAA,CAAM;AAAA,IACZA,EAAE,MAAA,EAAO;AAAA;AAAA,IACTA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,MACf,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,MAChB,OAAOA,CAAAA,CAAE,IAAA,CAAK,CAAC,KAAA,EAAO,MAAM,CAAC;AAAA,KAC9B,CAAC;AAAA,GACH,EAAE,QAAA,EAAS;AAAA;AAAA,EAGZ,gBAAA,EAAkBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,2BAA2B,CAAA;AAAA,EACrF,gBAAA,EAAkBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,sDAAsD,CAAA;AAAA;AAAA,EAGhH,WAAWA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,wBAAwB,CAAA;AAAA,EACnE,SAASA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA,EAC9D,UAAUA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,cAAc,CAAA;AAAA,EACxD,gBAAgBA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,8EAA8E,CAAA;AAAA;AAAA,EAG9H,SAAA,EAAW,qBAAA,CAAsB,QAAA,EAAS,CAAE,SAAS,6BAA6B,CAAA;AAAA;AAAA,EAGlF,UAAA,EAAY,sBAAA,CAAuB,QAAA,EAAS,CAAE,SAAS,qEAAqE,CAAA;AAAA;AAAA,EAG5H,UAAA,EAAY,sBAAA,CAAuB,QAAA,EAAS,CAAE,SAAS,0BAA0B,CAAA;AAAA;AAAA,EAGjF,MAAA,EAAQ,mBAAmB,QAAA,EAAS;AAAA,EACpC,QAAA,EAAU,qBAAqB,QAAA,EAAS;AAAA,EACxC,KAAA,EAAO,kBAAkB,QAAA,EAAS;AAAA,EAClC,OAAA,EAAS,oBAAoB,QAAA,EAAS;AAAA,EACtC,QAAA,EAAU,qBAAqB,QAAA,EAAS;AAAA,EACxC,KAAA,EAAO,sBAAsB,QAAA,EAAS;AAAA;AAAA,EAGtC,WAAA,EAAa,eAAA,CAAgB,QAAA,EAAS,CAAE,SAAS,6CAA6C,CAAA;AAAA,EAC9F,OAAA,EAAS,iBAAA,CAAkB,QAAA,EAAS,CAAE,SAAS,uCAAuC,CAAA;AAAA;AAAA,EAGtF,SAAA,EAAW,eAAA,CAAgB,QAAA,EAAS,CAAE,SAAS,8BAA8B,CAAA;AAAA;AAAA,EAG7E,QAAA,EAAU,oBAAA,CAAqB,QAAA,EAAS,CAAE,SAAS,qCAAqC,CAAA;AAAA;AAAA,EAGxF,QAAA,EAAU,oBAAA,CAAqB,QAAA,EAAS,CAAE,SAAS,iCAAiC,CAAA;AAAA;AAAA,EAGpF,YAAA,EAAcA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,sCAAsC,CAAA;AAAA,EAC5F,UAAA,EAAYA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,4CAA4C,CAAA;AAAA;AAAA,EAGhG,UAAA,EAAYA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,4CAA4C,CAAA;AAAA,EAChG,WAAA,EAAaA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,mDAAmD,CAAA;AAAA,EACxG,gBAAgBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,CAAOA,EAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,GAAA,EAAK,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,6EAA6E,CAAA;AAAA;AAAA,EAGxJ,eAAeA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,6CAA6C,CAAA;AAAA;AAAA,EAG5F,qBAAA,EAAuBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,SAAA,EAAW,qBAAA,CAAsB,QAAA,CAAS,8BAA8B,CAAA;AAAA,IACxE,KAAA,EAAOA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,CAAS,4CAA4C;AAAA,GAC9F,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,4CAA4C,CAAA;AAAA;AAAA,EAGpE,YAAYA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,2DAA2D,CAAA;AAAA;AAAA,EAGvG,eAAeA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAM,CAAC,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,iCAAiC,CAAA;AAAA;AAAA,EAGpH,WAAA,EAAa,uBAAA,CAAwB,QAAA,EAAS,CAAE,SAAS,0CAA0C,CAAA;AAAA;AAAA,EAGnG,UAAA,EAAY,sBAAA,CAAuB,QAAA,EAAS,CAAE,SAAS,4CAA4C,CAAA;AAAA;AAAA,EAGnG,IAAA,EAAMA,EAAE,KAAA,CAAM,aAAa,EAAE,QAAA,EAAS,CAAE,SAAS,8CAA8C,CAAA;AAAA;AAAA,EAG/F,SAAA,EAAW,qBAAA,CAAsB,QAAA,EAAS,CAAE,SAAS,sCAAsC,CAAA;AAAA;AAAA,EAG3F,iBAAiBA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,6CAA6C,CAAA;AAAA;AAAA,EAG9F,eAAeA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA;AAAA,EAG9E,UAAA,EAAYA,EAAE,MAAA,CAAO;AAAA,IACnB,KAAA,EAAO,gBAAgB,QAAA,EAAS;AAAA,IAChC,OAAA,EAAS,gBAAgB,QAAA,EAAS;AAAA,IAClC,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC3B,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,iDAAiD,CAAA;AAAA;AAAA,EAGxE,IAAA,EAAM,eAAA,CAAgB,QAAA,EAAS,CAAE,SAAS,iDAAiD,CAAA;AAAA;AAAA,EAG3F,UAAA,EAAY,sBAAA,CAAuB,QAAA,EAAS,CAAE,SAAS,iCAAiC,CAAA;AAAA;AAAA,EAGxF,WAAA,EAAa,uBAAA,CAAwB,QAAA,EAAS,CAAE,SAAS,mCAAmC;AAC9F,CAAC,CAAC,CAAA;AAmBK,IAAM,eAAA,GAAkC,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAEvE,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,yBAAyB,CAAA;AAAA;AAAA,EAGpD,IAAA,EAAM,SAAA,CAAU,QAAA,EAAS,CAAE,SAAS,4CAA4C,CAAA;AAAA;AAAA,EAGhF,OAAA,EAASA,EAAE,KAAA,CAAM,kBAAkB,EAAE,QAAA,EAAS,CAAE,SAAS,wDAAwD,CAAA;AAAA;AAAA,EAGjH,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oDAAoD,CAAA;AAAA;AAAA,EAG9F,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8DAA8D,CAAA;AAAA,EACxG,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,0BAA0B,CAAA;AAAA;AAAA,EAGpE,KAAKA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oDAAoD,CAAA;AAAA,EACxF,KAAKA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA,EACnD,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oCAAoC,CAAA;AAAA,EAC9E,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA,EAGtD,UAAUA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,sDAAsD,CAAA;AAAA;AAAA,EAGhG,KAAA,EAAO,eAAA,CAAgB,QAAA,EAAS,CAAE,SAAS,wBAAwB,CAAA;AAAA,EACnE,WAAA,EAAa,eAAA,CAAgB,QAAA,EAAS,CAAE,SAAS,kBAAkB,CAAA;AAAA,EACnE,QAAA,EAAU,eAAA,CAAgB,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA,EAC9D,UAAUA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,EAC9D,WAAWA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,yEAAyE,CAAA;AAAA,EACpH,UAAUA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,EAC7D,QAAQA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,iBAAiB,CAAA;AAAA,EACzD,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,KAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,IAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,kCAAkC,CAAA;AAAA;AAAA,EAG9F,QAAQA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,+DAA+D,CAAA;AAAA;AAAA,EAGtG,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sCAAsC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAW/E,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,IAAA,CAAK,MAAM,eAAe,CAAC,CAAA,CAAE,QAAA,EAAS,CACrD,QAAA,CAAS,yCAAyC,CAAA;AAAA,EAErD,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iCAAiC,CAAA;AAAA,EAC3E,SAAA,EAAW,qBAAA,CAAsB,QAAA,EAAS,CAAE,SAAS,6BAA6B;AACpF,CAAC,CAAC,CAAA;AAKK,IAAM,iBAAA,GAAoB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACzD,KAAA,EAAO,gBAAgB,QAAA,EAAS;AAAA,EAChC,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yDAAyD,CAAA;AAAA,EACrG,WAAA,EAAaA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA;AAAA,EACtC,SAAA,EAAWA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA;AAAA,EACpC,SAAA,EAAW,qBAAA,CAAsB,QAAA,EAAS,CAAE,SAAS,iEAAiE,CAAA;AAAA,EACtH,OAAA,EAASA,EAAE,KAAA,CAAM;AAAA,IACfA,EAAE,IAAA,CAAK,CAAC,KAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAC,CAAA;AAAA,IAC3BA,CAAAA,CAAE,QAAQ,CAAC,CAAA;AAAA,IACXA,CAAAA,CAAE,QAAQ,CAAC,CAAA;AAAA,IACXA,CAAAA,CAAE,QAAQ,CAAC,CAAA;AAAA,IACXA,CAAAA,CAAE,QAAQ,CAAC;AAAA,GACZ,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,SAAA,CAAU,CAAA,GAAA,KAAQ,OAAO,GAAA,KAAQ,QAAA,GAAW,QAAA,CAAS,GAAG,IAAI,GAAqB,CAAA;AAAA,EAC/F,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,KAAA,CAAM;AAAA,IACtBA,EAAE,MAAA,EAAO;AAAA;AAAA,IACT;AAAA;AAAA,GACD,CAAC;AACJ,CAAC,CAAC,CAAA;AAsBK,IAAM,cAAA,GAAiB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACtD,IAAA,EAAMA,EAAE,IAAA,CAAK;AAAA,IACX,QAAA;AAAA;AAAA,IACA,QAAA;AAAA;AAAA,IACA,QAAA;AAAA;AAAA,IACA,OAAA;AAAA;AAAA,IACA,QAAA;AAAA;AAAA,IACA;AAAA;AAAA,GACD,CAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA;AAAA;AAAA,EAGnB,IAAA,EAAM,cAAA,CAAe,QAAA,EAAS,CAAE,SAAS,2DAA2D,CAAA;AAAA,EAEpG,QAAA,EAAUA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,EAAE,QAAA,EAAS;AAAA;AAAA,EAC9C,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,EAAE,QAAA,EAAS;AAAA;AAAA;AAAA,EAG5C,WAAA,EAAaA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,IAC5B,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,uBAAuB,CAAA;AAAA,IAClD,KAAA,EAAOA,CAAAA,CAAE,IAAA,CAAK,CAAC,KAAA,EAAO,MAAM,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,CAAE,QAAA,CAAS,gBAAgB;AAAA,GACzE,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,4DAA4D,CAAA;AAAA;AAAA,EAGpF,OAAA,EAAS,mBAAA,CAAoB,QAAA,EAAS,CAAE,SAAS,4CAA4C,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAU7F,cAAA,EAAgBA,EAAE,KAAA,CAAM;AAAA,IACtBA,EAAE,MAAA,CAAO;AAAA,MACP,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,WAAW,CAAA;AAAA,MAC3B,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC3B,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KAC9B,CAAA;AAAA,IACDA,EAAE,MAAA,CAAO;AAAA,MACP,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,UAAU,CAAA;AAAA,MAC1B,GAAA,EAAKA,EAAE,MAAA,EAAO;AAAA,MACd,OAAA,EAASA,EAAE,MAAA,EAAO,CAAE,KAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA;AAAS,KAC3C,CAAA;AAAA,IACDA,CAAAA,CAAE,OAAO,EAAE,IAAA,EAAMA,EAAE,OAAA,CAAQ,UAAU,GAAG,CAAA;AAAA,IACxCA,CAAAA,CAAE,OAAO,EAAE,IAAA,EAAMA,EAAE,OAAA,CAAQ,aAAa,GAAG;AAAA,GAC5C,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA;AAAA,EAG7C,IAAA,EAAM,eAAA,CAAgB,QAAA,EAAS,CAAE,SAAS,iDAAiD;AAC7F,CAAC,CAAC,CAAA;AAoBwB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAChD,IAAA,EAAM,eAAe,QAAA,EAAS;AAAA;AAAA,EAC9B,IAAA,EAAM,eAAe,QAAA,EAAS;AAAA;AAAA,EAC9B,SAAA,EAAWA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAG,cAAc,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,6BAA6B,CAAA;AAAA,EACjG,SAAA,EAAWA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAG,cAAc,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,6BAA6B;AACrG,CAAC,CAAC;AA6DK,SAAS,WACd,MAAA,EACU;AACV,EAAA,MAAM,EAAE,QAAA,EAAU,GAAG,IAAA,EAAK,GAAI,MAAA;AAC9B,EAAA,OAAO,eAAe,KAAA,CAAM;AAAA,IAC1B,GAAG,IAAA;AAAA,IACH,IAAA,EAAM,EAAE,QAAA,EAAU,QAAA,EAAU,QAAA;AAAS,GACtC,CAAA;AACH;;;AClwBO,IAAM,eAAe,UAAA,CAAW;AAAA,EACrC,QAAA,EAAU,UAAA;AAAA,EACV,IAAA,EAAM,QAAA;AAAA,EACN,QAAA,EAAU;AAAA,IACR;AAAA,MACE,KAAA,EAAO,QAAA;AAAA,MACP,WAAA,EAAa,iDAAA;AAAA,MACb,OAAA,EAAS,CAAA;AAAA,MACT,MAAA,EAAQ;AAAA,QACN,EAAE,OAAO,MAAA,EAAQ,QAAA,EAAU,MAAM,OAAA,EAAS,CAAA,EAAG,UAAU,gCAAA,EAAiC;AAAA,QACxF,EAAE,KAAA,EAAO,YAAA,EAAc,MAAA,EAAQ,YAAA,EAAc,UAAU,IAAA,EAAM,OAAA,EAAS,CAAA,EAAG,QAAA,EAAU,qCAAA,EAAsC;AAAA,QACzH,EAAE,OAAO,aAAA,EAAe,QAAA,EAAU,MAAM,OAAA,EAAS,CAAA,EAAG,UAAU,wDAAA,EAAyD;AAAA,QACvH,EAAE,KAAA,EAAO,QAAA,EAAU,OAAA,EAAS,CAAA,EAAG,UAAU,8BAAA,EAA+B;AAAA,QACxE,EAAE,OAAO,aAAA,EAAe,MAAA,EAAQ,YAAY,OAAA,EAAS,CAAA,EAAG,UAAU,yBAAA,EAA0B;AAAA,QAC5F,EAAE,OAAO,UAAA,EAAY,MAAA,EAAQ,YAAY,OAAA,EAAS,CAAA,EAAG,UAAU,sDAAA;AAAuD;AACxH,KACF;AAAA,IACA;AAAA,MACE,KAAA,EAAO,SAAA;AAAA,MACP,WAAA,EAAa,qCAAA;AAAA,MACb,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,UAAA,EAAY,UAAU,sEAAA,EAAuE;AAAA,QACvH,EAAE,KAAA,EAAO,cAAA,EAAgB,IAAA,EAAM,UAAA,EAAY,UAAU,+DAAA;AAAgE;AACvH,KACF;AAAA,IACA;AAAA,MACE,KAAA,EAAO,UAAA;AAAA,MACP,WAAA,EAAa,mCAAA;AAAA,MACb,WAAA,EAAa,IAAA;AAAA,MACb,SAAA,EAAW,IAAA;AAAA,MACX,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,gBAAA,EAAkB,QAAA,EAAU,2DAAA;AAA4D;AACnG;AACF;AAEJ,CAAC;ACnCM,IAAM,cAAA,GAAiBA,EAAE,IAAA,CAAK;AAAA,EACnC,OAAA;AAAA;AAAA,EACA,KAAA;AAAA;AAAA,EACA,UAAA;AAAA;AAAA,EACA,YAAA;AAAA;AAAA,EACA,MAAA;AAAA;AAAA,EACA,eAAA;AAAA;AAAA,EACA,eAAA;AAAA;AAAA,EACA,eAAA;AAAA;AAAA,EACA,YAAA;AAAA;AAAA,EACA,cAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,MAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA,kBAAA;AAAA;AAAA,EACA,kBAAA;AAAA;AAAA,EACA,cAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAMM,IAAM,kBAAA,GAAqB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC1D,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,eAAe,CAAA;AAAA,EACzC,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iDAAiD,CAAA;AAAA,EAC3E,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,oBAAoB,CAAA;AAAA,EACjE,QAAA,EAAUA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,qBAAqB;AACrE,CAAC,CAAC;AAoBK,IAAM,cAAA,GAAiB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACtD,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gBAAgB,CAAA;AAAA,EACxC,IAAA,EAAM,cAAA,CAAe,QAAA,CAAS,aAAa,CAAA;AAAA,EAC3C,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,YAAY,CAAA;AAAA;AAAA,EAGvC,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlF,eAAA,EAAiBA,EAAE,MAAA,CAAO;AAAA,IACxB,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,IACtB,QAAA,EAAUA,EAAE,MAAA,EAAO;AAAA,IACnB,KAAA,EAAOA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,8BAA8B;AAAA,GACjF,EAAE,QAAA,EAAS;AAAA;AAAA,EAGZ,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAO,EAAE,GAAGA,CAAAA,CAAE,MAAA,EAAO,EAAG,CAAA,EAAGA,CAAAA,CAAE,MAAA,EAAO,EAAG,EAAE,QAAA,EAAS;AAAA;AAAA,EAG9D,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,sDAAsD,CAAA;AAAA;AAAA,EAG7G,aAAaA,CAAAA,CAAE,MAAA,CAAOA,EAAE,MAAA,EAAO,EAAGA,EAAE,MAAA,CAAO;AAAA,IACzC,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,OAAO,CAAC,CAAA,CAAE,QAAA,CAAS,gBAAgB,CAAA;AAAA,IAC1F,QAAA,EAAUA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,mCAAmC,CAAA;AAAA,IACjF,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB;AAAA,GACpE,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,sCAAsC,CAAA;AAAA;AAAA,EAG9D,cAAcA,CAAAA,CAAE,MAAA,CAAOA,EAAE,MAAA,EAAO,EAAGA,EAAE,MAAA,CAAO;AAAA,IAC1C,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,OAAO,CAAC,CAAA,CAAE,QAAA,CAAS,aAAa,CAAA;AAAA,IACvF,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB;AAAA,GACjE,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,yCAAyC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjE,eAAA,EAAiBA,EAAE,MAAA,CAAO;AAAA;AAAA,IAExB,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,WAAW,CAAC,CAAA,CACpE,QAAA,CAAS,0CAA0C,CAAA;AAAA;AAAA,IAEtD,eAAeA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gEAAgE,CAAA;AAAA;AAAA,IAE9G,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,2CAA2C,CAAA;AAAA;AAAA,IAEtF,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,uCAAuC,CAAA;AAAA;AAAA,IAE9F,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,UAAU,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,CAAE,QAAA,CAAS,kCAAkC;AAAA,GACpG,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,8CAA8C,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOrE,cAAA,EAAgBA,EAAE,MAAA,CAAO;AAAA;AAAA,IAEvB,gBAAA,EAAkBA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,2CAA2C,CAAA;AAAA;AAAA,IAEjF,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,OAAA,EAAS,QAAA,EAAU,QAAQ,CAAC,CAAA,CACrD,QAAA,CAAS,6BAA6B,CAAA;AAAA;AAAA,IAEzC,YAAA,EAAcA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CACnC,SAAS,+DAA+D,CAAA;AAAA;AAAA,IAE3E,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yDAAyD,CAAA;AAAA;AAAA,IAEnG,eAAeA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,6CAA6C,CAAA;AAAA;AAAA,IAE3F,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB;AAAA,GACnE,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,0DAA0D;AACnF,CAAC,CAAC;AAMK,IAAM,cAAA,GAAiB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACtD,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gBAAgB,CAAA;AAAA,EACxC,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gBAAgB,CAAA;AAAA,EAC5C,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA,EAG5C,SAAA,EAAW,qBAAA,CAAsB,QAAA,EAAS,CAAE,SAAS,uDAAuD,CAAA;AAAA,EAE5G,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,OAAA,EAAS,aAAa,CAAC,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,CAChE,SAAS,iGAAiG,CAAA;AAAA,EAC7G,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,wBAAwB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO9D,SAAA,EAAWA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CACjC,SAAS,oEAAoE;AAClF,CAAC,CAAC;AAyBK,IAAM,UAAA,GAAa,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAElD,IAAA,EAAMA,EAAE,MAAA,EAAO,CAAE,MAAM,oBAAoB,CAAA,CAAE,SAAS,cAAc,CAAA;AAAA,EACpE,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,YAAY,CAAA;AAAA,EACvC,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAGjC,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,CAAS,gBAAgB,CAAA;AAAA,EAC9D,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,CAAC,SAAS,QAAA,EAAU,UAAA,EAAY,SAAS,CAAC,CAAA,CAAE,OAAA,CAAQ,OAAO,CAAA,CAAE,SAAS,mBAAmB,CAAA;AAAA,EACxG,QAAA,EAAUA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,6BAA6B,CAAA;AAAA;AAAA,EAG3E,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,cAAA,EAAgB,eAAA,EAAiB,UAAA,EAAY,QAAA,EAAU,KAAK,CAAC,CAAA,CAAE,QAAA,CAAS,WAAW,CAAA;AAAA;AAAA,EAGjG,SAAA,EAAWA,EAAE,KAAA,CAAM,kBAAkB,EAAE,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA,EAG3E,OAAOA,CAAAA,CAAE,KAAA,CAAM,cAAc,CAAA,CAAE,SAAS,YAAY,CAAA;AAAA,EACpD,OAAOA,CAAAA,CAAE,KAAA,CAAM,cAAc,CAAA,CAAE,SAAS,kBAAkB,CAAA;AAAA;AAAA,EAG1D,MAAA,EAAQA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,oCAAoC,CAAA;AAAA,EAChF,KAAA,EAAOA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,MAAM,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,CAAE,QAAA,CAAS,mBAAmB,CAAA;AAAA;AAAA,EAG9E,aAAA,EAAeA,EAAE,MAAA,CAAO;AAAA,IACtB,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,OAAA,EAAS,UAAU,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,CAAE,SAAS,qCAAqC,CAAA;AAAA,IAC9G,YAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,SAAS,oDAAoD,CAAA;AAAA,IACpH,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,GAAI,CAAA,CAAE,SAAS,uCAAuC,CAAA;AAAA,IACpG,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,CAAS,oDAAoD,CAAA;AAAA,IAC7G,eAAA,EAAiBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,GAAK,CAAA,CAAE,SAAS,+CAA+C,CAAA;AAAA,IAChH,MAAA,EAAQA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,2DAA2D,CAAA;AAAA,IACvG,gBAAgBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,2CAA2C;AAAA,GAC3F,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,yCAAyC;AAClE,CAAC,CAAC;AAqBK,SAAS,WAAW,MAAA,EAAgD;AACzE,EAAA,OAAO,UAAA,CAAW,MAAM,MAAM,CAAA;AAChC;AAeO,IAAM,wBAAA,GAA2B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAChE,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mBAAmB,CAAA;AAAA,EACjD,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,CAAS,gBAAgB,CAAA;AAAA,EAC1D,UAAA,EAAY,UAAA,CAAW,QAAA,CAAS,mCAAmC,CAAA;AAAA,EACnE,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,EACzE,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,EACzE,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,6CAA6C;AAC1F,CAAC,CAAC;;;ACjQK,IAAM,WAAW,UAAA,CAAW;AAAA,EACjC,QAAA,EAAU,MAAA;AAAA,EACV,IAAA,EAAM,QAAA;AAAA,EACN,QAAA,EAAU;AAAA,IACR;AAAA,MACE,KAAA,EAAO,QAAA;AAAA,MACP,WAAA,EAAa,kCAAA;AAAA,MACb,OAAA,EAAS,CAAA;AAAA,MACT,MAAA,EAAQ;AAAA,QACN,EAAE,OAAO,MAAA,EAAQ,QAAA,EAAU,MAAM,OAAA,EAAS,CAAA,EAAG,UAAU,gCAAA,EAAiC;AAAA,QACxF,EAAE,OAAO,OAAA,EAAS,QAAA,EAAU,MAAM,OAAA,EAAS,CAAA,EAAG,UAAU,wBAAA,EAAyB;AAAA,QACjF,EAAE,OAAO,MAAA,EAAQ,QAAA,EAAU,MAAM,OAAA,EAAS,CAAA,EAAG,UAAU,0EAAA,EAA2E;AAAA,QAClI,EAAE,KAAA,EAAO,UAAA,EAAY,OAAA,EAAS,CAAA,EAAG,UAAU,6DAAA,EAA8D;AAAA,QACzG,EAAE,OAAO,aAAA,EAAe,MAAA,EAAQ,YAAY,OAAA,EAAS,CAAA,EAAG,UAAU,qBAAA;AAAsB;AAC1F,KACF;AAAA,IACA;AAAA,MACE,KAAA,EAAO,QAAA;AAAA,MACP,WAAA,EAAa,yFAAA;AAAA,MACb,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,KAAA,EAAO,OAAA;AAAA,UACP,IAAA,EAAM,UAAA;AAAA,UACN,QAAA,EAAU,IAAA;AAAA,UACV,QAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,KAAA,EAAO,OAAA;AAAA,UACP,IAAA,EAAM,UAAA;AAAA,UACN,QAAA,EAAU,IAAA;AAAA,UACV,QAAA,EAAU;AAAA,SACZ;AAAA,QACA,EAAE,KAAA,EAAO,WAAA,EAAa,IAAA,EAAM,UAAA,EAAY,UAAU,iCAAA;AAAkC;AACtF,KACF;AAAA,IACA;AAAA,MACE,KAAA,EAAO,WAAA;AAAA,MACP,WAAA,EAAa,kDAAA;AAAA,MACb,WAAA,EAAa,IAAA;AAAA,MACb,SAAA,EAAW,IAAA;AAAA,MACX,OAAA,EAAS,CAAA;AAAA,MACT,MAAA,EAAQ;AAAA,QACN,EAAE,OAAO,QAAA,EAAU,QAAA,EAAU,MAAM,OAAA,EAAS,CAAA,EAAG,UAAU,wDAAA,EAA+C;AAAA,QACxG,EAAE,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS,CAAA,EAAG,UAAU,mCAAA,EAAoC;AAAA,QAC9E,EAAE,KAAA,EAAO,OAAA,EAAS,OAAA,EAAS,CAAA,EAAG,UAAU,8DAAA,EAA+D;AAAA,QACvG,EAAE,OAAO,eAAA,EAAiB,IAAA,EAAM,aAAa,OAAA,EAAS,CAAA,EAAG,UAAU,sDAAA;AAAuD;AAC5H;AACF;AAEJ,CAAC;AClCM,IAAM,eAAA,GAAkBA,EAAE,IAAA,CAAK;AAAA,EACpC,SAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAWM,IAAM,sBAAA,GAAyB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC9D,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,2BAA2B,CAAA;AAAA,EACvD,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,qDAAqD,CAAA;AAAA,EACnF,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,2BAA2B,CAAA;AAAA,EACrE,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,WAAW,SAAS,CAAC,CAAA,CAAE,QAAA,CAAS,uBAAuB,CAAA;AAAA,EAClF,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA,EACjE,WAAA,EAAaA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,yBAAyB,CAAA;AAAA,EAChF,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,yCAAyC,CAAA;AAAA,EACjG,KAAA,EAAOA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,EAC5F,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,kCAAkC,CAAA;AAAA,EAChG,KAAA,EAAOA,EAAE,MAAA,CAAO;AAAA,IACd,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,YAAY,CAAA;AAAA,IACtC,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,eAAe,CAAA;AAAA,IAC5C,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,aAAa;AAAA,GACpD,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,8BAA8B,CAAA;AAAA,EACrD,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,sCAAsC;AAClG,CAAC,CAAC;AAuBK,IAAM,kBAAA,GAAqB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAE1D,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,uBAAuB,CAAA;AAAA;AAAA,EAG/C,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mCAAmC,CAAA;AAAA,EACjE,WAAA,EAAaA,EAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,uCAAuC,CAAA;AAAA;AAAA,EAGzF,MAAA,EAAQ,eAAA,CAAgB,QAAA,CAAS,0BAA0B,CAAA;AAAA;AAAA,EAG3D,OAAA,EAASA,EAAE,MAAA,CAAO;AAAA,IAChB,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mEAAmE,CAAA;AAAA,IAC7F,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,IAC/D,QAAQA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,wBAAwB,CAAA;AAAA,IAC/D,QAAQA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kCAAkC,CAAA;AAAA,IACzE,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,4BAA4B;AAAA,GAC7F,CAAA,CAAE,QAAA,CAAS,+BAA+B,CAAA;AAAA;AAAA,EAG3C,OAAOA,CAAAA,CAAE,KAAA,CAAM,sBAAsB,CAAA,CAAE,SAAS,gCAAgC,CAAA;AAAA;AAAA,EAGhF,SAAA,EAAWA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA;AAAA,EAGhG,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,2BAA2B,CAAA;AAAA,EACrE,WAAA,EAAaA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,gCAAgC,CAAA;AAAA,EACvF,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,0CAA0C,CAAA;AAAA;AAAA,EAGlG,KAAA,EAAOA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,MAAM,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,4BAA4B,CAAA;AAAA,EAClF,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sCAAsC;AACjF,CAAC,CAAC;AAUK,IAAM,sBAAA,GAAyBA,EAAE,IAAA,CAAK;AAAA,EAC3C,SAAA;AAAA;AAAA,EACA,OAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAOM,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC5D,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iBAAiB,CAAA;AAAA,EACzC,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,qBAAqB,CAAA;AAAA,EACtD,QAAQA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,EACtE,QAAA,EAAU,sBAAA,CAAuB,QAAA,CAAS,sBAAsB,CAAA;AAAA,EAChE,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,6BAA6B,CAAA;AAAA,EACvD,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,8BAA8B,CAAA;AAAA,EAC3D,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,2BAA2B,CAAA;AAAA,EACjE,OAAA,EAASA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CACjD,SAAS,6DAA6D,CAAA;AAAA,EACzE,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yBAAyB,CAAA;AAAA,EACnE,SAAA,EAAWA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,mCAAmC,CAAA;AAAA,EAClF,UAAA,EAAYA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,4DAA4D;AACpH,CAAC,CAAC;AAaK,IAAM,gBAAA,GAAmB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAExD,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,eAAe,CAAA;AAAA;AAAA,EAGvC,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,qBAAqB,CAAA;AAAA,EACtD,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mBAAmB,CAAA;AAAA;AAAA,EAGjD,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mCAAmC,CAAA;AAAA,EACtE,SAAA,EAAWA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,mCAAmC,CAAA;AAAA,EACzF,gBAAA,EAAkBA,EAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA,CAAE,SAAS,mCAAmC,CAAA;AAAA;AAAA,EAGlF,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,EACzE,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,sCAAsC,CAAA;AAAA;AAAA,EAG3F,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAQ,cAAA,EAAgB,UAAA,EAAY,OAAA,EAAS,cAAA,EAAgB,eAAA,EAAiB,gBAAgB,CAAC,CAAA,CAC5G,SAAS,oCAAoC;AAClD,CAAC,CAAC;AAaK,IAAM,uBAAA,GAA0B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAE/D,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAC7C,SAAS,iDAAiD,CAAA;AAAA;AAAA,EAG7D,UAAA,EAAYA,CAAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,QAAA,EAAU,iBAAiB,CAAC,CAAA,CACtD,OAAA,CAAQ,OAAO,CAAA,CACf,SAAS,+FAA+F,CAAA;AAAA;AAAA,EAG3G,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,YAAA,EAAc,UAAU,CAAC,CAAA,CACnD,OAAA,CAAQ,QAAQ,CAAA,CAChB,SAAS,+BAA+B,CAAA;AAAA;AAAA,EAG3C,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAC9C,QAAA,CAAS,sDAAsD;AACpE,CAAC,CAAC;AAaK,IAAM,mBAAA,GAAsB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAE3D,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,sBAAsB,CAAA;AAAA;AAAA,EAG9C,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mBAAmB,CAAA;AAAA;AAAA,EAGjD,cAAA,EAAgB,yBAAA,CAA0B,QAAA,CAAS,8CAAyC,CAAA;AAAA,EAC5F,QAAA,EAAUA,EAAE,MAAA,EAAO,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,mCAAmC,CAAA;AAAA;AAAA,EAGhF,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,CAAC,UAAU,QAAA,EAAU,UAAA,EAAY,SAAS,CAAC,CAAA,CACvD,OAAA,CAAQ,QAAQ,CAAA,CAChB,SAAS,yBAAyB,CAAA;AAAA,EACrC,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,oCAAoC,CAAA;AAAA,EACzF,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,0BAA0B,CAAA;AAAA,EAC/E,iBAAiBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8BAA8B,CAAA;AAAA,EAC9E,aAAA,EAAe,eAAA,CAAgB,QAAA,EAAS,CAAE,SAAS,wBAAwB,CAAA;AAAA;AAAA,EAG3E,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,SAAS,4BAA4B,CAAA;AAAA,EACnF,mBAAA,EAAqBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,SAAS,+BAA+B,CAAA;AAAA;AAAA,EAGhG,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,+BAA+B,CAAA;AAAA,EACpF,OAAA,EAASA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,0BAA0B,CAAA;AAAA,EAC7E,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,8CAA8C,CAAA;AAAA;AAAA,EAGnG,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,6BAA6B,CAAA;AAAA,EACvE,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,uBAAuB,CAAA;AAAA,EAC5E,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,+BAA+B;AAC3E,CAAC,CAAC;AC3PK,IAAM,kBAAA,GAAqBA,EAAE,IAAA,CAAK;AAAA,EACvC,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA;AAAA;AACF,CAAC;AA4CM,IAAM,aAAA,GAAgB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACrD,IAAA,EAAM,yBAAA,CAA0B,QAAA,CAAS,4CAA4C,CAAA;AAAA,EACrF,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8BAA8B,CAAA;AAAA;AAAA,EAGpE,QAAQA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oDAAoD,CAAA;AAAA,EAC3F,QAAA,EAAUA,EAAE,KAAA,CAAM,kBAAkB,EAAE,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA;AAAA,EAGzF,KAAKA,CAAAA,CAAE,MAAA,GAAS,GAAA,EAAI,CAAE,SAAS,+BAA+B,CAAA;AAAA,EAC9D,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,CAAC,OAAO,MAAA,EAAQ,KAAA,EAAO,OAAA,EAAS,QAAQ,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,CAAE,SAAS,aAAa,CAAA;AAAA;AAAA,EAGhG,OAAA,EAASA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA;AAAA,EAGnF,MAAMA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,yDAAyD,CAAA;AAAA;AAAA,EAG/F,aAAA,EAAeA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,gCAAgC,CAAA;AAAA,EACvF,cAAA,EAAgBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,2BAA2B,CAAA;AAAA;AAAA,EAG/E,cAAA,EAAgBA,EAAE,MAAA,CAAO;AAAA,IACvB,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS,SAAS,CAAC,CAAA,CAAE,QAAA,CAAS,qBAAqB,CAAA;AAAA,IACnF,WAAA,EAAaA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,4BAA4B;AAAA,GAC/F,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,8BAA8B,CAAA;AAAA;AAAA,EAGrD,WAAA,EAAaA,EAAE,MAAA,CAAO;AAAA,IACpB,YAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,SAAS,wBAAwB,CAAA;AAAA,IACxF,eAAA,EAAiBA,CAAAA,CAAE,IAAA,CAAK,CAAC,aAAA,EAAe,QAAA,EAAU,OAAO,CAAC,CAAA,CAAE,OAAA,CAAQ,aAAa,CAAA,CAAE,SAAS,kBAAkB,CAAA;AAAA,IAC9G,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,OAAA,CAAQ,GAAI,CAAA,CAAE,SAAS,qCAAqC,CAAA;AAAA,IACtG,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,GAAI,CAAA,CAAE,OAAA,CAAQ,GAAK,CAAA,CAAE,SAAS,qCAAqC;AAAA,GACrG,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,4BAA4B,CAAA;AAAA;AAAA,EAGnD,WAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,GAAI,CAAA,CAAE,GAAA,CAAI,GAAM,CAAA,CAAE,OAAA,CAAQ,GAAK,CAAA,CAAE,SAAS,iCAAiC,CAAA;AAAA;AAAA,EAG3G,QAAQA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gDAAgD,CAAA;AAAA;AAAA,EAGvF,QAAA,EAAUA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,2BAA2B,CAAA;AAAA;AAAA,EAGxE,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA,EACjE,IAAA,EAAMA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,uBAAuB;AACvE,CAAC,CAAC;AAiBK,IAAM,qBAAA,GAAwB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC7D,IAAA,EAAM,yBAAA,CAA0B,QAAA,CAAS,qDAAqD,CAAA;AAAA,EAC9F,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,kCAAkC,CAAA;AAAA;AAAA,EAG5D,gBAAA,EAAkBA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,cAAA,EAAgB,MAAA,EAAQ,cAAc,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,EACzF,kBAAA,EAAoBA,EAAE,MAAA,CAAO;AAAA,IAC3B,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC5B,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC5B,KAAKA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA;AAAS,GACnC,EAAE,QAAA,EAAS;AAAA;AAAA,EAGZ,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,CAAC,cAAA,EAAgB,UAAU,eAAe,CAAC,CAAA,CAAE,OAAA,CAAQ,cAAc,CAAA;AAAA,EAClF,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,wBAAwB;AACtD,CAAC,CAAC;AClIK,IAAM,YAAA,GAAeA,EAAE,IAAA,CAAK;AAAA,EACjC,MAAA;AAAA;AAAA,EACA,MAAA;AAAA;AAAA,EACA,MAAA;AAAA;AAAA,EACA,YAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA,OAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAMM,IAAM,kBAAA,GAAqBA,EAAE,IAAA,CAAK;AAAA,EACvC,cAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,kBAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAKM,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC5D,IAAA,EAAM,kBAAA;AAAA,EACN,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,aAAa,CAAA;AAAA,EACvC,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,sBAAsB,CAAA;AAAA;AAAA,EAGzE,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC,CAAC;AAKK,IAAM,kBAAA,GAAqB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC1D,IAAA,EAAM,yBAAA,CAA0B,QAAA,CAAS,mBAAmB,CAAA;AAAA,EAC5D,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,oBAAoB,CAAA;AAAA,EAC/C,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAGjC,aAAA,EAAe,qBAAA,CAAsB,QAAA,EAAS,CAAE,SAAS,qCAAqC,CAAA;AAAA;AAAA,EAG9F,SAAA,EAAWA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,IAC1B,IAAA,EAAM,YAAA;AAAA,IACN,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mCAAmC;AAAA,GAC/D,CAAC,CAAA,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,2BAA2B,CAAA;AAAA;AAAA,EAG/C,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,CAAC,gBAAA,EAAkB,WAAW,CAAC,CAAA,CAAE,OAAA,CAAQ,gBAAgB,CAAA,CACvE,QAAA,CAAS,kCAAkC,CAAA;AAAA;AAAA,EAG9C,iBAAA,EAAmBA,CAAAA,CAAE,IAAA,CAAK,CAAC,gBAAA,EAAkB,kBAAkB,CAAC,CAAA,CAC7D,OAAA,CAAQ,gBAAgB,CAAA,CAAE,QAAA,CAAS,0BAA0B,CAAA;AAAA;AAAA,EAGhE,SAAA,EAAWA,EAAE,KAAA,CAAM,oBAAoB,EAAE,QAAA,EAAS,CAAE,SAAS,0BAA0B,CAAA;AAAA,EACvF,QAAA,EAAUA,EAAE,KAAA,CAAM,oBAAoB,EAAE,QAAA,EAAS,CAAE,SAAS,2BAA2B;AACzF,CAAC,CAAC;AAQK,IAAM,qBAAA,GAAwB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC7D,IAAA,EAAM,yBAAA,CAA0B,QAAA,CAAS,qBAAqB,CAAA;AAAA,EAC9D,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,sBAAsB,CAAA;AAAA,EACjD,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,oBAAoB,CAAA;AAAA,EAEhD,MAAA,EAAQA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA;AAAA,EACjC,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAGjC,aAAA,EAAe,qBAAA,CAAsB,QAAA,EAAS,CAAE,SAAS,sCAAsC,CAAA;AAAA;AAAA,EAG/F,UAAA,EAAYA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,0CAA0C,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWzF,mBAAA,EAAqBA,CAAAA,CAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA;AAAA,IACzC;AAAA,GACF;AAAA;AAAA,EAGA,KAAA,EAAOA,EAAE,KAAA,CAAM,kBAAkB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,CAAS,4BAA4B,CAAA;AAAA;AAAA,EAG/E,UAAA,EAAYA,EAAE,MAAA,CAAO;AAAA,IACnB,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,6BAA6B,CAAA;AAAA,IAC1E,YAAA,EAAcA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,kCAAkC,CAAA;AAAA,IAC3E,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,CAAC,YAAY,cAAA,EAAgB,aAAA,EAAe,QAAQ,CAAC,CAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA,CAAE,SAAS,sCAAsC,CAAA;AAAA,IACvI,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gDAAgD,CAAA;AAAA,IAC3F,eAAA,EAAiBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,6CAA6C;AAAA,GAClG,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,yDAAyD,CAAA;AAAA;AAAA,EAGhF,QAAA,EAAUA,EAAE,KAAA,CAAM,oBAAoB,EAAE,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,EAC3F,cAAA,EAAgBA,EAAE,KAAA,CAAM,oBAAoB,EAAE,QAAA,EAAS,CAAE,SAAS,2BAA2B,CAAA;AAAA,EAC7F,aAAA,EAAeA,EAAE,KAAA,CAAM,oBAAoB,EAAE,QAAA,EAAS,CAAE,SAAS,4BAA4B,CAAA;AAAA,EAC7F,QAAA,EAAUA,EAAE,KAAA,CAAM,oBAAoB,EAAE,QAAA,EAAS,CAAE,SAAS,mBAAmB;AACjF,CAAC,CAAC;AAEK,IAAM,eAAA,GAAkB,MAAA,CAAO,MAAA,CAAO,qBAAA,EAAuB;AAAA,EAClE,MAAA,EAAQ,CAAkD,MAAA,KAAc;AAC1E,CAAC;;;ACzHM,IAAM,eAAe,UAAA,CAAW;AAAA,EACrC,QAAA,EAAU,UAAA;AAAA,EACV,IAAA,EAAM,QAAA;AAAA,EACN,QAAA,EAAU;AAAA,IACR;AAAA,MACE,KAAA,EAAO,QAAA;AAAA,MACP,WAAA,EAAa,oDAAA;AAAA,MACb,OAAA,EAAS,CAAA;AAAA,MACT,MAAA,EAAQ;AAAA,QACN,EAAE,OAAO,MAAA,EAAQ,QAAA,EAAU,MAAM,OAAA,EAAS,CAAA,EAAG,UAAU,gCAAA,EAAiC;AAAA,QACxF,EAAE,OAAO,OAAA,EAAS,QAAA,EAAU,MAAM,OAAA,EAAS,CAAA,EAAG,UAAU,0CAAA,EAA2C;AAAA,QACnG,EAAE,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,YAAA,EAAc,UAAU,IAAA,EAAM,OAAA,EAAS,CAAA,EAAG,QAAA,EAAU,6BAAA,EAA8B;AAAA,QAC7G,EAAE,KAAA,EAAO,QAAA,EAAU,OAAA,EAAS,CAAA,EAAG,UAAU,sCAAA,EAAuC;AAAA,QAChF,EAAE,OAAO,aAAA,EAAe,MAAA,EAAQ,YAAY,OAAA,EAAS,CAAA,EAAG,UAAU,4BAAA;AAA6B;AACjG,KACF;AAAA,IACA;AAAA,MACE,KAAA,EAAO,aAAA;AAAA,MACP,WAAA,EAAa,+DAAA;AAAA,MACb,WAAA,EAAa,IAAA;AAAA,MACb,SAAA,EAAW,IAAA;AAAA,MACX,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,eAAA,EAAiB,MAAA,EAAQ,UAAA,EAAY,UAAU,yDAAA,EAA0D;AAAA,QAClH,EAAE,KAAA,EAAO,YAAA,EAAc,QAAA,EAAU,oDAAA,EAAqD;AAAA,QACtF,EAAE,KAAA,EAAO,qBAAA,EAAuB,QAAA,EAAU,gEAAA;AAAiE;AAC7G,KACF;AAAA,IACA;AAAA,MACE,KAAA,EAAO,OAAA;AAAA,MACP,WAAA,EAAa,iFAAA;AAAA,MACb,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,KAAA,EAAO,OAAA;AAAA,UACP,IAAA,EAAM,UAAA;AAAA,UACN,QAAA,EAAU,IAAA;AAAA,UACV,QAAA,EAAU;AAAA;AACZ;AACF,KACF;AAAA,IACA;AAAA,MACE,KAAA,EAAO,uBAAA;AAAA,MACP,WAAA,EAAa,6CAAA;AAAA,MACb,WAAA,EAAa,IAAA;AAAA,MACb,SAAA,EAAW,IAAA;AAAA,MACX,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,YAAA,EAAc,IAAA,EAAM,WAAA,EAAa,UAAU,6CAAA,EAA8C;AAAA,QAClG,EAAE,KAAA,EAAO,gBAAA,EAAkB,IAAA,EAAM,UAAA,EAAY,UAAU,uDAAA,EAAwD;AAAA,QAC/G,EAAE,KAAA,EAAO,eAAA,EAAiB,IAAA,EAAM,UAAA,EAAY,UAAU,gDAAA;AAAiD;AACzG;AACF;AAEJ,CAAC;AC+BM,IAAM,qBAAA,GAAwB,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EAC3D,UAAA;AAAA;AAAA,EACA,KAAA;AAAA;AAAA,EACA,MAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAC;AAOK,IAAM,eAAA,GAAkB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAIvD,IAAA,EAAM,qBAAA,CAAsB,QAAA,CAAS,aAAa,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQlD,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,cAAc,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUxD,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,sBAAsB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzE,WAAA,EAAaA,EAAE,MAAA,CAAO;AAAA,IACpB,OAAA,EAASA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA;AAAA,IAClC,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,4CAA4C,CAAA;AAAA,IAC7E,aAAaA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,sBAAsB;AAAA,GACpE,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,+BAA+B;AACxD,CAAC,CAAC;AAOK,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAI5D,IAAA,EAAM,qBAAA,CAAsB,QAAA,CAAS,kBAAkB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKvD,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,cAAc,CAAA;AAAA;AAAA;AAAA;AAAA,EAKxD,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,2BAA2B,CAAA;AAAA;AAAA;AAAA;AAAA,EAK9E,SAAA,EAAWA,EAAE,IAAA,CAAK;AAAA,IAChB,QAAA;AAAA;AAAA,IACA,WAAA;AAAA;AAAA,IACA,QAAA;AAAA;AAAA,IACA;AAAA;AAAA,GACD,CAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA,CAAE,SAAS,mBAAmB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKjD,UAAA,EAAYA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,oBAAoB;AAC1E,CAAC,CAAC;AAOK,IAAM,2BAAA,GAA8B,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EACjE,KAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA,MAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,OAAA;AAAA;AAAA,EACA,OAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAC;AAOK,IAAM,uBAAA,GAA0B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAI/D,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK1D,IAAA,EAAM,2BAAA,CAA4B,QAAA,CAAS,qBAAqB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShE,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,uBAAuB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK1E,eAAA,EAAiBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,mBAAmB;AAC1E,CAAC,CAAC;AAOK,IAAM,iBAAA,GAAoB,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EACvD,MAAA;AAAA;AAAA,EACA,aAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAC;AASK,IAAM,iBAAA,GAAoB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAIzD,IAAA,EAAMA,EAAE,MAAA,EAAO,CACZ,MAAM,oBAAoB,CAAA,CAC1B,SAAS,kCAAkC,CAAA;AAAA;AAAA;AAAA;AAAA,EAK9C,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK7D,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKlE,MAAA,EAAQ,eAAA,CAAgB,QAAA,CAAS,aAAa,CAAA;AAAA;AAAA;AAAA;AAAA,EAK9C,WAAA,EAAa,oBAAA,CAAqB,QAAA,CAAS,kBAAkB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7D,eAAA,EAAiBA,EAAE,KAAA,CAAM,uBAAuB,EAC7C,QAAA,EAAS,CACT,SAAS,yBAAyB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKrC,UAAU,iBAAA,CAAkB,OAAA,CAAQ,MAAM,CAAA,CAAE,SAAS,WAAW,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShE,QAAA,EAAU,yBAAA,CAA0B,QAAA,EAAS,CAAE,SAAS,0BAA0B,CAAA;AAAA;AAAA;AAAA;AAAA,EAKlF,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,yBAAyB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKrE,KAAA,EAAOA,EAAE,MAAA,CAAO;AAAA,IACd,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,SAAS,oBAAoB,CAAA;AAAA,IAC7E,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,GAAK,CAAA,CAAE,SAAS,yBAAyB;AAAA,GACrF,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK5C,aAAA,EAAeA,EAAE,MAAA,CAAO;AAAA,IACtB,SAAA,EAAWA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,2CAA2C,CAAA;AAAA,IAC9F,SAAA,EAAWA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,2CAA2C;AAAA,GAC/F,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK9C,IAAA,EAAMA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,EAK7D,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,iBAAiB;AACnF,CAAC,CAAC;AAOK,IAAM,kBAAA,GAAqB,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EACxD,SAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAC;AASK,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAI5D,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKxC,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,EAKjD,MAAA,EAAQ,kBAAA,CAAmB,QAAA,CAAS,YAAY,CAAA;AAAA;AAAA;AAAA;AAAA,EAKhD,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,YAAY,CAAA;AAAA;AAAA;AAAA;AAAA,EAKtD,WAAA,EAAaA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,iBAAiB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKxE,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK3D,KAAA,EAAOA,EAAE,MAAA,CAAO;AAAA,IACd,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,CAAS,mBAAmB,CAAA;AAAA,IACrE,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,CAAS,gBAAgB,CAAA;AAAA,IACrE,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,CAAS,qBAAqB,CAAA;AAAA,IAC1E,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,CAAS,iBAAiB;AAAA,GACvE,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKvC,KAAA,EAAOA,EAAE,MAAA,CAAO;AAAA,IACd,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,eAAe,CAAA;AAAA,IAC5C,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,YAAY,CAAA;AAAA,IACjD,SAASA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,eAAe;AAAA,GACzD,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK1C,IAAA,EAAMA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,gBAAgB;AAChE,CAAC,CAAC;AAOK,IAAM,GAAA,GAAM;AAAA;AAAA;AAAA;AAAA,EAIjB,YAAA,EAAc,CAAC,MAAA,MAKK;AAAA,IAClB,MAAM,MAAA,CAAO,IAAA;AAAA,IACb,MAAA,EAAQ;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,MAAA,EAAQ,EAAE,KAAA,EAAO,MAAA,CAAO,WAAA;AAAY,KACtC;AAAA,IACA,WAAA,EAAa;AAAA,MACX,IAAA,EAAM,UAAA;AAAA,MACN,MAAA,EAAQ,EAAE,KAAA,EAAO,MAAA,CAAO,SAAA,EAAU;AAAA,MAClC,SAAA,EAAW;AAAA,KACb;AAAA,IACA,QAAA,EAAU,aAAA;AAAA,IACV,QAAA,EAAU,OAAO,MAAA,CAAO,QAAA,KAAa,QAAA,GAAW,EAAE,OAAA,EAAS,MAAA,EAAQ,MAAA,EAAQ,MAAA,CAAO,QAAA,EAAS,GAAI,MAAA,CAAO,QAAA;AAAA,IACtG,OAAA,EAAS;AAAA,GACX,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,aAAA,EAAe,CAAC,MAAA,MAKI;AAAA,IAClB,MAAM,MAAA,CAAO,IAAA;AAAA,IACb,MAAA,EAAQ;AAAA,MACN,IAAA,EAAM,KAAA;AAAA,MACN,WAAW,MAAA,CAAO,YAAA;AAAA,MAClB,QAAQ;AAAC,KACX;AAAA,IACA,WAAA,EAAa;AAAA,MACX,IAAA,EAAM,UAAA;AAAA,MACN,MAAA,EAAQ,EAAE,KAAA,EAAO,MAAA,CAAO,SAAA,EAAU;AAAA,MAClC,SAAA,EAAW;AAAA,KACb;AAAA,IACA,QAAA,EAAU,MAAA;AAAA,IACV,QAAA,EAAU,OAAO,MAAA,CAAO,QAAA,KAAa,QAAA,GAAW,EAAE,OAAA,EAAS,MAAA,EAAQ,MAAA,EAAQ,MAAA,CAAO,QAAA,EAAS,GAAI,MAAA,CAAO,QAAA;AAAA,IACtG,OAAA,EAAS;AAAA,GACX;AACF;ACvYO,IAAM,uBAAA,GAA0B,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EAC7D,KAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA,eAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA,UAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA,YAAA;AAAA;AAAA,EACA,IAAA;AAAA;AAAA,EACA,cAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA,UAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAC;AAOK,IAAM,wBAAA,GAA2B,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EAC9D,MAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,OAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAC;AAOK,IAAM,eAAA,GAAkB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAIvD,IAAA,EAAMA,EAAE,MAAA,EAAO,CACZ,MAAM,oBAAoB,CAAA,CAC1B,SAAS,yBAAyB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKrC,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,aAAa,CAAA;AAAA;AAAA;AAAA;AAAA,EAKxC,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAQ,UAAA,EAAY,KAAA,EAAO,QAAQ,CAAC,CAAA,CAC/C,OAAA,CAAQ,MAAM,CAAA,CACd,SAAS,YAAY,CAAA;AAAA;AAAA;AAAA;AAAA,EAKxB,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK/D,QAAA,EAAUA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK7D,SAASA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,EAKvD,OAAA,EAASA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,IACxB,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,IAChB,KAAA,EAAOA,EAAE,MAAA;AAAO,GACjB,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK9C,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kBAAkB;AAChE,CAAC,CAAC;AAOK,IAAM,kBAAA,GAAqB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAI1D,kBAAkBA,CAAAA,CAAE,MAAA,GAAS,GAAA,EAAI,CAAE,SAAS,4BAA4B,CAAA;AAAA;AAAA;AAAA;AAAA,EAKxE,UAAUA,CAAAA,CAAE,MAAA,GAAS,GAAA,EAAI,CAAE,SAAS,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKxD,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,cAAc,CAAA;AAAA;AAAA;AAAA;AAAA,EAK9D,aAAA,EAAeA,EAAE,MAAA,EAAO,CAAE,QAAQ,WAAW,CAAA,CAAE,SAAS,sBAAsB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK9E,iBAAA,EAAmBA,EAAE,MAAA,EAAO,CAAE,QAAQ,eAAe,CAAA,CAAE,SAAS,0BAA0B;AAC5F,CAAC,CAAC;AAOK,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAI5D,IAAA,EAAM,wBAAA,CAAyB,QAAA,CAAS,qBAAqB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7D,MAAA,EAAQA,EAAE,KAAA,CAAM,eAAe,EAAE,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK5E,MAAA,EAAQ,kBAAA,CAAmB,QAAA,EAAS,CAAE,SAAS,yBAAyB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKxE,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,KAAKA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,IACvD,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,CAAC,OAAO,MAAA,EAAQ,KAAA,EAAO,QAAQ,CAAC,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA,CAAE,SAAS,aAAa;AAAA,GACvF,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,mCAAmC;AAC5D,CAAC,CAAC;AAOK,IAAM,mBAAA,GAAsB,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EACzD,MAAA;AAAA;AAAA,EACA,OAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAC;AAOK,IAAM,wBAAA,GAA2B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAIhE,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK1C,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iBAAiB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK5C,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKnE,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,UAAU,QAAA,EAAU,SAAA,EAAW,OAAA,EAAS,QAAA,EAAU,MAAA,EAAQ,MAAM,CAAC,CAAA,CAC5E,SAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK5B,QAAA,EAAUA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKlE,SAASA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,EAKxD,UAAA,EAAYA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,kBAAkB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKpF,gBAAgBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kCAAkC;AACnF,CAAC,CAAC;AAOK,IAAM,wBAAA,GAA2B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAIhE,EAAA,EAAIA,EAAE,MAAA,EAAO,CACV,MAAM,oBAAoB,CAAA,CAC1B,SAAS,2BAA2B,CAAA;AAAA;AAAA;AAAA;AAAA,EAKvC,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK1C,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKnE,IAAA,EAAM,mBAAA,CAAoB,QAAA,CAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKnD,WAAA,EAAaA,EAAE,KAAA,CAAM,wBAAwB,EAC1C,QAAA,EAAS,CACT,SAAS,kBAAkB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK9B,YAAA,EAAcA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAC3C,QAAA,EAAS,CACT,SAAS,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,EAK3B,cAAcA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,EAK7D,kBAAA,EAAoBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,qBAAqB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK7E,iBAAA,EAAmBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,oBAAoB;AAC7E,CAAC,CAAC;AASK,IAAM,sBAAA,GAAyB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAI9D,EAAA,EAAIA,EAAE,MAAA,EAAO,CACV,MAAM,oBAAoB,CAAA,CAC1B,SAAS,yBAAyB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKrC,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,cAAc,CAAA;AAAA;AAAA;AAAA;AAAA,EAKxC,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKjE,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,WAAW,QAAQ,CAAC,CAAA,CAC1C,QAAA,CAAS,mBAAmB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK/B,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CACrC,QAAA,EAAS,CACT,SAAS,uBAAuB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKnC,YAAA,EAAcA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAC3C,QAAA,EAAS,CACT,SAAS,sBAAsB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlC,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,GAAI,CAAA,CACzC,QAAA,EAAS,CACT,QAAA,CAAS,wBAAwB;AACtC,CAAC,CAAC;AASK,IAAM,eAAA,GAAkB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKvD,EAAA,EAAIA,EAAE,MAAA,EAAO,CACV,MAAM,oBAAoB,CAAA,CAC1B,SAAS,2BAA2B,CAAA;AAAA;AAAA;AAAA;AAAA,EAKvC,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK1C,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKnE,SAASA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK3D,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKrD,QAAA,EAAU,uBAAA,CAAwB,QAAA,CAAS,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK/D,OAAA,EAASA,EAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,cAAc,CAAA;AAAA;AAAA;AAAA;AAAA,EAK5D,cAAA,EAAgB,oBAAA,CAAqB,QAAA,CAAS,uBAAuB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKrE,UAAA,EAAYA,EAAE,KAAA,CAAM,wBAAwB,EACzC,QAAA,EAAS,CACT,SAAS,sBAAsB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKlC,QAAA,EAAUA,EAAE,KAAA,CAAM,sBAAsB,EACrC,QAAA,EAAS,CACT,SAAS,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKhC,SAAA,EAAWA,EAAE,MAAA,CAAO;AAAA,IAClB,mBAAmBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yBAAyB,CAAA;AAAA,IAC3E,mBAAmBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yBAAyB,CAAA;AAAA,IAC3E,iBAAiBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB;AAAA,GACxE,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,EAKtC,QAAQA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kBAAkB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKzD,aAAA,EAAeA,EAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,mBAAmB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKvE,QAAA,EAAUA,EAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,cAAc,CAAA;AAAA;AAAA;AAAA;AAAA,EAK7D,SAASA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,2BAA2B,CAAA;AAAA;AAAA;AAAA;AAAA,EAKnE,IAAA,EAAMA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK9D,QAAA,EAAUA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKlE,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,iBAAiB;AACnF,CAAC,CAAC;AASK,IAAM,uBAAA,GAA0B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAI/D,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,aAAa,CAAA;AAAA;AAAA;AAAA;AAAA,EAKrC,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,cAAc,CAAA;AAAA;AAAA;AAAA;AAAA,EAK/C,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,EAKzC,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKlE,WAAA,EAAaA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,uBAAuB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK/E,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKjF,MAAA,EAAQA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,wBAAwB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKnE,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,EAKpE,YAAA,EAAcA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKxE,UAAA,EAAYA,CAAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,SAAA,EAAW,QAAQ,CAAC,CAAA,CAChD,OAAA,CAAQ,SAAS,CAAA,CACjB,SAAS,wBAAwB;AACtC,CAAC,CAAC;AAOK,IAAM,SAAA,GAAY;AAAA;AAAA;AAAA;AAAA,EAIvB,MAAA,EAAQ,CAAC,MAAA,MAKS;AAAA,IAChB,IAAI,MAAA,CAAO,EAAA;AAAA,IACX,MAAM,MAAA,CAAO,IAAA;AAAA,IACb,UAAU,MAAA,CAAO,QAAA;AAAA,IACjB,SAAS,MAAA,CAAO,OAAA;AAAA,IAChB,cAAA,EAAgB;AAAA,MACd,IAAA,EAAM,QAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,SAAA;AAAA,UACN,KAAA,EAAO,SAAA;AAAA,UACP,IAAA,EAAM,UAAA;AAAA,UACN,QAAA,EAAU;AAAA;AACZ;AACF,KACF;AAAA,IACA,QAAA,EAAU;AAAA,GACZ,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAA,EAAQ,CAAC,MAAA,MAQS;AAAA,IAChB,IAAI,MAAA,CAAO,EAAA;AAAA,IACX,MAAM,MAAA,CAAO,IAAA;AAAA,IACb,UAAU,MAAA,CAAO,QAAA;AAAA,IACjB,SAAS,MAAA,CAAO,OAAA;AAAA,IAChB,cAAA,EAAgB;AAAA,MACd,IAAA,EAAM,QAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,kBAAkB,MAAA,CAAO,OAAA;AAAA,QACzB,UAAU,MAAA,CAAO,QAAA;AAAA,QACjB,aAAA,EAAe,WAAA;AAAA,QACf,iBAAA,EAAmB,eAAA;AAAA,QACnB,QAAQ,MAAA,CAAO;AAAA;AACjB,KACF;AAAA,IACA,QAAA,EAAU;AAAA,GACZ;AACF;ACnkBO,IAAM,mBAAA,GAAsB,UAAA,CAAW,MAAMA,CAAAA,CAAE,mBAAmB,MAAA,EAAQ;AAAA,EAC/EA,EAAE,MAAA,CAAO;AAAA,IACP,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,UAAU,CAAA;AAAA,IAC1B,KAAA,EAAOA,CAAAA,CAAE,OAAA,EAAQ,CAAE,SAAS,uBAAuB;AAAA,GACpD,CAAA,CAAE,QAAA,CAAS,sBAAsB,CAAA;AAAA,EAElCA,EAAE,MAAA,CAAO;AAAA,IACP,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,IACtB,UAAA,EAAYA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,QAAA,EAAU,SAAA,EAAW,MAAM,CAAC,CAAA,CAAE,QAAA,CAAS,kBAAkB;AAAA,GACxF,CAAA,CAAE,QAAA,CAAS,8BAA8B,CAAA;AAAA,EAE1CA,EAAE,MAAA,CAAO;AAAA,IACP,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACxB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mBAAmB,CAAA;AAAA,IAC9C,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mBAAmB,CAAA;AAAA,IACjD,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mBAAmB;AAAA,GACpD,CAAA,CAAE,QAAA,CAAS,iCAAiC,CAAA;AAAA,EAE7CA,EAAE,MAAA,CAAO;AAAA,IACP,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,YAAY,CAAA;AAAA,IAC5B,UAAA,EAAY,qBAAA,CAAsB,QAAA,CAAS,oEAAoE;AAAA,GAChH,CAAA,CAAE,QAAA,CAAS,kCAAkC,CAAA;AAAA,EAE9CA,EAAE,MAAA,CAAO;AAAA,IACP,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAAA,IACrB,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,6CAA6C;AAAA,GACnG,CAAA,CAAE,QAAA,CAAS,+BAA+B;AAC7C,CAAC,CAAC,CAAA;AAuBK,IAAM,kBAAA,GAAqB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAI1D,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mBAAmB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK/C,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mBAAmB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK/C,SAAA,EAAW,mBAAA,CAAoB,QAAA,EAAS,CAAE,SAAS,yBAAyB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK5E,cAAcA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,qCAAqC;AACrF,CAAC,CAAC,CAAA;;;ACtBK,IAAM,mBAAA,GAAsB,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EACzD,MAAA;AAAA;AAAA,EACA,MAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAC;AAOK,IAAM,cAAA,GAAiB,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EACpD,MAAA;AAAA;AAAA,EACA,aAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAC;AAOK,IAAM,wBAAA,GAA2B,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EAC9D,aAAA;AAAA;AAAA,EACA,kBAAA;AAAA;AAAA,EACA,aAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAC;AAgBK,IAAM,sBAAA,GAAyB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAK9D,QAAQA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yBAAyB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMhE,SAASA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM5D,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMhE,qBAAqBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3E,kBAAkBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB;AACzE,CAAC,CAAC;AAOK,IAAM,2BAAA,GAA8B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKnE,QAAQA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yBAAyB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMhE,qBAAqBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK3E,SAAA,EAAWA,EAAE,IAAA,CAAK;AAAA,IAChB,QAAA;AAAA;AAAA,IACA,QAAA;AAAA;AAAA,IACA,QAAA;AAAA;AAAA,IACA,QAAA;AAAA;AAAA,IACA;AAAA;AAAA,GACD,CAAA,CAAE,QAAA,CAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM5B,OAAA,EAASA,EAAE,KAAA,CAAM;AAAA,IACfA,EAAE,MAAA,CAAOA,CAAAA,CAAE,QAAO,EAAGA,CAAAA,CAAE,QAAQ,CAAA;AAAA;AAAA,IAC/BA,CAAAA,CAAE,MAAM,kBAAkB;AAAA;AAAA,GAC3B,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKvC,kBAAkBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMvE,QAAA,EAAUA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,kBAAkB;AACtE,CAAC,CAAC;AASK,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAI5D,IAAA,EAAMA,EAAE,MAAA,EAAO,CACZ,MAAM,oBAAoB,CAAA,CAC1B,SAAS,sCAAsC,CAAA;AAAA;AAAA;AAAA;AAAA,EAKlD,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKzD,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kBAAkB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK9D,MAAA,EAAQ,sBAAA,CAAuB,QAAA,CAAS,aAAa,CAAA;AAAA;AAAA;AAAA;AAAA,EAKrD,WAAA,EAAa,2BAAA,CAA4B,QAAA,CAAS,kBAAkB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKpE,WAAW,mBAAA,CAAoB,OAAA,CAAQ,MAAM,CAAA,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKxE,UAAU,cAAA,CAAe,OAAA,CAAQ,aAAa,CAAA,CAAE,SAAS,WAAW,CAAA;AAAA;AAAA;AAAA;AAAA,EAKpE,oBAAoB,wBAAA,CACjB,OAAA,CAAQ,aAAa,CAAA,CACrB,SAAS,qBAAqB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASjC,QAAA,EAAU,yBAAA,CAA0B,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,EAKvE,OAAA,EAASA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,cAAc,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS1D,qBAAqBA,CAAAA,CAAE,MAAA,GACpB,QAAA,EAAS,CACT,SAAS,2BAA2B,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMvC,WAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAK,CAAA,CACzC,OAAA,CAAQ,GAAG,CAAA,CACX,SAAS,2BAA2B,CAAA;AAAA;AAAA;AAAA;AAAA,EAKvC,KAAA,EAAOA,EAAE,MAAA,CAAO;AAAA,IACd,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,SAAS,aAAa,CAAA;AAAA,IACtE,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,GAAK,CAAA,CAAE,SAAS,kBAAkB;AAAA,GAC9E,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK5C,UAAA,EAAYA,EAAE,MAAA,CAAO;AAAA,IACnB,QAAA,EAAUA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,iBAAiB,CAAA;AAAA,IACnE,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,0BAA0B,CAAA;AAAA,IAC1E,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,MACvB,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,MACf,SAAA,EAAW,qBAAA,CAAsB,QAAA,CAAS,6BAA6B,CAAA;AAAA,MACvE,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,eAAe;AAAA,KAC7C,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA,GAClD,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,kBAAkB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKzC,aAAA,EAAeA,EAAE,MAAA,CAAO;AAAA,IACtB,iBAAA,EAAmBA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,QAAQ,KAAK,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,IACjE,WAAA,EAAaA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,QAAQ,OAAO,CAAC,CAAA,CAAE,OAAA,CAAQ,OAAO,CAAA;AAAA,IAC9D,aAAA,EAAeA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,qBAAqB;AAAA,GAC7E,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKvC,YAAA,EAAcA,EAAE,MAAA,CAAO;AAAA,IACrB,eAAA,EAAiBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,6BAA6B,CAAA;AAAA,IAClF,YAAA,EAAcA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,gBAAgB,CAAA;AAAA,IACjE,kBAAA,EAAoBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAAE,SAAS,oBAAoB;AAAA,GAC7E,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,0BAA0B,CAAA;AAAA;AAAA;AAAA;AAAA,EAKjD,KAAA,EAAOA,EAAE,MAAA,CAAO;AAAA,IACd,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,OAAA,EAAS,MAAA,EAAQ,MAAA,EAAQ,OAAO,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,IAC3E,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,IACrD,YAAA,EAAcA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,mBAAmB;AAAA,GACrE,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK5C,IAAA,EAAMA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,WAAW,CAAA;AAAA;AAAA;AAAA;AAAA,EAKzD,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,iBAAiB;AACnF,CAAC,CAAC;AAOK,IAAM,yBAAA,GAA4B,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EAC/D,SAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA,WAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAC;AASK,IAAM,yBAAA,GAA4B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAIjE,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,cAAc,CAAA;AAAA;AAAA;AAAA;AAAA,EAKtC,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,WAAW,CAAA;AAAA;AAAA;AAAA;AAAA,EAKzC,MAAA,EAAQ,yBAAA,CAA0B,QAAA,CAAS,kBAAkB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK7D,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,YAAY,CAAA;AAAA;AAAA;AAAA;AAAA,EAKtD,WAAA,EAAaA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,iBAAiB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKxE,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK3D,KAAA,EAAOA,EAAE,MAAA,CAAO;AAAA,IACd,gBAAA,EAAkBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,CAAS,yBAAyB,CAAA;AAAA,IAChF,eAAA,EAAiBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,CAAS,kBAAkB,CAAA;AAAA,IACxE,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,CAAS,iBAAiB,CAAA;AAAA,IACtE,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,CAAS,iBAAiB,CAAA;AAAA,IACtE,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,CAAS,iBAAiB,CAAA;AAAA,IACtE,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,CAAS,qBAAqB,CAAA;AAAA,IAC1E,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,CAAS,oBAAoB,CAAA;AAAA,IAC5E,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,CAAS,oBAAoB;AAAA,GAC7E,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK7C,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,IACvB,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,WAAW,CAAA;AAAA,IACpD,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,YAAY,CAAA;AAAA,IAClD,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,eAAe,CAAA;AAAA,IAC5C,MAAMA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,YAAY;AAAA,GAClD,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,QAAQ,CAAA;AAAA;AAAA;AAAA;AAAA,EAKhC,IAAA,EAAMA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,gBAAgB;AAChE,CAAC,CAAC;AAOK,IAAM,IAAA,GAAO;AAAA;AAAA;AAAA;AAAA,EAIlB,UAAA,EAAY,CAAC,MAAA,MAMU;AAAA,IACrB,MAAM,MAAA,CAAO,IAAA;AAAA,IACb,MAAA,EAAQ;AAAA,MACN,QAAQ,MAAA,CAAO;AAAA,KACjB;AAAA,IACA,WAAA,EAAa;AAAA,MACX,QAAQ,MAAA,CAAO,UAAA;AAAA,MACf,SAAA,EAAW,QAAA;AAAA,MACX,SAAS,MAAA,CAAO;AAAA,KAClB;AAAA,IACA,SAAA,EAAW,MAAA;AAAA,IACX,QAAA,EAAU,aAAA;AAAA,IACV,kBAAA,EAAoB,aAAA;AAAA,IACpB,SAAA,EAAW,GAAA;AAAA,IACX,QAAA,EAAU,OAAO,MAAA,CAAO,QAAA,KAAa,QAAA,GAAW,EAAE,OAAA,EAAS,MAAA,EAAiB,MAAA,EAAQ,MAAA,CAAO,QAAA,EAAS,GAAI,MAAA,CAAO,QAAA;AAAA,IAC/G,OAAA,EAAS;AAAA,GACX,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,aAAA,EAAe,CAAC,MAAA,MAOO;AAAA,IACrB,MAAM,MAAA,CAAO,IAAA;AAAA,IACb,MAAA,EAAQ;AAAA,MACN,QAAQ,MAAA,CAAO;AAAA,KACjB;AAAA,IACA,WAAA,EAAa;AAAA,MACX,qBAAqB,MAAA,CAAO,mBAAA;AAAA,MAC5B,kBAAkB,MAAA,CAAO,gBAAA;AAAA,MACzB,SAAA,EAAW,QAAA;AAAA,MACX,SAAS,MAAA,CAAO;AAAA,KAClB;AAAA,IACA,SAAA,EAAW,MAAA;AAAA,IACX,QAAA,EAAU,aAAA;AAAA,IACV,kBAAA,EAAoB,aAAA;AAAA,IACpB,SAAA,EAAW,GAAA;AAAA,IACX,QAAA,EAAU,OAAO,MAAA,CAAO,QAAA,KAAa,QAAA,GAAW,EAAE,OAAA,EAAS,MAAA,EAAiB,MAAA,EAAQ,MAAA,CAAO,QAAA,EAAS,GAAI,MAAA,CAAO,QAAA;AAAA,IAC/G,OAAA,EAAS;AAAA,GACX,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAA,EAAmB,CAAC,MAAA,MAOG;AAAA,IACrB,MAAM,MAAA,CAAO,IAAA;AAAA,IACb,MAAA,EAAQ;AAAA,MACN,QAAQ,MAAA,CAAO;AAAA,KACjB;AAAA,IACA,WAAA,EAAa;AAAA,MACX,qBAAqB,MAAA,CAAO,mBAAA;AAAA,MAC5B,kBAAkB,MAAA,CAAO,gBAAA;AAAA,MACzB,SAAA,EAAW,MAAA;AAAA,MACX,SAAS,MAAA,CAAO;AAAA,KAClB;AAAA,IACA,SAAA,EAAW,eAAA;AAAA,IACX,QAAA,EAAU,aAAA;AAAA,IACV,kBAAA,EAAoB,aAAA;AAAA,IACpB,SAAA,EAAW,GAAA;AAAA,IACX,QAAA,EAAU,OAAO,MAAA,CAAO,QAAA,KAAa,QAAA,GAAW,EAAE,OAAA,EAAS,MAAA,EAAiB,MAAA,EAAQ,MAAA,CAAO,QAAA,EAAS,GAAI,MAAA,CAAO,QAAA;AAAA,IAC/G,OAAA,EAAS;AAAA,GACX;AACF;ACrgBO,IAAM,eAAA,GAAkB,UAAA,CAAW,MAAMA,CAAAA,CAAE,KAAA,CAAM;AAAA,EACtDA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,aAAa,CAAA;AAAA,EACjCA,EAAE,MAAA,CAAO;AAAA,IACP,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA;AAAA,IACf,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAAS,GACpD;AACH,CAAC,CAAC;AAMK,IAAM,cAAA,GAAiB,UAAA,CAAW,MAAMA,CAAAA,CAAE,KAAA,CAAM;AAAA,EACrDA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,gDAAgD,CAAA;AAAA,EACpEA,EAAE,MAAA,CAAO;AAAA,IACP,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,IACf,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAAS,GACpD;AACH,CAAC,CAAC;AAQK,IAAM,gBAAA,GAAmB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACxD,QAAQA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iBAAiB,CAAA;AAAA,EACxD,IAAA,EAAM,cAAA,CAAe,QAAA,EAAS,CAAE,SAAS,8CAA8C,CAAA;AAAA,EACvF,OAAA,EAASA,EAAE,KAAA,CAAM,eAAe,EAAE,QAAA,EAAS,CAAE,SAAS,sCAAsC,CAAA;AAAA,EAC5F,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yCAAyC;AACvF,CAAC,CAAC;AAKK,IAAM,WAAA,GAAc,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EACnD,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iDAAiD,CAAA;AAAA;AAAA,EAE3E,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,kCAAkC;AAClG,CAAC,CAAC;AAwBK,IAAM,eAAA,GAA8CA,CAAAA,CAAE,IAAA,CAAK,MAAMA,EAAE,MAAA,CAAO;AAAA;AAAA,EAE/E,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,UAAA,EAAY,UAAA,EAAY,OAAA,EAAS,SAAS,CAAC,CAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA;AAAA;AAAA,EAGrF,KAAA,EAAOA,EAAE,KAAA,CAAM,eAAe,EAAE,QAAA,EAAS,CAAE,SAAS,yCAAyC,CAAA;AAAA,EAC7F,IAAA,EAAMA,EAAE,KAAA,CAAM,eAAe,EAAE,QAAA,EAAS,CAAE,SAAS,wCAAwC,CAAA;AAAA;AAAA,EAG3F,IAAIA,CAAAA,CAAE,MAAA,CAAOA,EAAE,MAAA,EAAO,EAAGA,EAAE,KAAA,CAAM;AAAA,IAC/BA,EAAE,MAAA,EAAO;AAAA;AAAA,IACT,gBAAA;AAAA,IACAA,CAAAA,CAAE,MAAM,gBAAgB;AAAA,GACzB,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,4CAA4C,CAAA;AAAA;AAAA,EAGpE,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAM,gBAAgB,EAAE,QAAA,EAAS;AAAA;AAAA,EAG3C,SAASA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mCAAmC,CAAA;AAAA,EAC3E,MAAA,EAAQA,EAAE,MAAA,CAAOA,CAAAA,CAAE,QAAO,EAAG,eAAe,EAAE,QAAA,EAAS;AAAA;AAAA,EAGvD,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACjC,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA;AAAA,IAE3B,gBAAgBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iDAAiD;AAAA,GACjG,EAAE,QAAA;AACL,CAAC,CAAC;AAKK,IAAM,kBAAA,GAAqB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,EAC1D,EAAA,EAAI,yBAAA,CAA0B,QAAA,CAAS,mBAAmB,CAAA;AAAA,EAC1D,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAGjC,aAAA,EAAeA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,2CAA2C,CAAA;AAAA;AAAA,EAGhH,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,kBAAkB,CAAA;AAAA;AAAA,EAG/C,MAAA,EAAQA,EAAE,MAAA,CAAOA,CAAAA,CAAE,QAAO,EAAG,eAAe,CAAA,CAAE,QAAA,CAAS,aAAa,CAAA;AAAA;AAAA,EAGpE,EAAA,EAAIA,EAAE,MAAA,CAAOA,CAAAA,CAAE,QAAO,EAAGA,CAAAA,CAAE,MAAM,CAACA,CAAAA,CAAE,QAAO,EAAG,gBAAA,EAAkBA,EAAE,KAAA,CAAM,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAA;AAC/F,CAAC,CAAC;AC1GK,IAAM,mBAAA,GAAsB,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EACzD,OAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA,SAAA;AAAA;AAAA,EACA,QAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAA,CAAE,QAAA,CAAS,0DAA0D,CAAC;AAUhE,IAAM,uBAAA,GAA0B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAE/D,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iCAAiC,CAAA;AAAA;AAAA,EAGlE,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,8BAA8B,CAAA;AAAA;AAAA,EAGhE,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,4BAA4B,CAAA;AAAA;AAAA,EAGxD,SAAA,EAAW,mBAAA,CAAoB,QAAA,CAAS,kCAAkC,CAAA;AAAA;AAAA,EAG1E,YAAYA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,wCAAwC,CAAA;AAAA;AAAA,EAGnF,cAAA,EAAgBA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CACxD,SAAS,qDAAqD,CAAA;AAAA;AAAA,EAGjE,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oDAAoD,CAAA;AAAA;AAAA,EAG9F,WAAWA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,wCAAwC,CAAA;AAAA;AAAA,EAGlF,SAAA,EAAWA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CACnD,SAAS,kDAAkD;AAChE,CAAC,CAAA,CAAE,QAAA,CAAS,yCAAyC,CAAC;AAS/C,IAAM,yBAAA,GAA4B,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EAC/D,MAAA;AAAA;AAAA,EACA,UAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAA,CAAE,QAAA,CAAS,+CAA+C,CAAC;AAQrD,IAAM,wBAAA,GAA2B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAEhE,gBAAA,EAAkBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,KAAQ,CAAA,CACvD,SAAS,2CAA2C,CAAA;AAAA;AAAA,EAGvD,wBAAwB,yBAAA,CAA0B,OAAA,CAAQ,MAAM,CAAA,CAC7D,SAAS,gDAAgD,CAAA;AAAA;AAAA,EAG5D,uBAAA,EAAyBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,GAAI,CAAA,CAAE,OAAA,CAAQ,GAAK,CAAA,CAC9D,SAAS,2DAA2D,CAAA;AAAA;AAAA,EAGvE,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CACjD,SAAS,0DAA0D,CAAA;AAAA;AAAA,EAGtE,iBAAA,EAAmBA,EAAE,MAAA,EAAO,CAAE,QAAQ,kDAAkD,CAAA,CACrF,SAAS,0CAA0C,CAAA;AAAA;AAAA,EAGtD,kBAAA,EAAoBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CACzC,SAAS,6CAA6C,CAAA;AAAA;AAAA,EAGzD,mBAAA,EAAqBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CACnD,SAAS,kDAAkD;AAChE,CAAC,CAAA,CAAE,QAAA,CAAS,yCAAyC,CAAC;AAW/C,IAAM,4BAAA,GAA+B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAEpE,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mCAAmC,CAAA;AAAA;AAAA,EAG3D,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,cAAc,CAAA;AAAA;AAAA,EAGxC,SAAA,EAAWA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,CACjC,QAAA,CAAS,4CAA4C,CAAA;AAAA;AAAA,EAGxD,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,yBAAyB,CAAA;AAAA;AAAA,EAGtD,aAAaA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA;AAAA,EAGlE,aAAA,EAAeA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CACrC,SAAS,kDAAkD,CAAA;AAAA;AAAA,EAG9D,oBAAA,EAAsBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CAC5C,SAAS,0DAA0D,CAAA;AAAA;AAAA,EAGtE,aAAA,EAAeA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CACpC,SAAS,gDAAgD,CAAA;AAAA;AAAA,EAG5D,iBAAiBA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAClC,SAAS,+CAA+C;AAC7D,CAAC,CAAA,CAAE,QAAA,CAAS,iCAAiC,CAAC;AAUvC,IAAM,wBAAA,GAAmD;AAAA,EAC9D,EAAA,EAAI,2BAAA;AAAA,EACJ,IAAA,EAAM,oBAAA;AAAA,EACN,SAAA,EAAW,CAAC,MAAM,CAAA;AAAA,EAClB,OAAA,EAAS,OAAA;AAAA,EACT,WAAA,EAAa,kGAAA;AAAA,EACb,aAAA,EAAe,IAAA;AAAA,EACf,oBAAA,EAAsB,IAAA;AAAA,EACtB,aAAA,EAAe;AACjB;AC/JO,IAAM,wBAAA,GAA2B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAEhE,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,sDAAsD,CAAA;AAAA;AAAA,EAGpF,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,kCAAkC,CAAA;AAAA;AAAA,EAGtE,aAAA,EAAeA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAAE,SAAS,qDAAqD,CAAA;AAAA;AAAA,EAGvG,OAAOA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iCAAiC;AACzE,CAAC,CAAA,CAAE,QAAA,CAAS,iEAAiE,CAAC;AASvE,IAAM,0BAAA,GAA6B,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EAChE,MAAA;AAAA;AAAA,EACA,MAAA;AAAA;AAAA,EACA,OAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAA,CAAE,QAAA,CAAS,mDAAmD,CAAC;AAOzD,IAAM,uBAAA,GAA0B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAE/D,kBAAkB,0BAAA,CAA2B,OAAA,CAAQ,MAAM,CAAA,CACxD,SAAS,sCAAsC,CAAA;AAAA;AAAA,EAGlD,cAAA,EAAgBA,EAAE,KAAA,CAAM,wBAAwB,EAAE,QAAA,EAAS,CACxD,SAAS,wDAAwD,CAAA;AAAA;AAAA,EAGpE,YAAA,EAAcA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CACnC,SAAS,8DAA8D,CAAA;AAAA;AAAA,EAG1E,mBAAA,EAAqBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAC1C,SAAS,yDAAyD,CAAA;AAAA;AAAA,EAGrE,UAAUA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAC3B,SAAS,oDAAoD,CAAA;AAAA;AAAA,EAGhE,mBAAA,EAAqBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAC1C,SAAS,wDAAwD;AACtE,CAAC,CAAA,CAAE,QAAA,CAAS,6DAA6D,CAAC;AASnE,IAAM,iBAAA,GAAoB,UAAA,CAAW,MAAMA,CAAAA,CAAE,IAAA,CAAK;AAAA,EACvD,KAAA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAA,CAAE,QAAA,CAAS,uCAAuC,CAAC;AAO7C,IAAM,uBAAA,GAA0B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAE/D,SAAS,iBAAA,CAAkB,OAAA,CAAQ,KAAK,CAAA,CACrC,SAAS,mCAAmC,CAAA;AAAA;AAAA,EAG/C,aAAA,EAAeA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CACpC,SAAS,mDAAmD,CAAA;AAAA;AAAA,EAG/D,iBAAA,EAAmBA,EAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CACzC,SAAS,0DAA0D,CAAA;AAAA;AAAA,EAGtE,cAAA,EAAgBA,EAAE,KAAA,CAAM,wBAAwB,EAAE,QAAA,EAAS,CACxD,SAAS,oCAAoC,CAAA;AAAA;AAAA,EAGhD,WAAA,EAAaA,EAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA,CAClC,SAAS,0CAA0C,CAAA;AAAA;AAAA,EAGtD,eAAA,EAAiBA,EAAE,MAAA,EAAO,CAAE,QAAQ,MAAM,CAAA,CACvC,SAAS,wCAAwC;AACtD,CAAC,CAAA,CAAE,QAAA,CAAS,2DAA2D,CAAC;AASjE,IAAM,oBAAA,GAAuB,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAE5D,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,WAAW,OAAO,CAAC,CAAA,CAAE,QAAA,CAAS,qBAAqB,CAAA;AAAA;AAAA,EAG7E,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,oBAAoB,CAAA;AAAA;AAAA,EAGjD,eAAeA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,4CAA4C,CAAA;AAAA;AAAA,EAG1F,QAAQA,CAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gDAAgD;AACzF,CAAC,CAAA,CAAE,QAAA,CAAS,4CAA4C,CAAC;AAOlD,IAAM,uBAAA,GAA0B,UAAA,CAAW,MAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA;AAAA,EAE/D,OAAA,EAASA,CAAAA,CAAE,OAAA,EAAQ,CAAE,SAAS,8CAA8C,CAAA;AAAA;AAAA,EAG5E,WAAA,EAAaA,CAAAA,CAAE,KAAA,CAAM,oBAAoB,CAAA,CAAE,QAAQ,EAAE,CAAA,CAClD,QAAA,CAAS,wCAAwC,CAAA;AAAA;AAAA,EAGpD,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAC3C,SAAS,wCAAwC,CAAA;AAAA;AAAA,EAGpD,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAC7C,SAAS,6CAA6C;AAC3D,CAAC,CAAA,CAAE,QAAA,CAAS,0CAA0C,CAAC;AAUhD,IAAM,sBAAA,GAA+C;AAAA,EAC1D,EAAE,QAAA,EAAU,iBAAA,EAAmB,cAAA,EAAgB,OAAA,EAAS,eAAe,IAAA,EAAK;AAAA,EAC5E,EAAE,QAAA,EAAU,eAAA,EAAiB,cAAA,EAAgB,KAAA,EAAO,eAAe,IAAA,EAAK;AAAA,EACxE,EAAE,QAAA,EAAU,uBAAA,EAAyB,cAAA,EAAgB,UAAA,EAAY,eAAe,IAAA,EAAK;AAAA,EACrF,EAAE,QAAA,EAAU,sBAAA,EAAwB,cAAA,EAAgB,kBAAA,EAAoB,eAAe,IAAA,EAAK;AAAA,EAC5F,EAAE,UAAU,kBAAA,EAAoB,cAAA,EAAgB,gBAAgB,aAAA,EAAe,IAAA,EAAM,OAAO,2BAAA,EAA4B;AAAA,EACxH,EAAE,QAAA,EAAU,iBAAA,EAAmB,cAAA,EAAgB,QAAA,EAAU,eAAe,IAAA,EAAK;AAAA,EAC7E,EAAE,QAAA,EAAU,eAAA,EAAiB,cAAA,EAAgB,QAAA,EAAU,eAAe,IAAA,EAAK;AAAA,EAC3E,EAAE,QAAA,EAAU,mBAAA,EAAqB,cAAA,EAAgB,SAAA,EAAW,eAAe,IAAA,EAAK;AAAA,EAChF,EAAE,UAAU,6BAAA,EAA+B,cAAA,EAAgB,QAAQ,aAAA,EAAe,IAAA,EAAM,OAAO,mCAAA,EAAoC;AAAA,EACnI,EAAE,QAAA,EAAU,oBAAA,EAAsB,cAAA,EAAgB,gBAAA,EAAkB,eAAe,IAAA,EAAK;AAAA,EACxF,EAAE,UAAU,WAAA,EAAa,cAAA,EAAgB,cAAc,aAAA,EAAe,IAAA,EAAM,OAAO,sCAAA;AACrF","file":"index.mjs","sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { z } from 'zod';\n\n/**\n * Wrap a Zod schema constructor so its body is only evaluated on first use.\n *\n * Why: building Zod schemas at module-load creates millions of closures that\n * dominate dev-server RSS even though most schemas are never parsed in a\n * given session. Wrapping the constructor in a Proxy defers allocation until\n * the first property access (`.parse`, `.shape`, `._def`, etc.) and reuses\n * a single cached instance thereafter.\n *\n * Type system: the returned Proxy is structurally indistinguishable from the\n * underlying ZodType, so `z.infer<typeof X>` and `.parse()` callers do not\n * need to change.\n *\n * Emergency rollback: set `OS_EAGER_SCHEMAS=1` to evaluate the\n * factory immediately and bypass the Proxy entirely.\n */\nexport function lazySchema<T extends z.ZodTypeAny>(factory: () => T): T {\n if (typeof process !== 'undefined' && process.env?.OS_EAGER_SCHEMAS === '1') {\n return factory();\n }\n\n let cached: T | undefined;\n const resolve = (): T => {\n if (cached === undefined) cached = factory();\n return cached;\n };\n\n const target = function lazyZod() {} as unknown as T;\n\n const proxy = new Proxy(target as object, {\n get(_t, prop) {\n const real = resolve() as unknown as Record<PropertyKey, unknown>;\n const value = real[prop];\n if (typeof value === 'function') {\n return (value as (...a: unknown[]) => unknown).bind(real);\n }\n return value;\n },\n set(_t, prop, value) {\n const real = resolve() as unknown as Record<PropertyKey, unknown>;\n real[prop] = value;\n return true;\n },\n has(_t, prop) {\n return prop in (resolve() as object);\n },\n ownKeys() {\n return Reflect.ownKeys(resolve() as object);\n },\n getOwnPropertyDescriptor(_t, prop) {\n return Reflect.getOwnPropertyDescriptor(resolve() as object, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(resolve() as object);\n },\n });\n\n return proxy as T;\n}\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * System Identifier Schema\n * \n * Universal naming convention for all machine identifiers (API Names) in ObjectStack.\n * Enforces lowercase with underscores or dots to ensure:\n * - Cross-platform compatibility (case-insensitive filesystems)\n * - URL-friendliness (no encoding needed)\n * - Database consistency (no collation issues)\n * - Security (no case-sensitivity bugs in permission checks)\n * \n * **Applies to all metadata that acts as a machine identifier:**\n * - Object names (tables/collections)\n * - Field names\n * - Role names\n * - Permission set names\n * - Action/trigger names\n * - Event keys\n * - App IDs\n * - Menu/page IDs\n * - Select option values\n * - Workflow names\n * - Webhook names\n * \n * **Naming Convention Summary:**\n * | Type | Pattern | Example |\n * |------|---------|---------|\n * | Machine ID | snake_case | `crm_account`, `btn_submit`, `role_admin` |\n * | Event keys | dot.notation | `user.login`, `order.created` |\n * | Labels | Any case | `Client Account`, `Submit Form` |\n * \n * @example Valid identifiers\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * - 'order.created' (for events)\n * - 'api_v2_endpoint'\n * \n * @example Invalid identifiers (will be rejected)\n * - 'Account' (uppercase)\n * - 'CrmAccount' (camelCase)\n * - 'crm-account' (kebab-case - use underscore instead)\n * - 'user profile' (spaces)\n */\nimport { lazySchema } from './lazy-schema';\nexport const SystemIdentifierSchema = lazySchema(() => z\n .string()\n .min(2, { message: 'System identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., \"user_profile\" or \"order.created\")',\n })\n .describe('System identifier (lowercase with underscores or dots)'));\n\n/**\n * Strict Snake Case Identifier\n * \n * More restrictive than SystemIdentifierSchema - only allows underscores (no dots).\n * Use this for identifiers that should NOT contain dots (e.g., database table/column names).\n * \n * @example Valid\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * \n * @example Invalid\n * - 'user.profile' (dots not allowed)\n * - 'UserProfile' (uppercase)\n */\nexport const SnakeCaseIdentifierSchema = lazySchema(() => z\n .string()\n .min(2, { message: 'Identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_]*$/, {\n message:\n 'Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., \"user_profile\")',\n })\n .describe('Snake case identifier (lowercase with underscores only)'));\n\n/**\n * Event Name Identifier\n * \n * Specialized identifier for event names that encourages dot notation.\n * Used in event-driven systems, message queues, and webhooks.\n * \n * Pattern: `namespace.action` or `entity.event_type`\n * \n * @example Valid\n * - 'user.created'\n * - 'order.paid'\n * - 'user.login_success'\n * - 'alarm.high_cpu'\n * \n * @example Invalid\n * - 'UserCreated' (camelCase)\n * - 'user_created' (should use dots for namespacing)\n */\nexport const EventNameSchema = lazySchema(() => z\n .string()\n .min(3, { message: 'Event name must be at least 3 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'Event name must be lowercase with dots for namespacing (e.g., \"user.created\", \"order.paid\")',\n })\n .describe('Event name (lowercase with dot notation for namespacing)'));\n\n/**\n * Type Exports\n */\nexport type SystemIdentifier = z.infer<typeof SystemIdentifierSchema>;\nexport type SnakeCaseIdentifier = z.infer<typeof SnakeCaseIdentifierSchema>;\nexport type EventName = z.infer<typeof EventNameSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * # Expression Protocol\n *\n * Canonical wire format for all \"expression\"-shaped metadata across ObjectStack\n * (formula fields, predicates, conditions, criteria, visibility rules, seed\n * dynamic values, …).\n *\n * The persisted form is `{ dialect, source }` (and, after `objectstack\n * compile` normalization, `{ dialect, ast }`). String-only shorthand is\n * accepted at *input* time for developer ergonomics; build emits the canonical\n * envelope.\n *\n * ## Dialects\n *\n * | dialect | engine | use |\n * |:---|:---|:---|\n * | `cel` | `@objectstack/formula` (cel-js + ObjectStack stdlib) | formulas, predicates, seed dynamic values |\n * | `js` | sandboxed L2 hook bodies (`isolated-vm` / `quickjs`) | mapping, hook bodies |\n * | `cron` | `cron-parser` | job schedules |\n *\n * SQL fragments (analytics joins, partial indexes) are intentionally **not**\n * routed through this schema — they stay driver-native because their security\n * posture and portability story differ.\n *\n * @see content/docs/concepts/north-star.mdx §8 \"No private expression DSL\"\n */\n\n/** Supported expression dialects. */\nexport const ExpressionDialect = z.enum(['cel', 'js', 'cron', 'template']);\nexport type ExpressionDialect = z.infer<typeof ExpressionDialect>;\n\n/**\n * Authorship metadata for an expression. Optional but encouraged for AI-\n * generated artifacts so audit/explanation tooling has something to render.\n */\nexport const ExpressionMetaSchema = z.object({\n /** Human-readable rationale (often AI-emitted). */\n rationale: z.string().optional(),\n /** Identifier of the agent / tool that produced this expression. */\n generatedBy: z.string().optional(),\n});\nexport type ExpressionMeta = z.infer<typeof ExpressionMetaSchema>;\n\n/**\n * Canonical Expression envelope.\n *\n * Phase 1 (M9.1): `source` is the canonical persisted form. `ast` is reserved\n * and accepted as opaque structured value — `objectstack compile` will fill it\n * in M9.2 with the engine's parsed AST so the artifact carries an AST-only\n * representation.\n *\n * Phase 2 (M9.2+): `ast` becomes required in build output; `source` is kept\n * only for round-trip / debug.\n */\nexport const ExpressionSchema = z.object({\n /** Which engine evaluates `source` / `ast`. */\n dialect: ExpressionDialect,\n /** Surface syntax. Required while `ast` is not yet populated. */\n source: z.string().min(1).optional(),\n /**\n * Engine-native AST. Opaque at the spec layer; each engine validates its own\n * shape. For `dialect: 'cel'` this is the cel-js parsed AST node.\n */\n ast: z.unknown().optional(),\n /** Optional authorship metadata. */\n meta: ExpressionMetaSchema.optional(),\n}).refine(e => e.source !== undefined || e.ast !== undefined, {\n message: 'Expression requires at least one of `source` or `ast`',\n});\nexport type Expression = z.infer<typeof ExpressionSchema>;\n\n/**\n * Author-time input shape: a bare string is shorthand for `{ dialect: 'cel',\n * source }`. Engines that need other dialects must use the full envelope.\n *\n * Build (`objectstack compile`) normalizes this union to `Expression` so the\n * persisted artifact never contains the bare-string form.\n */\nexport const ExpressionInputSchema = z.union([\n z.string().min(1).transform((source): Expression => ({ dialect: 'cel', source })),\n ExpressionSchema,\n]);\nexport type ExpressionInput = z.input<typeof ExpressionInputSchema>;\n\n/**\n * Cron-typed input shape: a bare string is shorthand for `{ dialect: 'cron',\n * source }` (not `cel`). Use this for `schedule` / `cronExpression` fields so\n * authors can write `'0 9 * * 1-5'` without manually wrapping.\n */\nexport const CronExpressionInputSchema = z.union([\n z.string().min(1).transform((source): Expression => ({ dialect: 'cron', source })),\n ExpressionSchema,\n]);\nexport type CronExpressionInput = z.input<typeof CronExpressionInputSchema>;\n\n/**\n * Template-typed input shape: a bare string is shorthand for\n * `{ dialect: 'template', source }`. Use this for notification subjects/bodies,\n * titleFormat, prompt templates — anything with `{{var}}` interpolation.\n */\nexport const TemplateExpressionInputSchema = z.union([\n z.string().min(1).transform((source): Expression => ({ dialect: 'template', source })),\n ExpressionSchema,\n]);\nexport type TemplateExpressionInput = z.input<typeof TemplateExpressionInputSchema>;\n\n/**\n * Predicate — an Expression whose evaluation is expected to be boolean.\n * Spec layer cannot enforce return type at parse time; this alias exists for\n * intent documentation and future runtime type-check wiring.\n */\nexport const PredicateSchema = ExpressionSchema;\nexport type Predicate = z.infer<typeof PredicateSchema>;\n\nexport const PredicateInputSchema = ExpressionInputSchema;\nexport type PredicateInput = z.input<typeof PredicateInputSchema>;\n\n/**\n * Construct an Expression literal from a CEL source string. Used by DX\n * shorthand (`cel\\`...\\``) and by codegen tools.\n */\nexport function expression(source: string, dialect: ExpressionDialect = 'cel', meta?: ExpressionMeta): Expression {\n return { dialect, source, ...(meta ? { meta } : {}) };\n}\n\n/**\n * Tagged-template helpers for inline expression authoring.\n *\n * ```ts\n * import { cel, F, P } from '@objectstack/spec';\n *\n * const f = { formula: F`record.amount * 0.1` };\n * const v = { visible: P`record.status == \"open\"` };\n * const d = { close_date: cel`now() + duration(\"P30D\")` };\n * ```\n *\n * Each helper produces an {@link Expression} envelope with `dialect: 'cel'`\n * and the rendered template string as `source`. The CLI `objectstack compile`\n * step (M9.2) parses these into ASTs at build time so the persisted artifact\n * is dialect-AST only.\n */\nfunction renderTemplate(strings: TemplateStringsArray, values: readonly unknown[]): string {\n if (values.length === 0) return strings[0] ?? '';\n let out = strings[0] ?? '';\n for (let i = 0; i < values.length; i++) {\n const v = values[i];\n // Inline literal substitution. Strings get JSON-escaped so `${name}` for\n // `name = 'O\\'Brien'` produces a valid CEL string literal. Numbers and\n // booleans render as their toString. Anything exotic should be passed via\n // the variable scope (record/input) rather than interpolated.\n if (typeof v === 'string') out += JSON.stringify(v);\n else if (typeof v === 'number' || typeof v === 'boolean') out += String(v);\n else if (v === null || v === undefined) out += 'null';\n else out += JSON.stringify(v);\n out += strings[i + 1] ?? '';\n }\n return out;\n}\n\n/** Tagged template — produces a CEL Expression envelope. */\nexport function cel(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n return { dialect: 'cel', source: renderTemplate(strings, values) };\n}\n\n/** Formula alias of {@link cel} — semantic shorthand for computed-field formulas. */\nexport const F = cel;\n\n/** Predicate alias of {@link cel} — semantic shorthand for boolean conditions. */\nexport const P = cel;\n\n/**\n * Tagged template — produces a Mustache-template Expression envelope. Use for\n * notification subjects, prompt bodies, titleFormat strings, etc. Variable\n * scope is the same as CEL (`{{record.x}}`, `{{os.user.id}}`).\n */\nexport function tmpl(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n // Templates do not get JSON.stringify on substitution — interpolation happens\n // at evaluate time via `{{path}}` markers, so we keep raw substitutions here.\n let out = strings[0] ?? '';\n for (let i = 0; i < values.length; i++) {\n out += String(values[i]);\n out += strings[i + 1] ?? '';\n }\n return { dialect: 'template', source: out };\n}\n\n/** Tagged template — produces a cron Expression envelope. */\nexport function cron(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n let out = strings[0] ?? '';\n for (let i = 0; i < values.length; i++) {\n out += String(values[i]);\n out += strings[i + 1] ?? '';\n }\n return { dialect: 'cron', source: out };\n}\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\nimport { ExpressionInputSchema } from '../shared/expression.zod';\n\n/**\n * Trigger events for workflow automation\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const WorkflowTriggerType = z.enum([\n 'on_create', // When record is created\n 'on_update', // When record is updated\n 'on_create_or_update', // Both\n 'on_delete', // When record is deleted\n 'schedule' // Time-based (cron)\n]);\n\n/**\n * Schema for Workflow Field Update Action\n * @example\n * {\n * name: \"update_status\",\n * type: \"field_update\",\n * field: \"status\",\n * value: \"approved\"\n * }\n */\nexport const FieldUpdateActionSchema = lazySchema(() => z.object({\n name: z.string().describe('Action name'),\n type: z.literal('field_update'),\n field: z.string().describe('Field to update'),\n value: z.unknown().describe('Value or Formula to set'),\n}));\n\n/**\n * Schema for Workflow Email Alert Action\n * @example\n * {\n * name: \"send_approval_email\",\n * type: \"email_alert\",\n * template: \"approval_request_email\",\n * recipients: [\"user_id_123\", \"manager_field\"]\n * }\n */\nexport const EmailAlertActionSchema = lazySchema(() => z.object({\n name: z.string().describe('Action name'),\n type: z.literal('email_alert'),\n template: z.string().describe('Email template ID/DevName'),\n recipients: z.array(z.string()).describe('List of recipient emails or user IDs'),\n}));\n\n/**\n * Schema for Connector Action Reference\n * Executes a capability defined in an integration connector.\n * Replaces hardcoded vendor actions (Slack, Twilio, etc).\n * \n * @example Send Slack Message\n * {\n * name: \"notify_slack\",\n * type: \"connector_action\",\n * connectorId: \"slack\",\n * actionId: \"post_message\",\n * input: {\n * channel: \"#general\",\n * text: \"New deal closed: {name}\"\n * }\n * }\n */\nexport const ConnectorActionRefSchema = lazySchema(() => z.object({\n name: z.string().describe('Action name'),\n type: z.literal('connector_action'),\n connectorId: z.string().describe('Target Connector ID (e.g. slack, twilio)'),\n actionId: z.string().describe('Target Action ID (e.g. send_message)'),\n input: z.record(z.string(), z.unknown()).describe('Input parameters matching the action schema'),\n}));\n\n/**\n * Schema for HTTP Callout Action\n * Makes a REST API call to an external service.\n * @example\n * {\n * name: \"sync_to_erp\",\n * type: \"http_call\",\n * url: \"https://erp.api/orders\",\n * method: \"POST\",\n * headers: { \"Authorization\": \"Bearer {token}\" },\n * body: \"{ ... }\"\n * }\n */\nexport const HttpCallActionSchema = lazySchema(() => z.object({\n name: z.string().describe('Action name'),\n type: z.literal('http_call'),\n url: z.string().describe('Target URL'),\n method: z.enum(['GET', 'POST', 'PUT', 'DELETE', 'PATCH']).default('POST').describe('HTTP Method'),\n headers: z.record(z.string(), z.string()).optional().describe('HTTP Headers'),\n body: z.string().optional().describe('Request body (JSON or text)'),\n}));\n\n/**\n * Schema for Workflow Task Creation Action\n * @example\n * {\n * name: \"create_followup_task\",\n * type: \"task_creation\",\n * taskObject: \"tasks\",\n * subject: \"Follow up with client\",\n * dueDate: \"TODAY() + 3\"\n * }\n */\nexport const TaskCreationActionSchema = lazySchema(() => z.object({\n name: z.string().describe('Action name'),\n type: z.literal('task_creation'),\n taskObject: z.string().describe('Task object name (e.g., \"task\", \"project_task\")'),\n subject: z.string().describe('Task subject/title'),\n description: z.string().optional().describe('Task description'),\n assignedTo: z.string().optional().describe('User ID or field reference for assignee'),\n dueDate: ExpressionInputSchema.optional().describe('Due date — CEL expression evaluated at task creation, e.g. cel`now() + duration(\"P3D\")`'),\n priority: z.string().optional().describe('Task priority'),\n relatedTo: z.string().optional().describe('Related record ID or field reference'),\n additionalFields: z.record(z.string(), z.unknown()).optional().describe('Additional custom fields'),\n}));\n\n/**\n * Schema for Workflow Push Notification Action\n */\nexport const PushNotificationActionSchema = lazySchema(() => z.object({\n name: z.string().describe('Action name'),\n type: z.literal('push_notification'),\n title: z.string().describe('Notification title'),\n body: z.string().describe('Notification body text'),\n recipients: z.array(z.string()).describe('User IDs or device tokens'),\n data: z.record(z.string(), z.unknown()).optional().describe('Additional data payload'),\n badge: z.number().optional().describe('Badge count (iOS)'),\n sound: z.string().optional().describe('Notification sound'),\n clickAction: z.string().optional().describe('Action/URL when notification is clicked'),\n}));\n\n/**\n * Schema for Workflow Custom Script Action\n */\nexport const CustomScriptActionSchema = lazySchema(() => z.object({\n name: z.string().describe('Action name'),\n type: z.literal('custom_script'),\n language: z.enum(['javascript', 'typescript', 'python']).default('javascript').describe('Script language'),\n code: z.string().describe('Script code to execute'),\n timeout: z.number().default(30000).describe('Execution timeout in milliseconds'),\n context: z.record(z.string(), z.unknown()).optional().describe('Additional context variables'),\n}));\n\n/**\n * Universal Workflow Action Schema\n * Union of all supported action types.\n */\nexport const WorkflowActionSchema = lazySchema(() => z.discriminatedUnion('type', [\n FieldUpdateActionSchema,\n EmailAlertActionSchema,\n HttpCallActionSchema,\n ConnectorActionRefSchema,\n TaskCreationActionSchema,\n PushNotificationActionSchema,\n CustomScriptActionSchema,\n]));\n\nexport type WorkflowAction = z.infer<typeof WorkflowActionSchema>;\n\n/**\n * Time Trigger Definition\n * Schedules actions to run relative to a specific time or date field.\n */\nexport const TimeTriggerSchema = lazySchema(() => z.object({\n id: z.string().optional().describe('Unique identifier'),\n \n /** Timing Logic */\n timeLength: z.number().int().describe('Duration amount (e.g. 1, 30)'),\n timeUnit: z.enum(['minutes', 'hours', 'days']).describe('Unit of time'),\n \n /** Reference Point */\n offsetDirection: z.enum(['before', 'after']).describe('Before or After the reference date'),\n offsetFrom: z.enum(['trigger_date', 'date_field']).describe('Basis for calculation'),\n dateField: z.string().optional().describe('Date field to calculate from (required if offsetFrom is date_field)'),\n \n /** Actions */\n actions: z.array(WorkflowActionSchema).describe('Actions to execute at the scheduled time'),\n}));\n\n/**\n * Schema for Workflow Rules (Automation)\n * \n * **NAMING CONVENTION:**\n * Workflow names are machine identifiers and must be lowercase snake_case.\n * \n * @example Good workflow names\n * - 'send_welcome_email'\n * - 'update_lead_status'\n * - 'notify_manager_on_close'\n * - 'calculate_discount'\n * \n * @example Bad workflow names (will be rejected)\n * - 'SendWelcomeEmail' (PascalCase)\n * - 'updateLeadStatus' (camelCase)\n * - 'Send Welcome Email' (spaces)\n * \n * @example Complete Workflow\n * {\n * name: \"new_lead_process\",\n * objectName: \"lead\",\n * triggerType: \"on_create\",\n * criteria: \"amount > 1000\",\n * active: true,\n * actions: [\n * {\n * name: \"set_status\",\n * type: \"field_update\",\n * field: \"status\",\n * value: \"new\"\n * },\n * {\n * name: \"notify_team\",\n * type: \"connector_action\",\n * connectorId: \"slack\",\n * actionId: \"post_message\",\n * input: { channel: \"#sales\", text: \"New high value lead!\" }\n * }\n * ],\n * timeTriggers: [\n * {\n * timeLength: 2,\n * timeUnit: \"days\",\n * offsetDirection: \"after\",\n * offsetFrom: \"trigger_date\",\n * actions: [\n * {\n * name: \"followup_check\",\n * type: \"task_creation\",\n * taskObject: \"task\",\n * subject: \"Follow up lead\",\n * dueDate: \"TODAY()\"\n * }\n * ]\n * }\n * ]\n * }\n */\nexport const WorkflowRuleSchema = lazySchema(() => z.object({\n /** Machine name */\n name: SnakeCaseIdentifierSchema.describe('Unique workflow name (lowercase snake_case)'),\n \n /** Target Object */\n objectName: z.string().describe('Target Object'),\n \n /** When to evaluate the rule */\n triggerType: WorkflowTriggerType.describe('When to evaluate'),\n\n /** Human-readable description of what this workflow does */\n description: z.string().optional().describe('Human-readable description of what this workflow does'),\n \n /** \n * Condition to start the workflow.\n * If empty, runs on every trigger event.\n */\n criteria: ExpressionInputSchema.optional().describe('Predicate (CEL). If TRUE, actions execute.'),\n \n /** Actions to execute immediately */\n actions: z.array(WorkflowActionSchema).optional().describe('Immediate actions'),\n \n /** \n * Time-Dependent Actions \n * Actions scheduled to run in the future.\n */\n timeTriggers: z.array(TimeTriggerSchema).optional().describe('Scheduled actions relative to trigger or date field'),\n \n /** Active status */\n active: z.boolean().default(true).describe('Whether this workflow is active'),\n\n /** Execution Order */\n executionOrder: z.number().int().min(0).default(100).describe('Deterministic execution order when multiple workflows match (lower runs first)'),\n \n /** Recursion Control */\n reevaluateOnChange: z.boolean().default(false).describe('Re-evaluate rule if field updates change the record validity'),\n}));\n\nexport type WorkflowRule = z.infer<typeof WorkflowRuleSchema>;\nexport type TimeTrigger = z.infer<typeof TimeTriggerSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * I18n Object Schema\n * Structured internationalization label with translation key and parameters.\n * \n * @example\n * ```typescript\n * const label: I18nObject = {\n * key: 'views.task_list.label',\n * defaultValue: 'Task List',\n * params: { count: 5 },\n * };\n * ```\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const I18nObjectSchema = lazySchema(() => z.object({\n /** Translation key (e.g., \"views.task_list.label\", \"apps.crm.description\") */\n key: z.string().describe('Translation key (e.g., \"views.task_list.label\")'),\n\n /** Default value when translation is not available */\n defaultValue: z.string().optional().describe('Fallback value when translation key is not found'),\n\n /** Interpolation parameters for dynamic translations */\n params: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).optional().describe('Interpolation parameters (e.g., { count: 5 })'),\n}));\n\nexport type I18nObject = z.infer<typeof I18nObjectSchema>;\n\n/**\n * I18n Label Schema\n * \n * A plain string label for display purposes.\n * i18n translation keys are auto-generated by the framework at registration time\n * based on a standardized naming convention (e.g., `apps.<packageId>.<name>.label`).\n * Developers only need to provide the default-language string; translations are\n * managed through translation files, not inline i18n objects.\n * \n * @example\n * ```typescript\n * const label: I18nLabel = \"All Active\";\n * ```\n */\nexport const I18nLabelSchema = lazySchema(() => z.string().describe('Display label (plain string; i18n keys are auto-generated by the framework)'));\n\nexport type I18nLabel = z.infer<typeof I18nLabelSchema>;\n\n/**\n * ARIA Accessibility Properties Schema\n * \n * Common ARIA attributes for UI components to support screen readers\n * and assistive technologies.\n * \n * Aligned with WAI-ARIA 1.2 specification.\n * \n * @see https://www.w3.org/TR/wai-aria-1.2/\n * \n * @example\n * ```typescript\n * const aria: AriaProps = {\n * ariaLabel: 'Close dialog',\n * ariaDescribedBy: 'dialog-description',\n * role: 'dialog',\n * };\n * ```\n */\nexport const AriaPropsSchema = lazySchema(() => z.object({\n /** Accessible label for screen readers */\n ariaLabel: I18nLabelSchema.optional().describe('Accessible label for screen readers (WAI-ARIA aria-label)'),\n\n /** ID of element that describes this component */\n ariaDescribedBy: z.string().optional().describe('ID of element providing additional description (WAI-ARIA aria-describedby)'),\n\n /** WAI-ARIA role override */\n role: z.string().optional().describe('WAI-ARIA role attribute (e.g., \"dialog\", \"navigation\", \"alert\")'),\n}).describe('ARIA accessibility attributes'));\n\nexport type AriaProps = z.infer<typeof AriaPropsSchema>;\n\n/**\n * Plural Rule Schema\n *\n * Defines plural forms for a translation key, following ICU MessageFormat / i18next conventions.\n * Supports zero, one, two, few, many, other forms per CLDR plural rules.\n *\n * @see https://unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules\n *\n * @example\n * ```typescript\n * const plural: PluralRule = {\n * key: 'items.count',\n * zero: 'No items',\n * one: '{count} item',\n * other: '{count} items',\n * };\n * ```\n */\nexport const PluralRuleSchema = lazySchema(() => z.object({\n /** Translation key for the plural form */\n key: z.string().describe('Translation key'),\n /** Form for zero quantity */\n zero: z.string().optional().describe('Zero form (e.g., \"No items\")'),\n /** Form for singular (1) */\n one: z.string().optional().describe('Singular form (e.g., \"{count} item\")'),\n /** Form for dual (2) — used in Arabic, Welsh, etc. */\n two: z.string().optional().describe('Dual form (e.g., \"{count} items\" for exactly 2)'),\n /** Form for few (2-4 in Slavic languages) */\n few: z.string().optional().describe('Few form (e.g., for 2-4 in some languages)'),\n /** Form for many (5+ in Slavic languages) */\n many: z.string().optional().describe('Many form (e.g., for 5+ in some languages)'),\n /** Default/fallback form */\n other: z.string().describe('Default plural form (e.g., \"{count} items\")'),\n}).describe('ICU plural rules for a translation key'));\n\nexport type PluralRule = z.infer<typeof PluralRuleSchema>;\n\n/**\n * Number Format Schema\n *\n * Defines number formatting rules for localization.\n *\n * @example\n * ```typescript\n * const format: NumberFormat = {\n * style: 'currency',\n * currency: 'USD',\n * minimumFractionDigits: 2,\n * };\n * ```\n */\nexport const NumberFormatSchema = lazySchema(() => z.object({\n style: z.enum(['decimal', 'currency', 'percent', 'unit']).default('decimal')\n .describe('Number formatting style'),\n currency: z.string().optional().describe('ISO 4217 currency code (e.g., \"USD\", \"EUR\")'),\n unit: z.string().optional().describe('Unit for unit formatting (e.g., \"kilometer\", \"liter\")'),\n minimumFractionDigits: z.number().optional().describe('Minimum number of fraction digits'),\n maximumFractionDigits: z.number().optional().describe('Maximum number of fraction digits'),\n useGrouping: z.boolean().optional().describe('Whether to use grouping separators (e.g., 1,000)'),\n}).describe('Number formatting rules'));\n\nexport type NumberFormat = z.infer<typeof NumberFormatSchema>;\n\n/**\n * Date Format Schema\n *\n * Defines date/time formatting rules for localization.\n *\n * @example\n * ```typescript\n * const format: DateFormat = {\n * dateStyle: 'medium',\n * timeStyle: 'short',\n * timeZone: 'America/New_York',\n * };\n * ```\n */\nexport const DateFormatSchema = lazySchema(() => z.object({\n dateStyle: z.enum(['full', 'long', 'medium', 'short']).optional()\n .describe('Date display style'),\n timeStyle: z.enum(['full', 'long', 'medium', 'short']).optional()\n .describe('Time display style'),\n timeZone: z.string().optional().describe('IANA time zone (e.g., \"America/New_York\")'),\n hour12: z.boolean().optional().describe('Use 12-hour format'),\n}).describe('Date/time formatting rules'));\n\nexport type DateFormat = z.infer<typeof DateFormatSchema>;\n\n/**\n * Locale Configuration Schema\n *\n * Defines a complete locale configuration including language code,\n * fallback chain, and formatting preferences.\n *\n * @example\n * ```typescript\n * const locale: LocaleConfig = {\n * code: 'zh-CN',\n * fallbackChain: ['zh-TW', 'en'],\n * direction: 'ltr',\n * numberFormat: { style: 'decimal', useGrouping: true },\n * dateFormat: { dateStyle: 'medium', timeStyle: 'short' },\n * };\n * ```\n */\nexport const LocaleConfigSchema = lazySchema(() => z.object({\n /** BCP 47 language code (e.g., \"en-US\", \"zh-CN\", \"ar-SA\") */\n code: z.string().describe('BCP 47 language code (e.g., \"en-US\", \"zh-CN\")'),\n\n /** Ordered fallback chain for missing translations */\n fallbackChain: z.array(z.string()).optional()\n .describe('Fallback language codes in priority order (e.g., [\"zh-TW\", \"en\"])'),\n\n /** Text direction */\n direction: z.enum(['ltr', 'rtl']).default('ltr')\n .describe('Text direction: left-to-right or right-to-left'),\n\n /** Default number formatting */\n numberFormat: NumberFormatSchema.optional().describe('Default number formatting rules'),\n\n /** Default date formatting */\n dateFormat: DateFormatSchema.optional().describe('Default date/time formatting rules'),\n}).describe('Locale configuration'));\n\nexport type LocaleConfig = z.infer<typeof LocaleConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\n/**\n * @module ui/sharing\n *\n * Sharing & Embedding Protocol\n *\n * Defines schemas for public link sharing, embed configuration,\n * domain restrictions, and password protection for apps, pages, and forms.\n */\n\nimport { z } from 'zod';\n\n/**\n * Sharing Config Schema\n * Configuration for public sharing of an app, page, or form.\n * Supports public links, password protection, domain restrictions, and expiration.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const SharingConfigSchema = lazySchema(() => z.object({\n enabled: z.boolean().default(false).describe('Enable public sharing'),\n publicLink: z.string().optional().describe('Generated public share URL'),\n password: z.string().optional().describe('Password required to access shared link'),\n allowedDomains: z.array(z.string()).optional()\n .describe('Restrict access to specific email domains (e.g. [\"example.com\"])'),\n expiresAt: z.string().optional()\n .describe('Expiration date/time in ISO 8601 format'),\n allowAnonymous: z.boolean().optional().default(false)\n .describe('Allow access without authentication'),\n}));\n\n/**\n * Embed Config Schema\n * Configuration for iframe embedding of an app, page, or form.\n * Supports origin restrictions, display options, and responsive sizing.\n */\nexport const EmbedConfigSchema = lazySchema(() => z.object({\n enabled: z.boolean().default(false).describe('Enable iframe embedding'),\n allowedOrigins: z.array(z.string()).optional()\n .describe('Allowed iframe parent origins (e.g. [\"https://example.com\"])'),\n width: z.string().optional().default('100%').describe('Embed width (CSS value)'),\n height: z.string().optional().default('600px').describe('Embed height (CSS value)'),\n showHeader: z.boolean().optional().default(true).describe('Show interface header in embed'),\n showNavigation: z.boolean().optional().default(false).describe('Show navigation in embed'),\n responsive: z.boolean().optional().default(true).describe('Enable responsive resizing'),\n}));\n\n// Type Exports\nexport type SharingConfig = z.infer<typeof SharingConfigSchema>;\nexport type EmbedConfig = z.infer<typeof EmbedConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Breakpoint Name Enum\n * Matches the breakpoint names defined in theme.zod.ts BreakpointsSchema.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const BreakpointName = z.enum(['xs', 'sm', 'md', 'lg', 'xl', '2xl']);\n\nexport type BreakpointName = z.infer<typeof BreakpointName>;\n\n/**\n * Responsive Configuration Schema\n *\n * Provides responsive layout configuration for UI components.\n * Maps breakpoint names to layout behavior (columns, visibility, order).\n *\n * Aligned with theme.zod.ts BreakpointsSchema for a unified responsive system.\n *\n * @example\n * ```typescript\n * const config: ResponsiveConfig = {\n * columns: { xs: 12, sm: 6, lg: 4 },\n * hiddenOn: ['xs'],\n * order: { xs: 2, lg: 1 },\n * };\n * ```\n */\n/**\n * Breakpoint Column Map Schema\n * Maps breakpoint names to grid column counts (1-12).\n * All entries are optional — only specified breakpoints are configured.\n */\nexport const BreakpointColumnMapSchema = lazySchema(() => z.object({\n xs: z.number().min(1).max(12).optional(),\n sm: z.number().min(1).max(12).optional(),\n md: z.number().min(1).max(12).optional(),\n lg: z.number().min(1).max(12).optional(),\n xl: z.number().min(1).max(12).optional(),\n '2xl': z.number().min(1).max(12).optional(),\n}).describe('Grid columns per breakpoint (1-12)'));\n\n/**\n * Breakpoint Order Map Schema\n * Maps breakpoint names to display order numbers.\n * All entries are optional — only specified breakpoints are configured.\n */\nexport const BreakpointOrderMapSchema = lazySchema(() => z.object({\n xs: z.number().optional(),\n sm: z.number().optional(),\n md: z.number().optional(),\n lg: z.number().optional(),\n xl: z.number().optional(),\n '2xl': z.number().optional(),\n}).describe('Display order per breakpoint'));\n\nexport const ResponsiveConfigSchema = lazySchema(() => z.object({\n /** Minimum breakpoint for visibility */\n breakpoint: BreakpointName.optional()\n .describe('Minimum breakpoint for visibility'),\n\n /** Hide on specific breakpoints */\n hiddenOn: z.array(BreakpointName).optional()\n .describe('Hide on these breakpoints'),\n\n /** Grid columns per breakpoint (1-12 column grid) */\n columns: BreakpointColumnMapSchema.optional().describe('Grid columns per breakpoint'),\n\n /** Display order per breakpoint */\n order: BreakpointOrderMapSchema.optional().describe('Display order per breakpoint'),\n}).describe('Responsive layout configuration'));\n\nexport type ResponsiveConfig = z.infer<typeof ResponsiveConfigSchema>;\n\n/**\n * Performance Configuration Schema\n *\n * Defines performance optimization settings for UI components\n * such as lazy loading, virtual scrolling, and caching.\n *\n * @example\n * ```typescript\n * const perf: PerformanceConfig = {\n * lazyLoad: true,\n * virtualScroll: { enabled: true, itemHeight: 40, overscan: 5 },\n * cacheStrategy: 'stale-while-revalidate',\n * prefetch: true,\n * };\n * ```\n */\nexport const PerformanceConfigSchema = lazySchema(() => z.object({\n /** Enable lazy loading for this component */\n lazyLoad: z.boolean().optional()\n .describe('Enable lazy loading (defer rendering until visible)'),\n\n /** Virtual scrolling configuration for large datasets */\n virtualScroll: z.object({\n enabled: z.boolean().default(false).describe('Enable virtual scrolling'),\n itemHeight: z.number().optional().describe('Fixed item height in pixels (for estimation)'),\n overscan: z.number().optional().describe('Number of extra items to render outside viewport'),\n }).optional().describe('Virtual scrolling configuration'),\n\n /** Client-side caching strategy */\n cacheStrategy: z.enum([\n 'none',\n 'cache-first',\n 'network-first',\n 'stale-while-revalidate',\n ]).optional().describe('Client-side data caching strategy'),\n\n /** Enable data prefetching */\n prefetch: z.boolean().optional()\n .describe('Prefetch data before component is visible'),\n\n /** Maximum number of items to render before pagination */\n pageSize: z.number().optional()\n .describe('Number of items per page for pagination'),\n\n /** Debounce interval for user interactions (ms) */\n debounceMs: z.number().optional()\n .describe('Debounce interval for user interactions in milliseconds'),\n}).describe('Performance optimization configuration'));\n\nexport type PerformanceConfig = z.infer<typeof PerformanceConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Field-level encryption protocol\n * GDPR/HIPAA/PCI-DSS compliant\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const EncryptionAlgorithmSchema = lazySchema(() => z.enum([\n 'aes-256-gcm',\n 'aes-256-cbc',\n 'chacha20-poly1305',\n]).describe('Supported encryption algorithm'));\n\nexport type EncryptionAlgorithm = z.infer<typeof EncryptionAlgorithmSchema>;\n\nexport const KeyManagementProviderSchema = lazySchema(() => z.enum([\n 'local',\n 'aws-kms',\n 'azure-key-vault',\n 'gcp-kms',\n 'hashicorp-vault',\n]).describe('Key management service provider'));\n\nexport type KeyManagementProvider = z.infer<typeof KeyManagementProviderSchema>;\n\nexport const KeyRotationPolicySchema = lazySchema(() => z.object({\n enabled: z.boolean().default(false).describe('Enable automatic key rotation'),\n frequencyDays: z.number().min(1).default(90).describe('Rotation frequency in days'),\n retainOldVersions: z.number().default(3).describe('Number of old key versions to retain'),\n autoRotate: z.boolean().default(true).describe('Automatically rotate without manual approval'),\n}).describe('Policy for automatic encryption key rotation'));\n\nexport type KeyRotationPolicy = z.infer<typeof KeyRotationPolicySchema>;\nexport type KeyRotationPolicyInput = z.input<typeof KeyRotationPolicySchema>;\n\nexport const EncryptionConfigSchema = lazySchema(() => z.object({\n enabled: z.boolean().default(false).describe('Enable field-level encryption'),\n algorithm: EncryptionAlgorithmSchema.default('aes-256-gcm').describe('Encryption algorithm'),\n keyManagement: z.object({\n provider: KeyManagementProviderSchema.describe('Key management service provider'),\n keyId: z.string().optional().describe('Key identifier in the provider'),\n rotationPolicy: KeyRotationPolicySchema.optional().describe('Key rotation policy'),\n }).describe('Key management configuration'),\n scope: z.enum(['field', 'record', 'table', 'database']).describe('Encryption scope level'),\n deterministicEncryption: z.boolean().default(false).describe('Allows equality queries on encrypted data'),\n searchableEncryption: z.boolean().default(false).describe('Allows search on encrypted data'),\n}).describe('Field-level encryption configuration'));\n\nexport type EncryptionConfig = z.infer<typeof EncryptionConfigSchema>;\nexport type EncryptionConfigInput = z.input<typeof EncryptionConfigSchema>;\n\nexport const FieldEncryptionSchema = lazySchema(() => z.object({\n fieldName: z.string().describe('Name of the field to encrypt'),\n encryptionConfig: EncryptionConfigSchema.describe('Encryption settings for this field'),\n indexable: z.boolean().default(false).describe('Allow indexing on encrypted field'),\n}).describe('Per-field encryption assignment'));\n\nexport type FieldEncryption = z.infer<typeof FieldEncryptionSchema>;\nexport type FieldEncryptionInput = z.input<typeof FieldEncryptionSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Data masking protocol for PII protection\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const MaskingStrategySchema = lazySchema(() => z.enum([\n 'redact', // Complete redaction: ****\n 'partial', // Partial masking: 138****5678\n 'hash', // Hash value: sha256(value)\n 'tokenize', // Tokenization: token-12345\n 'randomize', // Randomize: generate random value\n 'nullify', // Null value: null\n 'substitute', // Substitute with dummy data\n]).describe('Data masking strategy for PII protection'));\n\nexport type MaskingStrategy = z.infer<typeof MaskingStrategySchema>;\n\nexport const MaskingRuleSchema = lazySchema(() => z.object({\n field: z.string().describe('Field name to apply masking to'),\n strategy: MaskingStrategySchema.describe('Masking strategy to use'),\n pattern: z.string().optional().describe('Regex pattern for partial masking'),\n preserveFormat: z.boolean().default(true).describe('Keep the original data format after masking'),\n preserveLength: z.boolean().default(true).describe('Keep the original data length after masking'),\n roles: z.array(z.string()).optional().describe('Roles that see masked data'),\n exemptRoles: z.array(z.string()).optional().describe('Roles that see unmasked data'),\n}).describe('Masking rule for a single field'));\n\nexport type MaskingRule = z.infer<typeof MaskingRuleSchema>;\nexport type MaskingRuleInput = z.input<typeof MaskingRuleSchema>;\n\nexport const MaskingConfigSchema = lazySchema(() => z.object({\n enabled: z.boolean().default(false).describe('Enable data masking'),\n rules: z.array(MaskingRuleSchema).describe('List of field-level masking rules'),\n auditUnmasking: z.boolean().default(true).describe('Log when masked data is accessed unmasked'),\n}).describe('Top-level data masking configuration for PII protection'));\n\nexport type MaskingConfig = z.infer<typeof MaskingConfigSchema>;\nexport type MaskingConfigInput = z.input<typeof MaskingConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SystemIdentifierSchema } from '../shared/identifiers.zod';\nimport { ExpressionInputSchema } from '../shared/expression.zod';\nimport { EncryptionConfigSchema } from '../system/encryption.zod';\nimport { MaskingRuleSchema } from '../system/masking.zod';\n\n/**\n * Field Type Enum\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const FieldType = z.enum([\n // Core Text\n 'text', 'textarea', 'email', 'url', 'phone', 'password',\n // Rich Content\n 'markdown', 'html', 'richtext',\n // Numbers\n 'number', 'currency', 'percent', \n // Date & Time\n 'date', 'datetime', 'time',\n // Logic\n 'boolean', 'toggle', // Toggle is a distinct UI from checkbox\n // Selection\n 'select', // Single select dropdown\n 'multiselect', // Multi select (often tags)\n 'radio', // Radio group\n 'checkboxes', // Checkbox group\n // Relational\n 'lookup', 'master_detail', // Dynamic reference\n 'tree', // Hierarchical reference\n // Media\n 'image', 'file', 'avatar', 'video', 'audio',\n // Calculated / System\n 'formula', 'summary', 'autonumber',\n // Embedded structured values (stored as JSON on the parent row — no separate table / FK)\n 'composite', // Single embedded sub-object with declared sub-fields (≈ Strapi component / ACF group)\n 'repeater', // Repeating embedded sub-object array with declared sub-fields (≈ Strapi repeatable component / ACF repeater)\n // Enhanced Types\n 'location', // GPS coordinates\n 'address', // Structured address\n 'code', // Code editor (JSON/SQL/JS)\n 'json', // Structured JSON data (untyped escape hatch)\n 'color', // Color picker\n 'rating', // Star rating\n 'slider', // Numeric slider\n 'signature', // Digital signature\n 'qrcode', // QR code / Barcode\n 'progress', // Progress bar\n 'tags', // Simple tag list\n // AI/ML Types\n 'vector', // Vector embeddings for AI/ML (semantic search, RAG)\n]);\n\nexport type FieldType = z.infer<typeof FieldType>;\n\n/**\n * Select Option Schema\n * \n * Defines option values for select/picklist fields.\n * \n * **CRITICAL RULE**: The `value` field is a machine identifier that gets stored in the database.\n * It MUST be lowercase to avoid case-sensitivity issues in queries and comparisons.\n * \n * @example Good\n * { label: 'New', value: 'new' }\n * { label: 'In Progress', value: 'in_progress' }\n * { label: 'Closed Won', value: 'closed_won' }\n * \n * @example Bad (will be rejected)\n * { label: 'New', value: 'New' } // uppercase\n * { label: 'In Progress', value: 'In Progress' } // spaces and uppercase\n * { label: 'Closed Won', value: 'Closed_Won' } // mixed case\n */\nexport const SelectOptionSchema = lazySchema(() => z.object({\n label: z.string().describe('Display label (human-readable, any case allowed)'),\n value: SystemIdentifierSchema.describe('Stored value (lowercase machine identifier)'),\n color: z.string().optional().describe('Color code for badges/charts'),\n default: z.boolean().optional().describe('Is default option'),\n}));\n\n/**\n * Location Coordinates Schema\n * GPS coordinates for location field type\n */\nexport const LocationCoordinatesSchema = lazySchema(() => z.object({\n latitude: z.number().min(-90).max(90).describe('Latitude coordinate'),\n longitude: z.number().min(-180).max(180).describe('Longitude coordinate'),\n altitude: z.number().optional().describe('Altitude in meters'),\n accuracy: z.number().optional().describe('Accuracy in meters'),\n}));\n\n/**\n * Currency Configuration Schema\n * Configuration for currency field type supporting multi-currency\n * \n * Note: Currency codes are validated by length only (3 characters) to support:\n * - Standard ISO 4217 codes (USD, EUR, CNY, etc.)\n * - Cryptocurrency codes (BTC, ETH, etc.)\n * - Custom business-specific codes\n * Stricter validation can be implemented at the application layer based on business requirements.\n */\nexport const CurrencyConfigSchema = lazySchema(() => z.object({\n precision: z.number().int().min(0).max(10).default(2).describe('Decimal precision (default: 2)'),\n currencyMode: z.enum(['dynamic', 'fixed']).default('dynamic').describe('Currency mode: dynamic (user selectable) or fixed (single currency)'),\n defaultCurrency: z.string().length(3).default('CNY').describe('Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)'),\n}));\n\n/**\n * Currency Value Schema\n * Runtime value structure for currency fields\n * \n * Note: Currency codes are validated by length only (3 characters) to support flexibility.\n * See CurrencyConfigSchema for details on currency code validation strategy.\n */\nexport const CurrencyValueSchema = lazySchema(() => z.object({\n value: z.number().describe('Monetary amount'),\n currency: z.string().length(3).describe('Currency code (ISO 4217)'),\n}));\n\n/**\n * Address Schema\n * Structured address for address field type\n */\nexport const AddressSchema = lazySchema(() => z.object({\n street: z.string().optional().describe('Street address'),\n city: z.string().optional().describe('City name'),\n state: z.string().optional().describe('State/Province'),\n postalCode: z.string().optional().describe('Postal/ZIP code'),\n country: z.string().optional().describe('Country name or code'),\n countryCode: z.string().optional().describe('ISO country code (e.g., US, GB)'),\n formatted: z.string().optional().describe('Formatted address string'),\n}));\n\n/**\n * Vector Configuration Schema\n * Configuration for vector field type supporting AI/ML embeddings\n * \n * Vector fields store numerical embeddings for semantic search, similarity matching,\n * and Retrieval-Augmented Generation (RAG) workflows.\n * \n * @example\n * // Text embeddings for semantic search\n * {\n * dimensions: 1536, // OpenAI text-embedding-ada-002\n * distanceMetric: 'cosine',\n * indexed: true\n * }\n * \n * @example\n * // Image embeddings with normalization\n * {\n * dimensions: 512, // ResNet-50\n * distanceMetric: 'euclidean',\n * normalized: true,\n * indexed: true\n * }\n */\nexport const VectorConfigSchema = lazySchema(() => z.object({\n dimensions: z.number().int().min(1).max(10000).describe('Vector dimensionality (e.g., 1536 for OpenAI embeddings)'),\n distanceMetric: z.enum(['cosine', 'euclidean', 'dotProduct', 'manhattan']).default('cosine').describe('Distance/similarity metric for vector search'),\n normalized: z.boolean().default(false).describe('Whether vectors are normalized (unit length)'),\n indexed: z.boolean().default(true).describe('Whether to create a vector index for fast similarity search'),\n indexType: z.enum(['hnsw', 'ivfflat', 'flat']).optional().describe('Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)'),\n}));\n\n/**\n * File Attachment Configuration Schema\n * Configuration for file and attachment field types\n * \n * Provides comprehensive file upload capabilities with:\n * - File type restrictions (allowed/blocked)\n * - File size limits (min/max)\n * - Virus scanning integration\n * - Storage provider integration\n * - Image-specific features (dimensions, thumbnails)\n * \n * @example Basic file upload with size limit\n * {\n * maxSize: 10485760, // 10MB\n * allowedTypes: ['.pdf', '.docx', '.xlsx'],\n * virusScan: true\n * }\n * \n * @example Image upload with validation\n * {\n * maxSize: 5242880, // 5MB\n * allowedTypes: ['.jpg', '.jpeg', '.png', '.webp'],\n * imageValidation: {\n * maxWidth: 4096,\n * maxHeight: 4096,\n * generateThumbnails: true\n * }\n * }\n */\nexport const FileAttachmentConfigSchema = lazySchema(() => z.object({\n /** File Size Limits */\n minSize: z.number().min(0).optional().describe('Minimum file size in bytes'),\n maxSize: z.number().min(1).optional().describe('Maximum file size in bytes (e.g., 10485760 = 10MB)'),\n \n /** File Type Restrictions */\n allowedTypes: z.array(z.string()).optional().describe('Allowed file extensions (e.g., [\".pdf\", \".docx\", \".jpg\"])'),\n blockedTypes: z.array(z.string()).optional().describe('Blocked file extensions (e.g., [\".exe\", \".bat\", \".sh\"])'),\n allowedMimeTypes: z.array(z.string()).optional().describe('Allowed MIME types (e.g., [\"image/jpeg\", \"application/pdf\"])'),\n blockedMimeTypes: z.array(z.string()).optional().describe('Blocked MIME types'),\n \n /** Virus Scanning */\n virusScan: z.boolean().default(false).describe('Enable virus scanning for uploaded files'),\n virusScanProvider: z.enum(['clamav', 'virustotal', 'metadefender', 'custom']).optional().describe('Virus scanning service provider'),\n virusScanOnUpload: z.boolean().default(true).describe('Scan files immediately on upload'),\n quarantineOnThreat: z.boolean().default(true).describe('Quarantine files if threat detected'),\n \n /** Storage Configuration */\n storageProvider: z.string().optional().describe('Object storage provider name (references ObjectStorageConfig)'),\n storageBucket: z.string().optional().describe('Target bucket name'),\n storagePrefix: z.string().optional().describe('Storage path prefix (e.g., \"uploads/documents/\")'),\n \n /** Image-Specific Validation */\n imageValidation: z.object({\n minWidth: z.number().min(1).optional().describe('Minimum image width in pixels'),\n maxWidth: z.number().min(1).optional().describe('Maximum image width in pixels'),\n minHeight: z.number().min(1).optional().describe('Minimum image height in pixels'),\n maxHeight: z.number().min(1).optional().describe('Maximum image height in pixels'),\n aspectRatio: z.string().optional().describe('Required aspect ratio (e.g., \"16:9\", \"1:1\")'),\n generateThumbnails: z.boolean().default(false).describe('Auto-generate thumbnails'),\n thumbnailSizes: z.array(z.object({\n name: z.string().describe('Thumbnail variant name (e.g., \"small\", \"medium\", \"large\")'),\n width: z.number().min(1).describe('Thumbnail width in pixels'),\n height: z.number().min(1).describe('Thumbnail height in pixels'),\n crop: z.boolean().default(false).describe('Crop to exact dimensions'),\n })).optional().describe('Thumbnail size configurations'),\n preserveMetadata: z.boolean().default(false).describe('Preserve EXIF metadata'),\n autoRotate: z.boolean().default(true).describe('Auto-rotate based on EXIF orientation'),\n }).optional().describe('Image-specific validation rules'),\n \n /** Upload Behavior */\n allowMultiple: z.boolean().default(false).describe('Allow multiple file uploads (overrides field.multiple)'),\n allowReplace: z.boolean().default(true).describe('Allow replacing existing files'),\n allowDelete: z.boolean().default(true).describe('Allow deleting uploaded files'),\n requireUpload: z.boolean().default(false).describe('Require at least one file when field is required'),\n \n /** Metadata Extraction */\n extractMetadata: z.boolean().default(true).describe('Extract file metadata (name, size, type, etc.)'),\n extractText: z.boolean().default(false).describe('Extract text content from documents (OCR/parsing)'),\n \n /** Versioning */\n versioningEnabled: z.boolean().default(false).describe('Keep previous versions of replaced files'),\n maxVersions: z.number().min(1).optional().describe('Maximum number of versions to retain'),\n \n /** Access Control */\n publicRead: z.boolean().default(false).describe('Allow public read access to uploaded files'),\n presignedUrlExpiry: z.number().min(60).max(604800).default(3600).describe('Presigned URL expiration in seconds (default: 1 hour)'),\n}).refine((data) => {\n // Validate minSize is less than or equal to maxSize\n if (data.minSize !== undefined && data.maxSize !== undefined && data.minSize > data.maxSize) {\n return false;\n }\n return true;\n}, {\n message: 'minSize must be less than or equal to maxSize',\n}).refine((data) => {\n // Validate virusScanProvider requires virusScan to be enabled\n if (data.virusScanProvider !== undefined && data.virusScan !== true) {\n return false;\n }\n return true;\n}, {\n message: 'virusScanProvider requires virusScan to be enabled',\n}));\n\n/**\n * Data Quality Rules Schema\n * Defines data quality validation and monitoring for fields\n * \n * @example Unique SSN field with completeness requirement\n * {\n * uniqueness: true,\n * completeness: 0.95, // 95% of records must have this field\n * accuracy: {\n * source: 'government_db',\n * threshold: 0.98\n * }\n * }\n */\nexport const DataQualityRulesSchema = lazySchema(() => z.object({\n /** Enforce uniqueness constraint */\n uniqueness: z.boolean().default(false).describe('Enforce unique values across all records'),\n \n /** Completeness ratio (0-1) indicating minimum percentage of non-null values */\n completeness: z.number().min(0).max(1).default(0).describe('Minimum ratio of non-null values (0-1, default: 0 = no requirement)'),\n \n /** Accuracy validation against authoritative source */\n accuracy: z.object({\n source: z.string().describe('Reference data source for validation (e.g., \"api.verify.com\", \"master_data\")'),\n threshold: z.number().min(0).max(1).describe('Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)'),\n }).optional().describe('Accuracy validation configuration'),\n}));\n\n/**\n * Computed Field Caching Schema\n * Configuration for caching computed/formula field results\n * \n * @example Cache product price with 1-hour TTL, invalidate on inventory changes\n * {\n * enabled: true,\n * ttl: 3600,\n * invalidateOn: ['inventory.quantity', 'pricing.discount']\n * }\n */\nexport const ComputedFieldCacheSchema = lazySchema(() => z.object({\n /** Enable caching for this computed field */\n enabled: z.boolean().describe('Enable caching for computed field results'),\n \n /** Time-to-live in seconds */\n ttl: z.number().min(0).describe('Cache TTL in seconds (0 = no expiration)'),\n \n /** Array of field paths that trigger cache invalidation when changed */\n invalidateOn: z.array(z.string()).describe('Field paths that invalidate cache (e.g., [\"inventory.quantity\", \"pricing.base_price\"])'),\n}));\n\n/**\n * Field Schema - Best Practice Enterprise Pattern\n */\n/**\n * Field Definition Schema\n * Defines the properties, type, and behavior of a single field (column) on an object.\n * \n * @example Lookup Field\n * {\n * name: \"account_id\",\n * label: \"Account\",\n * type: \"lookup\",\n * reference: \"accounts\",\n * required: true\n * }\n * \n * @example Select Field\n * {\n * name: \"status\",\n * label: \"Status\",\n * type: \"select\",\n * options: [\n * { label: \"Open\", value: \"open\" },\n * { label: \"Closed\", value: \"closed\" }\n * ],\n * defaultValue: \"open\"\n * }\n */\nexport const FieldSchema = lazySchema(() => z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name (snake_case)').optional(),\n label: z.string().optional().describe('Human readable label'),\n type: FieldType.describe('Field Data Type'),\n description: z.string().optional().describe('Tooltip/Help text'),\n format: z.string().optional().describe('Format string (e.g. email, phone)'),\n\n /** Storage Layer Mapping */\n columnName: z.string().optional().describe('Physical column name in the target datasource. Defaults to the field key when not set.'),\n\n /** Database Constraints */\n required: z.boolean().default(false).describe('Is required'),\n searchable: z.boolean().default(false).describe('Is searchable'),\n multiple: z.boolean().default(false).describe('Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image.'),\n unique: z.boolean().default(false).describe('Is unique constraint'),\n defaultValue: z.unknown().optional().describe('Default value'),\n \n /** Text/String Constraints */\n maxLength: z.number().optional().describe('Max character length'),\n minLength: z.number().optional().describe('Min character length'),\n \n /** Number Constraints */\n precision: z.number().optional().describe('Total digits'),\n scale: z.number().optional().describe('Decimal places'),\n min: z.number().optional().describe('Minimum value'),\n max: z.number().optional().describe('Maximum value'),\n\n /** Selection Options */\n options: z.array(SelectOptionSchema).optional().describe('Static options for select/multiselect'),\n\n /**\n * Relationship Config\n * \n * Used by `lookup` and `master_detail` field types to define cross-object references.\n * The `reference` property is **required** for these types — it identifies the target\n * object whose records this field links to. The engine uses `reference` during $expand\n * post-processing to resolve foreign key IDs into full related objects via batch queries.\n * \n * For `master_detail` fields, the parent record controls the lifecycle of child records\n * (e.g., cascade delete). For `lookup` fields, the reference is a soft link.\n */\n reference: z.string().optional().describe(\n 'Target object name (snake_case) for lookup/master_detail fields. '\n + 'Required for relationship types. Used by $expand to resolve foreign key IDs into full objects.'\n ),\n referenceFilters: z.array(z.string()).optional().describe('Filters applied to lookup dialogs (e.g. \"active = true\")'),\n writeRequiresMasterRead: z.boolean().optional().describe('If true, user needs read access to master record to edit this field'),\n deleteBehavior: z.enum(['set_null', 'cascade', 'restrict']).optional().default('set_null').describe('What happens if referenced record is deleted'),\n\n /** Calculation — CEL formula. Plain string accepted for back-compat; build emits canonical envelope. */\n expression: ExpressionInputSchema.optional().describe('Formula expression (CEL). e.g. F`record.amount * 0.1`'),\n summaryOperations: z.object({\n object: z.string().describe('Source child object name for roll-up'),\n field: z.string().describe('Field on child object to aggregate'),\n function: z.enum(['count', 'sum', 'min', 'max', 'avg']).describe('Aggregation function to apply'),\n }).optional().describe('Roll-up summary definition'),\n\n /** Enhanced Field Type Configurations */\n // Code field config\n language: z.string().optional().describe('Programming language for syntax highlighting (e.g., javascript, python, sql)'),\n theme: z.string().optional().describe('Code editor theme (e.g., dark, light, monokai)'),\n lineNumbers: z.boolean().optional().describe('Show line numbers in code editor'),\n \n // Rating field config\n maxRating: z.number().optional().describe('Maximum rating value (default: 5)'),\n allowHalf: z.boolean().optional().describe('Allow half-star ratings'),\n \n // Location field config\n displayMap: z.boolean().optional().describe('Display map widget for location field'),\n allowGeocoding: z.boolean().optional().describe('Allow address-to-coordinate conversion'),\n \n // Address field config\n addressFormat: z.enum(['us', 'uk', 'international']).optional().describe('Address format template'),\n \n // Color field config\n colorFormat: z.enum(['hex', 'rgb', 'rgba', 'hsl']).optional().describe('Color value format'),\n allowAlpha: z.boolean().optional().describe('Allow transparency/alpha channel'),\n presetColors: z.array(z.string()).optional().describe('Preset color options'),\n \n // Slider field config\n step: z.number().optional().describe('Step increment for slider (default: 1)'),\n showValue: z.boolean().optional().describe('Display current value on slider'),\n marks: z.record(z.string(), z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: \"Low\", 50: \"Medium\", 100: \"High\"})'),\n \n // QR Code / Barcode field config\n // Note: qrErrorCorrection is only applicable when barcodeFormat='qr'\n // Runtime validation should enforce this constraint\n barcodeFormat: z.enum(['qr', 'ean13', 'ean8', 'code128', 'code39', 'upca', 'upce']).optional().describe('Barcode format type'),\n 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\"'),\n displayValue: z.boolean().optional().describe('Display human-readable value below barcode/QR code'),\n allowScanning: z.boolean().optional().describe('Enable camera scanning for barcode/QR code input'),\n\n // Currency field config\n currencyConfig: CurrencyConfigSchema.optional().describe('Configuration for currency field type'),\n\n // Vector field config\n vectorConfig: VectorConfigSchema.optional().describe('Configuration for vector field type (AI/ML embeddings)'),\n\n // File attachment field config\n fileAttachmentConfig: FileAttachmentConfigSchema.optional().describe('Configuration for file and attachment field types'),\n\n /** Enhanced Security & Compliance */\n // Encryption configuration\n encryptionConfig: EncryptionConfigSchema.optional().describe('Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)'),\n \n // Data masking rules\n maskingRule: MaskingRuleSchema.optional().describe('Data masking rules for PII protection'),\n \n // Audit trail\n auditTrail: z.boolean().default(false).describe('Enable detailed audit trail for this field (tracks all changes with user and timestamp)'),\n \n /** Field Dependencies & Relationships */\n // Field dependencies\n dependencies: z.array(z.string()).optional().describe('Array of field names that this field depends on (for formulas, visibility rules, etc.)'),\n \n /** Computed Field Optimization */\n // Computed field caching\n cached: ComputedFieldCacheSchema.optional().describe('Caching configuration for computed/formula fields'),\n \n /** Data Quality & Governance */\n // Data quality rules\n dataQuality: DataQualityRulesSchema.optional().describe('Data quality validation and monitoring rules'),\n\n /** Layout & Grouping */\n group: z.string().optional().describe('Field group name for organizing fields in forms and layouts (e.g., \"contact_info\", \"billing\", \"system\")'),\n\n /** Conditional Requirements */\n conditionalRequired: ExpressionInputSchema.optional().describe('Predicate (CEL) — field is required when TRUE. e.g. P`record.status == \\'closed_won\\'`'),\n\n /** Security & Visibility */\n hidden: z.boolean().default(false).describe('Hidden from default UI'),\n readonly: z.boolean().default(false).describe('Read-only in UI'),\n 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.'),\n sortable: z.boolean().optional().default(true).describe('Whether field is sortable in list views'),\n inlineHelpText: z.string().optional().describe('Help text displayed below the field in forms'),\n trackFeedHistory: z.boolean().optional().describe('Track field changes in Chatter/activity feed (Salesforce pattern)'),\n caseSensitive: z.boolean().optional().describe('Whether text comparisons are case-sensitive'),\n autonumberFormat: z.string().optional().describe('Auto-number display format pattern (e.g., \"CASE-{0000}\")'),\n /** Indexing */\n index: z.boolean().default(false).describe('Create standard database index'),\n externalId: z.boolean().default(false).describe('Is external ID for upsert operations'),\n}));\n\nexport type Field = z.infer<typeof FieldSchema>;\nexport type SelectOption = z.infer<typeof SelectOptionSchema>;\nexport type LocationCoordinates = z.infer<typeof LocationCoordinatesSchema>;\nexport type Address = z.infer<typeof AddressSchema>;\nexport type CurrencyConfig = z.infer<typeof CurrencyConfigSchema>;\nexport type CurrencyConfigInput = z.input<typeof CurrencyConfigSchema>;\nexport type CurrencyValue = z.infer<typeof CurrencyValueSchema>;\nexport type VectorConfig = z.infer<typeof VectorConfigSchema>;\nexport type VectorConfigInput = z.input<typeof VectorConfigSchema>;\nexport type FileAttachmentConfig = z.infer<typeof FileAttachmentConfigSchema>;\nexport type FileAttachmentConfigInput = z.input<typeof FileAttachmentConfigSchema>;\nexport type DataQualityRules = z.infer<typeof DataQualityRulesSchema>;\nexport type DataQualityRulesInput = z.input<typeof DataQualityRulesSchema>;\nexport type ComputedFieldCache = z.infer<typeof ComputedFieldCacheSchema>;\n\n/**\n * Field Factory Helper\n */\nexport type FieldInput = Omit<Partial<Field>, 'type'>;\n\nexport const Field = {\n text: (config: FieldInput = {}) => ({ type: 'text', ...config } as const),\n textarea: (config: FieldInput = {}) => ({ type: 'textarea', ...config } as const),\n number: (config: FieldInput = {}) => ({ type: 'number', ...config } as const),\n boolean: (config: FieldInput = {}) => ({ type: 'boolean', ...config } as const),\n date: (config: FieldInput = {}) => ({ type: 'date', ...config } as const),\n datetime: (config: FieldInput = {}) => ({ type: 'datetime', ...config } as const),\n currency: (config: FieldInput = {}) => ({ type: 'currency', ...config } as const),\n percent: (config: FieldInput = {}) => ({ type: 'percent', ...config } as const),\n url: (config: FieldInput = {}) => ({ type: 'url', ...config } as const),\n email: (config: FieldInput = {}) => ({ type: 'email', ...config } as const),\n phone: (config: FieldInput = {}) => ({ type: 'phone', ...config } as const),\n image: (config: FieldInput = {}) => ({ type: 'image', ...config } as const),\n file: (config: FieldInput = {}) => ({ type: 'file', ...config } as const),\n avatar: (config: FieldInput = {}) => ({ type: 'avatar', ...config } as const),\n formula: (config: FieldInput = {}) => ({ type: 'formula', ...config } as const),\n summary: (config: FieldInput = {}) => ({ type: 'summary', ...config } as const),\n autonumber: (config: FieldInput = {}) => ({ type: 'autonumber', ...config } as const),\n markdown: (config: FieldInput = {}) => ({ type: 'markdown', ...config } as const),\n html: (config: FieldInput = {}) => ({ type: 'html', ...config } as const),\n password: (config: FieldInput = {}) => ({ type: 'password', ...config } as const),\n \n /**\n * Select field helper with backward-compatible API\n * \n * Automatically converts option values to lowercase to enforce naming conventions.\n * \n * @example Old API (array first) - auto-converts to lowercase\n * Field.select(['High', 'Low'], { label: 'Priority' })\n * // Results in: [{ label: 'High', value: 'high' }, { label: 'Low', value: 'low' }]\n * \n * @example New API (config object) - enforces lowercase\n * Field.select({ options: [{label: 'High', value: 'high'}], label: 'Priority' })\n * \n * @example Multi-word values - converts to snake_case\n * Field.select(['In Progress', 'Closed Won'], { label: 'Status' })\n * // Results in: [{ label: 'In Progress', value: 'in_progress' }, { label: 'Closed Won', value: 'closed_won' }]\n */\n select: (optionsOrConfig: SelectOption[] | string[] | FieldInput & { options: SelectOption[] | string[] }, config?: FieldInput) => {\n // Helper function to convert string to lowercase snake_case\n const toSnakeCase = (str: string): string => {\n return str\n .toLowerCase()\n .replace(/\\s+/g, '_') // Replace spaces with underscores\n .replace(/[^a-z0-9_]/g, ''); // Remove invalid characters (keeping underscores only)\n };\n\n // Support both old and new signatures:\n // Old: Field.select(['a', 'b'], { label: 'X' })\n // New: Field.select({ options: [{label: 'A', value: 'a'}], label: 'X' })\n let options: SelectOption[];\n let finalConfig: FieldInput;\n \n if (Array.isArray(optionsOrConfig)) {\n // Old signature: array as first param\n options = optionsOrConfig.map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n finalConfig = config || {};\n } else {\n // New signature: config object with options\n options = (optionsOrConfig.options || []).map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n // Remove options from config to avoid confusion\n const { options: _, ...restConfig } = optionsOrConfig;\n finalConfig = restConfig;\n }\n \n return { type: 'select', options, ...finalConfig } as const;\n },\n\n \n lookup: (reference: string, config: FieldInput = {}) => ({ \n type: 'lookup', \n reference, \n ...config \n } as const),\n \n masterDetail: (reference: string, config: FieldInput = {}) => ({ \n type: 'master_detail', \n reference, \n ...config \n } as const),\n\n // Enhanced Field Type Helpers\n location: (config: FieldInput = {}) => ({ \n type: 'location', \n ...config \n } as const),\n \n address: (config: FieldInput = {}) => ({ \n type: 'address', \n ...config \n } as const),\n \n richtext: (config: FieldInput = {}) => ({ \n type: 'richtext', \n ...config \n } as const),\n \n code: (language?: string, config: FieldInput = {}) => ({ \n type: 'code', \n language,\n ...config \n } as const),\n \n color: (config: FieldInput = {}) => ({ \n type: 'color', \n ...config \n } as const),\n \n rating: (maxRating: number = 5, config: FieldInput = {}) => ({ \n type: 'rating', \n maxRating,\n ...config \n } as const),\n \n signature: (config: FieldInput = {}) => ({ \n type: 'signature', \n ...config \n } as const),\n \n slider: (config: FieldInput = {}) => ({ \n type: 'slider', \n ...config \n } as const),\n \n qrcode: (config: FieldInput = {}) => ({ \n type: 'qrcode', \n ...config \n } as const),\n \n json: (config: FieldInput = {}) => ({ \n type: 'json', \n ...config \n } as const),\n \n vector: (dimensions: number, config: FieldInput = {}) => ({ \n type: 'vector', \n vectorConfig: {\n dimensions,\n distanceMetric: 'cosine' as const,\n normalized: false,\n indexed: true,\n ...config.vectorConfig\n },\n ...config \n } as const),\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Shared HTTP Schemas\n * \n * Common HTTP-related schemas used across API and System protocols.\n * These schemas ensure consistency across different parts of the stack.\n */\n\n// ==========================================\n// Basic HTTP Types\n// ==========================================\n\n/**\n * HTTP Method Enum\n */\nimport { lazySchema } from './lazy-schema';\nexport const HttpMethod = z.enum([\n 'GET', \n 'POST', \n 'PUT', \n 'DELETE', \n 'PATCH', \n 'HEAD', \n 'OPTIONS'\n]);\n\nexport type HttpMethod = z.infer<typeof HttpMethod>;\n\n/**\n * HTTP Method Schema (subset for UI/View data sources)\n * Common HTTP methods used in view data source configurations.\n * Migrated from ui/view.zod.ts to shared for reuse across modules.\n */\nexport const HttpMethodSchema = lazySchema(() => z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE']));\n\nexport type HttpMethodType = z.infer<typeof HttpMethodSchema>;\n\n/**\n * HTTP Request Configuration Schema\n * Defines a complete HTTP request configuration used by API data providers.\n * Migrated from ui/view.zod.ts to shared for reuse across modules.\n */\nexport const HttpRequestSchema = lazySchema(() => z.object({\n url: z.string().describe('API endpoint URL'),\n method: HttpMethodSchema.optional().default('GET').describe('HTTP method'),\n headers: z.record(z.string(), z.string()).optional().describe('Custom HTTP headers'),\n params: z.record(z.string(), z.unknown()).optional().describe('Query parameters'),\n body: z.unknown().optional().describe('Request body for POST/PUT/PATCH'),\n}));\n\nexport type HttpRequest = z.infer<typeof HttpRequestSchema>;\n\n// ==========================================\n// CORS Configuration\n// ==========================================\n\n/**\n * CORS Configuration Schema\n * Cross-Origin Resource Sharing configuration\n * \n * Used by:\n * - api/router.zod.ts (RouterConfigSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"enabled\": true,\n * \"origins\": [\"http://localhost:3000\", \"https://app.example.com\"],\n * \"methods\": [\"GET\", \"POST\", \"PUT\", \"DELETE\"],\n * \"credentials\": true,\n * \"maxAge\": 86400\n * }\n */\nexport const CorsConfigSchema = lazySchema(() => z.object({\n /**\n * Enable CORS\n */\n enabled: z.boolean().default(true).describe('Enable CORS'),\n \n /**\n * Allowed origins (* for all)\n */\n origins: z.union([\n z.string(),\n z.array(z.string())\n ]).default('*').describe('Allowed origins (* for all)'),\n \n /**\n * Allowed HTTP methods\n */\n methods: z.array(HttpMethod).optional().describe('Allowed HTTP methods'),\n \n /**\n * Allow credentials (cookies, authorization headers)\n */\n credentials: z.boolean().default(false).describe('Allow credentials (cookies, authorization headers)'),\n \n /**\n * Preflight cache duration in seconds\n */\n maxAge: z.number().int().optional().describe('Preflight cache duration in seconds'),\n}));\n\nexport type CorsConfig = z.infer<typeof CorsConfigSchema>;\n\n// ==========================================\n// Rate Limiting\n// ==========================================\n\n/**\n * Rate Limit Configuration Schema\n * \n * Used by:\n * - api/endpoint.zod.ts (ApiEndpointSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"enabled\": true,\n * \"windowMs\": 60000,\n * \"maxRequests\": 100\n * }\n */\nexport const RateLimitConfigSchema = lazySchema(() => z.object({\n /**\n * Enable rate limiting\n */\n enabled: z.boolean().default(false).describe('Enable rate limiting'),\n \n /**\n * Time window in milliseconds\n */\n windowMs: z.number().int().default(60000).describe('Time window in milliseconds'),\n \n /**\n * Max requests per window\n */\n maxRequests: z.number().int().default(100).describe('Max requests per window'),\n}));\n\nexport type RateLimitConfig = z.infer<typeof RateLimitConfigSchema>;\n\n// ==========================================\n// Static File Serving\n// ==========================================\n\n/**\n * Static Mount Configuration Schema\n * Configuration for serving static files\n * \n * Used by:\n * - api/router.zod.ts (RouterConfigSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"path\": \"/static\",\n * \"directory\": \"./public\",\n * \"cacheControl\": \"public, max-age=31536000\"\n * }\n */\nexport const StaticMountSchema = lazySchema(() => z.object({\n /**\n * URL path to serve from\n */\n path: z.string().describe('URL path to serve from'),\n \n /**\n * Physical directory to serve\n */\n directory: z.string().describe('Physical directory to serve'),\n \n /**\n * Cache-Control header value\n */\n cacheControl: z.string().optional().describe('Cache-Control header value'),\n}));\n\nexport type StaticMount = z.infer<typeof StaticMountSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\nimport { ExpressionInputSchema } from '../shared/expression.zod';\nimport { I18nLabelSchema, AriaPropsSchema } from './i18n.zod';\nimport { SharingConfigSchema } from './sharing.zod';\nimport { ResponsiveConfigSchema, PerformanceConfigSchema } from './responsive.zod';\nimport { FieldType, SelectOptionSchema } from '../data/field.zod';\n\n/**\n * HTTP Method Enum & HTTP Request Schema\n * Migrated to shared/http.zod.ts. Re-exported here for backward compatibility.\n */\nimport { HttpMethodSchema, HttpRequestSchema } from '../shared/http.zod';\nimport { lazySchema } from '../shared/lazy-schema';\nexport { HttpMethodSchema, HttpRequestSchema };\n\n/**\n * View Data Source Configuration\n * Supports three modes:\n * 1. 'object': Standard Protocol - Auto-connects to ObjectStack Metadata and Data APIs\n * 2. 'api': Custom API - Explicitly provided API URLs\n * 3. 'value': Static Data - Hardcoded data array\n */\nexport const ViewDataSchema = lazySchema(() => z.discriminatedUnion('provider', [\n z.object({\n provider: z.literal('object'),\n object: z.string().describe('Target object name'),\n }),\n z.object({\n provider: z.literal('api'),\n read: HttpRequestSchema.optional().describe('Configuration for fetching data'),\n write: HttpRequestSchema.optional().describe('Configuration for submitting data (for forms/editable tables)'),\n }),\n z.object({\n provider: z.literal('value'),\n items: z.array(z.unknown()).describe('Static data array'),\n }),\n /**\n * Schema-bound data source — used by standalone forms whose data is\n * shaped by a JSON Schema (or Zod-derived schema) rather than by an\n * ObjectQL object. Powers the metadata editor, action input dialogs,\n * and any Form that is not bound to a CRUD object.\n */\n z.object({\n provider: z.literal('schema'),\n /** Schema identifier (e.g. metadata type name \"report\"). Resolved at runtime against /meta entries. */\n schemaId: z.string().describe('Schema identifier — typically the metadata type name'),\n /** Optional inline JSON Schema; when omitted the runtime resolves schemaId from the server. */\n schema: z.record(z.string(), z.unknown()).optional().describe('Inline JSON Schema (Draft 2020-12). Optional when schemaId is resolvable.'),\n }),\n]));\n\n/**\n * View Filter Rule Schema\n * Standardized filter condition used in list views, tabs, and page-level filters.\n * Uses a declarative array-of-objects format: [{ field, operator, value }].\n *\n * @example\n * ```ts\n * filter: [\n * { field: 'status', operator: 'equals', value: 'active' },\n * { field: 'close_date', operator: 'this_quarter' },\n * ]\n * ```\n */\nexport const ViewFilterRuleSchema = lazySchema(() => z.object({\n /** Field name to filter on */\n field: z.string().describe('Field name to filter on'),\n /** Filter operator */\n operator: z.string().describe('Filter operator (e.g. equals, not_equals, contains, this_quarter)'),\n /** Filter value (optional for unary operators like is_null, this_quarter) */\n value: z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(z.union([z.string(), z.number()]))])\n .optional().describe('Filter value'),\n}).describe('View filter rule'));\n\nexport type ViewFilterRule = z.infer<typeof ViewFilterRuleSchema>;\n\n/**\n * Column Summary Function Schema\n * Aggregation function for column footer (Airtable-style column summaries)\n */\nexport const ColumnSummarySchema = lazySchema(() => z.enum([\n 'none',\n 'count',\n 'count_empty',\n 'count_filled',\n 'count_unique',\n 'percent_empty',\n 'percent_filled',\n 'sum',\n 'avg',\n 'min',\n 'max',\n]).describe('Aggregation function for column footer summary'));\n\n/**\n * List Column Configuration Schema\n * Detailed configuration for individual list view columns\n */\nexport const ListColumnSchema = lazySchema(() => z.object({\n field: z.string().describe('Field name (snake_case)'),\n label: I18nLabelSchema.optional().describe('Display label override'),\n width: z.number().positive().optional().describe('Column width in pixels'),\n align: z.enum(['left', 'center', 'right']).optional().describe('Text alignment'),\n hidden: z.boolean().optional().describe('Hide column by default'),\n sortable: z.boolean().optional().describe('Allow sorting by this column'),\n resizable: z.boolean().optional().describe('Allow resizing this column'),\n wrap: z.boolean().optional().describe('Allow text wrapping'),\n type: z.string().optional().describe('Renderer type override (e.g., \"currency\", \"date\")'),\n\n /** Pinning (Airtable-style frozen columns) */\n pinned: z.enum(['left', 'right']).optional().describe('Pin/freeze column to left or right side'),\n\n /** Column Footer Summary (Airtable-style aggregation) */\n summary: ColumnSummarySchema.optional().describe('Footer aggregation function for this column'),\n\n /** Interaction */\n link: z.boolean().optional().describe('Functions as the primary navigation link (triggers View navigation)'),\n action: z.string().optional().describe('Registered Action ID to execute when clicked'),\n}));\n\n/**\n * List View Selection Configuration\n */\nexport const SelectionConfigSchema = lazySchema(() => z.object({\n type: z.enum(['none', 'single', 'multiple']).default('none').describe('Selection mode'),\n}));\n\n/**\n * List View Pagination Configuration\n */\nexport const PaginationConfigSchema = lazySchema(() => z.object({\n pageSize: z.number().int().positive().default(25).describe('Number of records per page'),\n pageSizeOptions: z.array(z.number().int().positive()).optional().describe('Available page size options'),\n}));\n\n/**\n * Row Height / Density Schema (Airtable-style)\n * Controls the visual density of rows in a list view.\n */\nexport const RowHeightSchema = lazySchema(() => z.enum([\n 'compact', // Minimal padding, single line\n 'short', // Reduced padding\n 'medium', // Default padding\n 'tall', // Extra padding, multi-line preview\n 'extra_tall', // Maximum padding, rich content preview\n]).describe('Row height / density setting for list view'));\n\n/**\n * Grouping Field Configuration\n * Defines a single grouping level for record grouping.\n */\nexport const GroupingFieldSchema = lazySchema(() => z.object({\n field: z.string().describe('Field name to group by'),\n order: z.enum(['asc', 'desc']).default('asc').describe('Group sort order'),\n collapsed: z.boolean().default(false).describe('Collapse groups by default'),\n}));\n\n/**\n * Grouping Configuration Schema (Airtable-style)\n * Supports multi-level grouping for grid/gallery views.\n */\nexport const GroupingConfigSchema = lazySchema(() => z.object({\n fields: z.array(GroupingFieldSchema).min(1).describe('Fields to group by (supports up to 3 levels)'),\n}).describe('Record grouping configuration'));\n\n/**\n * Gallery View Configuration (Airtable-style)\n * Configures card layout for gallery/card views.\n */\nexport const GalleryConfigSchema = lazySchema(() => z.object({\n coverField: z.string().optional().describe('Attachment/image field to display as card cover'),\n coverFit: z.enum(['cover', 'contain']).default('cover').describe('Image fit mode for card cover'),\n cardSize: z.enum(['small', 'medium', 'large']).default('medium').describe('Card size in gallery view'),\n titleField: z.string().optional().describe('Field to display as card title'),\n visibleFields: z.array(z.string()).optional().describe('Fields to display on card body'),\n}).describe('Gallery/card view configuration'));\n\n/**\n * Timeline View Configuration (Airtable-style)\n * Configures timeline/chronological views.\n */\nexport const TimelineConfigSchema = lazySchema(() => z.object({\n startDateField: z.string().describe('Field for timeline item start date'),\n endDateField: z.string().optional().describe('Field for timeline item end date'),\n titleField: z.string().describe('Field to display as timeline item title'),\n groupByField: z.string().optional().describe('Field to group timeline rows'),\n colorField: z.string().optional().describe('Field to determine item color'),\n scale: z.enum(['hour', 'day', 'week', 'month', 'quarter', 'year']).default('week').describe('Default timeline scale'),\n}).describe('Timeline view configuration'));\n\n/**\n * View Sharing Configuration (Airtable-style)\n * Defines who can see and modify a view.\n */\nexport const ViewSharingSchema = lazySchema(() => z.object({\n type: z.enum(['personal', 'collaborative']).default('collaborative').describe('View ownership type'),\n lockedBy: z.string().optional().describe('User who locked the view configuration'),\n}).describe('View sharing and access configuration'));\n\n/**\n * Row Color Configuration (Airtable-style)\n * Defines how rows are colored based on field values.\n */\nexport const RowColorConfigSchema = lazySchema(() => z.object({\n field: z.string().describe('Field to derive color from (typically a select/status field)'),\n colors: z.record(z.string(), z.string()).optional().describe('Map of field value to color (hex/token)'),\n}).describe('Row color configuration based on field values'));\n\n/**\n * Visualization Type Schema\n * Whitelist of visualization types the user can switch between.\n * Maps to Airtable's \"Visualizations\" setting in Appearance panel.\n */\nexport const VisualizationTypeSchema = lazySchema(() => z.enum([\n 'grid',\n 'kanban',\n 'gallery',\n 'calendar',\n 'timeline',\n 'gantt',\n 'map',\n]).describe('Visualization type that users can switch to'));\n\n/**\n * User Actions Configuration Schema (Airtable Interface parity)\n * Controls which interactive actions are available to users in the view toolbar.\n * Each boolean toggles the corresponding toolbar element on/off.\n *\n * @see Airtable Interface → \"User actions\" panel\n */\nexport const UserActionsConfigSchema = lazySchema(() => z.object({\n sort: z.boolean().default(true).describe('Allow users to sort records'),\n search: z.boolean().default(true).describe('Allow users to search records'),\n filter: z.boolean().default(true).describe('Allow users to filter records'),\n rowHeight: z.boolean().default(true).describe('Allow users to toggle row height/density'),\n addRecordForm: z.boolean().default(false).describe('Add records through a form instead of inline'),\n buttons: z.array(z.string()).optional().describe('Custom action button IDs to show in the toolbar'),\n}).describe('User action toggles for the view toolbar'));\n\n/**\n * Appearance Configuration Schema (Airtable Interface parity)\n * Controls visual presentation options for the view.\n *\n * @see Airtable Interface → \"Appearance\" panel\n */\nexport const AppearanceConfigSchema = lazySchema(() => z.object({\n showDescription: z.boolean().default(true).describe('Show the view description text'),\n allowedVisualizations: z.array(VisualizationTypeSchema).optional()\n .describe('Whitelist of visualization types users can switch between (e.g. [\"grid\", \"gallery\", \"kanban\"])'),\n}).describe('Appearance and visualization configuration'));\n\n/**\n * View Tab Schema (Airtable Interface parity)\n * Defines a tab in a multi-tab view interface.\n * Each tab references a named list view and can be ordered, pinned, or set as default.\n *\n * @see Airtable Interface → \"Tabs\" panel\n */\nexport const ViewTabSchema = lazySchema(() => z.object({\n name: SnakeCaseIdentifierSchema.describe('Tab identifier (snake_case)'),\n label: I18nLabelSchema.optional().describe('Display label'),\n icon: z.string().optional().describe('Tab icon name'),\n view: z.string().optional().describe('Referenced list view name from listViews'),\n filter: z.array(ViewFilterRuleSchema).optional().describe('Tab-specific filter criteria'),\n order: z.number().int().min(0).optional().describe('Tab display order'),\n pinned: z.boolean().default(false).describe('Pin tab (cannot be removed by users)'),\n isDefault: z.boolean().default(false).describe('Set as the default active tab'),\n visible: z.boolean().default(true).describe('Tab visibility'),\n}).describe('Tab configuration for multi-tab view interface'));\n\n/**\n * Add Record Configuration Schema (Airtable Interface parity)\n * Configures the \"Add Record\" entry point for a list view.\n *\n * @see Airtable Interface → \"+ Add record\" button\n */\nexport const AddRecordConfigSchema = lazySchema(() => z.object({\n enabled: z.boolean().default(true).describe('Show the add record entry point'),\n position: z.enum(['top', 'bottom', 'both']).default('bottom').describe('Position of the add record button'),\n mode: z.enum(['inline', 'form', 'modal']).default('inline').describe('How to add a new record'),\n formView: z.string().optional().describe('Named form view to use when mode is \"form\" or \"modal\"'),\n}).describe('Add record entry point configuration'));\n\n/**\n * Kanban Settings\n */\nexport const KanbanConfigSchema = lazySchema(() => z.object({\n groupByField: z.string().describe('Field to group columns by (usually status/select)'),\n summarizeField: z.string().optional().describe('Field to sum at top of column (e.g. amount)'),\n columns: z.array(z.string()).describe('Fields to show on cards'),\n}));\n\n/**\n * List Chart View Configuration (Airtable-style)\n * Configures aggregate chart visualizations (bar/line/pie/area/scatter)\n * when used as a `type: 'chart'` ListView. Distinct from the full-featured\n * `ChartConfigSchema` in `chart.zod.ts` (which is for embedded reports).\n */\nexport const ListChartConfigSchema = lazySchema(() => z.object({\n chartType: z.enum(['bar', 'line', 'pie', 'area', 'scatter']).default('bar').describe('Chart visualisation type'),\n xAxisField: z.string().describe('Field used as the X axis / category dimension'),\n yAxisFields: z.array(z.string()).min(1).describe('Field(s) used as the Y axis / measures'),\n aggregation: z.enum(['sum', 'avg', 'count', 'min', 'max']).optional().describe('Aggregation function applied to Y axis fields'),\n groupByField: z.string().optional().describe('Optional field used to split / stack the chart'),\n}).describe('List chart view configuration'));\n\n/**\n * Calendar Settings\n */\nexport const CalendarConfigSchema = lazySchema(() => z.object({\n startDateField: z.string(),\n endDateField: z.string().optional(),\n titleField: z.string(),\n colorField: z.string().optional(),\n}));\n\n/**\n * Gantt Settings\n */\nexport const GanttConfigSchema = lazySchema(() => z.object({\n startDateField: z.string(),\n endDateField: z.string(),\n titleField: z.string(),\n progressField: z.string().optional(),\n dependenciesField: z.string().optional(),\n}));\n\n/**\n * Navigation Mode Enum\n * Defines how to navigate to the detail view from a list item.\n */\nexport const NavigationModeSchema = lazySchema(() => z.enum([\n 'page', // Navigate to a new route (default)\n 'drawer', // Open details in a side drawer/panel\n 'modal', // Open details in a modal dialog\n 'split', // Show details side-by-side with the list (master-detail)\n 'popover', // Show details in a popover (lightweight)\n 'new_window', // Open in new browser tab/window\n 'none' // No navigation (read-only list)\n]));\n\n/**\n * Navigation Configuration Schema\n */\nexport const NavigationConfigSchema = lazySchema(() => z.object({\n mode: NavigationModeSchema.default('page'),\n \n /** Target View Config */\n view: z.string().optional().describe('Name of the form view to use for details (e.g. \"summary_view\", \"edit_form\")'),\n \n /** Interaction Triggers */\n preventNavigation: z.boolean().default(false).describe('Disable standard navigation entirely'),\n openNewTab: z.boolean().default(false).describe('Force open in new tab (applies to page mode)'),\n \n /** Dimensions (for modal/drawer) */\n width: z.union([z.string(), z.number()]).optional().describe('Width of the drawer/modal (e.g. \"600px\", \"50%\")'),\n}));\n\n/**\n * List View Schema (Expanded)\n * Defines how a collection of records is displayed to the user.\n * \n * **NAMING CONVENTION:**\n * View names (when provided) are machine identifiers and must be lowercase snake_case.\n * \n * @example Standard Grid\n * {\n * name: \"all_active\",\n * label: \"All Active\",\n * type: \"grid\",\n * columns: [\"name\", \"status\", \"created_at\"],\n * filter: [[\"status\", \"=\", \"active\"]]\n * }\n * \n * @example Kanban Board\n * {\n * type: \"kanban\",\n * columns: [\"name\", \"amount\"],\n * kanban: {\n * groupByField: \"stage\",\n * summarizeField: \"amount\",\n * columns: [\"name\", \"close_date\"]\n * }\n * }\n */\nexport const ListViewSchema = lazySchema(() => z.object({\n name: SnakeCaseIdentifierSchema.optional().describe('Internal view name (lowercase snake_case)'),\n label: I18nLabelSchema.optional(), // Display label override (supports i18n)\n type: z.enum([\n 'grid', // Standard Data Table\n 'kanban', // Board / Columns\n 'gallery', // Card Deck / Masonry\n 'calendar', // Monthly/Weekly/Daily\n 'timeline', // Chronological Stream (Feed)\n 'gantt', // Project Timeline\n 'map', // Geospatial\n 'chart' // Aggregate visualisation\n ]).default('grid'),\n \n /** Data Source Configuration */\n data: ViewDataSchema.optional().describe('Data source configuration (defaults to \"object\" provider)'),\n \n /** Shared Query Config */\n columns: z.union([\n z.array(z.string()), // Legacy: simple field names\n z.array(ListColumnSchema), // Enhanced: detailed column config\n ]).describe('Fields to display as columns'),\n filter: z.array(ViewFilterRuleSchema).optional().describe('Filter criteria (JSON Rules)'),\n sort: z.union([\n z.string(), //Legacy \"field desc\"\n z.array(z.object({\n field: z.string(),\n order: z.enum(['asc', 'desc'])\n }))\n ]).optional(),\n \n /** Search & Filter */\n searchableFields: z.array(z.string()).optional().describe('Fields enabled for search'),\n filterableFields: z.array(z.string()).optional().describe('Fields enabled for end-user filtering in the top bar'),\n\n /** Grid Features */\n resizable: z.boolean().optional().describe('Enable column resizing'),\n striped: z.boolean().optional().describe('Striped row styling'),\n bordered: z.boolean().optional().describe('Show borders'),\n compactToolbar: z.boolean().optional().describe('Collapse Group/Color/Density/Hide-fields into a single View settings popover'),\n\n /** Selection */\n selection: SelectionConfigSchema.optional().describe('Row selection configuration'),\n\n /** Navigation / Interaction */\n navigation: NavigationConfigSchema.optional().describe('Configuration for item click navigation (page, drawer, modal, etc.)'),\n\n /** Pagination */\n pagination: PaginationConfigSchema.optional().describe('Pagination configuration'),\n\n /** Type Specific Config */\n kanban: KanbanConfigSchema.optional(),\n calendar: CalendarConfigSchema.optional(),\n gantt: GanttConfigSchema.optional(),\n gallery: GalleryConfigSchema.optional(),\n timeline: TimelineConfigSchema.optional(),\n chart: ListChartConfigSchema.optional(),\n\n /** View Metadata (Airtable-style view management) */\n description: I18nLabelSchema.optional().describe('View description for documentation/tooltips'),\n sharing: ViewSharingSchema.optional().describe('View sharing and access configuration'),\n\n /** Row Height / Density (Airtable-style) */\n rowHeight: RowHeightSchema.optional().describe('Row height / density setting'),\n\n /** Record Grouping (Airtable-style) */\n grouping: GroupingConfigSchema.optional().describe('Group records by one or more fields'),\n\n /** Row Color (Airtable-style) */\n rowColor: RowColorConfigSchema.optional().describe('Color rows based on field value'),\n\n /** Field Visibility & Ordering per View (Airtable-style) */\n hiddenFields: z.array(z.string()).optional().describe('Fields to hide in this specific view'),\n fieldOrder: z.array(z.string()).optional().describe('Explicit field display order for this view'),\n\n /** Row & Bulk Actions */\n rowActions: z.array(z.string()).optional().describe('Actions available for individual row items'),\n bulkActions: z.array(z.string()).optional().describe('Actions available when multiple rows are selected'),\n bulkActionDefs: z.array(z.record(z.string(), z.any())).optional().describe('Rich bulk action definitions (schema-driven, executed via BulkActionDialog)'),\n\n /** Performance */\n virtualScroll: z.boolean().optional().describe('Enable virtual scrolling for large datasets'),\n\n /** Conditional Formatting */\n conditionalFormatting: z.array(z.object({\n condition: ExpressionInputSchema.describe('Predicate (CEL) to evaluate.'),\n style: z.record(z.string(), z.string()).describe('CSS styles to apply when condition is true'),\n })).optional().describe('Conditional formatting rules for list rows'),\n\n /** Inline Edit */\n inlineEdit: z.boolean().optional().describe('Allow inline editing of records directly in the list view'),\n\n /** Export */\n exportOptions: z.array(z.enum(['csv', 'xlsx', 'pdf', 'json'])).optional().describe('Available export format options'),\n\n /** User Actions (Airtable Interface parity) */\n userActions: UserActionsConfigSchema.optional().describe('User action toggles for the view toolbar'),\n\n /** Appearance (Airtable Interface parity) */\n appearance: AppearanceConfigSchema.optional().describe('Appearance and visualization configuration'),\n\n /** Tabs (Airtable Interface parity) */\n tabs: z.array(ViewTabSchema).optional().describe('Tab definitions for multi-tab view interface'),\n\n /** Add Record (Airtable Interface parity) */\n addRecord: AddRecordConfigSchema.optional().describe('Add record entry point configuration'),\n\n /** Record Count Display (Airtable Interface parity) */\n showRecordCount: z.boolean().optional().describe('Show record count at the bottom of the list'),\n\n /** Advanced: Allow Printing (Airtable Interface parity) */\n allowPrinting: z.boolean().optional().describe('Allow users to print the view'),\n\n /** Empty State */\n emptyState: z.object({\n title: I18nLabelSchema.optional(),\n message: I18nLabelSchema.optional(),\n icon: z.string().optional(),\n }).optional().describe('Empty state configuration when no records found'),\n\n /** ARIA accessibility attributes */\n aria: AriaPropsSchema.optional().describe('ARIA accessibility attributes for the list view'),\n\n /** Responsive layout overrides per breakpoint */\n responsive: ResponsiveConfigSchema.optional().describe('Responsive layout configuration'),\n\n /** Performance optimization settings */\n performance: PerformanceConfigSchema.optional().describe('Performance optimization settings'),\n}));\n\n/**\n * Form Field Configuration Schema\n * Detailed configuration for individual form fields.\n * \n * Reuses Data.FieldType and related constraints from the Data protocol to avoid duplication.\n * The `type` field auto-infers widget rendering; explicit `widget` overrides are only needed\n * for custom components.\n * \n * @example Auto-inferred select widget\n * { field: 'status', type: 'select', options: [{ label: 'Open', value: 'open' }] }\n * \n * @example Lookup field with reference\n * { field: 'account_id', type: 'lookup', reference: 'account', label: 'Account' }\n * \n * @example Custom widget override\n * { field: 'filter', widget: 'filter-builder' }\n */\nexport const FormFieldSchema: z.ZodType<any> = lazySchema(() => z.object({\n /** Field name (snake_case) */\n field: z.string().describe('Field name (snake_case)'),\n \n /** Field type — reuses Data.FieldType. When set, widget is auto-inferred (can be overridden). */\n type: FieldType.optional().describe('Field type (auto-infers widget if omitted)'),\n \n /** Select/multiselect options — only needed when type=select/multiselect/radio/checkboxes */\n options: z.array(SelectOptionSchema).optional().describe('Options for select/multiselect/radio/checkboxes fields'),\n \n /** Reference object for lookup/master_detail fields */\n reference: z.string().optional().describe('Target object name for lookup/master_detail fields'),\n \n /** Text constraints */\n maxLength: z.number().optional().describe('Maximum character length (for text/textarea/email/url/phone)'),\n minLength: z.number().optional().describe('Minimum character length'),\n \n /** Number constraints */\n min: z.number().optional().describe('Minimum value (for number/currency/percent/slider)'),\n max: z.number().optional().describe('Maximum value'),\n precision: z.number().optional().describe('Total digits (for number/currency)'),\n scale: z.number().optional().describe('Decimal places'),\n \n /** Multi-value flag */\n multiple: z.boolean().optional().describe('Allow multiple values (for select/lookup/file/image)'),\n \n /** UI overrides */\n label: I18nLabelSchema.optional().describe('Display label override'),\n placeholder: I18nLabelSchema.optional().describe('Placeholder text'),\n helpText: I18nLabelSchema.optional().describe('Help/hint text'),\n readonly: z.boolean().optional().describe('Read-only override'),\n immutable: z.boolean().optional().describe('Editable on create, locked once the record exists (e.g. machine names).'),\n required: z.boolean().optional().describe('Required override'),\n hidden: z.boolean().optional().describe('Hidden override'),\n colSpan: z.number().int().min(1).max(4).optional().describe('Column span in grid layout (1-4)'),\n \n /** Custom widget override — only needed when auto-inference is insufficient */\n widget: z.string().optional().describe('Custom widget/component name (overrides type-based inference)'),\n\n /** For `code` fields: source language (e.g. 'javascript', 'sql', 'json', 'typescript', 'expression', 'cel'). Drives syntax highlighting. */\n language: z.string().optional().describe('Code editor language (for type=code)'),\n\n /**\n * Sub-fields for `composite` / `repeater` types — declares the inner shape\n * of an embedded sub-object (composite) or each row of an embedded\n * sub-object array (repeater). Recursive: composite/repeater can nest.\n * Ignored for all other field types.\n *\n * Use `lookup` / `master_detail` instead when the children are independent\n * records with their own IDs in a separate object/table.\n */\n fields: z.array(z.lazy(() => FormFieldSchema)).optional()\n .describe('Sub-fields for composite/repeater types'),\n\n dependsOn: z.string().optional().describe('Parent field name for cascading'),\n visibleOn: ExpressionInputSchema.optional().describe('Visibility predicate (CEL).'),\n}));\n\n/**\n * Form Layout Section\n */\nexport const FormSectionSchema = lazySchema(() => z.object({\n label: I18nLabelSchema.optional(),\n description: z.string().optional().describe('Optional description rendered under the section header.'),\n collapsible: z.boolean().default(false),\n collapsed: z.boolean().default(false),\n visibleOn: ExpressionInputSchema.optional().describe('Visibility predicate (CEL). Hides the whole section when false.'),\n columns: z.union([\n z.enum(['1', '2', '3', '4']),\n z.literal(1),\n z.literal(2),\n z.literal(3),\n z.literal(4),\n ]).default(1).transform(val => (typeof val === 'string' ? parseInt(val) : val) as 1 | 2 | 3 | 4),\n fields: z.array(z.union([\n z.string(), // Legacy: simple field name\n FormFieldSchema, // Enhanced: detailed field config\n ])),\n}));\n\n/**\n * Form View Schema\n * Defines the layout for creating or editing a single record.\n * \n * @example Simple Sectioned Form\n * {\n * type: \"simple\",\n * sections: [\n * {\n * label: \"General Info\",\n * columns: 2,\n * fields: [\"name\", \"status\"]\n * },\n * {\n * label: \"Details\",\n * fields: [\"description\", { field: \"priority\", widget: \"rating\" }]\n * }\n * ]\n * }\n */\nexport const FormViewSchema = lazySchema(() => z.object({\n type: z.enum([\n 'simple', // Single column or sections\n 'tabbed', // Tabs\n 'wizard', // Step by step\n 'split', // Master-Detail split\n 'drawer', // Side panel\n 'modal' // Dialog\n ]).default('simple'),\n \n /** Data Source Configuration */\n data: ViewDataSchema.optional().describe('Data source configuration (defaults to \"object\" provider)'),\n \n sections: z.array(FormSectionSchema).optional(), // For simple layout\n groups: z.array(FormSectionSchema).optional(), // Legacy support -> alias to sections\n\n /** Default Sort for Related Lists (e.g., sort child records by date) */\n defaultSort: z.array(z.object({\n field: z.string().describe('Field name to sort by'),\n order: z.enum(['asc', 'desc']).default('desc').describe('Sort direction'),\n })).optional().describe('Default sort order for related list views within this form'),\n\n /** Public form sharing configuration */\n sharing: SharingConfigSchema.optional().describe('Public sharing configuration for this form'),\n\n /**\n * What happens after a successful submit.\n *\n * - `thank-you` (default) — show a confirmation panel\n * - `redirect` — send the browser to a URL\n * - `continue` — reset the form so another response can be entered\n * - `next-record` — advance to the next record (internal queues only)\n */\n submitBehavior: z.union([\n z.object({\n kind: z.literal('thank-you'),\n title: z.string().optional(),\n message: z.string().optional(),\n }),\n z.object({\n kind: z.literal('redirect'),\n url: z.string(),\n delayMs: z.number().int().min(0).optional(),\n }),\n z.object({ kind: z.literal('continue') }),\n z.object({ kind: z.literal('next-record') }),\n ]).optional().describe('Post-submit behavior'),\n\n /** ARIA accessibility attributes */\n aria: AriaPropsSchema.optional().describe('ARIA accessibility attributes for the form view'),\n}));\n\n/**\n * Master View Schema\n * Can define multiple named views.\n */\n/**\n * View Container Schema\n * Aggregates all view definitions for a specific object or context.\n * \n * @example\n * {\n * list: { type: \"grid\", columns: [\"name\"] },\n * form: { type: \"simple\", fields: [\"name\"] },\n * listViews: {\n * \"all\": { label: \"All\", filter: [] },\n * \"my\": { label: \"Mine\", filter: [[\"owner\", \"=\", \"{user_id}\"]] }\n * }\n * }\n */\nexport const ViewSchema = lazySchema(() => z.object({\n list: ListViewSchema.optional(), // Default list view\n form: FormViewSchema.optional(), // Default form view\n listViews: z.record(z.string(), ListViewSchema).optional().describe('Additional named list views'),\n formViews: z.record(z.string(), FormViewSchema).optional().describe('Additional named form views'),\n}));\n\n/**\n * Type-safe factory for creating view definitions.\n *\n * Validates the config at creation time using Zod `.parse()`.\n *\n * @example\n * ```ts\n * const taskViews = defineView({\n * list: {\n * type: 'grid',\n * data: { provider: 'object', object: 'task' },\n * columns: ['subject', 'status', 'priority', 'due_date'],\n * },\n * form: {\n * type: 'simple',\n * sections: [{ label: 'Details', fields: [{ field: 'subject' }] }],\n * },\n * });\n * ```\n */\nexport function defineView(config: z.input<typeof ViewSchema>): View {\n return ViewSchema.parse(config);\n}\n\n/**\n * Type-safe factory for a standalone {@link FormView} bound to a JSON Schema\n * rather than to an ObjectQL object.\n *\n * Use this for forms that edit **metadata** (e.g. `report.form.ts`,\n * `dashboard.form.ts`), **action inputs**, or **flow screens** — anywhere the\n * data shape is described by a Zod-derived JSON Schema instead of an Object\n * field set.\n *\n * The returned FormView is validated at definition time; the runtime form\n * renderer (`@object-ui/plugin-form`) inspects `data.provider === 'schema'`\n * and pulls field metadata from the resolved JSON Schema instead of from\n * ObjectQL.\n *\n * @example\n * ```ts\n * export const reportForm = defineForm({\n * schemaId: 'report',\n * type: 'tabbed',\n * sections: [\n * { label: 'Basics', columns: 2, fields: [\n * { field: 'name' },\n * { field: 'label' },\n * { field: 'objectName', widget: 'ref:object' },\n * { field: 'type' },\n * ]},\n * { label: 'Columns', fields: [{ field: 'columns', widget: 'master-detail' }] },\n * { label: 'Advanced', collapsible: true, collapsed: true, fields: [\n * { field: 'filter', widget: 'filter-builder' },\n * { field: 'chart', widget: 'chart-config' },\n * ]},\n * ],\n * });\n * ```\n */\nexport function defineForm(\n config: Omit<z.input<typeof FormViewSchema>, 'data'> & { schemaId: string },\n): FormView {\n const { schemaId, ...rest } = config;\n return FormViewSchema.parse({\n ...rest,\n data: { provider: 'schema', schemaId },\n });\n}\n\nexport type View = z.infer<typeof ViewSchema>;\nexport type ListView = z.infer<typeof ListViewSchema>;\nexport type FormView = z.infer<typeof FormViewSchema>;\nexport type FormSection = z.infer<typeof FormSectionSchema>;\nexport type ListColumn = z.infer<typeof ListColumnSchema>;\nexport type FormField = z.infer<typeof FormFieldSchema>;\nexport type SelectionConfig = z.infer<typeof SelectionConfigSchema>;\nexport type NavigationConfig = z.infer<typeof NavigationConfigSchema>;\nexport type PaginationConfig = z.infer<typeof PaginationConfigSchema>;\nexport type ViewData = z.infer<typeof ViewDataSchema>;\nexport type HttpRequest = z.infer<typeof HttpRequestSchema>;\nexport type HttpMethod = z.infer<typeof HttpMethodSchema>;\nexport type ColumnSummary = z.infer<typeof ColumnSummarySchema>;\nexport type RowHeight = z.infer<typeof RowHeightSchema>;\nexport type GroupingConfig = z.infer<typeof GroupingConfigSchema>;\nexport type GalleryConfig = z.infer<typeof GalleryConfigSchema>;\nexport type TimelineConfig = z.infer<typeof TimelineConfigSchema>;\nexport type ListChartConfig = z.infer<typeof ListChartConfigSchema>;\nexport type ViewSharing = z.infer<typeof ViewSharingSchema>;\nexport type RowColorConfig = z.infer<typeof RowColorConfigSchema>;\nexport type VisualizationType = z.infer<typeof VisualizationTypeSchema>;\nexport type UserActionsConfig = z.infer<typeof UserActionsConfigSchema>;\nexport type AppearanceConfig = z.infer<typeof AppearanceConfigSchema>;\nexport type ViewTab = z.infer<typeof ViewTabSchema>;\nexport type AddRecordConfig = z.infer<typeof AddRecordConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { defineForm } from '../ui/view.zod';\n\n/**\n * Workflow Metadata Form\n * \n * Form layout for creating/editing declarative workflow rule metadata definitions.\n */\nexport const workflowForm = defineForm({\n schemaId: 'workflow',\n type: 'simple',\n sections: [\n {\n label: 'Basics',\n description: 'Identity and the object/event that triggers it.',\n columns: 2,\n fields: [\n { field: 'name', required: true, colSpan: 1, helpText: 'Unique identifier (snake_case)' },\n { field: 'objectName', widget: 'ref:object', required: true, colSpan: 1, helpText: 'Which object triggers this workflow' },\n { field: 'triggerType', required: true, colSpan: 1, helpText: 'When to run: on_create, on_update, on_delete, schedule' },\n { field: 'active', colSpan: 1, helpText: 'Enable/disable this workflow' },\n { field: 'description', widget: 'textarea', colSpan: 2, helpText: 'What this workflow does' },\n { field: 'criteria', widget: 'textarea', colSpan: 2, helpText: 'CEL expression: only run when this condition is true' },\n ],\n },\n {\n label: 'Actions',\n description: 'What this workflow does when fired.',\n fields: [\n { field: 'actions', type: 'repeater', helpText: 'Actions to execute immediately (field update, email, API call, etc.)' },\n { field: 'timeTriggers', type: 'repeater', helpText: 'Scheduled actions (e.g., send reminder 1 day before deadline)' },\n ],\n },\n {\n label: 'Advanced',\n description: 'Ordering and execution behaviour.',\n collapsible: true,\n collapsed: true,\n fields: [\n { field: 'executionOrder', helpText: 'Run order when multiple workflows match (lower = earlier)' },\n ],\n },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { ExpressionInputSchema } from '../shared/expression.zod';\n\n/**\n * Flow Node Types\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const FlowNodeAction = z.enum([\n 'start', // Trigger\n 'end', // Return/Stop\n 'decision', // If/Else logic\n 'assignment', // Set Variable\n 'loop', // For Each\n 'create_record', // CRUD: Create\n 'update_record', // CRUD: Update\n 'delete_record', // CRUD: Delete\n 'get_record', // CRUD: Get/Query\n 'http_request', // Webhook/API Call\n 'script', // Custom Script (JS/TS)\n 'screen', // Screen / User-Input Element\n 'wait', // Delay/Sleep\n 'subflow', // Call another flow\n 'connector_action', // Zapier-style integration action\n 'parallel_gateway', // BPMN Parallel Gateway — AND-split (all outgoing branches execute concurrently)\n 'join_gateway', // BPMN Join Gateway — AND-join (waits for all incoming branches to complete)\n 'boundary_event', // BPMN Boundary Event — attached to a host node for timer/error/signal interrupts\n]);\n\n/**\n * Flow Variable Schema\n * Variables available within the flow execution context.\n */\nexport const FlowVariableSchema = lazySchema(() => z.object({\n name: z.string().describe('Variable name'),\n type: z.string().describe('Data type (text, number, boolean, object, list)'),\n isInput: z.boolean().default(false).describe('Is input parameter'),\n isOutput: z.boolean().default(false).describe('Is output parameter'),\n}));\n\n/**\n * Flow Node Schema\n * A single step in the visual logic graph.\n * \n * @example Decision Node\n * {\n * id: \"dec_1\",\n * type: \"decision\",\n * label: \"Is High Value?\",\n * config: {\n * conditions: [\n * { label: \"Yes\", expression: \"{amount} > 10000\" },\n * { label: \"No\", expression: \"true\" } // default\n * ]\n * },\n * position: { x: 300, y: 200 }\n * }\n */\nexport const FlowNodeSchema = lazySchema(() => z.object({\n id: z.string().describe('Node unique ID'),\n type: FlowNodeAction.describe('Action type'),\n label: z.string().describe('Node label'),\n \n /** Node Configuration Options (Specific to type) */\n config: z.record(z.string(), z.unknown()).optional().describe('Node configuration'),\n \n /** \n * Connector Action Configuration\n * Used when type is 'connector_action'\n */\n connectorConfig: z.object({\n connectorId: z.string(),\n actionId: z.string(),\n input: z.record(z.string(), z.unknown()).describe('Mapped inputs for the action'),\n }).optional(),\n\n /** UI Position (for the canvas) */\n position: z.object({ x: z.number(), y: z.number() }).optional(),\n\n /** Node-level execution timeout */\n timeoutMs: z.number().int().min(0).optional().describe('Maximum execution time for this node in milliseconds'),\n\n /** Node input schema declaration for Studio form generation and runtime validation */\n inputSchema: z.record(z.string(), z.object({\n type: z.enum(['string', 'number', 'boolean', 'object', 'array']).describe('Parameter type'),\n required: z.boolean().default(false).describe('Whether the parameter is required'),\n description: z.string().optional().describe('Parameter description'),\n })).optional().describe('Input parameter schema for this node'),\n\n /** Node output schema declaration */\n outputSchema: z.record(z.string(), z.object({\n type: z.enum(['string', 'number', 'boolean', 'object', 'array']).describe('Output type'),\n description: z.string().optional().describe('Output description'),\n })).optional().describe('Output schema declaration for this node'),\n\n /**\n * Wait Event Configuration (for 'wait' nodes)\n * Defines what external event or condition should resume the paused execution.\n * Industry alignment: BPMN Intermediate Catch Events, Temporal Signals.\n */\n waitEventConfig: z.object({\n /** Type of event to wait for */\n eventType: z.enum(['timer', 'signal', 'webhook', 'manual', 'condition'])\n .describe('What kind of event resumes the execution'),\n /** Duration to wait (ISO 8601 duration or milliseconds) — for timer events */\n timerDuration: z.string().optional().describe('ISO 8601 duration (e.g., \"PT1H\") or wait time for timer events'),\n /** Signal name to listen for — for signal/webhook events */\n signalName: z.string().optional().describe('Named signal or webhook event to wait for'),\n /** Timeout before auto-failing or continuing — optional guard */\n timeoutMs: z.number().int().min(0).optional().describe('Maximum wait time before timeout (ms)'),\n /** Action to take on timeout */\n onTimeout: z.enum(['fail', 'continue']).default('fail').describe('Behavior when the wait times out'),\n }).optional().describe('Configuration for wait node event resumption'),\n\n /**\n * Boundary Event Configuration (for 'boundary_event' nodes)\n * Attaches an event handler to a host activity node (BPMN Boundary Event pattern).\n * Industry alignment: BPMN Boundary Error/Timer/Signal Events.\n */\n boundaryConfig: z.object({\n /** ID of the host node this boundary event is attached to */\n attachedToNodeId: z.string().describe('Host node ID this boundary event monitors'),\n /** Type of boundary event */\n eventType: z.enum(['error', 'timer', 'signal', 'cancel'])\n .describe('Boundary event trigger type'),\n /** Whether the boundary event interrupts the host activity */\n interrupting: z.boolean().default(true)\n .describe('If true, the host activity is cancelled when this event fires'),\n /** Error code filter — only for error boundary events */\n errorCode: z.string().optional().describe('Specific error code to catch (empty = catch all errors)'),\n /** Timer duration — only for timer boundary events */\n timerDuration: z.string().optional().describe('ISO 8601 duration for timer boundary events'),\n /** Signal name — only for signal boundary events */\n signalName: z.string().optional().describe('Named signal to catch'),\n }).optional().describe('Configuration for boundary events attached to host nodes'),\n}));\n\n/**\n * Flow Edge Schema\n * Connections between nodes.\n */\nexport const FlowEdgeSchema = lazySchema(() => z.object({\n id: z.string().describe('Edge unique ID'),\n source: z.string().describe('Source Node ID'),\n target: z.string().describe('Target Node ID'),\n \n /** Condition for this path (only for decision/branch nodes) */\n condition: ExpressionInputSchema.optional().describe('Predicate (CEL) returning boolean used for branching.'),\n \n type: z.enum(['default', 'fault', 'conditional']).default('default')\n .describe('Connection type: default (normal flow), fault (error path), or conditional (expression-guarded)'),\n label: z.string().optional().describe('Label on the connector'),\n\n /**\n * Default Sequence Flow marker (BPMN Default Flow semantics).\n * When true, this edge is taken when no sibling conditional edges match.\n * Only meaningful on outgoing edges of decision/gateway nodes.\n */\n isDefault: z.boolean().default(false)\n .describe('Marks this edge as the default path when no other conditions match'),\n}));\n\n/**\n * Flow Schema\n * Visual Business Logic Orchestration.\n * \n * @example Simple Approval Logic\n * {\n * name: \"approve_order_flow\",\n * label: \"Approve Large Orders\",\n * type: \"record_change\",\n * status: \"active\",\n * nodes: [\n * { id: \"start\", type: \"start\", label: \"Start\", position: {x: 0, y: 0} },\n * { id: \"check_amount\", type: \"decision\", label: \"Check Amount\", position: {x: 0, y: 100} },\n * { id: \"auto_approve\", type: \"update_record\", label: \"Auto Approve\", position: {x: -100, y: 200} },\n * { id: \"submit_for_approval\", type: \"connector_action\", label: \"Submit\", position: {x: 100, y: 200} }\n * ],\n * edges: [\n * { id: \"e1\", source: \"start\", target: \"check_amount\" },\n * { id: \"e2\", source: \"check_amount\", target: \"auto_approve\", condition: \"{amount} < 500\" },\n * { id: \"e3\", source: \"check_amount\", target: \"submit_for_approval\", condition: \"{amount} >= 500\" }\n * ]\n * }\n */\nexport const FlowSchema = lazySchema(() => z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name'),\n label: z.string().describe('Flow label'),\n description: z.string().optional(),\n \n /** Metadata & Versioning */\n version: z.number().int().default(1).describe('Version number'),\n status: z.enum(['draft', 'active', 'obsolete', 'invalid']).default('draft').describe('Deployment status'),\n template: z.boolean().default(false).describe('Is logic template (Subflow)'),\n\n /** Trigger Type */\n type: z.enum(['autolaunched', 'record_change', 'schedule', 'screen', 'api']).describe('Flow type'),\n \n /** Configuration Variables */\n variables: z.array(FlowVariableSchema).optional().describe('Flow variables'),\n \n /** Graph Definition */\n nodes: z.array(FlowNodeSchema).describe('Flow nodes'),\n edges: z.array(FlowEdgeSchema).describe('Flow connections'),\n \n /** Execution Config */\n active: z.boolean().default(false).describe('Is active (Deprecated: use status)'),\n runAs: z.enum(['system', 'user']).default('user').describe('Execution context'),\n\n /** Error Handling Strategy */\n errorHandling: z.object({\n strategy: z.enum(['fail', 'retry', 'continue']).default('fail').describe('How to handle node execution errors'),\n maxRetries: z.number().int().min(0).max(10).default(0).describe('Number of retry attempts (only for retry strategy)'),\n retryDelayMs: z.number().int().min(0).default(1000).describe('Delay between retries in milliseconds'),\n backoffMultiplier: z.number().min(1).default(1).describe('Multiplier for exponential backoff between retries'),\n maxRetryDelayMs: z.number().int().min(0).default(30000).describe('Maximum delay between retries in milliseconds'),\n jitter: z.boolean().default(false).describe('Add random jitter to retry delay to avoid thundering herd'),\n fallbackNodeId: z.string().optional().describe('Node ID to jump to on unrecoverable error'),\n }).optional().describe('Flow-level error handling configuration'),\n}));\n\n/**\n * Type-safe factory for creating flow definitions.\n *\n * Validates the config at creation time using Zod `.parse()`.\n *\n * @example\n * ```ts\n * const onCreateFlow = defineFlow({\n * name: 'on_task_create',\n * label: 'On Task Create',\n * type: 'record_change',\n * nodes: [\n * { id: 'start', type: 'start', label: 'Start' },\n * { id: 'end', type: 'end', label: 'End' },\n * ],\n * edges: [{ id: 'e1', source: 'start', target: 'end' }],\n * });\n * ```\n */\nexport function defineFlow(config: z.input<typeof FlowSchema>): FlowParsed {\n return FlowSchema.parse(config);\n}\n\nexport type Flow = z.input<typeof FlowSchema>;\nexport type FlowParsed = z.infer<typeof FlowSchema>;\nexport type FlowNode = z.input<typeof FlowNodeSchema>;\nexport type FlowNodeParsed = z.infer<typeof FlowNodeSchema>;\nexport type FlowEdge = z.input<typeof FlowEdgeSchema>;\nexport type FlowEdgeParsed = z.infer<typeof FlowEdgeSchema>;\n\n/**\n * Flow Version History Schema\n * Tracks historical versions of flow definitions for rollback support.\n *\n * Industry alignment: Salesforce Flow Versions, n8n Workflow History.\n */\nexport const FlowVersionHistorySchema = lazySchema(() => z.object({\n flowName: z.string().describe('Flow machine name'),\n version: z.number().int().min(1).describe('Version number'),\n definition: FlowSchema.describe('Complete flow definition snapshot'),\n createdAt: z.string().datetime().describe('When this version was created'),\n createdBy: z.string().optional().describe('User who created this version'),\n changeNote: z.string().optional().describe('Description of what changed in this version'),\n}));\n\nexport type FlowVersionHistory = z.input<typeof FlowVersionHistorySchema>;\nexport type FlowVersionHistoryParsed = z.infer<typeof FlowVersionHistorySchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { defineForm } from '../ui/view.zod';\n\n/**\n * Flow Metadata Form\n * \n * Form layout for creating/editing visual flow metadata definitions.\n */\nexport const flowForm = defineForm({\n schemaId: 'flow',\n type: 'simple',\n sections: [\n {\n label: 'Basics',\n description: 'Flow identity and how it starts.',\n columns: 2,\n fields: [\n { field: 'name', required: true, colSpan: 1, helpText: 'Unique identifier (snake_case)' },\n { field: 'label', required: true, colSpan: 1, helpText: 'Display name for users' },\n { field: 'type', required: true, colSpan: 1, helpText: 'How the flow starts (autolaunched, record_change, schedule, screen, api)' },\n { field: 'template', colSpan: 1, helpText: 'Is this a reusable subflow (can be called from other flows)' },\n { field: 'description', widget: 'textarea', colSpan: 2, helpText: 'What this flow does' },\n ],\n },\n {\n label: 'Canvas',\n description: 'Nodes, edges, and flow variables — consider the visual designer for complex flows.',\n fields: [\n {\n field: 'nodes',\n type: 'repeater',\n required: true,\n helpText: '⚠️ Consider using Flow Designer visual editor instead of JSON',\n },\n {\n field: 'edges',\n type: 'repeater',\n required: true,\n helpText: 'Connections between nodes — use Flow Designer for easier editing',\n },\n { field: 'variables', type: 'repeater', helpText: 'Flow variables (inputs/outputs)' },\n ],\n },\n {\n label: 'Execution',\n description: 'Deployment status, identity, and error handling.',\n collapsible: true,\n collapsed: true,\n columns: 2,\n fields: [\n { field: 'status', required: true, colSpan: 1, helpText: 'Deployment status: draft → active → obsolete' },\n { field: 'version', colSpan: 1, helpText: 'Version number (auto-incremented)' },\n { field: 'runAs', colSpan: 1, helpText: 'Execute as system (admin) or user (current user permissions)' },\n { field: 'errorHandling', type: 'composite', colSpan: 2, helpText: 'What to do when a node fails (fail, retry, continue)' },\n ],\n },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { CronExpressionInputSchema } from '../shared/expression.zod';\n\n/**\n * Automation Execution Protocol\n *\n * Defines schemas for execution logging, error tracking, checkpointing,\n * concurrency control, and scheduled execution persistence.\n *\n * Industry alignment: Salesforce Flow Interviews, Temporal Workflow History,\n * AWS Step Functions execution logs.\n */\n\n// ==========================================\n// 1. Execution Status\n// ==========================================\n\n/**\n * Execution Status Enum\n * Tracks the lifecycle of a flow execution instance.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const ExecutionStatus = z.enum([\n 'pending', // Queued, not yet started\n 'running', // Currently executing\n 'paused', // Paused at a wait/checkpoint node\n 'completed', // Successfully finished\n 'failed', // Terminated with error\n 'cancelled', // Manually cancelled\n 'timed_out', // Exceeded max execution time\n 'retrying', // Failed and retrying\n]);\nexport type ExecutionStatus = z.infer<typeof ExecutionStatus>;\n\n// ==========================================\n// 2. Execution Log\n// ==========================================\n\n/**\n * Execution Step Log Entry\n * Records the result of executing a single node in the flow graph.\n */\nexport const ExecutionStepLogSchema = lazySchema(() => z.object({\n nodeId: z.string().describe('Node ID that was executed'),\n nodeType: z.string().describe('Node action type (e.g., \"decision\", \"http_request\")'),\n nodeLabel: z.string().optional().describe('Human-readable node label'),\n status: z.enum(['success', 'failure', 'skipped']).describe('Step execution result'),\n startedAt: z.string().datetime().describe('When the step started'),\n completedAt: z.string().datetime().optional().describe('When the step completed'),\n durationMs: z.number().int().min(0).optional().describe('Step execution duration in milliseconds'),\n input: z.record(z.string(), z.unknown()).optional().describe('Input data passed to the node'),\n output: z.record(z.string(), z.unknown()).optional().describe('Output data produced by the node'),\n error: z.object({\n code: z.string().describe('Error code'),\n message: z.string().describe('Error message'),\n stack: z.string().optional().describe('Stack trace'),\n }).optional().describe('Error details if step failed'),\n retryAttempt: z.number().int().min(0).optional().describe('Retry attempt number (0 = first try)'),\n}));\nexport type ExecutionStepLog = z.infer<typeof ExecutionStepLogSchema>;\n\n/**\n * Execution Log Schema\n * Full execution history for a single flow run.\n *\n * @example\n * {\n * id: 'exec_001',\n * flowName: 'approve_order_flow',\n * flowVersion: 1,\n * status: 'completed',\n * trigger: { type: 'record_change', recordId: 'rec_123', object: 'order' },\n * steps: [\n * { nodeId: 'start', nodeType: 'start', status: 'success', startedAt: '...', durationMs: 1 },\n * { nodeId: 'check_amount', nodeType: 'decision', status: 'success', startedAt: '...', durationMs: 5 },\n * ],\n * startedAt: '2026-02-01T10:00:00Z',\n * completedAt: '2026-02-01T10:00:01Z',\n * durationMs: 1050,\n * }\n */\nexport const ExecutionLogSchema = lazySchema(() => z.object({\n /** Unique execution ID */\n id: z.string().describe('Execution instance ID'),\n\n /** Flow reference */\n flowName: z.string().describe('Machine name of the executed flow'),\n flowVersion: z.number().int().optional().describe('Version of the flow that was executed'),\n\n /** Execution status */\n status: ExecutionStatus.describe('Current execution status'),\n\n /** Trigger context */\n trigger: z.object({\n type: z.string().describe('Trigger type (e.g., \"record_change\", \"schedule\", \"api\", \"manual\")'),\n recordId: z.string().optional().describe('Triggering record ID'),\n object: z.string().optional().describe('Triggering object name'),\n userId: z.string().optional().describe('User who triggered the execution'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional trigger context'),\n }).describe('What triggered this execution'),\n\n /** Step-by-step execution history */\n steps: z.array(ExecutionStepLogSchema).describe('Ordered list of executed steps'),\n\n /** Execution variables snapshot */\n variables: z.record(z.string(), z.unknown()).optional().describe('Final state of flow variables'),\n\n /** Timing */\n startedAt: z.string().datetime().describe('Execution start timestamp'),\n completedAt: z.string().datetime().optional().describe('Execution completion timestamp'),\n durationMs: z.number().int().min(0).optional().describe('Total execution duration in milliseconds'),\n\n /** Context */\n runAs: z.enum(['system', 'user']).optional().describe('Execution context identity'),\n tenantId: z.string().optional().describe('Tenant ID for multi-tenant isolation'),\n}));\nexport type ExecutionLog = z.infer<typeof ExecutionLogSchema>;\n\n// ==========================================\n// 3. Execution Error Tracking & Diagnostics\n// ==========================================\n\n/**\n * Execution Error Severity\n */\nexport const ExecutionErrorSeverity = z.enum([\n 'warning', // Non-fatal issue (e.g., deprecated node type)\n 'error', // Node-level failure (may be retried)\n 'critical', // Flow-level failure (execution terminated)\n]);\nexport type ExecutionErrorSeverity = z.infer<typeof ExecutionErrorSeverity>;\n\n/**\n * Execution Error Schema\n * Detailed error record for diagnostics and troubleshooting.\n */\nexport const ExecutionErrorSchema = lazySchema(() => z.object({\n id: z.string().describe('Error record ID'),\n executionId: z.string().describe('Parent execution ID'),\n nodeId: z.string().optional().describe('Node where the error occurred'),\n severity: ExecutionErrorSeverity.describe('Error severity level'),\n code: z.string().describe('Machine-readable error code'),\n message: z.string().describe('Human-readable error message'),\n stack: z.string().optional().describe('Stack trace for debugging'),\n context: z.record(z.string(), z.unknown()).optional()\n .describe('Additional diagnostic context (input data, config snapshot)'),\n timestamp: z.string().datetime().describe('When the error occurred'),\n retryable: z.boolean().default(false).describe('Whether this error can be retried'),\n resolvedAt: z.string().datetime().optional().describe('When the error was resolved (e.g., after successful retry)'),\n}));\nexport type ExecutionError = z.infer<typeof ExecutionErrorSchema>;\n\n// ==========================================\n// 4. Checkpointing / Resume\n// ==========================================\n\n/**\n * Checkpoint Schema\n * Captures the execution state at a specific node for pause/resume.\n *\n * Used by wait nodes, user-input screens, and crash recovery.\n */\nexport const CheckpointSchema = lazySchema(() => z.object({\n /** Unique checkpoint ID */\n id: z.string().describe('Checkpoint ID'),\n\n /** Execution reference */\n executionId: z.string().describe('Parent execution ID'),\n flowName: z.string().describe('Flow machine name'),\n\n /** State snapshot */\n currentNodeId: z.string().describe('Node ID where execution is paused'),\n variables: z.record(z.string(), z.unknown()).describe('Flow variable state at checkpoint'),\n completedNodeIds: z.array(z.string()).describe('List of node IDs already executed'),\n\n /** Timing */\n createdAt: z.string().datetime().describe('Checkpoint creation timestamp'),\n expiresAt: z.string().datetime().optional().describe('Checkpoint expiration (auto-cleanup)'),\n\n /** Reason */\n reason: z.enum(['wait', 'screen_input', 'approval', 'error', 'manual_pause', 'parallel_join', 'boundary_event'])\n .describe('Why the execution was checkpointed'),\n}));\nexport type Checkpoint = z.infer<typeof CheckpointSchema>;\n\n// ==========================================\n// 5. Concurrency Control\n// ==========================================\n\n/**\n * Concurrency Policy Schema\n * Controls how concurrent executions of the same flow are handled.\n *\n * Industry alignment: Salesforce \"Allow multiple instances\", Temporal \"Workflow ID reuse policy\"\n */\nexport const ConcurrencyPolicySchema = lazySchema(() => z.object({\n /** Maximum concurrent executions of this flow */\n maxConcurrent: z.number().int().min(1).default(1)\n .describe('Maximum number of concurrent executions allowed'),\n\n /** What to do when max concurrency is reached */\n onConflict: z.enum(['queue', 'reject', 'cancel_existing'])\n .default('queue')\n .describe('queue = enqueue for later, reject = fail immediately, cancel_existing = stop running instance'),\n\n /** Lock scope for concurrency */\n lockScope: z.enum(['global', 'per_record', 'per_user'])\n .default('global')\n .describe('Scope of the concurrency lock'),\n\n /** Queue timeout (only when onConflict is \"queue\") */\n queueTimeoutMs: z.number().int().min(0).optional()\n .describe('Maximum time to wait in queue before timing out (ms)'),\n}));\nexport type ConcurrencyPolicy = z.infer<typeof ConcurrencyPolicySchema>;\n\n// ==========================================\n// 6. Scheduled Execution Persistence\n// ==========================================\n\n/**\n * Schedule State Schema\n * Tracks the runtime state of scheduled flow executions.\n *\n * Persists next-run times, pause/resume state, and execution history references.\n */\nexport const ScheduleStateSchema = lazySchema(() => z.object({\n /** Unique schedule ID */\n id: z.string().describe('Schedule instance ID'),\n\n /** Flow reference */\n flowName: z.string().describe('Flow machine name'),\n\n /** Schedule configuration */\n cronExpression: CronExpressionInputSchema.describe('Cron expression — cron`0 9 * * MON-FRI`'),\n timezone: z.string().default('UTC').describe('IANA timezone for cron evaluation'),\n\n /** Runtime state */\n status: z.enum(['active', 'paused', 'disabled', 'expired'])\n .default('active')\n .describe('Current schedule status'),\n nextRunAt: z.string().datetime().optional().describe('Next scheduled execution timestamp'),\n lastRunAt: z.string().datetime().optional().describe('Last execution timestamp'),\n lastExecutionId: z.string().optional().describe('Execution ID of the last run'),\n lastRunStatus: ExecutionStatus.optional().describe('Status of the last run'),\n\n /** Execution tracking */\n totalRuns: z.number().int().min(0).default(0).describe('Total number of executions'),\n consecutiveFailures: z.number().int().min(0).default(0).describe('Consecutive failed executions'),\n\n /** Bounds */\n startDate: z.string().datetime().optional().describe('Schedule effective start date'),\n endDate: z.string().datetime().optional().describe('Schedule expiration date'),\n maxRuns: z.number().int().min(1).optional().describe('Maximum total executions before auto-disable'),\n\n /** Metadata */\n createdAt: z.string().datetime().describe('Schedule creation timestamp'),\n updatedAt: z.string().datetime().optional().describe('Last update timestamp'),\n createdBy: z.string().optional().describe('User who created the schedule'),\n}));\nexport type ScheduleState = z.infer<typeof ScheduleStateSchema>;\n\n// ==========================================\n// Type Exports\n// ==========================================\n\nexport type ExecutionStepLogParsed = z.infer<typeof ExecutionStepLogSchema>;\nexport type ExecutionLogParsed = z.infer<typeof ExecutionLogSchema>;\nexport type ExecutionErrorParsed = z.infer<typeof ExecutionErrorSchema>;\nexport type CheckpointParsed = z.infer<typeof CheckpointSchema>;\nexport type ConcurrencyPolicyParsed = z.infer<typeof ConcurrencyPolicySchema>;\nexport type ScheduleStateParsed = z.infer<typeof ScheduleStateSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * Webhook Trigger Event\n * When should this webhook fire?\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const WebhookTriggerType = z.enum([\n 'create', \n 'update', \n 'delete', \n 'undelete',\n 'api' // Manually triggered\n]);\n\n/**\n * CANONICAL WEBHOOK DEFINITION\n * \n * This is the single source of truth for webhook configuration across ObjectStack.\n * All other protocols (workflow, connector, etc.) should import and reference this schema.\n * \n * Webhook Protocol - Outbound HTTP Integration\n * Push data to external URLs when events occur in the system.\n * \n * **NAMING CONVENTION:**\n * Webhook names are machine identifiers and must be lowercase snake_case.\n * \n * @example Good webhook names\n * - 'stripe_payment_sync'\n * - 'slack_notification'\n * - 'crm_lead_export'\n * \n * @example Bad webhook names (will be rejected)\n * - 'StripePaymentSync' (PascalCase)\n * - 'slackNotification' (camelCase)\n * \n * @example Basic webhook configuration\n * ```typescript\n * const webhook: Webhook = {\n * name: 'slack_notification',\n * label: 'Slack Order Notification',\n * object: 'order',\n * triggers: ['create', 'update'],\n * url: 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXX',\n * method: 'POST',\n * headers: { 'Content-Type': 'application/json' },\n * authentication: {\n * type: 'bearer',\n * credentials: { token: process.env.SLACK_TOKEN }\n * },\n * retryPolicy: {\n * maxRetries: 3,\n * backoffStrategy: 'exponential'\n * }\n * }\n * ```\n */\nexport const WebhookSchema = lazySchema(() => z.object({\n name: SnakeCaseIdentifierSchema.describe('Webhook unique name (lowercase snake_case)'),\n label: z.string().optional().describe('Human-readable webhook label'),\n \n /** Scope */\n object: z.string().optional().describe('Object to listen to (optional for manual webhooks)'),\n triggers: z.array(WebhookTriggerType).optional().describe('Events that trigger execution'),\n \n /** Target */\n url: z.string().url().describe('External webhook endpoint URL'),\n method: z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE']).default('POST').describe('HTTP method'),\n \n /** Headers */\n headers: z.record(z.string(), z.string()).optional().describe('Custom HTTP headers'),\n \n /** Body/Payload */\n body: z.unknown().optional().describe('Request body payload (if not using default record data)'),\n \n /** Payload Configuration */\n payloadFields: z.array(z.string()).optional().describe('Fields to include. Empty = All'),\n includeSession: z.boolean().default(false).describe('Include user session info'),\n \n /** Authentication */\n authentication: z.object({\n type: z.enum(['none', 'bearer', 'basic', 'api-key']).describe('Authentication type'),\n credentials: z.record(z.string(), z.string()).optional().describe('Authentication credentials'),\n }).optional().describe('Authentication configuration'),\n \n /** Retry Policy */\n retryPolicy: z.object({\n maxRetries: z.number().int().min(0).max(10).default(3).describe('Maximum retry attempts'),\n backoffStrategy: z.enum(['exponential', 'linear', 'fixed']).default('exponential').describe('Backoff strategy'),\n initialDelayMs: z.number().int().min(100).default(1000).describe('Initial retry delay in milliseconds'),\n maxDelayMs: z.number().int().min(1000).default(60000).describe('Maximum retry delay in milliseconds'),\n }).optional().describe('Retry policy configuration'),\n \n /** Timeout */\n timeoutMs: z.number().int().min(1000).max(300000).default(30000).describe('Request timeout in milliseconds'),\n \n /** Security */\n secret: z.string().optional().describe('Signing secret for HMAC signature verification'),\n \n /** Status */\n isActive: z.boolean().default(true).describe('Whether webhook is active'),\n \n /** Metadata */\n description: z.string().optional().describe('Webhook description'),\n tags: z.array(z.string()).optional().describe('Tags for organization'),\n}));\n\n/**\n * Webhook Receiver Schema (Inbound)\n * Handling incoming HTTP hooks from Stripe, Slack, etc.\n * \n * **NAMING CONVENTION:**\n * Webhook receiver names are machine identifiers and must be lowercase snake_case.\n * \n * @example Good names\n * - 'stripe_webhook_handler'\n * - 'github_events'\n * - 'twilio_status_callback'\n * \n * @example Bad names (will be rejected)\n * - 'StripeWebhookHandler' (PascalCase)\n */\nexport const WebhookReceiverSchema = lazySchema(() => z.object({\n name: SnakeCaseIdentifierSchema.describe('Webhook receiver unique name (lowercase snake_case)'),\n path: z.string().describe('URL Path (e.g. /webhooks/stripe)'),\n \n /** Verification */\n verificationType: z.enum(['none', 'header_token', 'hmac', 'ip_whitelist']).default('none'),\n verificationParams: z.object({\n header: z.string().optional(),\n secret: z.string().optional(),\n ips: z.array(z.string()).optional()\n }).optional(),\n \n /** Action */\n action: z.enum(['trigger_flow', 'script', 'upsert_record']).default('trigger_flow'),\n target: z.string().describe('Flow ID or Script name'),\n}));\n\nexport type Webhook = z.infer<typeof WebhookSchema>;\nexport type WebhookReceiver = z.infer<typeof WebhookReceiverSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\nimport { ExpressionInputSchema } from '../shared/expression.zod';\n\n/**\n * Approval Step Approver Type\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const ApproverType = z.enum([\n 'user', // Specific user(s)\n 'role', // Users with specific role (sys_member.role)\n 'team', // Members of a flat collaboration team (sys_team)\n 'department', // Members of a department + all descendant departments (sys_department)\n 'manager', // Submitter's manager (sys_user.manager_id)\n 'field', // User ID defined in a record field\n 'queue' // Data ownership queue\n]);\n\n/**\n * Approval Action Type\n * Actions to execute on transition\n */\nexport const ApprovalActionType = z.enum([\n 'field_update',\n 'email_alert',\n 'webhook',\n 'script',\n 'connector_action', // Added for Zapier-style integrations\n 'inbox_notify', // M11.C15.B — write a sys_notification row\n]);\n\n/**\n * definition of an action to perform\n */\nexport const ApprovalActionSchema = lazySchema(() => z.object({\n type: ApprovalActionType,\n name: z.string().describe('Action name'),\n config: z.record(z.string(), z.unknown()).describe('Action configuration'),\n \n /** For connector actions */\n connectorId: z.string().optional(),\n actionId: z.string().optional(),\n}));\n\n/**\n * Approval Process Step\n */\nexport const ApprovalStepSchema = lazySchema(() => z.object({\n name: SnakeCaseIdentifierSchema.describe('Step machine name'),\n label: z.string().describe('Step display label'),\n description: z.string().optional(),\n \n /** Entry criteria for this step */\n entryCriteria: ExpressionInputSchema.optional().describe('Predicate (CEL) to enter this step.'),\n \n /** Who can approve */\n approvers: z.array(z.object({\n type: ApproverType,\n value: z.string().describe('User ID, Role Name, or Field Name')\n })).min(1).describe('List of allowed approvers'),\n \n /** Approval Logic */\n behavior: z.enum(['first_response', 'unanimous']).default('first_response')\n .describe('How to handle multiple approvers'),\n \n /** Rejection behavior */\n rejectionBehavior: z.enum(['reject_process', 'back_to_previous'])\n .default('reject_process').describe('What happens if rejected'),\n\n /** Actions */\n onApprove: z.array(ApprovalActionSchema).optional().describe('Actions on step approval'),\n onReject: z.array(ApprovalActionSchema).optional().describe('Actions on step rejection'),\n}));\n\n/**\n * Approval Process Protocol\n * \n * Defines a complex review and approval cycle for a record.\n * Manages state locking, notifications, and transition logic.\n */\nexport const ApprovalProcessSchema = lazySchema(() => z.object({\n name: SnakeCaseIdentifierSchema.describe('Unique process name'),\n label: z.string().describe('Human readable label'),\n object: z.string().describe('Target Object Name'),\n \n active: z.boolean().default(false),\n description: z.string().optional(),\n \n /** Entry Criteria for the entire process */\n entryCriteria: ExpressionInputSchema.optional().describe('Predicate (CEL) to allow submission.'),\n \n /** Record Locking */\n lockRecord: z.boolean().default(true).describe('Lock record from editing during approval'),\n\n /**\n * M11.C15.B — name of a field on the business object where the\n * engine mirrors the request status (e.g. `'approval_status'`).\n * Values written: 'pending' | 'approved' | 'rejected' | 'recalled'\n * | 'not_submitted'. The field should be declared as readonly on\n * the object so users can filter / display it but not edit it.\n * If omitted, no status mirror is written and the engine only\n * exposes status via `sys_approval_request`.\n */\n approvalStatusField: z.string().optional().describe(\n 'Field name on the business object to mirror the request status.',\n ),\n \n /** Steps */\n steps: z.array(ApprovalStepSchema).min(1).describe('Sequence of approval steps'),\n\n /** Escalation Configuration (SLA-based auto-escalation) */\n escalation: z.object({\n enabled: z.boolean().default(false).describe('Enable SLA-based escalation'),\n timeoutHours: z.number().min(1).describe('Hours before escalation triggers'),\n action: z.enum(['reassign', 'auto_approve', 'auto_reject', 'notify']).default('notify').describe('Action to take on escalation timeout'),\n escalateTo: z.string().optional().describe('User ID, role, or manager level to escalate to'),\n notifySubmitter: z.boolean().default(true).describe('Notify the original submitter on escalation'),\n }).optional().describe('SLA escalation configuration for pending approval steps'),\n \n /** Global Actions */\n onSubmit: z.array(ApprovalActionSchema).optional().describe('Actions on initial submission'),\n onFinalApprove: z.array(ApprovalActionSchema).optional().describe('Actions on final approval'),\n onFinalReject: z.array(ApprovalActionSchema).optional().describe('Actions on final rejection'),\n onRecall: z.array(ApprovalActionSchema).optional().describe('Actions on recall'),\n}));\n\nexport const ApprovalProcess = Object.assign(ApprovalProcessSchema, {\n create: <T extends z.input<typeof ApprovalProcessSchema>>(config: T) => config,\n});\n\nexport type ApprovalProcess = z.infer<typeof ApprovalProcessSchema>;\nexport type ApprovalStep = z.infer<typeof ApprovalStepSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { defineForm } from '../ui/view.zod';\n\n/**\n * Approval Process Metadata Form\n * \n * Form layout for creating/editing approval process metadata definitions.\n */\nexport const approvalForm = defineForm({\n schemaId: 'approval',\n type: 'simple',\n sections: [\n {\n label: 'Basics',\n description: 'Approval process identity and the object it gates.',\n columns: 2,\n fields: [\n { field: 'name', required: true, colSpan: 1, helpText: 'Unique identifier (snake_case)' },\n { field: 'label', required: true, colSpan: 1, helpText: 'Display name (e.g., \"Contract Approval\")' },\n { field: 'object', widget: 'ref:object', required: true, colSpan: 1, helpText: 'Which object needs approval' },\n { field: 'active', colSpan: 1, helpText: 'Enable/disable this approval process' },\n { field: 'description', widget: 'textarea', colSpan: 2, helpText: 'What gets approved and why' },\n ],\n },\n {\n label: 'Entry rules',\n description: 'Who can submit, and what happens to the record while pending.',\n collapsible: true,\n collapsed: true,\n fields: [\n { field: 'entryCriteria', widget: 'textarea', helpText: 'CEL expression: users can submit only when this is true' },\n { field: 'lockRecord', helpText: 'Lock record from editing while approval is pending' },\n { field: 'approvalStatusField', helpText: 'Field name to mirror approval status (e.g., \"approval_status\")' },\n ],\n },\n {\n label: 'Steps',\n description: 'Ordered approval chain — each step picks the approver and decides routing.',\n fields: [\n {\n field: 'steps',\n type: 'repeater',\n required: true,\n helpText: 'Approval steps in order — each step defines who approves and what happens',\n },\n ],\n },\n {\n label: 'Escalation & outcomes',\n description: 'SLA, escalation, and post-decision actions.',\n collapsible: true,\n collapsed: true,\n fields: [\n { field: 'escalation', type: 'composite', helpText: 'Auto-escalate or auto-approve after timeout' },\n { field: 'onFinalApprove', type: 'repeater', helpText: 'Actions when all steps approved (e.g., update status)' },\n { field: 'onFinalReject', type: 'repeater', helpText: 'Actions when rejected (e.g., notify submitter)' },\n ],\n },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { CronExpressionInputSchema } from '../shared/expression.zod';\n\n/**\n * ETL (Extract, Transform, Load) Pipeline Protocol - LEVEL 2: Data Engineering\n * \n * Inspired by modern data integration platforms like Airbyte, Fivetran, and Apache NiFi.\n * \n * **Positioning in 3-Layer Architecture:**\n * - **L1: Simple Sync** (automation/sync.zod.ts) - Business users - Sync Salesforce to Sheets\n * - **L2: ETL Pipeline** (THIS FILE) - Data engineers - Aggregate 10 sources to warehouse\n * - **L3: Enterprise Connector** (integration/connector.zod.ts) - System integrators - Full SAP integration\n * \n * ETL pipelines enable automated data synchronization between systems, transforming\n * data as it moves from source to destination.\n * \n * **SCOPE: Advanced multi-source, multi-stage transformations.**\n * Supports complex operations: joins, aggregations, filtering, custom SQL.\n * \n * ## When to Use This Layer\n * \n * **Use ETL Pipeline when:**\n * - Combining data from multiple sources\n * - Need aggregations, joins, transformations\n * - Building data warehouses or analytics platforms\n * - Complex data transformations required\n * \n * **Examples:**\n * - Sales data from Salesforce + Marketing from HubSpot → Data Warehouse\n * - Multi-region databases → Consolidated reporting\n * - Legacy system migration with transformation\n * \n * **When to downgrade:**\n * - Simple 1:1 sync → Use {@link file://./sync.zod.ts | Simple Sync}\n * \n * **When to upgrade:**\n * - Need full connector lifecycle (auth, webhooks, rate limits) → Use {@link file://../integration/connector.zod.ts | Enterprise Connector}\n * \n * @see {@link file://./sync.zod.ts} for Level 1 (simple sync)\n * @see {@link file://../integration/connector.zod.ts} for Level 3 (enterprise integration)\n * \n * ## Use Cases\n * \n * 1. **Data Warehouse Population**\n * - Extract from multiple operational systems\n * - Transform to analytical schema\n * - Load into data warehouse\n * \n * 2. **System Integration**\n * - Sync data between CRM and Marketing Automation\n * - Keep product catalog synchronized across e-commerce platforms\n * - Replicate data for backup/disaster recovery\n * \n * 3. **Data Migration**\n * - Move data from legacy systems to modern platforms\n * - Consolidate data from multiple sources\n * - Split monolithic databases into microservices\n * \n * @see https://airbyte.com/\n * @see https://docs.fivetran.com/\n * @see https://nifi.apache.org/\n * \n * @example\n * ```typescript\n * const salesforceToDB: ETLPipeline = {\n * name: 'salesforce_to_postgres',\n * label: 'Salesforce Accounts to PostgreSQL',\n * source: {\n * type: 'api',\n * connector: 'salesforce',\n * config: { object: 'Account' }\n * },\n * destination: {\n * type: 'database',\n * connector: 'postgres',\n * config: { table: 'accounts' }\n * },\n * transformations: [\n * { type: 'map', config: { 'Name': 'account_name' } }\n * ],\n * schedule: '0 2 * * *' // Daily at 2 AM\n * }\n * ```\n */\n\n/**\n * ETL Source/Destination Type\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const ETLEndpointTypeSchema = lazySchema(() => z.enum([\n 'database', // SQL/NoSQL databases\n 'api', // REST/GraphQL APIs\n 'file', // CSV, JSON, XML, Excel files\n 'stream', // Kafka, RabbitMQ, Kinesis\n 'object', // ObjectStack object\n 'warehouse', // Data warehouse (Snowflake, BigQuery, Redshift)\n 'storage', // S3, Azure Blob, Google Cloud Storage\n 'spreadsheet', // Google Sheets, Excel Online\n]));\n\nexport type ETLEndpointType = z.infer<typeof ETLEndpointTypeSchema>;\n\n/**\n * ETL Source Configuration\n */\nexport const ETLSourceSchema = lazySchema(() => z.object({\n /**\n * Source type\n */\n type: ETLEndpointTypeSchema.describe('Source type'),\n\n /**\n * Connector identifier\n * References a registered connector\n * \n * @example \"salesforce\", \"postgres\", \"mysql\", \"s3\"\n */\n connector: z.string().optional().describe('Connector ID'),\n\n /**\n * Source-specific configuration\n * Structure varies by source type\n * \n * @example For database: { table: 'customers', schema: 'public' }\n * @example For API: { endpoint: '/api/users', method: 'GET' }\n * @example For file: { path: 's3://bucket/data.csv', format: 'csv' }\n */\n config: z.record(z.string(), z.unknown()).describe('Source configuration'),\n\n /**\n * Incremental sync configuration\n * Allows extracting only changed data\n */\n incremental: z.object({\n enabled: z.boolean().default(false),\n cursorField: z.string().describe('Field to track progress (e.g., updated_at)'),\n cursorValue: z.unknown().optional().describe('Last processed value'),\n }).optional().describe('Incremental extraction config'),\n}));\n\nexport type ETLSource = z.infer<typeof ETLSourceSchema>;\n\n/**\n * ETL Destination Configuration\n */\nexport const ETLDestinationSchema = lazySchema(() => z.object({\n /**\n * Destination type\n */\n type: ETLEndpointTypeSchema.describe('Destination type'),\n\n /**\n * Connector identifier\n */\n connector: z.string().optional().describe('Connector ID'),\n\n /**\n * Destination-specific configuration\n */\n config: z.record(z.string(), z.unknown()).describe('Destination configuration'),\n\n /**\n * Write mode\n */\n writeMode: z.enum([\n 'append', // Add new records\n 'overwrite', // Replace all data\n 'upsert', // Insert or update based on key\n 'merge', // Smart merge based on business rules\n ]).default('append').describe('How to write data'),\n\n /**\n * Primary key fields for upsert/merge\n */\n primaryKey: z.array(z.string()).optional().describe('Primary key fields'),\n}));\n\nexport type ETLDestination = z.infer<typeof ETLDestinationSchema>;\n\n/**\n * ETL Transformation Type\n */\nexport const ETLTransformationTypeSchema = lazySchema(() => z.enum([\n 'map', // Field mapping/renaming\n 'filter', // Row filtering\n 'aggregate', // Aggregation/grouping\n 'join', // Joining with other data\n 'script', // Custom JavaScript/Python script\n 'lookup', // Enrich with lookup data\n 'split', // Split one record into multiple\n 'merge', // Merge multiple records into one\n 'normalize', // Data normalization\n 'deduplicate', // Remove duplicates\n]));\n\nexport type ETLTransformationType = z.infer<typeof ETLTransformationTypeSchema>;\n\n/**\n * ETL Transformation Configuration\n */\nexport const ETLTransformationSchema = lazySchema(() => z.object({\n /**\n * Transformation name\n */\n name: z.string().optional().describe('Transformation name'),\n\n /**\n * Transformation type\n */\n type: ETLTransformationTypeSchema.describe('Transformation type'),\n\n /**\n * Transformation-specific configuration\n * \n * @example For map: { oldField: 'newField' }\n * @example For filter: { condition: 'status == \"active\"' }\n * @example For script: { language: 'javascript', code: '...' }\n */\n config: z.record(z.string(), z.unknown()).describe('Transformation config'),\n\n /**\n * Whether to continue on error\n */\n continueOnError: z.boolean().default(false).describe('Continue on error'),\n}));\n\nexport type ETLTransformation = z.infer<typeof ETLTransformationSchema>;\n\n/**\n * ETL Sync Mode\n */\nexport const ETLSyncModeSchema = lazySchema(() => z.enum([\n 'full', // Full refresh - extract all data every time\n 'incremental', // Only extract changed data\n 'cdc', // Change Data Capture - real-time streaming\n]));\n\nexport type ETLSyncMode = z.infer<typeof ETLSyncModeSchema>;\n\n/**\n * ETL Pipeline Schema\n * \n * Complete definition of a data pipeline from source to destination with transformations.\n */\nexport const ETLPipelineSchema = lazySchema(() => z.object({\n /**\n * Pipeline identifier (snake_case)\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Pipeline identifier (snake_case)'),\n\n /**\n * Human-readable pipeline name\n */\n label: z.string().optional().describe('Pipeline display name'),\n\n /**\n * Pipeline description\n */\n description: z.string().optional().describe('Pipeline description'),\n\n /**\n * Data source configuration\n */\n source: ETLSourceSchema.describe('Data source'),\n\n /**\n * Data destination configuration\n */\n destination: ETLDestinationSchema.describe('Data destination'),\n\n /**\n * Transformation steps\n * Applied in order from source to destination\n */\n transformations: z.array(ETLTransformationSchema)\n .optional()\n .describe('Transformation pipeline'),\n\n /**\n * Sync mode\n */\n syncMode: ETLSyncModeSchema.default('full').describe('Sync mode'),\n\n /**\n * Execution schedule (cron expression)\n * \n * @example \"0 2 * * *\" - Daily at 2 AM\n * @example \"0 *\\/4 * * *\" - Every 4 hours\n * @example \"0 0 * * 0\" - Weekly on Sunday\n */\n schedule: CronExpressionInputSchema.optional().describe('Cron schedule expression'),\n\n /**\n * Whether pipeline is enabled\n */\n enabled: z.boolean().default(true).describe('Pipeline enabled status'),\n\n /**\n * Retry configuration for failed runs\n */\n retry: z.object({\n maxAttempts: z.number().int().min(0).default(3).describe('Max retry attempts'),\n backoffMs: z.number().int().min(0).default(60000).describe('Backoff in milliseconds'),\n }).optional().describe('Retry configuration'),\n\n /**\n * Notification configuration\n */\n notifications: z.object({\n onSuccess: z.array(z.string()).optional().describe('Email addresses for success notifications'),\n onFailure: z.array(z.string()).optional().describe('Email addresses for failure notifications'),\n }).optional().describe('Notification settings'),\n\n /**\n * Pipeline tags for organization\n */\n tags: z.array(z.string()).optional().describe('Pipeline tags'),\n\n /**\n * Custom metadata\n */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Custom metadata'),\n}));\n\nexport type ETLPipeline = z.infer<typeof ETLPipelineSchema>;\n\n/**\n * ETL Run Status\n */\nexport const ETLRunStatusSchema = lazySchema(() => z.enum([\n 'pending', // Queued for execution\n 'running', // Currently executing\n 'succeeded', // Completed successfully\n 'failed', // Failed with errors\n 'cancelled', // Manually cancelled\n 'timeout', // Timed out\n]));\n\nexport type ETLRunStatus = z.infer<typeof ETLRunStatusSchema>;\n\n/**\n * ETL Pipeline Run Result\n * \n * Result of a pipeline execution\n */\nexport const ETLPipelineRunSchema = lazySchema(() => z.object({\n /**\n * Run ID\n */\n id: z.string().describe('Run identifier'),\n\n /**\n * Pipeline name\n */\n pipelineName: z.string().describe('Pipeline name'),\n\n /**\n * Run status\n */\n status: ETLRunStatusSchema.describe('Run status'),\n\n /**\n * Start timestamp\n */\n startedAt: z.string().datetime().describe('Start time'),\n\n /**\n * End timestamp\n */\n completedAt: z.string().datetime().optional().describe('Completion time'),\n\n /**\n * Duration in milliseconds\n */\n durationMs: z.number().optional().describe('Duration in ms'),\n\n /**\n * Statistics\n */\n stats: z.object({\n recordsRead: z.number().int().default(0).describe('Records extracted'),\n recordsWritten: z.number().int().default(0).describe('Records loaded'),\n recordsErrored: z.number().int().default(0).describe('Records with errors'),\n bytesProcessed: z.number().int().default(0).describe('Bytes processed'),\n }).optional().describe('Run statistics'),\n\n /**\n * Error information\n */\n error: z.object({\n message: z.string().describe('Error message'),\n code: z.string().optional().describe('Error code'),\n details: z.unknown().optional().describe('Error details'),\n }).optional().describe('Error information'),\n\n /**\n * Execution logs\n */\n logs: z.array(z.string()).optional().describe('Execution logs'),\n}));\n\nexport type ETLPipelineRun = z.infer<typeof ETLPipelineRunSchema>;\n\n/**\n * Helper factory for creating ETL pipelines\n */\nexport const ETL = {\n /**\n * Create a simple database-to-database pipeline\n */\n databaseSync: (params: {\n name: string;\n sourceTable: string;\n destTable: string;\n schedule?: import(\"../shared/expression.zod\").CronExpressionInput;\n }): ETLPipeline => ({\n name: params.name,\n source: {\n type: 'database',\n config: { table: params.sourceTable },\n },\n destination: {\n type: 'database',\n config: { table: params.destTable },\n writeMode: 'upsert',\n },\n syncMode: 'incremental',\n schedule: typeof params.schedule === 'string' ? { dialect: 'cron', source: params.schedule } : params.schedule,\n enabled: true,\n }),\n\n /**\n * Create an API to database pipeline\n */\n apiToDatabase: (params: {\n name: string;\n apiConnector: string;\n destTable: string;\n schedule?: import(\"../shared/expression.zod\").CronExpressionInput;\n }): ETLPipeline => ({\n name: params.name,\n source: {\n type: 'api',\n connector: params.apiConnector,\n config: {},\n },\n destination: {\n type: 'database',\n config: { table: params.destTable },\n writeMode: 'append',\n },\n syncMode: 'full',\n schedule: typeof params.schedule === 'string' ? { dialect: 'cron', source: params.schedule } : params.schedule,\n enabled: true,\n }),\n} as const;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Trigger Registry Protocol\n * \n * Lightweight automation triggers for simple integrations.\n * Inspired by Zapier, n8n, and Workato connector architectures.\n * \n * ## When to use Trigger Registry vs. Integration Connector?\n * \n * **Use `automation/trigger-registry.zod.ts` when:**\n * - Building simple automation triggers (e.g., \"when Slack message received, create task\")\n * - No complex authentication needed (simple API keys, basic auth)\n * - Lightweight, single-purpose integrations\n * - Quick setup with minimal configuration\n * - Webhook-based or polling triggers for automation workflows\n * \n * **Use `integration/connector.zod.ts` when:**\n * - Building enterprise-grade connectors (e.g., Salesforce, SAP, Oracle)\n * - Complex OAuth2/SAML authentication required\n * - Bidirectional sync with field mapping and transformations\n * - Webhook management and rate limiting required\n * - Full CRUD operations and data synchronization\n * \n * ## Use Cases\n * \n * 1. **Simple Automation Triggers**\n * - Slack notifications on record updates\n * - Twilio SMS on workflow events\n * - SendGrid email templates\n * \n * 2. **Lightweight Operations**\n * - Single-action integrations (send, notify, log)\n * - No bidirectional sync required\n * - Webhook receivers for incoming events\n * \n * 3. **Quick Integrations**\n * - Payment webhooks (Stripe, PayPal)\n * - Communication triggers (Twilio, SendGrid, Slack)\n * - Simple API calls to third-party services\n * \n * @see https://zapier.com/developer/documentation/v2/\n * @see https://docs.n8n.io/integrations/creating-nodes/\n * @see ../../integration/connector.zod.ts for enterprise connectors\n * \n * @example\n * ```typescript\n * const slackNotifier: Connector = {\n * id: 'slack_notify',\n * name: 'Slack Notification',\n * category: 'communication',\n * authentication: {\n * type: 'apiKey',\n * fields: [{ name: 'webhook_url', label: 'Webhook URL', type: 'url' }]\n * },\n * operations: [\n * { id: 'send_message', name: 'Send Message', type: 'action' }\n * ]\n * }\n * ```\n */\n\n/**\n * Connector Category\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const ConnectorCategorySchema = lazySchema(() => z.enum([\n 'crm', // Customer Relationship Management\n 'payment', // Payment processors\n 'communication', // Email, SMS, Chat\n 'storage', // File storage\n 'analytics', // Analytics platforms\n 'database', // Databases\n 'marketing', // Marketing automation\n 'accounting', // Accounting software\n 'hr', // Human resources\n 'productivity', // Productivity tools\n 'ecommerce', // E-commerce platforms\n 'support', // Customer support\n 'devtools', // Developer tools\n 'social', // Social media\n 'other', // Other category\n]));\n\nexport type ConnectorCategory = z.infer<typeof ConnectorCategorySchema>;\n\n/**\n * Authentication Type\n */\nexport const AuthenticationTypeSchema = lazySchema(() => z.enum([\n 'none', // No authentication\n 'apiKey', // API key\n 'basic', // Basic auth (username/password)\n 'bearer', // Bearer token\n 'oauth1', // OAuth 1.0\n 'oauth2', // OAuth 2.0\n 'custom', // Custom authentication\n]));\n\nexport type AuthenticationType = z.infer<typeof AuthenticationTypeSchema>;\n\n/**\n * Authentication Field Schema\n */\nexport const AuthFieldSchema = lazySchema(() => z.object({\n /**\n * Field name (machine name)\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Field name (snake_case)'),\n\n /**\n * Field label\n */\n label: z.string().describe('Field label'),\n\n /**\n * Field type\n */\n type: z.enum(['text', 'password', 'url', 'select'])\n .default('text')\n .describe('Field type'),\n\n /**\n * Field description\n */\n description: z.string().optional().describe('Field description'),\n\n /**\n * Whether field is required\n */\n required: z.boolean().default(true).describe('Required field'),\n\n /**\n * Default value\n */\n default: z.string().optional().describe('Default value'),\n\n /**\n * Options for select fields\n */\n options: z.array(z.object({\n label: z.string(),\n value: z.string(),\n })).optional().describe('Select field options'),\n\n /**\n * Placeholder text\n */\n placeholder: z.string().optional().describe('Placeholder text'),\n}));\n\nexport type AuthField = z.infer<typeof AuthFieldSchema>;\n\n/**\n * OAuth 2.0 Configuration\n */\nexport const OAuth2ConfigSchema = lazySchema(() => z.object({\n /**\n * Authorization URL\n */\n authorizationUrl: z.string().url().describe('Authorization endpoint URL'),\n\n /**\n * Token URL\n */\n tokenUrl: z.string().url().describe('Token endpoint URL'),\n\n /**\n * Scopes to request\n */\n scopes: z.array(z.string()).optional().describe('OAuth scopes'),\n\n /**\n * Client ID field name\n */\n clientIdField: z.string().default('client_id').describe('Client ID field name'),\n\n /**\n * Client secret field name\n */\n clientSecretField: z.string().default('client_secret').describe('Client secret field name'),\n}));\n\nexport type OAuth2Config = z.infer<typeof OAuth2ConfigSchema>;\n\n/**\n * Authentication Configuration\n */\nexport const AuthenticationSchema = lazySchema(() => z.object({\n /**\n * Authentication type\n */\n type: AuthenticationTypeSchema.describe('Authentication type'),\n\n /**\n * Authentication fields\n * Configuration fields needed for this auth type\n */\n fields: z.array(AuthFieldSchema).optional().describe('Authentication fields'),\n\n /**\n * OAuth 2.0 configuration (when type is oauth2)\n */\n oauth2: OAuth2ConfigSchema.optional().describe('OAuth 2.0 configuration'),\n\n /**\n * Test authentication instructions\n */\n test: z.object({\n url: z.string().optional().describe('Test endpoint URL'),\n method: z.enum(['GET', 'POST', 'PUT', 'DELETE']).default('GET').describe('HTTP method'),\n }).optional().describe('Authentication test configuration'),\n}));\n\nexport type Authentication = z.infer<typeof AuthenticationSchema>;\n\n/**\n * Connector Operation Type\n */\nexport const OperationTypeSchema = lazySchema(() => z.enum([\n 'read', // Read/query data\n 'write', // Create/update data\n 'delete', // Delete data\n 'search', // Search operation\n 'trigger', // Webhook/polling trigger\n 'action', // Custom action\n]));\n\nexport type OperationType = z.infer<typeof OperationTypeSchema>;\n\n/**\n * Operation Parameter Schema\n */\nexport const OperationParameterSchema = lazySchema(() => z.object({\n /**\n * Parameter name\n */\n name: z.string().describe('Parameter name'),\n\n /**\n * Parameter label\n */\n label: z.string().describe('Parameter label'),\n\n /**\n * Parameter description\n */\n description: z.string().optional().describe('Parameter description'),\n\n /**\n * Parameter type\n */\n type: z.enum(['string', 'number', 'boolean', 'array', 'object', 'date', 'file'])\n .describe('Parameter type'),\n\n /**\n * Whether parameter is required\n */\n required: z.boolean().default(false).describe('Required parameter'),\n\n /**\n * Default value\n */\n default: z.unknown().optional().describe('Default value'),\n\n /**\n * Validation schema\n */\n validation: z.record(z.string(), z.unknown()).optional().describe('Validation rules'),\n\n /**\n * Dynamic options function\n */\n dynamicOptions: z.string().optional().describe('Function to load dynamic options'),\n}));\n\nexport type OperationParameter = z.infer<typeof OperationParameterSchema>;\n\n/**\n * Connector Operation Schema\n */\nexport const ConnectorOperationSchema = lazySchema(() => z.object({\n /**\n * Operation identifier\n */\n id: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Operation ID (snake_case)'),\n\n /**\n * Operation name\n */\n name: z.string().describe('Operation name'),\n\n /**\n * Operation description\n */\n description: z.string().optional().describe('Operation description'),\n\n /**\n * Operation type\n */\n type: OperationTypeSchema.describe('Operation type'),\n\n /**\n * Input parameters\n */\n inputSchema: z.array(OperationParameterSchema)\n .optional()\n .describe('Input parameters'),\n\n /**\n * Output schema\n */\n outputSchema: z.record(z.string(), z.unknown())\n .optional()\n .describe('Output schema'),\n\n /**\n * Sample output for documentation\n */\n sampleOutput: z.unknown().optional().describe('Sample output'),\n\n /**\n * Whether operation supports pagination\n */\n supportsPagination: z.boolean().default(false).describe('Supports pagination'),\n\n /**\n * Whether operation supports filtering\n */\n supportsFiltering: z.boolean().default(false).describe('Supports filtering'),\n}));\n\nexport type ConnectorOperation = z.infer<typeof ConnectorOperationSchema>;\n\n/**\n * Connector Trigger Schema\n * \n * Triggers are special operations that watch for events and initiate workflows.\n */\nexport const ConnectorTriggerSchema = lazySchema(() => z.object({\n /**\n * Trigger identifier\n */\n id: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Trigger ID (snake_case)'),\n\n /**\n * Trigger name\n */\n name: z.string().describe('Trigger name'),\n\n /**\n * Trigger description\n */\n description: z.string().optional().describe('Trigger description'),\n\n /**\n * Trigger type\n */\n type: z.enum(['webhook', 'polling', 'stream'])\n .describe('Trigger mechanism'),\n\n /**\n * Trigger configuration\n */\n config: z.record(z.string(), z.unknown())\n .optional()\n .describe('Trigger configuration'),\n\n /**\n * Output schema\n */\n outputSchema: z.record(z.string(), z.unknown())\n .optional()\n .describe('Event payload schema'),\n\n /**\n * Polling interval (for polling triggers)\n * In milliseconds\n */\n pollingIntervalMs: z.number().int().min(1000)\n .optional()\n .describe('Polling interval in ms'),\n}));\n\nexport type ConnectorTrigger = z.infer<typeof ConnectorTriggerSchema>;\n\n/**\n * Connector Schema\n * \n * Complete definition of a connector to an external system.\n */\nexport const ConnectorSchema = lazySchema(() => z.object({\n /**\n * Connector identifier\n * Must be globally unique\n */\n id: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Connector ID (snake_case)'),\n\n /**\n * Connector name\n */\n name: z.string().describe('Connector name'),\n\n /**\n * Connector description\n */\n description: z.string().optional().describe('Connector description'),\n\n /**\n * Connector version (semver)\n */\n version: z.string().optional().describe('Connector version'),\n\n /**\n * Connector icon URL or name\n */\n icon: z.string().optional().describe('Connector icon'),\n\n /**\n * Connector category\n */\n category: ConnectorCategorySchema.describe('Connector category'),\n\n /**\n * Base URL for API calls\n */\n baseUrl: z.string().url().optional().describe('API base URL'),\n\n /**\n * Authentication configuration\n */\n authentication: AuthenticationSchema.describe('Authentication config'),\n\n /**\n * Available operations\n */\n operations: z.array(ConnectorOperationSchema)\n .optional()\n .describe('Connector operations'),\n\n /**\n * Available triggers\n */\n triggers: z.array(ConnectorTriggerSchema)\n .optional()\n .describe('Connector triggers'),\n\n /**\n * Rate limiting information\n */\n rateLimit: z.object({\n requestsPerSecond: z.number().optional().describe('Max requests per second'),\n requestsPerMinute: z.number().optional().describe('Max requests per minute'),\n requestsPerHour: z.number().optional().describe('Max requests per hour'),\n }).optional().describe('Rate limiting'),\n\n /**\n * Connector author\n */\n author: z.string().optional().describe('Connector author'),\n\n /**\n * Documentation URL\n */\n documentation: z.string().url().optional().describe('Documentation URL'),\n\n /**\n * Homepage URL\n */\n homepage: z.string().url().optional().describe('Homepage URL'),\n\n /**\n * License\n */\n license: z.string().optional().describe('License (SPDX identifier)'),\n\n /**\n * Tags for discovery\n */\n tags: z.array(z.string()).optional().describe('Connector tags'),\n\n /**\n * Whether connector is verified/certified\n */\n verified: z.boolean().default(false).describe('Verified connector'),\n\n /**\n * Custom metadata\n */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Custom metadata'),\n}));\n\nexport type Connector = z.infer<typeof ConnectorSchema>;\n\n/**\n * Connector Instance Schema\n * \n * A configured instance of a connector with credentials.\n */\nexport const ConnectorInstanceSchema = lazySchema(() => z.object({\n /**\n * Instance ID\n */\n id: z.string().describe('Instance ID'),\n\n /**\n * Connector ID this instance uses\n */\n connectorId: z.string().describe('Connector ID'),\n\n /**\n * Instance name\n */\n name: z.string().describe('Instance name'),\n\n /**\n * Instance description\n */\n description: z.string().optional().describe('Instance description'),\n\n /**\n * Authentication credentials (encrypted)\n */\n credentials: z.record(z.string(), z.unknown()).describe('Encrypted credentials'),\n\n /**\n * Additional configuration\n */\n config: z.record(z.string(), z.unknown()).optional().describe('Additional config'),\n\n /**\n * Whether instance is active\n */\n active: z.boolean().default(true).describe('Instance active status'),\n\n /**\n * Created timestamp\n */\n createdAt: z.string().datetime().optional().describe('Creation time'),\n\n /**\n * Last tested timestamp\n */\n lastTestedAt: z.string().datetime().optional().describe('Last test time'),\n\n /**\n * Test status\n */\n testStatus: z.enum(['unknown', 'success', 'failed'])\n .default('unknown')\n .describe('Connection test status'),\n}));\n\nexport type ConnectorInstance = z.infer<typeof ConnectorInstanceSchema>;\n\n/**\n * Helper factory for creating connectors\n */\nexport const Connector = {\n /**\n * Create a basic API key connector\n */\n apiKey: (params: {\n id: string;\n name: string;\n category: ConnectorCategory;\n baseUrl: string;\n }): Connector => ({\n id: params.id,\n name: params.name,\n category: params.category,\n baseUrl: params.baseUrl,\n authentication: {\n type: 'apiKey',\n fields: [\n {\n name: 'api_key',\n label: 'API Key',\n type: 'password',\n required: true,\n },\n ],\n },\n verified: false,\n }),\n\n /**\n * Create an OAuth 2.0 connector\n */\n oauth2: (params: {\n id: string;\n name: string;\n category: ConnectorCategory;\n baseUrl: string;\n authUrl: string;\n tokenUrl: string;\n scopes?: string[];\n }): Connector => ({\n id: params.id,\n name: params.name,\n category: params.category,\n baseUrl: params.baseUrl,\n authentication: {\n type: 'oauth2',\n oauth2: {\n authorizationUrl: params.authUrl,\n tokenUrl: params.tokenUrl,\n clientIdField: 'client_id',\n clientSecretField: 'client_secret',\n scopes: params.scopes,\n },\n },\n verified: false,\n }),\n} as const;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { ExpressionInputSchema } from './expression.zod';\n\n/**\n * Base Field Mapping Protocol\n * \n * Shared by: ETL, Sync, Connector, External Lookup\n * \n * This module provides the canonical field mapping schema used across\n * ObjectStack for data transformation and synchronization.\n * \n * **Use Cases:**\n * - ETL pipelines (data/mapping.zod.ts)\n * - Data synchronization (automation/sync.zod.ts)\n * - Integration connectors (integration/connector.zod.ts)\n * - External lookups (data/external-lookup.zod.ts)\n * \n * @example Basic field mapping\n * ```typescript\n * const mapping: FieldMapping = {\n * source: 'external_user_id',\n * target: 'user_id',\n * };\n * ```\n * \n * @example With transformation\n * ```typescript\n * const mapping: FieldMapping = {\n * source: 'user_name',\n * target: 'name',\n * transform: { type: 'cast', targetType: 'string' },\n * defaultValue: 'Unknown'\n * };\n * ```\n */\n\n/**\n * Transform Type Schema\n * \n * Defines the type of transformation to apply to a field value.\n * Implementations can extend this for domain-specific transforms.\n */\nimport { lazySchema } from './lazy-schema';\nexport const TransformTypeSchema = lazySchema(() => z.discriminatedUnion('type', [\n z.object({\n type: z.literal('constant'),\n value: z.unknown().describe('Constant value to use'),\n }).describe('Set a constant value'),\n \n z.object({\n type: z.literal('cast'),\n targetType: z.enum(['string', 'number', 'boolean', 'date']).describe('Target data type'),\n }).describe('Cast to a specific data type'),\n \n z.object({\n type: z.literal('lookup'),\n table: z.string().describe('Lookup table name'),\n keyField: z.string().describe('Field to match on'),\n valueField: z.string().describe('Field to retrieve'),\n }).describe('Lookup value from another table'),\n \n z.object({\n type: z.literal('javascript'),\n expression: ExpressionInputSchema.describe('JS expression (dialect=\"js\" recommended). e.g. value.toUpperCase()'),\n }).describe('Custom JavaScript transformation'),\n \n z.object({\n type: z.literal('map'),\n mappings: z.record(z.string(), z.unknown()).describe('Value mappings (e.g., {\"Active\": \"active\"})'),\n }).describe('Map values using a dictionary'),\n]));\n\nexport type TransformType = z.infer<typeof TransformTypeSchema>;\n\n/**\n * Field Mapping Schema\n * \n * Base schema for mapping fields between source and target systems.\n * \n * **NAMING CONVENTION:**\n * - source: Field name in the source system\n * - target: Field name in the target system (should be snake_case for ObjectStack)\n * \n * @example\n * ```typescript\n * {\n * source: 'FirstName',\n * target: 'first_name',\n * transform: { type: 'cast', targetType: 'string' },\n * defaultValue: ''\n * }\n * ```\n */\nexport const FieldMappingSchema = lazySchema(() => z.object({\n /**\n * Source field name\n */\n source: z.string().describe('Source field name'),\n \n /**\n * Target field name (should be snake_case for ObjectStack)\n */\n target: z.string().describe('Target field name'),\n \n /**\n * Transformation to apply\n */\n transform: TransformTypeSchema.optional().describe('Transformation to apply'),\n \n /**\n * Default value if source is null/undefined\n */\n defaultValue: z.unknown().optional().describe('Default if source is null/undefined'),\n}));\n\nexport type FieldMapping = z.infer<typeof FieldMappingSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { FieldMappingSchema } from '../shared/mapping.zod';\nimport { ExpressionInputSchema, CronExpressionInputSchema } from '../shared/expression.zod';\n\n/**\n * Data Sync Protocol - LEVEL 1: Simple Synchronization\n * \n * Inspired by Salesforce Connect, Segment Sync, and Census Reverse ETL.\n * \n * **Positioning in 3-Layer Architecture:**\n * - **L1: Simple Sync** (THIS FILE) - Business users - Sync Salesforce to Sheets\n * - **L2: ETL Pipeline** (automation/etl.zod.ts) - Data engineers - Aggregate 10 sources to warehouse\n * - **L3: Enterprise Connector** (integration/connector.zod.ts) - System integrators - Full SAP integration\n * \n * Data sync provides bidirectional or unidirectional data synchronization\n * between ObjectStack and external systems, maintaining data consistency\n * across platforms.\n * \n * **SCOPE: Simple field mappings only. NO complex transformations.**\n * For complex transformations (joins, aggregates, custom SQL), use ETL Pipeline (Level 2).\n * \n * ## When to Use This Layer\n * \n * **Use Simple Sync when:**\n * - Syncing 1:1 fields between two systems\n * - Simple field transformations (uppercase, cast, etc.)\n * - No complex logic required\n * - Business users need to configure integrations\n * \n * **Examples:**\n * - Salesforce Contact ↔ Google Sheets\n * - HubSpot Company ↔ CRM Account\n * - Shopify Orders → Accounting System\n * \n * **When to upgrade:**\n * - Need multi-source joins → Use {@link file://./etl.zod.ts | ETL Pipeline}\n * - Need complex authentication/webhooks → Use {@link file://../integration/connector.zod.ts | Enterprise Connector}\n * - Need aggregations or data warehousing → Use {@link file://./etl.zod.ts | ETL Pipeline}\n * \n * @see {@link file://./etl.zod.ts} for Level 2 (data engineering)\n * @see {@link file://../integration/connector.zod.ts} for Level 3 (enterprise integration)\n * \n * ## Use Cases\n * \n * 1. **CRM Integration**\n * - Sync contacts between ObjectStack and Salesforce\n * - Keep opportunity data synchronized\n * - Bidirectional updates\n * \n * 2. **Customer Data Platform (CDP)**\n * - Sync user profiles to Segment\n * - Enrichment data from Clearbit\n * - Marketing automation sync\n * \n * 3. **Operational Analytics**\n * - Sync production data to analytics warehouse\n * - Real-time dashboards\n * - Business intelligence\n * \n * @see https://help.salesforce.com/s/articleView?id=sf.platform_connect_about.htm\n * @see https://segment.com/docs/connections/sync/\n * @see https://www.getcensus.com/\n * \n * @example\n * ```typescript\n * const contactSync: DataSyncConfig = {\n * name: 'salesforce_contact_sync',\n * label: 'Salesforce Contact Sync',\n * source: {\n * object: 'contact',\n * filters: { status: 'active' }\n * },\n * destination: {\n * connector: 'salesforce',\n * operation: 'upsert_contact',\n * mapping: {\n * first_name: 'FirstName',\n * last_name: 'LastName',\n * email: 'Email'\n * }\n * },\n * syncMode: 'incremental',\n * schedule: '0 * * * *' // Hourly\n * }\n * ```\n */\n\n/**\n * Sync Direction\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const SyncDirectionSchema = lazySchema(() => z.enum([\n 'push', // ObjectStack -> External (one-way)\n 'pull', // External -> ObjectStack (one-way)\n 'bidirectional', // Both directions\n]));\n\nexport type SyncDirection = z.infer<typeof SyncDirectionSchema>;\n\n/**\n * Sync Mode\n */\nexport const SyncModeSchema = lazySchema(() => z.enum([\n 'full', // Full refresh every time\n 'incremental', // Only sync changed records\n 'realtime', // Real-time streaming sync\n]));\n\nexport type SyncMode = z.infer<typeof SyncModeSchema>;\n\n/**\n * Conflict Resolution Strategy\n */\nexport const ConflictResolutionSchema = lazySchema(() => z.enum([\n 'source_wins', // Source system always wins\n 'destination_wins', // Destination system always wins\n 'latest_wins', // Most recently modified wins\n 'manual', // Flag for manual resolution\n 'merge', // Smart merge (custom logic)\n]));\n\nexport type ConflictResolution = z.infer<typeof ConflictResolutionSchema>;\n\n/**\n * Field Mapping for Data Sync\n * \n * Uses the canonical field mapping protocol from shared/mapping.zod.ts\n * for simple 1:1 field transformations.\n * \n * @see {@link FieldMappingSchema} for the base field mapping schema\n */\n\n/**\n * Data Source Configuration\n */\nexport const DataSourceConfigSchema = lazySchema(() => z.object({\n /**\n * Source object name\n * For ObjectStack objects\n */\n object: z.string().optional().describe('ObjectStack object name'),\n\n /**\n * Filter conditions\n * Only sync records matching these filters\n */\n filters: z.unknown().optional().describe('Filter conditions'),\n\n /**\n * Fields to include\n * If not specified, all fields are synced\n */\n fields: z.array(z.string()).optional().describe('Fields to sync'),\n\n /**\n * External connector instance ID\n * For external data sources\n */\n connectorInstanceId: z.string().optional().describe('Connector instance ID'),\n\n /**\n * External resource identifier\n * e.g., Salesforce object name, database table, API endpoint\n */\n externalResource: z.string().optional().describe('External resource ID'),\n}));\n\nexport type DataSourceConfig = z.infer<typeof DataSourceConfigSchema>;\n\n/**\n * Data Destination Configuration\n */\nexport const DataDestinationConfigSchema = lazySchema(() => z.object({\n /**\n * Destination object name\n * For ObjectStack objects\n */\n object: z.string().optional().describe('ObjectStack object name'),\n\n /**\n * Connector instance ID\n * For external destinations\n */\n connectorInstanceId: z.string().optional().describe('Connector instance ID'),\n\n /**\n * Operation to perform\n */\n operation: z.enum([\n 'insert', // Create new records only\n 'update', // Update existing records only\n 'upsert', // Insert or update based on key\n 'delete', // Delete records\n 'sync', // Full synchronization\n ]).describe('Sync operation'),\n\n /**\n * Field mappings\n * Maps source fields to destination fields\n */\n mapping: z.union([\n z.record(z.string(), z.string()), // Simple mapping: { sourceField: 'destField' }\n z.array(FieldMappingSchema), // Advanced mapping with transformations\n ]).optional().describe('Field mappings'),\n\n /**\n * External resource identifier\n */\n externalResource: z.string().optional().describe('External resource ID'),\n\n /**\n * Match key for upsert operations\n * Fields to use for matching existing records\n */\n matchKey: z.array(z.string()).optional().describe('Match key fields'),\n}));\n\nexport type DataDestinationConfig = z.infer<typeof DataDestinationConfigSchema>;\n\n/**\n * Data Sync Configuration Schema\n * \n * Complete definition of a data synchronization between systems.\n */\nexport const DataSyncConfigSchema = lazySchema(() => z.object({\n /**\n * Sync configuration name (snake_case)\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Sync configuration name (snake_case)'),\n\n /**\n * Human-readable label\n */\n label: z.string().optional().describe('Sync display name'),\n\n /**\n * Description\n */\n description: z.string().optional().describe('Sync description'),\n\n /**\n * Source configuration\n */\n source: DataSourceConfigSchema.describe('Data source'),\n\n /**\n * Destination configuration\n */\n destination: DataDestinationConfigSchema.describe('Data destination'),\n\n /**\n * Sync direction\n */\n direction: SyncDirectionSchema.default('push').describe('Sync direction'),\n\n /**\n * Sync mode\n */\n syncMode: SyncModeSchema.default('incremental').describe('Sync mode'),\n\n /**\n * Conflict resolution strategy\n */\n conflictResolution: ConflictResolutionSchema\n .default('latest_wins')\n .describe('Conflict resolution'),\n\n /**\n * Execution schedule (cron expression)\n * For scheduled syncs\n * \n * @example \"0 * * * *\" - Hourly\n * @example \"*\\/15 * * * *\" - Every 15 minutes\n */\n schedule: CronExpressionInputSchema.optional().describe('Cron schedule'),\n\n /**\n * Whether sync is enabled\n */\n enabled: z.boolean().default(true).describe('Sync enabled'),\n\n /**\n * Change tracking field\n * Field to track when records were last modified\n * Used for incremental sync\n * \n * @example \"updated_at\", \"modified_date\"\n */\n changeTrackingField: z.string()\n .optional()\n .describe('Field for change tracking'),\n\n /**\n * Batch size\n * Number of records to process per batch\n */\n batchSize: z.number().int().min(1).max(10000)\n .default(100)\n .describe('Batch size for processing'),\n\n /**\n * Retry configuration\n */\n retry: z.object({\n maxAttempts: z.number().int().min(0).default(3).describe('Max retries'),\n backoffMs: z.number().int().min(0).default(30000).describe('Backoff duration'),\n }).optional().describe('Retry configuration'),\n\n /**\n * Pre-sync validation rules\n */\n validation: z.object({\n required: z.array(z.string()).optional().describe('Required fields'),\n unique: z.array(z.string()).optional().describe('Unique constraint fields'),\n custom: z.array(z.object({\n name: z.string(),\n condition: ExpressionInputSchema.describe('Validation predicate (CEL).'),\n message: z.string().describe('Error message'),\n })).optional().describe('Custom validation rules'),\n }).optional().describe('Validation rules'),\n\n /**\n * Error handling configuration\n */\n errorHandling: z.object({\n onValidationError: z.enum(['skip', 'fail', 'log']).default('skip'),\n onSyncError: z.enum(['skip', 'fail', 'retry']).default('retry'),\n notifyOnError: z.array(z.string()).optional().describe('Email notifications'),\n }).optional().describe('Error handling'),\n\n /**\n * Performance optimization\n */\n optimization: z.object({\n parallelBatches: z.boolean().default(false).describe('Process batches in parallel'),\n cacheEnabled: z.boolean().default(true).describe('Enable caching'),\n compressionEnabled: z.boolean().default(false).describe('Enable compression'),\n }).optional().describe('Performance optimization'),\n\n /**\n * Audit and logging\n */\n audit: z.object({\n logLevel: z.enum(['none', 'error', 'warn', 'info', 'debug']).default('info'),\n retainLogsForDays: z.number().int().min(1).default(30),\n trackChanges: z.boolean().default(true).describe('Track all changes'),\n }).optional().describe('Audit configuration'),\n\n /**\n * Tags for organization\n */\n tags: z.array(z.string()).optional().describe('Sync tags'),\n\n /**\n * Custom metadata\n */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Custom metadata'),\n}));\n\nexport type DataSyncConfig = z.infer<typeof DataSyncConfigSchema>;\n\n/**\n * Sync Execution Status\n */\nexport const SyncExecutionStatusSchema = lazySchema(() => z.enum([\n 'pending', // Queued\n 'running', // Currently executing\n 'completed', // Successfully completed\n 'partial', // Completed with some errors\n 'failed', // Failed\n 'cancelled', // Manually cancelled\n]));\n\nexport type SyncExecutionStatus = z.infer<typeof SyncExecutionStatusSchema>;\n\n/**\n * Sync Execution Result Schema\n * \n * Result of a sync execution.\n */\nexport const SyncExecutionResultSchema = lazySchema(() => z.object({\n /**\n * Execution ID\n */\n id: z.string().describe('Execution ID'),\n\n /**\n * Sync configuration name\n */\n syncName: z.string().describe('Sync name'),\n\n /**\n * Execution status\n */\n status: SyncExecutionStatusSchema.describe('Execution status'),\n\n /**\n * Start timestamp\n */\n startedAt: z.string().datetime().describe('Start time'),\n\n /**\n * End timestamp\n */\n completedAt: z.string().datetime().optional().describe('Completion time'),\n\n /**\n * Duration in milliseconds\n */\n durationMs: z.number().optional().describe('Duration in ms'),\n\n /**\n * Statistics\n */\n stats: z.object({\n recordsProcessed: z.number().int().default(0).describe('Total records processed'),\n recordsInserted: z.number().int().default(0).describe('Records inserted'),\n recordsUpdated: z.number().int().default(0).describe('Records updated'),\n recordsDeleted: z.number().int().default(0).describe('Records deleted'),\n recordsSkipped: z.number().int().default(0).describe('Records skipped'),\n recordsErrored: z.number().int().default(0).describe('Records with errors'),\n conflictsDetected: z.number().int().default(0).describe('Conflicts detected'),\n conflictsResolved: z.number().int().default(0).describe('Conflicts resolved'),\n }).optional().describe('Execution statistics'),\n\n /**\n * Errors encountered\n */\n errors: z.array(z.object({\n recordId: z.string().optional().describe('Record ID'),\n field: z.string().optional().describe('Field name'),\n message: z.string().describe('Error message'),\n code: z.string().optional().describe('Error code'),\n })).optional().describe('Errors'),\n\n /**\n * Execution logs\n */\n logs: z.array(z.string()).optional().describe('Execution logs'),\n}));\n\nexport type SyncExecutionResult = z.infer<typeof SyncExecutionResultSchema>;\n\n/**\n * Helper factory for creating sync configurations\n */\nexport const Sync = {\n /**\n * Create a simple object-to-object sync\n */\n objectSync: (params: {\n name: string;\n sourceObject: string;\n destObject: string;\n mapping: Record<string, string>;\n schedule?: string | import(\"../shared/expression.zod\").Expression;\n }): DataSyncConfig => ({\n name: params.name,\n source: {\n object: params.sourceObject,\n },\n destination: {\n object: params.destObject,\n operation: 'upsert',\n mapping: params.mapping,\n },\n direction: 'push',\n syncMode: 'incremental',\n conflictResolution: 'latest_wins',\n batchSize: 100,\n schedule: typeof params.schedule === 'string' ? { dialect: 'cron' as const, source: params.schedule } : params.schedule,\n enabled: true,\n }),\n\n /**\n * Create a connector sync\n */\n connectorSync: (params: {\n name: string;\n sourceObject: string;\n connectorInstanceId: string;\n externalResource: string;\n mapping: Record<string, string>;\n schedule?: string | import(\"../shared/expression.zod\").Expression;\n }): DataSyncConfig => ({\n name: params.name,\n source: {\n object: params.sourceObject,\n },\n destination: {\n connectorInstanceId: params.connectorInstanceId,\n externalResource: params.externalResource,\n operation: 'upsert',\n mapping: params.mapping,\n },\n direction: 'push',\n syncMode: 'incremental',\n conflictResolution: 'latest_wins',\n batchSize: 100,\n schedule: typeof params.schedule === 'string' ? { dialect: 'cron' as const, source: params.schedule } : params.schedule,\n enabled: true,\n }),\n\n /**\n * Create a bidirectional sync\n */\n bidirectionalSync: (params: {\n name: string;\n object: string;\n connectorInstanceId: string;\n externalResource: string;\n mapping: Record<string, string>;\n schedule?: string | import(\"../shared/expression.zod\").Expression;\n }): DataSyncConfig => ({\n name: params.name,\n source: {\n object: params.object,\n },\n destination: {\n connectorInstanceId: params.connectorInstanceId,\n externalResource: params.externalResource,\n operation: 'sync',\n mapping: params.mapping,\n },\n direction: 'bidirectional',\n syncMode: 'incremental',\n conflictResolution: 'latest_wins',\n batchSize: 100,\n schedule: typeof params.schedule === 'string' ? { dialect: 'cron' as const, source: params.schedule } : params.schedule,\n enabled: true,\n }),\n} as const;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * XState-inspired State Machine Protocol\n * Used to define strict business logic constraints and lifecycle management.\n * Prevent AI \"hallucinations\" by enforcing valid valid transitions.\n */\n\n// --- Primitives ---\n\n/**\n * References a named action (side effect)\n * Can be a script, a webhook, or a field update.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const ActionRefSchema = lazySchema(() => z.union([\n z.string().describe('Action Name'),\n z.object({\n type: z.string(), // e.g., 'xstate.assign', 'log', 'email'\n params: z.record(z.string(), z.unknown()).optional()\n })\n]));\n\n/**\n * References a named condition (guard)\n * Must evaluate to true for the transition to occur.\n */\nexport const GuardRefSchema = lazySchema(() => z.union([\n z.string().describe('Guard Name (e.g., \"isManager\", \"amountGT1000\")'),\n z.object({\n type: z.string(),\n params: z.record(z.string(), z.unknown()).optional()\n })\n]));\n\n// --- Core Structure ---\n\n/**\n * State Transition Definition\n * \"When EVENT happens, if GUARD is true, go to TARGET and run ACTIONS\"\n */\nexport const TransitionSchema = lazySchema(() => z.object({\n target: z.string().optional().describe('Target State ID'),\n cond: GuardRefSchema.optional().describe('Condition (Guard) required to take this path'),\n actions: z.array(ActionRefSchema).optional().describe('Actions to execute during transition'),\n description: z.string().optional().describe('Human readable description of this rule'),\n}));\n\n/**\n * Event Definition (Signals)\n */\nexport const EventSchema = lazySchema(() => z.object({\n type: z.string().describe('Event Type (e.g. \"APPROVE\", \"REJECT\", \"Submit\")'),\n // Payload validation schema could go here if we want deep validation\n schema: z.record(z.string(), z.unknown()).optional().describe('Expected event payload structure'),\n}));\n\nexport type ActionRef = z.infer<typeof ActionRefSchema>;\nexport type Transition = z.infer<typeof TransitionSchema>;\n\nexport type StateNodeConfig = {\n type?: 'atomic' | 'compound' | 'parallel' | 'final' | 'history';\n entry?: ActionRef[];\n exit?: ActionRef[];\n on?: Record<string, string | Transition | Transition[]>;\n always?: Transition[];\n initial?: string;\n states?: Record<string, StateNodeConfig>;\n meta?: {\n label?: string;\n description?: string;\n color?: string;\n aiInstructions?: string;\n };\n};\n\n/**\n * State Node Definition\n */\nexport const StateNodeSchema: z.ZodType<StateNodeConfig> = z.lazy(() => z.object({\n /** Type of state */\n type: z.enum(['atomic', 'compound', 'parallel', 'final', 'history']).default('atomic'),\n \n /** Entry/Exit Actions */\n entry: z.array(ActionRefSchema).optional().describe('Actions to run when entering this state'),\n exit: z.array(ActionRefSchema).optional().describe('Actions to run when leaving this state'),\n \n /** Transitions (Events) */\n on: z.record(z.string(), z.union([\n z.string(), // Shorthand target\n TransitionSchema, \n z.array(TransitionSchema)\n ])).optional().describe('Map of Event Type -> Transition Definition'),\n \n /** Always Transitions (Eventless) */\n always: z.array(TransitionSchema).optional(),\n\n /** Nesting (Hierarchical States) */\n initial: z.string().optional().describe('Initial child state (if compound)'),\n states: z.record(z.string(), StateNodeSchema).optional(),\n \n /** Metadata for UI/AI */\n meta: z.object({\n label: z.string().optional(),\n description: z.string().optional(),\n color: z.string().optional(), // For UI diagrams\n // Instructions for AI Agent when in this state\n aiInstructions: z.string().optional().describe('Specific instructions for AI when in this state'),\n }).optional(),\n}));\n\n/**\n * Top-Level State Machine Definition\n */\nexport const StateMachineSchema = lazySchema(() => z.object({\n id: SnakeCaseIdentifierSchema.describe('Unique Machine ID'),\n description: z.string().optional(),\n \n /** Context (Memory) Schema */\n contextSchema: z.record(z.string(), z.unknown()).optional().describe('Zod Schema for the machine context/memory'),\n \n /** Initial State */\n initial: z.string().describe('Initial State ID'),\n \n /** State Definitions */\n states: z.record(z.string(), StateNodeSchema).describe('State Nodes'),\n \n /** Global Listeners */\n on: z.record(z.string(), z.union([z.string(), TransitionSchema, z.array(TransitionSchema)])).optional(),\n}));\n\nexport type StateMachineConfig = z.infer<typeof StateMachineSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\n/**\n * @module automation/node-executor\n *\n * Node Executor Plugin Protocol — Wait Node Pause/Resume\n *\n * Defines the specification for node executor plugins, with a focus on\n * the `wait` node executor that supports flow pause and external-event\n * resume (signal, manual, webhook, condition).\n *\n * The protocol covers:\n * - **WaitResumePayload**: The payload delivered when a paused flow is resumed\n * - **WaitExecutorConfig**: Configuration for the wait executor plugin\n * - **NodeExecutorDescriptor**: Generic node executor plugin descriptor\n */\n\nimport { z } from 'zod';\n\n// ─── Wait Event Types ────────────────────────────────────────────────\n\n/**\n * Wait event type — determines how a wait node is resumed.\n * Mirrors the `waitEventConfig.eventType` in flow.zod.ts.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const WaitEventTypeSchema = lazySchema(() => z.enum([\n 'timer', // Resume after duration/datetime\n 'signal', // Resume on named signal dispatch\n 'webhook', // Resume on incoming webhook call\n 'manual', // Resume by manual operator action\n 'condition', // Resume when a data condition is met (polling)\n]).describe('Wait event type determining how a paused flow is resumed'));\n\nexport type WaitEventType = z.infer<typeof WaitEventTypeSchema>;\n\n// ─── Wait Resume Payload ─────────────────────────────────────────────\n\n/**\n * Payload delivered when a paused wait node is resumed by an external event.\n * The runtime engine passes this to the flow executor to continue execution.\n */\nexport const WaitResumePayloadSchema = lazySchema(() => z.object({\n /** The execution id of the paused flow */\n executionId: z.string().describe('Execution ID of the paused flow'),\n\n /** The checkpoint id being resumed */\n checkpointId: z.string().describe('Checkpoint ID to resume from'),\n\n /** The node id of the wait node being resumed */\n nodeId: z.string().describe('Wait node ID being resumed'),\n\n /** The event type that triggered the resume */\n eventType: WaitEventTypeSchema.describe('Event type that triggered resume'),\n\n /** Signal name (for signal events) */\n signalName: z.string().optional().describe('Signal name (when eventType is signal)'),\n\n /** Webhook payload data (for webhook events) */\n webhookPayload: z.record(z.string(), z.unknown()).optional()\n .describe('Webhook request payload (when eventType is webhook)'),\n\n /** Who/what triggered the resume */\n resumedBy: z.string().optional().describe('User ID or system identifier that triggered resume'),\n\n /** Timestamp of the resume event */\n resumedAt: z.string().datetime().describe('ISO 8601 timestamp of the resume event'),\n\n /** Additional variables to merge into flow context on resume */\n variables: z.record(z.string(), z.unknown()).optional()\n .describe('Variables to merge into flow context upon resume'),\n}).describe('Payload for resuming a paused wait node'));\n\nexport type WaitResumePayload = z.infer<typeof WaitResumePayloadSchema>;\n\n// ─── Wait Executor Config ────────────────────────────────────────────\n\n/**\n * Timeout behavior when a wait node exceeds its timeout.\n */\nexport const WaitTimeoutBehaviorSchema = lazySchema(() => z.enum([\n 'fail', // Mark execution as failed\n 'continue', // Continue to next node (skip wait)\n 'fallback', // Execute a fallback edge\n]).describe('Behavior when a wait node exceeds its timeout'));\n\nexport type WaitTimeoutBehavior = z.infer<typeof WaitTimeoutBehaviorSchema>;\n\n/**\n * Configuration for the wait node executor plugin.\n * Controls polling intervals, webhook endpoint patterns, and timeout behavior.\n */\nexport const WaitExecutorConfigSchema = lazySchema(() => z.object({\n /** Default timeout for wait nodes without explicit timeout (ms) */\n defaultTimeoutMs: z.number().int().min(0).default(86400000)\n .describe('Default timeout in ms (default: 24 hours)'),\n\n /** Default timeout behavior */\n defaultTimeoutBehavior: WaitTimeoutBehaviorSchema.default('fail')\n .describe('Default behavior when wait timeout is exceeded'),\n\n /** Polling interval for condition-based waits (ms) */\n conditionPollIntervalMs: z.number().int().min(1000).default(30000)\n .describe('Polling interval for condition waits in ms (default: 30s)'),\n\n /** Maximum polling attempts for condition waits (0 = unlimited until timeout) */\n conditionMaxPolls: z.number().int().min(0).default(0)\n .describe('Max polling attempts for condition waits (0 = unlimited)'),\n\n /** Webhook endpoint URL pattern (runtime fills in execution/node ids) */\n webhookUrlPattern: z.string().default('/api/v1/automation/resume/{executionId}/{nodeId}')\n .describe('URL pattern for webhook resume endpoints'),\n\n /** Whether to persist checkpoints to durable storage */\n persistCheckpoints: z.boolean().default(true)\n .describe('Persist wait checkpoints to durable storage'),\n\n /** Maximum concurrent paused executions (0 = unlimited) */\n maxPausedExecutions: z.number().int().min(0).default(0)\n .describe('Max concurrent paused executions (0 = unlimited)'),\n}).describe('Wait node executor plugin configuration'));\n\nexport type WaitExecutorConfig = z.infer<typeof WaitExecutorConfigSchema>;\n\n// ─── Node Executor Descriptor ────────────────────────────────────────\n\n/**\n * Generic node executor plugin descriptor.\n * Each node type (wait, script, http_request, etc.) can register\n * a custom executor via this descriptor.\n */\nexport const NodeExecutorDescriptorSchema = lazySchema(() => z.object({\n /** Unique executor identifier */\n id: z.string().describe('Unique executor plugin identifier'),\n\n /** Human-readable name */\n name: z.string().describe('Display name'),\n\n /** The FlowNodeAction types this executor handles */\n nodeTypes: z.array(z.string()).min(1)\n .describe('FlowNodeAction types this executor handles'),\n\n /** Executor plugin version (semver) */\n version: z.string().describe('Plugin version (semver)'),\n\n /** Description of the executor */\n description: z.string().optional().describe('Executor description'),\n\n /** Whether this executor supports async pause/resume */\n supportsPause: z.boolean().default(false)\n .describe('Whether the executor supports async pause/resume'),\n\n /** Whether this executor supports cancellation mid-execution */\n supportsCancellation: z.boolean().default(false)\n .describe('Whether the executor supports mid-execution cancellation'),\n\n /** Whether this executor supports retry on failure */\n supportsRetry: z.boolean().default(true)\n .describe('Whether the executor supports retry on failure'),\n\n /** Executor-specific configuration schema (JSON Schema reference) */\n configSchemaRef: z.string().optional()\n .describe('JSON Schema $ref for executor-specific config'),\n}).describe('Node executor plugin descriptor'));\n\nexport type NodeExecutorDescriptor = z.infer<typeof NodeExecutorDescriptorSchema>;\n\n// ─── Built-in Wait Executor Descriptor ───────────────────────────────\n\n/**\n * Built-in descriptor for the wait node executor.\n * Runtime implementations should register this or a compatible executor.\n */\nexport const WAIT_EXECUTOR_DESCRIPTOR: NodeExecutorDescriptor = {\n id: 'objectstack:wait-executor',\n name: 'Wait Node Executor',\n nodeTypes: ['wait'],\n version: '1.0.0',\n description: 'Pauses flow execution and resumes on timer, signal, webhook, manual action, or condition events.',\n supportsPause: true,\n supportsCancellation: true,\n supportsRetry: true,\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\n/**\n * @module automation/bpmn-interop\n *\n * BPMN XML Interoperability Protocol\n *\n * Defines the specification for importing and exporting BPMN 2.0 XML\n * process definitions. This enables interoperability with external BPM\n * tools (Camunda, Activiti, jBPM, etc.) via a plugin-based approach.\n *\n * **Priority:** Low — long-term planning, not a core requirement.\n */\n\nimport { z } from 'zod';\n\n// ─── BPMN Element Mapping ────────────────────────────────────────────\n\n/**\n * Mapping between a BPMN XML element type and an ObjectStack FlowNodeAction.\n * Used during import/export to translate between the two models.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const BpmnElementMappingSchema = lazySchema(() => z.object({\n /** BPMN XML element type (e.g., \"bpmn:parallelGateway\", \"bpmn:serviceTask\") */\n bpmnType: z.string().describe('BPMN XML element type (e.g., \"bpmn:parallelGateway\")'),\n\n /** Corresponding ObjectStack FlowNodeAction */\n flowNodeAction: z.string().describe('ObjectStack FlowNodeAction value'),\n\n /** Whether this mapping is bidirectional (supports both import and export) */\n bidirectional: z.boolean().default(true).describe('Whether the mapping supports both import and export'),\n\n /** Notes about mapping limitations or special handling */\n notes: z.string().optional().describe('Notes about mapping limitations'),\n}).describe('Mapping between BPMN XML element and ObjectStack FlowNodeAction'));\n\nexport type BpmnElementMapping = z.infer<typeof BpmnElementMappingSchema>;\n\n// ─── BPMN Import Options ─────────────────────────────────────────────\n\n/**\n * Strategy for handling BPMN elements that have no direct ObjectStack mapping.\n */\nexport const BpmnUnmappedStrategySchema = lazySchema(() => z.enum([\n 'skip', // Skip unmapped elements silently\n 'warn', // Import with warnings\n 'error', // Fail on unmapped elements\n 'comment', // Import as annotation/comment nodes\n]).describe('Strategy for unmapped BPMN elements during import'));\n\nexport type BpmnUnmappedStrategy = z.infer<typeof BpmnUnmappedStrategySchema>;\n\n/**\n * Options for importing a BPMN 2.0 XML process definition into an ObjectStack flow.\n */\nexport const BpmnImportOptionsSchema = lazySchema(() => z.object({\n /** Strategy for unmapped BPMN elements */\n unmappedStrategy: BpmnUnmappedStrategySchema.default('warn')\n .describe('How to handle unmapped BPMN elements'),\n\n /** Custom element mappings (override or extend built-in mappings) */\n customMappings: z.array(BpmnElementMappingSchema).optional()\n .describe('Custom element mappings to override or extend defaults'),\n\n /** Whether to import BPMN DI (diagram interchange) layout positions */\n importLayout: z.boolean().default(true)\n .describe('Import BPMN DI layout positions into canvas node coordinates'),\n\n /** Whether to import BPMN documentation as node descriptions */\n importDocumentation: z.boolean().default(true)\n .describe('Import BPMN documentation elements as node descriptions'),\n\n /** Target flow name (if not derived from BPMN process name) */\n flowName: z.string().optional()\n .describe('Override flow name (defaults to BPMN process name)'),\n\n /** Whether to validate the imported flow against ObjectStack schema */\n validateAfterImport: z.boolean().default(true)\n .describe('Validate imported flow against FlowSchema after import'),\n}).describe('Options for importing BPMN 2.0 XML into an ObjectStack flow'));\n\nexport type BpmnImportOptions = z.infer<typeof BpmnImportOptionsSchema>;\n\n// ─── BPMN Export Options ─────────────────────────────────────────────\n\n/**\n * BPMN XML target version for export.\n */\nexport const BpmnVersionSchema = lazySchema(() => z.enum([\n '2.0', // BPMN 2.0 (most common, default)\n '2.0.2', // BPMN 2.0.2 (latest revision)\n]).describe('BPMN specification version for export'));\n\nexport type BpmnVersion = z.infer<typeof BpmnVersionSchema>;\n\n/**\n * Options for exporting an ObjectStack flow as BPMN 2.0 XML.\n */\nexport const BpmnExportOptionsSchema = lazySchema(() => z.object({\n /** Target BPMN version */\n version: BpmnVersionSchema.default('2.0')\n .describe('Target BPMN specification version'),\n\n /** Whether to include BPMN DI (diagram interchange) layout data */\n includeLayout: z.boolean().default(true)\n .describe('Include BPMN DI layout data from canvas positions'),\n\n /** Whether to include ObjectStack-specific extensions as BPMN extension elements */\n includeExtensions: z.boolean().default(false)\n .describe('Include ObjectStack extensions in BPMN extensionElements'),\n\n /** Custom element mappings (override built-in for export) */\n customMappings: z.array(BpmnElementMappingSchema).optional()\n .describe('Custom element mappings for export'),\n\n /** Whether to pretty-print the XML output */\n prettyPrint: z.boolean().default(true)\n .describe('Pretty-print XML output with indentation'),\n\n /** XML namespace prefix for BPMN elements */\n namespacePrefix: z.string().default('bpmn')\n .describe('XML namespace prefix for BPMN elements'),\n}).describe('Options for exporting an ObjectStack flow as BPMN 2.0 XML'));\n\nexport type BpmnExportOptions = z.infer<typeof BpmnExportOptionsSchema>;\n\n// ─── BPMN Import/Export Result ───────────────────────────────────────\n\n/**\n * Diagnostic message from BPMN import/export operations.\n */\nexport const BpmnDiagnosticSchema = lazySchema(() => z.object({\n /** Severity level */\n severity: z.enum(['info', 'warning', 'error']).describe('Diagnostic severity'),\n\n /** Human-readable message */\n message: z.string().describe('Diagnostic message'),\n\n /** BPMN element ID (if applicable) */\n bpmnElementId: z.string().optional().describe('BPMN element ID related to this diagnostic'),\n\n /** ObjectStack node ID (if applicable) */\n nodeId: z.string().optional().describe('ObjectStack node ID related to this diagnostic'),\n}).describe('Diagnostic message from BPMN import/export'));\n\nexport type BpmnDiagnostic = z.infer<typeof BpmnDiagnosticSchema>;\n\n/**\n * Result of a BPMN import or export operation.\n */\nexport const BpmnInteropResultSchema = lazySchema(() => z.object({\n /** Whether the operation completed successfully */\n success: z.boolean().describe('Whether the operation completed successfully'),\n\n /** Diagnostic messages (warnings, errors, info) */\n diagnostics: z.array(BpmnDiagnosticSchema).default([])\n .describe('Diagnostic messages from the operation'),\n\n /** Number of elements successfully mapped */\n mappedCount: z.number().int().min(0).default(0)\n .describe('Number of elements successfully mapped'),\n\n /** Number of elements skipped or unmapped */\n unmappedCount: z.number().int().min(0).default(0)\n .describe('Number of elements that could not be mapped'),\n}).describe('Result of a BPMN import/export operation'));\n\nexport type BpmnInteropResult = z.infer<typeof BpmnInteropResultSchema>;\n\n// ─── Built-in Element Mappings ───────────────────────────────────────\n\n/**\n * Built-in element mappings between BPMN 2.0 XML types and ObjectStack FlowNodeAction.\n * Import/export plugins should use these as defaults, with user overrides applied on top.\n */\nexport const BUILT_IN_BPMN_MAPPINGS: BpmnElementMapping[] = [\n { bpmnType: 'bpmn:startEvent', flowNodeAction: 'start', bidirectional: true },\n { bpmnType: 'bpmn:endEvent', flowNodeAction: 'end', bidirectional: true },\n { bpmnType: 'bpmn:exclusiveGateway', flowNodeAction: 'decision', bidirectional: true },\n { bpmnType: 'bpmn:parallelGateway', flowNodeAction: 'parallel_gateway', bidirectional: true },\n { bpmnType: 'bpmn:serviceTask', flowNodeAction: 'http_request', bidirectional: true, notes: 'Maps HTTP/connector tasks' },\n { bpmnType: 'bpmn:scriptTask', flowNodeAction: 'script', bidirectional: true },\n { bpmnType: 'bpmn:userTask', flowNodeAction: 'screen', bidirectional: true },\n { bpmnType: 'bpmn:callActivity', flowNodeAction: 'subflow', bidirectional: true },\n { bpmnType: 'bpmn:intermediateCatchEvent', flowNodeAction: 'wait', bidirectional: true, notes: 'Timer/signal/message catch events' },\n { bpmnType: 'bpmn:boundaryEvent', flowNodeAction: 'boundary_event', bidirectional: true },\n { bpmnType: 'bpmn:task', flowNodeAction: 'assignment', bidirectional: true, notes: 'Generic BPMN task maps to assignment' },\n];\n"]}
|