@objectstack/spec 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/README.md +127 -5
  2. package/dist/ai/conversation.zod.d.ts +1059 -0
  3. package/dist/ai/conversation.zod.d.ts.map +1 -0
  4. package/dist/ai/conversation.zod.js +248 -0
  5. package/dist/ai/cost.zod.d.ts +2025 -0
  6. package/dist/ai/cost.zod.d.ts.map +1 -0
  7. package/dist/ai/cost.zod.js +324 -0
  8. package/dist/ai/index.d.ts +22 -0
  9. package/dist/ai/index.d.ts.map +1 -0
  10. package/dist/ai/index.js +37 -0
  11. package/dist/ai/model-registry.zod.d.ts +1389 -0
  12. package/dist/ai/model-registry.zod.d.ts.map +1 -0
  13. package/dist/ai/model-registry.zod.js +164 -0
  14. package/dist/ai/nlq.zod.d.ts +1126 -0
  15. package/dist/ai/nlq.zod.d.ts.map +1 -0
  16. package/dist/ai/nlq.zod.js +246 -0
  17. package/dist/ai/predictive.zod.d.ts +838 -0
  18. package/dist/ai/predictive.zod.d.ts.map +1 -0
  19. package/dist/ai/predictive.zod.js +244 -0
  20. package/dist/ai/rag-pipeline.zod.d.ts +1034 -0
  21. package/dist/ai/rag-pipeline.zod.d.ts.map +1 -0
  22. package/dist/ai/rag-pipeline.zod.js +244 -0
  23. package/dist/ai/workflow-automation.zod.d.ts +590 -0
  24. package/dist/ai/workflow-automation.zod.d.ts.map +1 -0
  25. package/dist/ai/workflow-automation.zod.js +197 -0
  26. package/dist/api/contract.zod.d.ts +22 -22
  27. package/dist/api/index.d.ts +9 -0
  28. package/dist/api/index.d.ts.map +1 -0
  29. package/dist/api/index.js +24 -0
  30. package/dist/data/field.zod.d.ts +409 -4
  31. package/dist/data/field.zod.d.ts.map +1 -1
  32. package/dist/data/field.zod.js +28 -2
  33. package/dist/data/index.d.ts +21 -0
  34. package/dist/data/index.d.ts.map +1 -0
  35. package/dist/data/index.js +36 -0
  36. package/dist/data/mapping.zod.d.ts +6 -6
  37. package/dist/data/object.zod.d.ts +80 -10
  38. package/dist/data/object.zod.d.ts.map +1 -1
  39. package/dist/data/query.zod.d.ts +386 -3
  40. package/dist/data/query.zod.d.ts.map +1 -1
  41. package/dist/data/query.zod.js +386 -3
  42. package/dist/data/validation.zod.d.ts +349 -0
  43. package/dist/data/validation.zod.d.ts.map +1 -1
  44. package/dist/data/validation.zod.js +395 -0
  45. package/dist/data/workflow.zod.d.ts +809 -18
  46. package/dist/data/workflow.zod.d.ts.map +1 -1
  47. package/dist/data/workflow.zod.js +115 -7
  48. package/dist/index.d.ts +36 -41
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +64 -49
  51. package/dist/system/api.zod.d.ts +4 -4
  52. package/dist/system/audit.zod.d.ts +1172 -0
  53. package/dist/system/audit.zod.d.ts.map +1 -0
  54. package/dist/system/audit.zod.js +596 -0
  55. package/dist/system/auth-protocol.d.ts +175 -0
  56. package/dist/system/auth-protocol.d.ts.map +1 -0
  57. package/dist/system/auth-protocol.js +60 -0
  58. package/dist/system/auth.zod.d.ts +1089 -57
  59. package/dist/system/auth.zod.d.ts.map +1 -1
  60. package/dist/system/auth.zod.js +135 -1
  61. package/dist/system/driver.zod.d.ts +4 -4
  62. package/dist/system/events.zod.d.ts +177 -0
  63. package/dist/system/events.zod.d.ts.map +1 -0
  64. package/dist/system/events.zod.js +51 -0
  65. package/dist/system/identity.zod.d.ts +234 -180
  66. package/dist/system/identity.zod.d.ts.map +1 -1
  67. package/dist/system/identity.zod.js +168 -51
  68. package/dist/system/index.d.ts +33 -0
  69. package/dist/system/index.d.ts.map +1 -0
  70. package/dist/system/index.js +48 -0
  71. package/dist/system/job.zod.d.ts +237 -0
  72. package/dist/system/job.zod.d.ts.map +1 -0
  73. package/dist/system/job.zod.js +82 -0
  74. package/dist/system/organization.zod.d.ts +179 -0
  75. package/dist/system/organization.zod.d.ts.map +1 -0
  76. package/dist/system/organization.zod.js +129 -0
  77. package/dist/system/realtime.zod.d.ts +135 -0
  78. package/dist/system/realtime.zod.d.ts.map +1 -0
  79. package/dist/system/realtime.zod.js +83 -0
  80. package/dist/system/tenant.zod.d.ts +1151 -0
  81. package/dist/system/tenant.zod.d.ts.map +1 -0
  82. package/dist/system/tenant.zod.js +498 -0
  83. package/dist/system/webhook.zod.d.ts +2 -2
  84. package/dist/ui/action.zod.d.ts +10 -10
  85. package/dist/ui/index.d.ts +17 -0
  86. package/dist/ui/index.d.ts.map +1 -0
  87. package/dist/ui/index.js +32 -0
  88. package/dist/ui/theme.zod.d.ts +18 -18
  89. package/dist/ui/widget.zod.d.ts +40 -5
  90. package/dist/ui/widget.zod.d.ts.map +1 -1
  91. package/json-schema/README.md +127 -0
  92. package/json-schema/ai/AITask.json +123 -0
  93. package/json-schema/ai/AITaskType.json +21 -0
  94. package/json-schema/ai/AIWorkflowAutomation.json +379 -0
  95. package/json-schema/ai/AIWorkflowExecutionResult.json +105 -0
  96. package/json-schema/ai/AIWorkflowTrigger.json +18 -0
  97. package/json-schema/ai/BatchAIWorkflowExecution.json +48 -0
  98. package/json-schema/ai/BillingPeriod.json +18 -0
  99. package/json-schema/ai/BudgetLimit.json +111 -0
  100. package/json-schema/ai/BudgetStatus.json +91 -0
  101. package/json-schema/ai/BudgetType.json +17 -0
  102. package/json-schema/ai/ChunkingStrategy.json +133 -0
  103. package/json-schema/ai/ConversationAnalytics.json +86 -0
  104. package/json-schema/ai/ConversationContext.json +48 -0
  105. package/json-schema/ai/ConversationMessage.json +209 -0
  106. package/json-schema/ai/ConversationSession.json +458 -0
  107. package/json-schema/ai/ConversationSummary.json +73 -0
  108. package/json-schema/ai/CostAlert.json +107 -0
  109. package/json-schema/ai/CostAlertType.json +16 -0
  110. package/json-schema/ai/CostAnalytics.json +589 -0
  111. package/json-schema/ai/CostBreakdownDimension.json +20 -0
  112. package/json-schema/ai/CostBreakdownEntry.json +60 -0
  113. package/json-schema/ai/CostEntry.json +106 -0
  114. package/json-schema/ai/CostMetricType.json +17 -0
  115. package/json-schema/ai/CostOptimizationRecommendation.json +100 -0
  116. package/json-schema/ai/CostQueryFilters.json +112 -0
  117. package/json-schema/ai/CostReport.json +964 -0
  118. package/json-schema/ai/DocumentChunk.json +97 -0
  119. package/json-schema/ai/DocumentLoaderConfig.json +69 -0
  120. package/json-schema/ai/DocumentMetadata.json +61 -0
  121. package/json-schema/ai/EmbeddingModel.json +57 -0
  122. package/json-schema/ai/Entity.json +55 -0
  123. package/json-schema/ai/EvaluationMetrics.json +64 -0
  124. package/json-schema/ai/FieldSynonymConfig.json +39 -0
  125. package/json-schema/ai/FunctionCall.json +28 -0
  126. package/json-schema/ai/Hyperparameters.json +80 -0
  127. package/json-schema/ai/MessageContent.json +46 -0
  128. package/json-schema/ai/MessageContentType.json +16 -0
  129. package/json-schema/ai/MessagePruningEvent.json +92 -0
  130. package/json-schema/ai/MessageRole.json +16 -0
  131. package/json-schema/ai/ModelCapability.json +47 -0
  132. package/json-schema/ai/ModelConfig.json +181 -0
  133. package/json-schema/ai/ModelDrift.json +73 -0
  134. package/json-schema/ai/ModelFeature.json +71 -0
  135. package/json-schema/ai/ModelLimits.json +45 -0
  136. package/json-schema/ai/ModelPricing.json +28 -0
  137. package/json-schema/ai/ModelProvider.json +19 -0
  138. package/json-schema/ai/ModelRegistry.json +427 -0
  139. package/json-schema/ai/ModelRegistryEntry.json +239 -0
  140. package/json-schema/ai/ModelSelectionCriteria.json +50 -0
  141. package/json-schema/ai/NLQAnalytics.json +106 -0
  142. package/json-schema/ai/NLQFieldMapping.json +40 -0
  143. package/json-schema/ai/NLQModelConfig.json +78 -0
  144. package/json-schema/ai/NLQParseResult.json +252 -0
  145. package/json-schema/ai/NLQRequest.json +110 -0
  146. package/json-schema/ai/NLQResponse.json +288 -0
  147. package/json-schema/ai/NLQTrainingExample.json +120 -0
  148. package/json-schema/ai/PostProcessingAction.json +41 -0
  149. package/json-schema/ai/PredictionRequest.json +39 -0
  150. package/json-schema/ai/PredictionResult.json +82 -0
  151. package/json-schema/ai/PredictiveModel.json +445 -0
  152. package/json-schema/ai/PredictiveModelType.json +18 -0
  153. package/json-schema/ai/PromptTemplate.json +163 -0
  154. package/json-schema/ai/PromptVariable.json +56 -0
  155. package/json-schema/ai/QueryContext.json +72 -0
  156. package/json-schema/ai/QueryIntent.json +21 -0
  157. package/json-schema/ai/QueryTemplate.json +81 -0
  158. package/json-schema/ai/RAGPipelineConfig.json +552 -0
  159. package/json-schema/ai/RAGPipelineStatus.json +66 -0
  160. package/json-schema/ai/RAGQueryRequest.json +64 -0
  161. package/json-schema/ai/RAGQueryResponse.json +108 -0
  162. package/json-schema/ai/RerankingConfig.json +34 -0
  163. package/json-schema/ai/RetrievalStrategy.json +121 -0
  164. package/json-schema/ai/Timeframe.json +68 -0
  165. package/json-schema/ai/TokenBudgetConfig.json +92 -0
  166. package/json-schema/ai/TokenBudgetStrategy.json +16 -0
  167. package/json-schema/ai/TokenUsageStats.json +66 -0
  168. package/json-schema/ai/ToolCall.json +49 -0
  169. package/json-schema/ai/TrainingConfig.json +88 -0
  170. package/json-schema/ai/VectorStoreConfig.json +82 -0
  171. package/json-schema/ai/VectorStoreProvider.json +21 -0
  172. package/json-schema/ai/WorkflowFieldCondition.json +33 -0
  173. package/json-schema/ai/WorkflowSchedule.json +51 -0
  174. package/json-schema/data/CustomScriptAction.json +49 -0
  175. package/json-schema/{Field.json → data/Field.json} +50 -1
  176. package/json-schema/{FieldType.json → data/FieldType.json} +4 -1
  177. package/json-schema/data/HttpCallAction.json +81 -0
  178. package/json-schema/{Object.json → data/Object.json} +50 -1
  179. package/json-schema/data/PushNotificationAction.json +59 -0
  180. package/json-schema/data/SlackMessageAction.json +45 -0
  181. package/json-schema/data/SmsNotificationAction.json +50 -0
  182. package/json-schema/data/TaskCreationAction.json +59 -0
  183. package/json-schema/data/TeamsMessageAction.json +45 -0
  184. package/json-schema/data/WebhookTriggerAction.json +58 -0
  185. package/json-schema/data/WorkflowAction.json +465 -0
  186. package/json-schema/data/WorkflowRule.json +509 -0
  187. package/json-schema/system/Account.json +87 -0
  188. package/json-schema/system/AuditConfig.json +587 -0
  189. package/json-schema/system/AuditEvent.json +232 -0
  190. package/json-schema/system/AuditEventActor.json +48 -0
  191. package/json-schema/system/AuditEventChange.json +25 -0
  192. package/json-schema/system/AuditEventFilter.json +127 -0
  193. package/json-schema/system/AuditEventSeverity.json +19 -0
  194. package/json-schema/system/AuditEventTarget.json +33 -0
  195. package/json-schema/system/AuditEventType.json +53 -0
  196. package/json-schema/system/AuditRetentionPolicy.json +73 -0
  197. package/json-schema/system/AuditStorageConfig.json +60 -0
  198. package/json-schema/{AuthConfig.json → system/AuthConfig.json} +235 -0
  199. package/json-schema/system/CronSchedule.json +29 -0
  200. package/json-schema/system/DatabaseLevelIsolationStrategy.json +139 -0
  201. package/json-schema/system/DatabaseMapping.json +48 -0
  202. package/json-schema/system/EnterpriseAuthConfig.json +172 -0
  203. package/json-schema/system/Event.json +52 -0
  204. package/json-schema/system/EventHandler.json +29 -0
  205. package/json-schema/system/EventMetadata.json +33 -0
  206. package/json-schema/system/EventPersistence.json +25 -0
  207. package/json-schema/system/EventRoute.json +27 -0
  208. package/json-schema/system/IntervalSchedule.json +25 -0
  209. package/json-schema/system/Invitation.json +69 -0
  210. package/json-schema/system/InvitationStatus.json +15 -0
  211. package/json-schema/system/Job.json +127 -0
  212. package/json-schema/system/JobExecution.json +49 -0
  213. package/json-schema/system/JobExecutionStatus.json +15 -0
  214. package/json-schema/{LDAPConfig.json → system/LDAPConfig.json} +22 -5
  215. package/json-schema/system/LevelIsolationStrategySchema.json +93 -0
  216. package/json-schema/system/Member.json +46 -0
  217. package/json-schema/{OIDCConfig.json → system/OIDCConfig.json} +18 -3
  218. package/json-schema/system/OnceSchedule.json +25 -0
  219. package/json-schema/system/Organization.json +52 -0
  220. package/json-schema/system/Presence.json +40 -0
  221. package/json-schema/system/PresenceStatus.json +14 -0
  222. package/json-schema/system/RealtimeAction.json +14 -0
  223. package/json-schema/system/RealtimeEvent.json +51 -0
  224. package/json-schema/system/RealtimeEventType.json +15 -0
  225. package/json-schema/system/RetryPolicy.json +30 -0
  226. package/json-schema/system/RowLevelIsolationStrategy.json +74 -0
  227. package/json-schema/{SAMLConfig.json → system/SAMLConfig.json} +17 -3
  228. package/json-schema/system/Schedule.json +71 -0
  229. package/json-schema/system/Session.json +63 -0
  230. package/json-schema/{StandardAuthProvider.json → system/StandardAuthProvider.json} +235 -0
  231. package/json-schema/system/Subscription.json +65 -0
  232. package/json-schema/system/SubscriptionEvent.json +32 -0
  233. package/json-schema/system/SuspiciousActivityRule.json +175 -0
  234. package/json-schema/system/Tenant.json +61 -0
  235. package/json-schema/system/TenantIsolationConfig.json +298 -0
  236. package/json-schema/system/TenantIsolationLevel.json +14 -0
  237. package/json-schema/system/TenantQuota.json +27 -0
  238. package/json-schema/system/TenantSecurityPolicy.json +115 -0
  239. package/json-schema/system/TransportProtocol.json +14 -0
  240. package/json-schema/system/User.json +51 -0
  241. package/json-schema/system/VerificationToken.json +36 -0
  242. package/json-schema/{Action.json → ui/Action.json} +4 -1
  243. package/json-schema/{ActionParam.json → ui/ActionParam.json} +4 -1
  244. package/json-schema/{FieldWidgetProps.json → ui/FieldWidgetProps.json} +50 -1
  245. package/package.json +38 -12
  246. package/json-schema/AuthProtocol.json +0 -17
  247. package/json-schema/AuthProvider.json +0 -171
  248. package/json-schema/AuthenticationConfig.json +0 -601
  249. package/json-schema/AuthenticationProvider.json +0 -617
  250. package/json-schema/MenuItem.json +0 -28
  251. package/json-schema/WorkflowAction.json +0 -84
  252. package/json-schema/WorkflowRule.json +0 -128
  253. /package/json-schema/{AIKnowledge.json → ai/AIKnowledge.json} +0 -0
  254. /package/json-schema/{AIModelConfig.json → ai/AIModelConfig.json} +0 -0
  255. /package/json-schema/{AITool.json → ai/AITool.json} +0 -0
  256. /package/json-schema/{Agent.json → ai/Agent.json} +0 -0
  257. /package/json-schema/{ApiError.json → api/ApiError.json} +0 -0
  258. /package/json-schema/{BaseResponse.json → api/BaseResponse.json} +0 -0
  259. /package/json-schema/{BulkRequest.json → api/BulkRequest.json} +0 -0
  260. /package/json-schema/{BulkResponse.json → api/BulkResponse.json} +0 -0
  261. /package/json-schema/{CreateRequest.json → api/CreateRequest.json} +0 -0
  262. /package/json-schema/{DeleteResponse.json → api/DeleteResponse.json} +0 -0
  263. /package/json-schema/{ExportRequest.json → api/ExportRequest.json} +0 -0
  264. /package/json-schema/{ListRecordResponse.json → api/ListRecordResponse.json} +0 -0
  265. /package/json-schema/{ModificationResult.json → api/ModificationResult.json} +0 -0
  266. /package/json-schema/{RecordData.json → api/RecordData.json} +0 -0
  267. /package/json-schema/{SingleRecordResponse.json → api/SingleRecordResponse.json} +0 -0
  268. /package/json-schema/{UpdateRequest.json → api/UpdateRequest.json} +0 -0
  269. /package/json-schema/{Address.json → data/Address.json} +0 -0
  270. /package/json-schema/{AggregationFunction.json → data/AggregationFunction.json} +0 -0
  271. /package/json-schema/{AggregationNode.json → data/AggregationNode.json} +0 -0
  272. /package/json-schema/{AsyncValidation.json → data/AsyncValidation.json} +0 -0
  273. /package/json-schema/{ComparisonOperator.json → data/ComparisonOperator.json} +0 -0
  274. /package/json-schema/{ConditionalValidation.json → data/ConditionalValidation.json} +0 -0
  275. /package/json-schema/{CrossFieldValidation.json → data/CrossFieldValidation.json} +0 -0
  276. /package/json-schema/{CustomValidator.json → data/CustomValidator.json} +0 -0
  277. /package/json-schema/{Dataset.json → data/Dataset.json} +0 -0
  278. /package/json-schema/{DatasetMode.json → data/DatasetMode.json} +0 -0
  279. /package/json-schema/{EmailAlertAction.json → data/EmailAlertAction.json} +0 -0
  280. /package/json-schema/{EqualityOperator.json → data/EqualityOperator.json} +0 -0
  281. /package/json-schema/{FieldMapping.json → data/FieldMapping.json} +0 -0
  282. /package/json-schema/{FieldNode.json → data/FieldNode.json} +0 -0
  283. /package/json-schema/{FieldOperators.json → data/FieldOperators.json} +0 -0
  284. /package/json-schema/{FieldPermission.json → data/FieldPermission.json} +0 -0
  285. /package/json-schema/{FieldUpdateAction.json → data/FieldUpdateAction.json} +0 -0
  286. /package/json-schema/{FilterCondition.json → data/FilterCondition.json} +0 -0
  287. /package/json-schema/{FilterNode.json → data/FilterNode.json} +0 -0
  288. /package/json-schema/{FilterOperator.json → data/FilterOperator.json} +0 -0
  289. /package/json-schema/{Flow.json → data/Flow.json} +0 -0
  290. /package/json-schema/{FlowEdge.json → data/FlowEdge.json} +0 -0
  291. /package/json-schema/{FlowNode.json → data/FlowNode.json} +0 -0
  292. /package/json-schema/{FlowNodeAction.json → data/FlowNodeAction.json} +0 -0
  293. /package/json-schema/{FlowVariable.json → data/FlowVariable.json} +0 -0
  294. /package/json-schema/{FormatValidation.json → data/FormatValidation.json} +0 -0
  295. /package/json-schema/{Index.json → data/Index.json} +0 -0
  296. /package/json-schema/{JoinNode.json → data/JoinNode.json} +0 -0
  297. /package/json-schema/{JoinType.json → data/JoinType.json} +0 -0
  298. /package/json-schema/{LocationCoordinates.json → data/LocationCoordinates.json} +0 -0
  299. /package/json-schema/{LogicOperator.json → data/LogicOperator.json} +0 -0
  300. /package/json-schema/{Mapping.json → data/Mapping.json} +0 -0
  301. /package/json-schema/{NormalizedFilter.json → data/NormalizedFilter.json} +0 -0
  302. /package/json-schema/{OWDModel.json → data/OWDModel.json} +0 -0
  303. /package/json-schema/{ObjectCapabilities.json → data/ObjectCapabilities.json} +0 -0
  304. /package/json-schema/{ObjectPermission.json → data/ObjectPermission.json} +0 -0
  305. /package/json-schema/{PermissionSet.json → data/PermissionSet.json} +0 -0
  306. /package/json-schema/{Query.json → data/Query.json} +0 -0
  307. /package/json-schema/{QueryFilter.json → data/QueryFilter.json} +0 -0
  308. /package/json-schema/{RangeOperator.json → data/RangeOperator.json} +0 -0
  309. /package/json-schema/{ScriptValidation.json → data/ScriptValidation.json} +0 -0
  310. /package/json-schema/{SelectOption.json → data/SelectOption.json} +0 -0
  311. /package/json-schema/{SetOperator.json → data/SetOperator.json} +0 -0
  312. /package/json-schema/{SharingLevel.json → data/SharingLevel.json} +0 -0
  313. /package/json-schema/{SharingRule.json → data/SharingRule.json} +0 -0
  314. /package/json-schema/{SharingRuleType.json → data/SharingRuleType.json} +0 -0
  315. /package/json-schema/{SortNode.json → data/SortNode.json} +0 -0
  316. /package/json-schema/{SpecialOperator.json → data/SpecialOperator.json} +0 -0
  317. /package/json-schema/{StateMachineValidation.json → data/StateMachineValidation.json} +0 -0
  318. /package/json-schema/{StringOperator.json → data/StringOperator.json} +0 -0
  319. /package/json-schema/{TransformType.json → data/TransformType.json} +0 -0
  320. /package/json-schema/{Trigger.json → data/Trigger.json} +0 -0
  321. /package/json-schema/{TriggerAction.json → data/TriggerAction.json} +0 -0
  322. /package/json-schema/{TriggerContext.json → data/TriggerContext.json} +0 -0
  323. /package/json-schema/{TriggerTiming.json → data/TriggerTiming.json} +0 -0
  324. /package/json-schema/{UniquenessValidation.json → data/UniquenessValidation.json} +0 -0
  325. /package/json-schema/{ValidationRule.json → data/ValidationRule.json} +0 -0
  326. /package/json-schema/{WindowFunction.json → data/WindowFunction.json} +0 -0
  327. /package/json-schema/{WindowFunctionNode.json → data/WindowFunctionNode.json} +0 -0
  328. /package/json-schema/{WindowSpec.json → data/WindowSpec.json} +0 -0
  329. /package/json-schema/{WorkflowTriggerType.json → data/WorkflowTriggerType.json} +0 -0
  330. /package/json-schema/{AccountLinkingConfig.json → system/AccountLinkingConfig.json} +0 -0
  331. /package/json-schema/{ApiCapabilities.json → system/ApiCapabilities.json} +0 -0
  332. /package/json-schema/{ApiEndpoint.json → system/ApiEndpoint.json} +0 -0
  333. /package/json-schema/{ApiMapping.json → system/ApiMapping.json} +0 -0
  334. /package/json-schema/{ApiRoutes.json → system/ApiRoutes.json} +0 -0
  335. /package/json-schema/{AuditPolicy.json → system/AuditPolicy.json} +0 -0
  336. /package/json-schema/{AuthPluginConfig.json → system/AuthPluginConfig.json} +0 -0
  337. /package/json-schema/{AuthStrategy.json → system/AuthStrategy.json} +0 -0
  338. /package/json-schema/{CSRFConfig.json → system/CSRFConfig.json} +0 -0
  339. /package/json-schema/{DatabaseAdapter.json → system/DatabaseAdapter.json} +0 -0
  340. /package/json-schema/{Datasource.json → system/Datasource.json} +0 -0
  341. /package/json-schema/{DatasourceCapabilities.json → system/DatasourceCapabilities.json} +0 -0
  342. /package/json-schema/{Discovery.json → system/Discovery.json} +0 -0
  343. /package/json-schema/{DriverCapabilities.json → system/DriverCapabilities.json} +0 -0
  344. /package/json-schema/{DriverDefinition.json → system/DriverDefinition.json} +0 -0
  345. /package/json-schema/{DriverInterface.json → system/DriverInterface.json} +0 -0
  346. /package/json-schema/{DriverOptions.json → system/DriverOptions.json} +0 -0
  347. /package/json-schema/{DriverType.json → system/DriverType.json} +0 -0
  348. /package/json-schema/{EmailPasswordConfig.json → system/EmailPasswordConfig.json} +0 -0
  349. /package/json-schema/{Feature.json → system/Feature.json} +0 -0
  350. /package/json-schema/{HttpMethod.json → system/HttpMethod.json} +0 -0
  351. /package/json-schema/{I18nContext.json → system/I18nContext.json} +0 -0
  352. /package/json-schema/{License.json → system/License.json} +0 -0
  353. /package/json-schema/{Locale.json → system/Locale.json} +0 -0
  354. /package/json-schema/{Logger.json → system/Logger.json} +0 -0
  355. /package/json-schema/{MagicLinkConfig.json → system/MagicLinkConfig.json} +0 -0
  356. /package/json-schema/{Manifest.json → system/Manifest.json} +0 -0
  357. /package/json-schema/{MetricType.json → system/MetricType.json} +0 -0
  358. /package/json-schema/{NetworkPolicy.json → system/NetworkPolicy.json} +0 -0
  359. /package/json-schema/{OAuthProvider.json → system/OAuthProvider.json} +0 -0
  360. /package/json-schema/{ObjectQLClient.json → system/ObjectQLClient.json} +0 -0
  361. /package/json-schema/{PasskeyConfig.json → system/PasskeyConfig.json} +0 -0
  362. /package/json-schema/{PasswordPolicy.json → system/PasswordPolicy.json} +0 -0
  363. /package/json-schema/{Plan.json → system/Plan.json} +0 -0
  364. /package/json-schema/{Plugin.json → system/Plugin.json} +0 -0
  365. /package/json-schema/{PluginContext.json → system/PluginContext.json} +0 -0
  366. /package/json-schema/{PluginLifecycle.json → system/PluginLifecycle.json} +0 -0
  367. /package/json-schema/{Policy.json → system/Policy.json} +0 -0
  368. /package/json-schema/{RateLimit.json → system/RateLimit.json} +0 -0
  369. /package/json-schema/{RateLimitConfig.json → system/RateLimitConfig.json} +0 -0
  370. /package/json-schema/{Role.json → system/Role.json} +0 -0
  371. /package/json-schema/{Router.json → system/Router.json} +0 -0
  372. /package/json-schema/{Scheduler.json → system/Scheduler.json} +0 -0
  373. /package/json-schema/{ScopedStorage.json → system/ScopedStorage.json} +0 -0
  374. /package/json-schema/{SessionConfig.json → system/SessionConfig.json} +0 -0
  375. /package/json-schema/{SessionPolicy.json → system/SessionPolicy.json} +0 -0
  376. /package/json-schema/{SystemAPI.json → system/SystemAPI.json} +0 -0
  377. /package/json-schema/{Territory.json → system/Territory.json} +0 -0
  378. /package/json-schema/{TerritoryModel.json → system/TerritoryModel.json} +0 -0
  379. /package/json-schema/{TerritoryType.json → system/TerritoryType.json} +0 -0
  380. /package/json-schema/{TranslationBundle.json → system/TranslationBundle.json} +0 -0
  381. /package/json-schema/{TranslationData.json → system/TranslationData.json} +0 -0
  382. /package/json-schema/{TwoFactorConfig.json → system/TwoFactorConfig.json} +0 -0
  383. /package/json-schema/{UserFieldMapping.json → system/UserFieldMapping.json} +0 -0
  384. /package/json-schema/{Webhook.json → system/Webhook.json} +0 -0
  385. /package/json-schema/{WebhookReceiver.json → system/WebhookReceiver.json} +0 -0
  386. /package/json-schema/{WebhookTriggerType.json → system/WebhookTriggerType.json} +0 -0
  387. /package/json-schema/{Animation.json → ui/Animation.json} +0 -0
  388. /package/json-schema/{App.json → ui/App.json} +0 -0
  389. /package/json-schema/{AppBranding.json → ui/AppBranding.json} +0 -0
  390. /package/json-schema/{BorderRadius.json → ui/BorderRadius.json} +0 -0
  391. /package/json-schema/{Breakpoints.json → ui/Breakpoints.json} +0 -0
  392. /package/json-schema/{CalendarConfig.json → ui/CalendarConfig.json} +0 -0
  393. /package/json-schema/{ChartType.json → ui/ChartType.json} +0 -0
  394. /package/json-schema/{ColorPalette.json → ui/ColorPalette.json} +0 -0
  395. /package/json-schema/{Dashboard.json → ui/Dashboard.json} +0 -0
  396. /package/json-schema/{DashboardNavItem.json → ui/DashboardNavItem.json} +0 -0
  397. /package/json-schema/{DashboardWidget.json → ui/DashboardWidget.json} +0 -0
  398. /package/json-schema/{FormSection.json → ui/FormSection.json} +0 -0
  399. /package/json-schema/{FormView.json → ui/FormView.json} +0 -0
  400. /package/json-schema/{GanttConfig.json → ui/GanttConfig.json} +0 -0
  401. /package/json-schema/{GroupNavItem.json → ui/GroupNavItem.json} +0 -0
  402. /package/json-schema/{KanbanConfig.json → ui/KanbanConfig.json} +0 -0
  403. /package/json-schema/{ListView.json → ui/ListView.json} +0 -0
  404. /package/json-schema/{NavigationItem.json → ui/NavigationItem.json} +0 -0
  405. /package/json-schema/{ObjectNavItem.json → ui/ObjectNavItem.json} +0 -0
  406. /package/json-schema/{Page.json → ui/Page.json} +0 -0
  407. /package/json-schema/{PageComponent.json → ui/PageComponent.json} +0 -0
  408. /package/json-schema/{PageNavItem.json → ui/PageNavItem.json} +0 -0
  409. /package/json-schema/{PageRegion.json → ui/PageRegion.json} +0 -0
  410. /package/json-schema/{Report.json → ui/Report.json} +0 -0
  411. /package/json-schema/{ReportChart.json → ui/ReportChart.json} +0 -0
  412. /package/json-schema/{ReportColumn.json → ui/ReportColumn.json} +0 -0
  413. /package/json-schema/{ReportGrouping.json → ui/ReportGrouping.json} +0 -0
  414. /package/json-schema/{ReportType.json → ui/ReportType.json} +0 -0
  415. /package/json-schema/{Shadow.json → ui/Shadow.json} +0 -0
  416. /package/json-schema/{Spacing.json → ui/Spacing.json} +0 -0
  417. /package/json-schema/{Theme.json → ui/Theme.json} +0 -0
  418. /package/json-schema/{ThemeMode.json → ui/ThemeMode.json} +0 -0
  419. /package/json-schema/{Typography.json → ui/Typography.json} +0 -0
  420. /package/json-schema/{UrlNavItem.json → ui/UrlNavItem.json} +0 -0
  421. /package/json-schema/{View.json → ui/View.json} +0 -0
  422. /package/json-schema/{ZIndex.json → ui/ZIndex.json} +0 -0
@@ -2,8 +2,54 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConditionalValidationSchema = exports.ValidationRuleSchema = exports.CustomValidatorSchema = exports.AsyncValidationSchema = exports.CrossFieldValidationSchema = exports.FormatValidationSchema = exports.StateMachineValidationSchema = exports.UniquenessValidationSchema = exports.ScriptValidationSchema = void 0;
4
4
  const zod_1 = require("zod");
5
+ /**
6
+ * # ObjectStack Validation Protocol
7
+ *
8
+ * This module defines the validation schema protocol for ObjectStack, providing a comprehensive
9
+ * type-safe validation system similar to Salesforce's validation rules but with enhanced capabilities.
10
+ *
11
+ * ## Overview
12
+ *
13
+ * Validation rules are applied at the data layer to ensure data integrity and enforce business logic.
14
+ * The system supports multiple validation types:
15
+ *
16
+ * 1. **Script Validation**: Formula-based validation using expressions
17
+ * 2. **Uniqueness Validation**: Enforce unique constraints across fields
18
+ * 3. **State Machine Validation**: Control allowed state transitions
19
+ * 4. **Format Validation**: Validate field formats (email, URL, regex, etc.)
20
+ * 5. **Cross-Field Validation**: Validate relationships between multiple fields
21
+ * 6. **Async Validation**: Remote validation via API calls
22
+ * 7. **Custom Validation**: User-defined validation functions
23
+ * 8. **Conditional Validation**: Apply validations based on conditions
24
+ *
25
+ * ## Salesforce Comparison
26
+ *
27
+ * ObjectStack validation rules are inspired by Salesforce validation rules but enhanced:
28
+ * - Salesforce: Formula-based validation with `Error Condition Formula`
29
+ * - ObjectStack: Multiple validation types with composable rules
30
+ *
31
+ * Example Salesforce validation rule:
32
+ * ```
33
+ * Rule Name: Discount_Cannot_Exceed_40_Percent
34
+ * Error Condition Formula: Discount_Percent__c > 0.40
35
+ * Error Message: Discount cannot exceed 40%.
36
+ * ```
37
+ *
38
+ * Equivalent ObjectStack rule:
39
+ * ```typescript
40
+ * {
41
+ * type: 'script',
42
+ * name: 'discount_cannot_exceed_40_percent',
43
+ * condition: 'discount_percent > 0.40',
44
+ * message: 'Discount cannot exceed 40%',
45
+ * severity: 'error'
46
+ * }
47
+ * ```
48
+ */
5
49
  /**
6
50
  * Base Validation Rule
51
+ *
52
+ * All validation rules extend from this base schema with common properties.
7
53
  */
8
54
  const BaseValidationSchema = zod_1.z.object({
9
55
  name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Unique rule name'),
@@ -51,6 +97,65 @@ exports.FormatValidationSchema = BaseValidationSchema.extend({
51
97
  /**
52
98
  * 5. Cross-Field Validation
53
99
  * Validates relationships between multiple fields.
100
+ *
101
+ * ## Use Cases
102
+ * - Date range validations (end_date > start_date)
103
+ * - Amount comparisons (discount < total)
104
+ * - Complex business rules involving multiple fields
105
+ *
106
+ * ## Salesforce Examples
107
+ *
108
+ * ### Example 1: Close Date Must Be In Current or Future Month
109
+ * **Salesforce Formula:**
110
+ * ```
111
+ * MONTH(CloseDate) < MONTH(TODAY()) ||
112
+ * YEAR(CloseDate) < YEAR(TODAY())
113
+ * ```
114
+ *
115
+ * **ObjectStack Equivalent:**
116
+ * ```typescript
117
+ * {
118
+ * type: 'cross_field',
119
+ * name: 'close_date_future',
120
+ * condition: 'MONTH(close_date) >= MONTH(TODAY()) AND YEAR(close_date) >= YEAR(TODAY())',
121
+ * fields: ['close_date'],
122
+ * message: 'Close Date must be in the current or a future month'
123
+ * }
124
+ * ```
125
+ *
126
+ * ### Example 2: Discount Validation
127
+ * **Salesforce Formula:**
128
+ * ```
129
+ * Discount__c > (Amount__c * 0.40)
130
+ * ```
131
+ *
132
+ * **ObjectStack Equivalent:**
133
+ * ```typescript
134
+ * {
135
+ * type: 'cross_field',
136
+ * name: 'discount_limit',
137
+ * condition: 'discount > (amount * 0.40)',
138
+ * fields: ['discount', 'amount'],
139
+ * message: 'Discount cannot exceed 40% of the amount'
140
+ * }
141
+ * ```
142
+ *
143
+ * ### Example 3: Opportunity Must Have Products
144
+ * **Salesforce Formula:**
145
+ * ```
146
+ * ISBLANK(Products__c) && ISPICKVAL(StageName, "Closed Won")
147
+ * ```
148
+ *
149
+ * **ObjectStack Equivalent:**
150
+ * ```typescript
151
+ * {
152
+ * type: 'cross_field',
153
+ * name: 'products_required_for_won',
154
+ * condition: 'products = null AND stage = "closed_won"',
155
+ * fields: ['products', 'stage'],
156
+ * message: 'Opportunity must have products to be marked as Closed Won'
157
+ * }
158
+ * ```
54
159
  */
55
160
  exports.CrossFieldValidationSchema = BaseValidationSchema.extend({
56
161
  type: zod_1.z.literal('cross_field'),
@@ -60,6 +165,124 @@ exports.CrossFieldValidationSchema = BaseValidationSchema.extend({
60
165
  /**
61
166
  * 6. Async Validation
62
167
  * Remote validation via API call or database query.
168
+ *
169
+ * ## Use Cases
170
+ *
171
+ * ### 1. Email Uniqueness Check
172
+ * Check if an email address is already registered in the system.
173
+ * ```typescript
174
+ * {
175
+ * type: 'async',
176
+ * name: 'unique_email',
177
+ * field: 'email',
178
+ * validatorUrl: '/api/users/check-email',
179
+ * message: 'This email address is already registered',
180
+ * debounce: 500, // Wait 500ms after user stops typing
181
+ * timeout: 3000
182
+ * }
183
+ * ```
184
+ *
185
+ * ### 2. Username Availability
186
+ * Verify username is available before form submission.
187
+ * ```typescript
188
+ * {
189
+ * type: 'async',
190
+ * name: 'username_available',
191
+ * field: 'username',
192
+ * validatorUrl: '/api/users/check-username',
193
+ * message: 'This username is already taken',
194
+ * debounce: 300,
195
+ * timeout: 2000
196
+ * }
197
+ * ```
198
+ *
199
+ * ### 3. Tax ID Validation
200
+ * Validate tax ID with government API (e.g., IRS, HMRC).
201
+ * ```typescript
202
+ * {
203
+ * type: 'async',
204
+ * name: 'validate_tax_id',
205
+ * field: 'tax_id',
206
+ * validatorFunction: 'validateTaxIdWithIRS',
207
+ * message: 'Invalid Tax ID number',
208
+ * timeout: 10000, // Government APIs may be slow
209
+ * params: { country: 'US', format: 'EIN' }
210
+ * }
211
+ * ```
212
+ *
213
+ * ### 4. Credit Card Validation
214
+ * Verify credit card with payment gateway without charging.
215
+ * ```typescript
216
+ * {
217
+ * type: 'async',
218
+ * name: 'validate_card',
219
+ * field: 'card_number',
220
+ * validatorUrl: 'https://api.stripe.com/v1/tokens/validate',
221
+ * message: 'Invalid credit card number',
222
+ * timeout: 5000,
223
+ * params: {
224
+ * mode: 'validate_only',
225
+ * checkFunds: false
226
+ * }
227
+ * }
228
+ * ```
229
+ *
230
+ * ### 5. Address Validation
231
+ * Validate and standardize addresses using geocoding services.
232
+ * ```typescript
233
+ * {
234
+ * type: 'async',
235
+ * name: 'validate_address',
236
+ * field: 'street_address',
237
+ * validatorFunction: 'validateAddressWithGoogleMaps',
238
+ * message: 'Unable to verify address',
239
+ * timeout: 4000,
240
+ * params: {
241
+ * includeFields: ['city', 'state', 'zip'],
242
+ * strictMode: true,
243
+ * country: 'US'
244
+ * }
245
+ * }
246
+ * ```
247
+ *
248
+ * ### 6. Domain Name Availability
249
+ * Check if domain name is available for registration.
250
+ * ```typescript
251
+ * {
252
+ * type: 'async',
253
+ * name: 'domain_available',
254
+ * field: 'domain_name',
255
+ * validatorUrl: '/api/domains/check-availability',
256
+ * message: 'This domain is already taken or reserved',
257
+ * debounce: 500,
258
+ * timeout: 2000
259
+ * }
260
+ * ```
261
+ *
262
+ * ### 7. Coupon Code Validation
263
+ * Verify coupon code is valid and not expired.
264
+ * ```typescript
265
+ * {
266
+ * type: 'async',
267
+ * name: 'validate_coupon',
268
+ * field: 'coupon_code',
269
+ * validatorUrl: '/api/coupons/validate',
270
+ * message: 'Invalid or expired coupon code',
271
+ * timeout: 2000,
272
+ * params: {
273
+ * checkExpiration: true,
274
+ * checkUsageLimit: true,
275
+ * userId: '{{current_user_id}}'
276
+ * }
277
+ * }
278
+ * ```
279
+ *
280
+ * ## Best Practices
281
+ * - Always set a reasonable `timeout` (default is 5000ms)
282
+ * - Use `debounce` for fields that are typed (300-500ms recommended)
283
+ * - Implement proper error handling on the server side
284
+ * - Cache validation results when appropriate
285
+ * - Consider rate limiting for external API calls
63
286
  */
64
287
  exports.AsyncValidationSchema = BaseValidationSchema.extend({
65
288
  type: zod_1.z.literal('async'),
@@ -96,6 +319,178 @@ exports.ValidationRuleSchema = zod_1.z.lazy(() => zod_1.z.discriminatedUnion('ty
96
319
  /**
97
320
  * 8. Conditional Validation
98
321
  * Validation that only applies when a condition is met.
322
+ *
323
+ * ## Overview
324
+ * Conditional validations follow the pattern: "Validate X only if Y is true"
325
+ * This allows for context-aware validation rules that adapt to different scenarios.
326
+ *
327
+ * ## Use Cases
328
+ *
329
+ * ### 1. Validate Based on Record Type
330
+ * Apply different validation rules based on the type of record.
331
+ * ```typescript
332
+ * {
333
+ * type: 'conditional',
334
+ * name: 'enterprise_approval_required',
335
+ * when: 'account_type = "enterprise"',
336
+ * message: 'Enterprise validation',
337
+ * then: {
338
+ * type: 'script',
339
+ * name: 'require_approval',
340
+ * message: 'Enterprise accounts require manager approval',
341
+ * condition: 'approval_status = null'
342
+ * }
343
+ * }
344
+ * ```
345
+ *
346
+ * ### 2. Conditional Field Requirements
347
+ * Require certain fields only when specific conditions are met.
348
+ * ```typescript
349
+ * {
350
+ * type: 'conditional',
351
+ * name: 'shipping_address_when_required',
352
+ * when: 'requires_shipping = true',
353
+ * message: 'Shipping validation',
354
+ * then: {
355
+ * type: 'script',
356
+ * name: 'shipping_address_required',
357
+ * message: 'Shipping address is required for physical products',
358
+ * condition: 'shipping_address = null OR shipping_address = ""'
359
+ * }
360
+ * }
361
+ * ```
362
+ *
363
+ * ### 3. Amount-Based Validation
364
+ * Apply different rules based on transaction amount.
365
+ * ```typescript
366
+ * {
367
+ * type: 'conditional',
368
+ * name: 'high_value_approval',
369
+ * when: 'order_total > 10000',
370
+ * message: 'High value order validation',
371
+ * then: {
372
+ * type: 'script',
373
+ * name: 'manager_approval_required',
374
+ * message: 'Orders over $10,000 require manager approval',
375
+ * condition: 'manager_approval_id = null'
376
+ * },
377
+ * otherwise: {
378
+ * type: 'script',
379
+ * name: 'standard_validation',
380
+ * message: 'Payment method is required',
381
+ * condition: 'payment_method = null'
382
+ * }
383
+ * }
384
+ * ```
385
+ *
386
+ * ### 4. Regional Compliance
387
+ * Apply region-specific validation rules.
388
+ * ```typescript
389
+ * {
390
+ * type: 'conditional',
391
+ * name: 'regional_compliance',
392
+ * when: 'region = "EU"',
393
+ * message: 'EU compliance validation',
394
+ * then: {
395
+ * type: 'script',
396
+ * name: 'gdpr_consent',
397
+ * message: 'GDPR consent is required for EU customers',
398
+ * condition: 'gdpr_consent_given = false'
399
+ * },
400
+ * otherwise: {
401
+ * type: 'script',
402
+ * name: 'tos_acceptance',
403
+ * message: 'Terms of Service acceptance required',
404
+ * condition: 'tos_accepted = false'
405
+ * }
406
+ * }
407
+ * ```
408
+ *
409
+ * ### 5. Nested Conditional Validation
410
+ * Create complex validation logic with nested conditions.
411
+ * ```typescript
412
+ * {
413
+ * type: 'conditional',
414
+ * name: 'country_state_validation',
415
+ * when: 'country = "US"',
416
+ * message: 'US-specific validation',
417
+ * then: {
418
+ * type: 'conditional',
419
+ * name: 'california_validation',
420
+ * when: 'state = "CA"',
421
+ * message: 'California-specific validation',
422
+ * then: {
423
+ * type: 'script',
424
+ * name: 'ca_tax_id_required',
425
+ * message: 'California requires a valid tax ID',
426
+ * condition: 'tax_id = null OR NOT(REGEX(tax_id, "^\\d{2}-\\d{7}$"))'
427
+ * }
428
+ * }
429
+ * }
430
+ * ```
431
+ *
432
+ * ### 6. Tax Validation for Taxable Items
433
+ * Only validate tax fields when the item is taxable.
434
+ * ```typescript
435
+ * {
436
+ * type: 'conditional',
437
+ * name: 'tax_field_validation',
438
+ * when: 'is_taxable = true',
439
+ * message: 'Tax validation',
440
+ * then: {
441
+ * type: 'script',
442
+ * name: 'tax_code_required',
443
+ * message: 'Tax code is required for taxable items',
444
+ * condition: 'tax_code = null OR tax_code = ""'
445
+ * }
446
+ * }
447
+ * ```
448
+ *
449
+ * ### 7. Role-Based Validation
450
+ * Apply validation based on user role.
451
+ * ```typescript
452
+ * {
453
+ * type: 'conditional',
454
+ * name: 'role_based_approval_limit',
455
+ * when: 'user_role = "manager"',
456
+ * message: 'Manager approval limits',
457
+ * then: {
458
+ * type: 'script',
459
+ * name: 'manager_limit',
460
+ * message: 'Managers can approve up to $50,000',
461
+ * condition: 'approval_amount > 50000'
462
+ * }
463
+ * }
464
+ * ```
465
+ *
466
+ * ## Salesforce Pattern Comparison
467
+ *
468
+ * Salesforce doesn't have explicit "conditional validation" rules but achieves similar
469
+ * behavior using formula logic. ObjectStack makes this pattern explicit and composable.
470
+ *
471
+ * **Salesforce Approach:**
472
+ * ```
473
+ * IF(
474
+ * ISPICKVAL(Type, "Enterprise"),
475
+ * AND(Amount > 100000, ISBLANK(Approval__c)),
476
+ * FALSE
477
+ * )
478
+ * ```
479
+ *
480
+ * **ObjectStack Approach:**
481
+ * ```typescript
482
+ * {
483
+ * type: 'conditional',
484
+ * name: 'enterprise_high_value',
485
+ * when: 'type = "enterprise"',
486
+ * then: {
487
+ * type: 'cross_field',
488
+ * name: 'amount_approval',
489
+ * condition: 'amount > 100000 AND approval = null',
490
+ * fields: ['amount', 'approval']
491
+ * }
492
+ * }
493
+ * ```
99
494
  */
100
495
  exports.ConditionalValidationSchema = BaseValidationSchema.extend({
101
496
  type: zod_1.z.literal('conditional'),