@objectstack/spec 0.3.1 → 0.3.3

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 (409) hide show
  1. package/README.md +32 -10
  2. package/dist/ai/agent.zod.d.ts +12 -12
  3. package/dist/ai/conversation.zod.d.ts +65 -65
  4. package/dist/ai/cost.zod.d.ts +125 -125
  5. package/dist/ai/index.d.ts +1 -1
  6. package/dist/ai/index.d.ts.map +1 -1
  7. package/dist/ai/index.js +1 -1
  8. package/dist/ai/model-registry.zod.d.ts +94 -94
  9. package/dist/ai/nlq.zod.d.ts +70 -70
  10. package/dist/ai/{workflow-automation.zod.d.ts → orchestration.zod.d.ts} +50 -49
  11. package/dist/ai/orchestration.zod.d.ts.map +1 -0
  12. package/dist/ai/{workflow-automation.zod.js → orchestration.zod.js} +26 -25
  13. package/dist/ai/predictive.zod.d.ts +31 -31
  14. package/dist/ai/rag-pipeline.zod.d.ts +86 -86
  15. package/dist/api/contract.zod.d.ts +125 -109
  16. package/dist/api/contract.zod.d.ts.map +1 -1
  17. package/dist/{system → api}/discovery.zod.d.ts +26 -26
  18. package/dist/api/discovery.zod.d.ts.map +1 -0
  19. package/dist/{system → api}/discovery.zod.js +9 -9
  20. package/dist/{system/api.zod.d.ts → api/endpoint.zod.d.ts} +53 -57
  21. package/dist/api/endpoint.zod.d.ts.map +1 -0
  22. package/dist/{system/api.zod.js → api/endpoint.zod.js} +3 -6
  23. package/dist/api/index.d.ts +4 -0
  24. package/dist/api/index.d.ts.map +1 -1
  25. package/dist/api/index.js +4 -0
  26. package/dist/{system → api}/realtime.zod.d.ts +4 -4
  27. package/dist/api/realtime.zod.d.ts.map +1 -0
  28. package/dist/api/router.zod.d.ts +182 -0
  29. package/dist/api/router.zod.d.ts.map +1 -0
  30. package/dist/api/router.zod.js +103 -0
  31. package/dist/{system/auth.zod.d.ts → auth/config.zod.d.ts} +191 -191
  32. package/dist/auth/config.zod.d.ts.map +1 -0
  33. package/dist/{system → auth}/identity.zod.d.ts +8 -8
  34. package/dist/auth/identity.zod.d.ts.map +1 -0
  35. package/dist/auth/index.d.ts +7 -0
  36. package/dist/auth/index.d.ts.map +1 -0
  37. package/dist/auth/index.js +22 -0
  38. package/dist/{system → auth}/organization.zod.d.ts +5 -5
  39. package/dist/auth/organization.zod.d.ts.map +1 -0
  40. package/dist/{system → auth}/policy.zod.d.ts +3 -3
  41. package/dist/auth/policy.zod.d.ts.map +1 -0
  42. package/dist/{system/auth-protocol.d.ts → auth/protocol.d.ts} +1 -1
  43. package/dist/auth/protocol.d.ts.map +1 -0
  44. package/dist/auth/role.zod.d.ts.map +1 -0
  45. package/dist/{data → automation}/flow.zod.d.ts +34 -16
  46. package/dist/automation/flow.zod.d.ts.map +1 -0
  47. package/dist/{data → automation}/flow.zod.js +6 -1
  48. package/dist/automation/index.d.ts +4 -0
  49. package/dist/automation/index.d.ts.map +1 -0
  50. package/dist/automation/index.js +19 -0
  51. package/dist/{system → automation}/webhook.zod.d.ts +2 -2
  52. package/dist/automation/webhook.zod.d.ts.map +1 -0
  53. package/dist/automation/workflow.zod.d.ts +2045 -0
  54. package/dist/automation/workflow.zod.d.ts.map +1 -0
  55. package/dist/{data → automation}/workflow.zod.js +24 -1
  56. package/dist/data/dataset.zod.d.ts +2 -2
  57. package/dist/data/field.zod.d.ts +443 -213
  58. package/dist/data/field.zod.d.ts.map +1 -1
  59. package/dist/data/field.zod.js +29 -1
  60. package/dist/data/filter.zod.d.ts +167 -30
  61. package/dist/data/filter.zod.d.ts.map +1 -1
  62. package/dist/data/filter.zod.js +25 -13
  63. package/dist/data/hook.zod.d.ts +191 -0
  64. package/dist/data/hook.zod.d.ts.map +1 -0
  65. package/dist/data/hook.zod.js +144 -0
  66. package/dist/data/index.d.ts +4 -17
  67. package/dist/data/index.d.ts.map +1 -1
  68. package/dist/data/index.js +4 -17
  69. package/dist/data/mapping.zod.d.ts +103 -91
  70. package/dist/data/mapping.zod.d.ts.map +1 -1
  71. package/dist/data/object.zod.d.ts +387 -127
  72. package/dist/data/object.zod.d.ts.map +1 -1
  73. package/dist/data/object.zod.js +87 -42
  74. package/dist/data/query.zod.d.ts +98 -169
  75. package/dist/data/query.zod.d.ts.map +1 -1
  76. package/dist/data/query.zod.js +42 -130
  77. package/dist/data/validation.zod.d.ts +166 -26
  78. package/dist/data/validation.zod.d.ts.map +1 -1
  79. package/dist/data/validation.zod.js +38 -16
  80. package/dist/{system → driver}/datasource.zod.d.ts +42 -8
  81. package/dist/driver/datasource.zod.d.ts.map +1 -0
  82. package/dist/{system → driver}/datasource.zod.js +17 -13
  83. package/dist/driver/driver.zod.d.ts +3392 -0
  84. package/dist/driver/driver.zod.d.ts.map +1 -0
  85. package/dist/{system → driver}/driver.zod.js +99 -0
  86. package/dist/driver/index.d.ts +5 -0
  87. package/dist/driver/index.d.ts.map +1 -0
  88. package/dist/driver/index.js +20 -0
  89. package/dist/driver/mongo.zod.d.ts +107 -0
  90. package/dist/driver/mongo.zod.d.ts.map +1 -0
  91. package/dist/driver/mongo.zod.js +80 -0
  92. package/dist/driver/postgres.zod.d.ts +134 -0
  93. package/dist/driver/postgres.zod.d.ts.map +1 -0
  94. package/dist/driver/postgres.zod.js +88 -0
  95. package/dist/hub/composer.zod.d.ts +2768 -0
  96. package/dist/hub/composer.zod.d.ts.map +1 -0
  97. package/dist/hub/composer.zod.js +111 -0
  98. package/dist/hub/index.d.ts +6 -0
  99. package/dist/hub/index.d.ts.map +1 -0
  100. package/dist/hub/index.js +22 -0
  101. package/dist/{system → hub}/license.zod.d.ts +11 -7
  102. package/dist/hub/license.zod.d.ts.map +1 -0
  103. package/dist/{system → hub}/license.zod.js +5 -3
  104. package/dist/hub/marketplace.zod.d.ts +191 -0
  105. package/dist/hub/marketplace.zod.d.ts.map +1 -0
  106. package/dist/hub/marketplace.zod.js +85 -0
  107. package/dist/hub/space.zod.d.ts +383 -0
  108. package/dist/hub/space.zod.d.ts.map +1 -0
  109. package/dist/hub/space.zod.js +103 -0
  110. package/dist/{system → hub}/tenant.zod.d.ts +73 -47
  111. package/dist/hub/tenant.zod.d.ts.map +1 -0
  112. package/dist/{system → hub}/tenant.zod.js +36 -10
  113. package/dist/index.d.ts +11 -4
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +12 -5
  116. package/dist/kernel/context.zod.d.ts +56 -0
  117. package/dist/kernel/context.zod.d.ts.map +1 -0
  118. package/dist/kernel/context.zod.js +43 -0
  119. package/dist/kernel/index.d.ts +12 -0
  120. package/dist/kernel/index.d.ts.map +1 -0
  121. package/dist/kernel/index.js +27 -0
  122. package/dist/kernel/logger.zod.d.ts +111 -0
  123. package/dist/kernel/logger.zod.d.ts.map +1 -0
  124. package/dist/kernel/logger.zod.js +75 -0
  125. package/dist/kernel/manifest.zod.d.ts +2153 -0
  126. package/dist/kernel/manifest.zod.d.ts.map +1 -0
  127. package/dist/{system → kernel}/manifest.zod.js +40 -0
  128. package/dist/{system → kernel}/plugin.zod.d.ts +598 -318
  129. package/dist/kernel/plugin.zod.d.ts.map +1 -0
  130. package/dist/{system → kernel}/plugin.zod.js +13 -0
  131. package/dist/kernel/scoped-storage.zod.d.ts +81 -0
  132. package/dist/kernel/scoped-storage.zod.d.ts.map +1 -0
  133. package/dist/kernel/scoped-storage.zod.js +66 -0
  134. package/dist/permission/index.d.ts +12 -0
  135. package/dist/permission/index.d.ts.map +1 -0
  136. package/dist/permission/index.js +27 -0
  137. package/dist/{data → permission}/permission.zod.d.ts +34 -3
  138. package/dist/permission/permission.zod.d.ts.map +1 -0
  139. package/dist/{data → permission}/permission.zod.js +10 -1
  140. package/dist/permission/sharing.zod.d.ts +146 -0
  141. package/dist/permission/sharing.zod.d.ts.map +1 -0
  142. package/dist/permission/sharing.zod.js +88 -0
  143. package/dist/permission/territory.zod.d.ts.map +1 -0
  144. package/dist/system/audit.zod.d.ts +52 -52
  145. package/dist/system/events.zod.d.ts +17 -17
  146. package/dist/system/index.d.ts +1 -20
  147. package/dist/system/index.d.ts.map +1 -1
  148. package/dist/system/index.js +3 -20
  149. package/dist/system/job.zod.d.ts +13 -13
  150. package/dist/ui/action.zod.d.ts +13 -13
  151. package/dist/ui/app.zod.d.ts +11 -11
  152. package/dist/ui/dashboard.zod.d.ts +12 -12
  153. package/dist/ui/page.zod.d.ts +2 -2
  154. package/dist/ui/report.zod.d.ts +7 -7
  155. package/dist/ui/theme.zod.d.ts +42 -42
  156. package/dist/ui/view.zod.d.ts +2320 -59
  157. package/dist/ui/view.zod.d.ts.map +1 -1
  158. package/dist/ui/view.zod.js +102 -3
  159. package/dist/ui/widget.zod.d.ts +61 -28
  160. package/dist/ui/widget.zod.d.ts.map +1 -1
  161. package/json-schema/ai/{AIWorkflowAutomation.json → AIOrchestration.json} +5 -5
  162. package/json-schema/ai/{AIWorkflowExecutionResult.json → AIOrchestrationExecutionResult.json} +2 -2
  163. package/json-schema/ai/{AIWorkflowTrigger.json → AIOrchestrationTrigger.json} +2 -2
  164. package/json-schema/ai/{BatchAIWorkflowExecution.json → BatchAIOrchestrationExecution.json} +3 -3
  165. package/json-schema/{system → api}/ApiEndpoint.json +3 -1
  166. package/json-schema/{system → api}/ApiRoutes.json +7 -7
  167. package/json-schema/{system → api}/Discovery.json +7 -7
  168. package/json-schema/api/ExportRequest.json +402 -438
  169. package/json-schema/api/HttpMethod.json +18 -0
  170. package/json-schema/api/RouteCategory.json +17 -0
  171. package/json-schema/api/RouteDefinition.json +77 -0
  172. package/json-schema/api/RouterConfig.json +117 -0
  173. package/json-schema/{data → automation}/Flow.json +31 -1
  174. package/json-schema/{data → automation}/FlowEdge.json +9 -0
  175. package/json-schema/{data/WorkflowRule.json → automation/TimeTrigger.json} +35 -25
  176. package/json-schema/automation/WorkflowRule.json +1031 -0
  177. package/json-schema/data/AggregationNode.json +23 -0
  178. package/json-schema/data/AsyncValidation.json +49 -2
  179. package/json-schema/data/ComparisonOperator.json +52 -0
  180. package/json-schema/data/ConditionalValidation.json +693 -46
  181. package/json-schema/data/CrossFieldValidation.json +33 -2
  182. package/json-schema/data/CurrencyConfig.json +35 -0
  183. package/json-schema/data/CurrencyValue.json +26 -0
  184. package/json-schema/data/CustomValidator.json +37 -10
  185. package/json-schema/data/Field.json +30 -0
  186. package/json-schema/data/FieldOperators.json +78 -0
  187. package/json-schema/data/FieldReference.json +19 -0
  188. package/json-schema/data/FormatValidation.json +33 -2
  189. package/json-schema/data/Hook.json +95 -0
  190. package/json-schema/data/HookContext.json +88 -0
  191. package/json-schema/data/HookEvent.json +29 -0
  192. package/json-schema/data/Index.json +10 -0
  193. package/json-schema/data/JSONValidation.json +85 -0
  194. package/json-schema/data/JoinNode.json +197 -213
  195. package/json-schema/data/{TriggerAction.json → JoinStrategy.json} +6 -5
  196. package/json-schema/data/NormalizedFilter.json +234 -0
  197. package/json-schema/data/Object.json +1580 -28
  198. package/json-schema/data/ObjectCapabilities.json +30 -12
  199. package/json-schema/data/Query.json +246 -262
  200. package/json-schema/data/RangeOperator.json +26 -0
  201. package/json-schema/data/ScriptValidation.json +33 -2
  202. package/json-schema/data/SearchConfig.json +36 -0
  203. package/json-schema/data/StateMachineValidation.json +33 -2
  204. package/json-schema/data/UniquenessValidation.json +33 -2
  205. package/json-schema/data/ValidationRule.json +693 -46
  206. package/json-schema/{system → driver}/Datasource.json +35 -0
  207. package/json-schema/{system → driver}/DriverCapabilities.json +10 -0
  208. package/json-schema/{system → driver}/DriverInterface.json +10 -0
  209. package/json-schema/{system → driver}/DriverOptions.json +11 -0
  210. package/json-schema/driver/MongoConfig.json +82 -0
  211. package/json-schema/driver/PostgresConfig.json +98 -0
  212. package/json-schema/hub/BillOfMaterials.json +70 -0
  213. package/json-schema/hub/ComposerRequest.json +86 -0
  214. package/json-schema/hub/ComposerResponse.json +2645 -0
  215. package/json-schema/hub/ConflictReport.json +53 -0
  216. package/json-schema/hub/DependencyRequirement.json +36 -0
  217. package/json-schema/hub/DeploymentTarget.json +38 -0
  218. package/json-schema/hub/HubSpace.json +279 -0
  219. package/json-schema/{system → hub}/License.json +11 -3
  220. package/json-schema/hub/MarketplacePlugin.json +141 -0
  221. package/json-schema/hub/PluginAuthor.json +26 -0
  222. package/json-schema/hub/PluginPricing.json +43 -0
  223. package/json-schema/hub/SpaceSubscription.json +77 -0
  224. package/json-schema/hub/SubscriptionStatus.json +16 -0
  225. package/json-schema/{system → hub}/Tenant.json +3 -5
  226. package/json-schema/kernel/FileMetadata.json +43 -0
  227. package/json-schema/kernel/KernelContext.json +62 -0
  228. package/json-schema/kernel/LogEntry.json +63 -0
  229. package/json-schema/kernel/LogFormat.json +15 -0
  230. package/json-schema/kernel/LogLevel.json +17 -0
  231. package/json-schema/kernel/LoggerConfig.json +70 -0
  232. package/json-schema/kernel/Manifest.json +2557 -0
  233. package/json-schema/{system → kernel}/PluginContext.json +8 -1
  234. package/json-schema/kernel/RuntimeMode.json +16 -0
  235. package/json-schema/kernel/ScopedStorageConfig.json +54 -0
  236. package/json-schema/kernel/StorageAdapterType.json +17 -0
  237. package/json-schema/kernel/StorageScope.json +18 -0
  238. package/json-schema/permission/CriteriaSharingRule.json +82 -0
  239. package/json-schema/{data → permission}/OWDModel.json +2 -1
  240. package/json-schema/{data → permission}/ObjectPermission.json +15 -0
  241. package/json-schema/permission/OwnerSharingRule.json +102 -0
  242. package/json-schema/{data → permission}/PermissionSet.json +15 -0
  243. package/json-schema/permission/ShareRecipientType.json +16 -0
  244. package/json-schema/{data → permission}/SharingLevel.json +2 -1
  245. package/json-schema/permission/SharingRule.json +182 -0
  246. package/json-schema/{data → permission}/SharingRuleType.json +1 -3
  247. package/json-schema/ui/FieldWidgetProps.json +30 -0
  248. package/json-schema/ui/FormField.json +61 -0
  249. package/json-schema/ui/FormSection.json +60 -1
  250. package/json-schema/ui/FormView.json +257 -2
  251. package/json-schema/{system → ui}/HttpMethod.json +2 -2
  252. package/json-schema/ui/HttpRequest.json +46 -0
  253. package/json-schema/ui/ListColumn.json +57 -0
  254. package/json-schema/ui/ListView.json +249 -4
  255. package/json-schema/ui/PaginationConfig.json +26 -0
  256. package/json-schema/ui/SelectionConfig.json +22 -0
  257. package/json-schema/ui/View.json +1012 -12
  258. package/json-schema/ui/ViewData.json +142 -0
  259. package/llms.txt +182 -0
  260. package/package.json +38 -16
  261. package/prompts/README.md +18 -0
  262. package/prompts/architecture.md +81 -0
  263. package/prompts/implement-objectai.md +39 -0
  264. package/prompts/implement-objectos.md +48 -0
  265. package/prompts/implement-objectql.md +39 -0
  266. package/prompts/implement-objectui.md +46 -0
  267. package/prompts/instructions.md +91 -0
  268. package/dist/ai/workflow-automation.zod.d.ts.map +0 -1
  269. package/dist/data/flow.zod.d.ts.map +0 -1
  270. package/dist/data/permission.zod.d.ts.map +0 -1
  271. package/dist/data/sharing.zod.d.ts +0 -63
  272. package/dist/data/sharing.zod.d.ts.map +0 -1
  273. package/dist/data/sharing.zod.js +0 -57
  274. package/dist/data/trigger.zod.d.ts +0 -354
  275. package/dist/data/trigger.zod.d.ts.map +0 -1
  276. package/dist/data/trigger.zod.js +0 -195
  277. package/dist/data/workflow.zod.d.ts +0 -986
  278. package/dist/data/workflow.zod.d.ts.map +0 -1
  279. package/dist/system/api.zod.d.ts.map +0 -1
  280. package/dist/system/auth-protocol.d.ts.map +0 -1
  281. package/dist/system/auth.zod.d.ts.map +0 -1
  282. package/dist/system/datasource.zod.d.ts.map +0 -1
  283. package/dist/system/discovery.zod.d.ts.map +0 -1
  284. package/dist/system/driver.zod.d.ts +0 -1631
  285. package/dist/system/driver.zod.d.ts.map +0 -1
  286. package/dist/system/identity.zod.d.ts.map +0 -1
  287. package/dist/system/license.zod.d.ts.map +0 -1
  288. package/dist/system/manifest.zod.d.ts +0 -397
  289. package/dist/system/manifest.zod.d.ts.map +0 -1
  290. package/dist/system/organization.zod.d.ts.map +0 -1
  291. package/dist/system/plugin.zod.d.ts.map +0 -1
  292. package/dist/system/policy.zod.d.ts.map +0 -1
  293. package/dist/system/realtime.zod.d.ts.map +0 -1
  294. package/dist/system/role.zod.d.ts.map +0 -1
  295. package/dist/system/tenant.zod.d.ts.map +0 -1
  296. package/dist/system/territory.zod.d.ts.map +0 -1
  297. package/dist/system/webhook.zod.d.ts.map +0 -1
  298. package/json-schema/README.md +0 -127
  299. package/json-schema/data/FieldMapping.json +0 -83
  300. package/json-schema/data/FilterNode.json +0 -52
  301. package/json-schema/data/FilterOperator.json +0 -26
  302. package/json-schema/data/LogicOperator.json +0 -14
  303. package/json-schema/data/Mapping.json +0 -598
  304. package/json-schema/data/SharingRule.json +0 -58
  305. package/json-schema/data/TransformType.json +0 -18
  306. package/json-schema/data/Trigger.json +0 -73
  307. package/json-schema/data/TriggerContext.json +0 -61
  308. package/json-schema/data/TriggerTiming.json +0 -13
  309. package/json-schema/system/Manifest.json +0 -315
  310. /package/dist/{system → api}/realtime.zod.js +0 -0
  311. /package/dist/{system/auth.zod.js → auth/config.zod.js} +0 -0
  312. /package/dist/{system → auth}/identity.zod.js +0 -0
  313. /package/dist/{system → auth}/organization.zod.js +0 -0
  314. /package/dist/{system → auth}/policy.zod.js +0 -0
  315. /package/dist/{system/auth-protocol.js → auth/protocol.js} +0 -0
  316. /package/dist/{system → auth}/role.zod.d.ts +0 -0
  317. /package/dist/{system → auth}/role.zod.js +0 -0
  318. /package/dist/{system → automation}/webhook.zod.js +0 -0
  319. /package/dist/{system → permission}/territory.zod.d.ts +0 -0
  320. /package/dist/{system → permission}/territory.zod.js +0 -0
  321. /package/json-schema/{system → api}/ApiCapabilities.json +0 -0
  322. /package/json-schema/{system → api}/ApiMapping.json +0 -0
  323. /package/json-schema/{system → api}/Presence.json +0 -0
  324. /package/json-schema/{system → api}/PresenceStatus.json +0 -0
  325. /package/json-schema/{system → api}/RateLimit.json +0 -0
  326. /package/json-schema/{system → api}/RealtimeAction.json +0 -0
  327. /package/json-schema/{system → api}/RealtimeEvent.json +0 -0
  328. /package/json-schema/{system → api}/RealtimeEventType.json +0 -0
  329. /package/json-schema/{system → api}/Subscription.json +0 -0
  330. /package/json-schema/{system → api}/SubscriptionEvent.json +0 -0
  331. /package/json-schema/{system → api}/TransportProtocol.json +0 -0
  332. /package/json-schema/{system → auth}/Account.json +0 -0
  333. /package/json-schema/{system → auth}/AccountLinkingConfig.json +0 -0
  334. /package/json-schema/{system → auth}/AuditPolicy.json +0 -0
  335. /package/json-schema/{system → auth}/AuthConfig.json +0 -0
  336. /package/json-schema/{system → auth}/AuthPluginConfig.json +0 -0
  337. /package/json-schema/{system → auth}/AuthStrategy.json +0 -0
  338. /package/json-schema/{system → auth}/CSRFConfig.json +0 -0
  339. /package/json-schema/{system → auth}/DatabaseAdapter.json +0 -0
  340. /package/json-schema/{system → auth}/DatabaseMapping.json +0 -0
  341. /package/json-schema/{system → auth}/EmailPasswordConfig.json +0 -0
  342. /package/json-schema/{system → auth}/EnterpriseAuthConfig.json +0 -0
  343. /package/json-schema/{system → auth}/Invitation.json +0 -0
  344. /package/json-schema/{system → auth}/InvitationStatus.json +0 -0
  345. /package/json-schema/{system → auth}/LDAPConfig.json +0 -0
  346. /package/json-schema/{system → auth}/MagicLinkConfig.json +0 -0
  347. /package/json-schema/{system → auth}/Member.json +0 -0
  348. /package/json-schema/{system → auth}/NetworkPolicy.json +0 -0
  349. /package/json-schema/{system → auth}/OAuthProvider.json +0 -0
  350. /package/json-schema/{system → auth}/OIDCConfig.json +0 -0
  351. /package/json-schema/{system → auth}/Organization.json +0 -0
  352. /package/json-schema/{system → auth}/PasskeyConfig.json +0 -0
  353. /package/json-schema/{system → auth}/PasswordPolicy.json +0 -0
  354. /package/json-schema/{system → auth}/Policy.json +0 -0
  355. /package/json-schema/{system → auth}/RateLimitConfig.json +0 -0
  356. /package/json-schema/{system → auth}/Role.json +0 -0
  357. /package/json-schema/{system → auth}/SAMLConfig.json +0 -0
  358. /package/json-schema/{system → auth}/Session.json +0 -0
  359. /package/json-schema/{system → auth}/SessionConfig.json +0 -0
  360. /package/json-schema/{system → auth}/SessionPolicy.json +0 -0
  361. /package/json-schema/{system → auth}/StandardAuthProvider.json +0 -0
  362. /package/json-schema/{system → auth}/TwoFactorConfig.json +0 -0
  363. /package/json-schema/{system → auth}/User.json +0 -0
  364. /package/json-schema/{system → auth}/UserFieldMapping.json +0 -0
  365. /package/json-schema/{system → auth}/VerificationToken.json +0 -0
  366. /package/json-schema/{data → automation}/CustomScriptAction.json +0 -0
  367. /package/json-schema/{data → automation}/EmailAlertAction.json +0 -0
  368. /package/json-schema/{data → automation}/FieldUpdateAction.json +0 -0
  369. /package/json-schema/{data → automation}/FlowNode.json +0 -0
  370. /package/json-schema/{data → automation}/FlowNodeAction.json +0 -0
  371. /package/json-schema/{data → automation}/FlowVariable.json +0 -0
  372. /package/json-schema/{data → automation}/HttpCallAction.json +0 -0
  373. /package/json-schema/{data → automation}/PushNotificationAction.json +0 -0
  374. /package/json-schema/{data → automation}/SlackMessageAction.json +0 -0
  375. /package/json-schema/{data → automation}/SmsNotificationAction.json +0 -0
  376. /package/json-schema/{data → automation}/TaskCreationAction.json +0 -0
  377. /package/json-schema/{data → automation}/TeamsMessageAction.json +0 -0
  378. /package/json-schema/{system → automation}/Webhook.json +0 -0
  379. /package/json-schema/{system → automation}/WebhookReceiver.json +0 -0
  380. /package/json-schema/{data → automation}/WebhookTriggerAction.json +0 -0
  381. /package/json-schema/{system → automation}/WebhookTriggerType.json +0 -0
  382. /package/json-schema/{data → automation}/WorkflowAction.json +0 -0
  383. /package/json-schema/{data → automation}/WorkflowTriggerType.json +0 -0
  384. /package/json-schema/{system → driver}/DatasourceCapabilities.json +0 -0
  385. /package/json-schema/{system → driver}/DriverDefinition.json +0 -0
  386. /package/json-schema/{system → driver}/DriverType.json +0 -0
  387. /package/json-schema/{system → hub}/DatabaseLevelIsolationStrategy.json +0 -0
  388. /package/json-schema/{system → hub}/Feature.json +0 -0
  389. /package/json-schema/{system → hub}/LevelIsolationStrategySchema.json +0 -0
  390. /package/json-schema/{system → hub}/MetricType.json +0 -0
  391. /package/json-schema/{system → hub}/Plan.json +0 -0
  392. /package/json-schema/{system → hub}/RowLevelIsolationStrategy.json +0 -0
  393. /package/json-schema/{system → hub}/TenantIsolationConfig.json +0 -0
  394. /package/json-schema/{system → hub}/TenantIsolationLevel.json +0 -0
  395. /package/json-schema/{system → hub}/TenantQuota.json +0 -0
  396. /package/json-schema/{system → hub}/TenantSecurityPolicy.json +0 -0
  397. /package/json-schema/{system → kernel}/I18nContext.json +0 -0
  398. /package/json-schema/{system → kernel}/Logger.json +0 -0
  399. /package/json-schema/{system → kernel}/ObjectQLClient.json +0 -0
  400. /package/json-schema/{system → kernel}/Plugin.json +0 -0
  401. /package/json-schema/{system → kernel}/PluginLifecycle.json +0 -0
  402. /package/json-schema/{system → kernel}/Router.json +0 -0
  403. /package/json-schema/{system → kernel}/Scheduler.json +0 -0
  404. /package/json-schema/{system → kernel}/ScopedStorage.json +0 -0
  405. /package/json-schema/{system → kernel}/SystemAPI.json +0 -0
  406. /package/json-schema/{data → permission}/FieldPermission.json +0 -0
  407. /package/json-schema/{system → permission}/Territory.json +0 -0
  408. /package/json-schema/{system → permission}/TerritoryModel.json +0 -0
  409. /package/json-schema/{system → permission}/TerritoryType.json +0 -0
@@ -0,0 +1,46 @@
1
+ # ObjectUI Implementation Agent
2
+
3
+ **Role:** You are the Lead Frontend Engineer building the `objectui` presentation layer.
4
+ **Constraint:** Your implementation must strictly adhere to the `@objectstack/spec` protocol.
5
+
6
+ ## 1. Setup
7
+
8
+ You are working in a repository that depends on `@objectstack/spec`.
9
+ Your source of truth is `node_modules/@objectstack/spec`.
10
+
11
+ ## 2. Implementation Rules
12
+
13
+ ### Rule #1: Server-Driven UI (SDUI)
14
+ Do not hardcode page layouts. The UI must render dynamically based on `PageSchema` and `ViewSchema` fetched from the metadata API.
15
+ ```typescript
16
+ import { PageSchema, ViewSchema } from '@objectstack/spec/ui';
17
+ // Fetch JSON -> Validate -> Render
18
+ const pageLayout = PageSchema.parse(apiResponse);
19
+ ```
20
+
21
+ ### Rule #2: Metadata-Aware Components
22
+ Components (Grid, Form, Kanban) must accept `ViewSchema` as props.
23
+ - A `Grid` component takes a `ListView` definition (columns, sort, filter) and renders it.
24
+ - A `Form` component takes an `ObjectSchema` and `FormView` definition to render fields.
25
+
26
+ ### Rule #3: Action Abstraction
27
+ Buttons do not run arbitrary code. They execute `ActionSchema` definitions.
28
+ - `type: 'api'`: Call an endpoint.
29
+ - `type: 'flow'`: Trigger a server-side flow.
30
+ - `type: 'navigate'`: Change the URL.
31
+
32
+ ### Rule #4: Global Theming
33
+ Styles must be derived from `ThemeSchema` (tokens), not hardcoded CSS values.
34
+
35
+ ## 3. Workflow
36
+
37
+ 1. **App Shell**: Implement the navigation frame using `AppSchema` (menus, branding).
38
+ 2. **Page Router**: specific routes `/app/:object/:view` should load the corresponding `ViewSchema`.
39
+ 3. **View Renderer**: Create a factory that maps `view.type` ('grid', 'kanban') to React/Vue components.
40
+
41
+ ## 4. Key Files to Watch
42
+
43
+ - `ui/app.zod.ts`: The Navigation structure.
44
+ - `ui/view.zod.ts`: The data visualization config.
45
+ - `ui/action.zod.ts`: The interaction logic.
46
+ - `ui/page.zod.ts`: The layout container.
@@ -0,0 +1,91 @@
1
+ # 📜 ObjectStack Protocol & Metamodel Architect
2
+
3
+ **Role:** You are the **Chief Protocol Architect** for ObjectStack.
4
+ **Context:** You are defining the "DNA" and "Constitution" of a metadata-driven low-code platform.
5
+ **Location:** `packages/spec` repository.
6
+
7
+ Mission: Build the "Post-SaaS Operating System" — an open-core, local-first ecosystem that virtualizes data (SQL/Redis/Excel) and unifies business logic.
8
+
9
+ **PRIME DIRECTIVES:**
10
+
11
+ 1. **Zod First:** ALL definitions must start with a **Zod Schema**. We need runtime validation for the CLI and JSON Schema generation for the IDE.
12
+ 2. **Type Derivation:** TypeScript interfaces must be inferred from Zod (`z.infer<typeof X>`).
13
+ 3. **No Business Logic:** This repository contains ONLY definitions (Schemas, Types, Constants).
14
+ 4. **Naming Convention:**
15
+ * **Configuration Keys (TS Props):** `camelCase` (e.g., `maxLength`, `referenceFilters`).
16
+ * **Machine Names (Data Values):** `snake_case` (e.g., `name: 'first_name'`, `object: 'project_task'`).
17
+ 5. **Best Practice Mandate:**
18
+ * **Ignore Status Quo:** Do not let current implementation limitations constrain the design.
19
+ * **Benchmark:** Align with industry leaders (Salesforce, ServiceNow, Kubernetes) for structural decisions.
20
+ * **Philosophy:** "Data as Code", Idempotency, and Immutable Infrastructure are the defaults.
21
+ * **Style:** Enforce `camelCase` for all schema property keys (e.g. `maxLength`, `referenceFilters` NOT `max_length`, `reference_filters`).
22
+
23
+ ---
24
+
25
+ ## 📘 1. The Metamodel Standards (Knowledge Base)
26
+
27
+ ### **A. DATA PROTOCOL (`src/data/*.zod.ts`)**
28
+ *Core Business Logic & Data Model*
29
+
30
+ * **Field (`src/data/field.zod.ts`)**:
31
+ * **Type Enum**: `text`, `textarea`, `number`, `boolean`, `select`, `lookup`, `formula`, ...
32
+ * **Props**: `name` (snake_case), `label`, `type`, `multiple` (Array support), `reference` (Target Object).
33
+ * **Object (`src/data/object.zod.ts`)**:
34
+ * **Props**: `name` (snake_case), `label`, `fields` (Map), `enable` (Capabilities: `trackHistory`, `apiEnabled`).
35
+ * **Flow (`src/data/flow.zod.ts`)**: Visual Logic Orchestration (`autolaunched`, `screen`, `schedule`).
36
+ * **Logic**: `validation.zod.ts` (Rules), `permission.zod.ts` (ACL), `workflow.zod.ts` (State Machine).
37
+
38
+ ### **B. UI PROTOCOL (`src/ui/*.zod.ts`)**
39
+ *Presentation & Interaction*
40
+
41
+ * **View (`src/ui/view.zod.ts`)**:
42
+ * **ListView**: `grid`, `kanban`, `calendar`, `gantt`.
43
+ * **FormView**: `simple`, `tabbed`, `wizard`.
44
+ * **App (`src/ui/app.zod.ts`)**:
45
+ * **Navigation**: Structured Menu Tree (`ObjectNavItem`, `DashboardNavItem`).
46
+ * **Branding**: Logo, Colors.
47
+ * **Dashboard (`src/ui/dashboard.zod.ts`)**: Grid layout widgets.
48
+ * **Report (`src/ui/report.zod.ts`)**: Analytics (`tabular`, `summary`, `matrix`, `chart`).
49
+ * **Action (`src/ui/action.zod.ts`)**: Buttons, URL jumps, Screen Flows.
50
+
51
+ ### **C. SYSTEM PROTOCOL (`src/system/*.zod.ts`)**
52
+ *Runtime Configuration*
53
+
54
+ * **Manifest (`src/system/manifest.zod.ts`)**: Package definition (`objectstack.config.ts`).
55
+ * **Datasource (`src/system/datasource.zod.ts`)**: External Data Connections (SQL, NoSQL, SaaS).
56
+ * **API (`src/system/api.zod.ts`)**: REST/GraphQL Endpoint Definitions.
57
+ * **Translation (`src/system/translation.zod.ts`)**: Internationalization (i18n).
58
+
59
+ ---
60
+
61
+ ## 🛠️ 2. Coding Patterns
62
+
63
+ ### **Naming Convention Example**
64
+
65
+ ```typescript
66
+ export const FieldSchema = z.object({
67
+ // CONFIGURATION KEY -> camelCase
68
+ maxLength: z.number().optional(),
69
+ defaultValue: z.any().optional(),
70
+
71
+ // SYSTEM IENTIFIER RULES -> snake_case
72
+ name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name (snake_case)'),
73
+ });
74
+ ```
75
+
76
+ ### **Directory Structure**
77
+
78
+ * `packages/spec/src/data/`: ObjectQL (Object, Query, Driver).
79
+ * `packages/spec/src/ai/`: ObjectQL (Agent, RAG, Orchestration).
80
+ * `packages/spec/src/ui/`: ObjectUI (App, View, Action).
81
+ * `packages/spec/src/system/`: ObjectOS (Manifest, Identity, Events).
82
+ * `packages/spec/src/api/`: ObjectOS (Contract, Endpoint, Realtime).
83
+
84
+ ---
85
+
86
+ ## 🤖 3. Interaction Shortcuts
87
+
88
+ * **"Create Field Protocol"** → Implement `src/data/field.zod.ts`.
89
+ * **"Create Object Protocol"** → Implement `src/data/object.zod.ts`.
90
+ * **"Create UI Protocol"** → Implement `src/ui/view.zod.ts`.
91
+ * **"Create App Protocol"** → Implement `src/ui/app.zod.ts`.
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-automation.zod.d.ts","sourceRoot":"","sources":["../../src/ai/workflow-automation.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;GAaG;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,6GAQlC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,+JAW3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;IACvB,oBAAoB;;;;IAKpB,0BAA0B;;;IAI1B,0BAA0B;;;IAI1B,2BAA2B;;;IAI3B,sCAAsC;;;IAItC,kCAAkC;;IAGlC,kCAAkC;;;IAIlC,qBAAqB;;;IAIrB,4BAA4B;;IAG5B,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGpB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;EAIvC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;EAQjC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;EAKrC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,0BAA0B;IACrC,eAAe;;;;IAKf,oBAAoB;;IAGpB,4BAA4B;;IAG5B,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQrC,qBAAqB;;IAGrB,eAAe;;QAtGf,oBAAoB;;;;QAKpB,0BAA0B;;;QAI1B,0BAA0B;;;QAI1B,2BAA2B;;;QAI3B,sCAAsC;;;QAItC,kCAAkC;;QAGlC,kCAAkC;;;QAIlC,qBAAqB;;;QAIrB,4BAA4B;;QAG5B,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsEpB,sBAAsB;;;;;;;;;;;;;;;;;IAGtB,wBAAwB;;;IAIxB,2BAA2B;;;IAI3B,2BAA2B;;;;IAK3B,aAAa;;;IAIb,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMf,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;EAMzC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqB1C,CAAC;AAGH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow.zod.d.ts","sourceRoot":"","sources":["../../src/data/flow.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,cAAc,6KAczB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;IAKzB,oDAAoD;;IAGpD,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEnC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;IAKzB,+DAA+D;;;;;;;;;;;;;;;EAI/D,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU;IACrB,eAAe;;;;IAKf,mBAAmB;;IAGnB,8BAA8B;;;;;;;;;;;;;;;;;IAG9B,uBAAuB;;;;;QAtCvB,oDAAoD;;QAGpD,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAanC,+DAA+D;;;;;;;;;;;;;;;;IA0B/D,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGvB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"permission.zod.d.ts","sourceRoot":"","sources":["../../src/data/permission.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,sBAAsB;IACjC,gBAAgB;;IAEhB,gDAAgD;;IAEhD,gDAAgD;;IAEhD,kDAAkD;;IAGlD;;;;OAIG;;IAGH;;;;OAIG;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAChC,yBAAyB;;IAEzB,0BAA0B;;;;;;;;EAE1B,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB;IAC9B,iCAAiC;;IAGjC,oBAAoB;;IAGpB,+CAA+C;;IAG/C,2DAA2D;;QArD3D,gBAAgB;;QAEhB,gDAAgD;;QAEhD,gDAAgD;;QAEhD,kDAAkD;;QAGlD;;;;WAIG;;QAGH;;;;WAIG;;;;;;;;;;;;;;;;;IAoCH,uEAAuE;;QA5BvE,yBAAyB;;QAEzB,0BAA0B;;;;;;;;;IA6B1B,gDAAgD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEhD,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -1,63 +0,0 @@
1
- import { z } from 'zod';
2
- /**
3
- * Sharing Rule Type
4
- * How is the data shared?
5
- */
6
- export declare const SharingRuleType: z.ZodEnum<["owner", "criteria", "manual", "guest"]>;
7
- /**
8
- * Sharing Level
9
- * What access is granted?
10
- */
11
- export declare const SharingLevel: z.ZodEnum<["read", "edit"]>;
12
- /**
13
- * Sharing Rule Schema
14
- * Defines AUTOMATIC access grants based on logic.
15
- * The core engine of the governance layer.
16
- */
17
- export declare const SharingRuleSchema: z.ZodObject<{
18
- name: z.ZodString;
19
- label: z.ZodOptional<z.ZodString>;
20
- active: z.ZodDefault<z.ZodBoolean>;
21
- /** Target Object */
22
- object: z.ZodString;
23
- /** Grant Logic */
24
- type: z.ZodDefault<z.ZodEnum<["owner", "criteria", "manual", "guest"]>>;
25
- /**
26
- * Criteria (for type='criteria')
27
- * SQL-like condition: "department = 'Sales' AND amount > 10000"
28
- */
29
- criteria: z.ZodOptional<z.ZodString>;
30
- /** Access Level */
31
- accessLevel: z.ZodDefault<z.ZodEnum<["read", "edit"]>>;
32
- /**
33
- * Target Audience (Whom to share with)
34
- * ID of a Group, Role, or User.
35
- */
36
- sharedWith: z.ZodString;
37
- }, "strip", z.ZodTypeAny, {
38
- object: string;
39
- type: "owner" | "criteria" | "manual" | "guest";
40
- name: string;
41
- active: boolean;
42
- accessLevel: "read" | "edit";
43
- sharedWith: string;
44
- label?: string | undefined;
45
- criteria?: string | undefined;
46
- }, {
47
- object: string;
48
- name: string;
49
- sharedWith: string;
50
- type?: "owner" | "criteria" | "manual" | "guest" | undefined;
51
- label?: string | undefined;
52
- active?: boolean | undefined;
53
- criteria?: string | undefined;
54
- accessLevel?: "read" | "edit" | undefined;
55
- }>;
56
- /**
57
- * Organization-Wide Defaults (OWD)
58
- * The baseline security posture for an object.
59
- */
60
- export declare const OWDModel: z.ZodEnum<["private", "public_read", "public_read_write"]>;
61
- export type SharingRule = z.infer<typeof SharingRuleSchema>;
62
- export type SharingRuleType = z.infer<typeof SharingRuleType>;
63
- //# sourceMappingURL=sharing.zod.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sharing.zod.d.ts","sourceRoot":"","sources":["../../src/data/sharing.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,eAAe,qDAK1B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY,6BAGvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;IAK5B,oBAAoB;;IAGpB,kBAAkB;;IAGlB;;;OAGG;;IAGH,mBAAmB;;IAGnB;;;OAGG;;;;;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,QAAQ,4DAInB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OWDModel = exports.SharingRuleSchema = exports.SharingLevel = exports.SharingRuleType = void 0;
4
- const zod_1 = require("zod");
5
- /**
6
- * Sharing Rule Type
7
- * How is the data shared?
8
- */
9
- exports.SharingRuleType = zod_1.z.enum([
10
- 'owner', // Based on record ownership (Role Hierarchy)
11
- 'criteria', // Based on field values (e.g. Status = 'Open')
12
- 'manual', // Ad-hoc sharing (User specific)
13
- 'guest' // Public access
14
- ]);
15
- /**
16
- * Sharing Level
17
- * What access is granted?
18
- */
19
- exports.SharingLevel = zod_1.z.enum([
20
- 'read', // Read Only
21
- 'edit' // Read / Write
22
- ]);
23
- /**
24
- * Sharing Rule Schema
25
- * Defines AUTOMATIC access grants based on logic.
26
- * The core engine of the governance layer.
27
- */
28
- exports.SharingRuleSchema = zod_1.z.object({
29
- name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Unique rule name'),
30
- label: zod_1.z.string().optional(),
31
- active: zod_1.z.boolean().default(true),
32
- /** Target Object */
33
- object: zod_1.z.string().describe('Object to share'),
34
- /** Grant Logic */
35
- type: exports.SharingRuleType.default('criteria'),
36
- /**
37
- * Criteria (for type='criteria')
38
- * SQL-like condition: "department = 'Sales' AND amount > 10000"
39
- */
40
- criteria: zod_1.z.string().optional(),
41
- /** Access Level */
42
- accessLevel: exports.SharingLevel.default('read'),
43
- /**
44
- * Target Audience (Whom to share with)
45
- * ID of a Group, Role, or User.
46
- */
47
- sharedWith: zod_1.z.string().describe('Group/Role ID to share records with'),
48
- });
49
- /**
50
- * Organization-Wide Defaults (OWD)
51
- * The baseline security posture for an object.
52
- */
53
- exports.OWDModel = zod_1.z.enum([
54
- 'private', // Only owner can see
55
- 'public_read', // Everyone can see, owner can edit
56
- 'public_read_write' // Everyone can see and edit
57
- ]);
@@ -1,354 +0,0 @@
1
- import { z } from 'zod';
2
- /**
3
- * Trigger Action Enum
4
- *
5
- * Defines the database operation that triggered the execution.
6
- */
7
- export declare const TriggerAction: z.ZodEnum<["insert", "update", "delete"]>;
8
- /**
9
- * Trigger Timing Enum
10
- *
11
- * Defines when the trigger executes relative to the database operation.
12
- */
13
- export declare const TriggerTiming: z.ZodEnum<["before", "after"]>;
14
- /**
15
- * Trigger Context Schema
16
- *
17
- * This defines the runtime context available to trigger code during execution.
18
- * Standardizes how trigger code is written and enables AI code generation.
19
- *
20
- * Triggers are business logic hooks that execute before or after database operations.
21
- * They can validate data, set defaults, update related records, or prevent operations.
22
- *
23
- * @example Before Insert Trigger
24
- * export default {
25
- * timing: 'before',
26
- * action: 'insert',
27
- * execute: async (context: TriggerContext) => {
28
- * // Set default values
29
- * if (!context.doc.status) {
30
- * context.doc.status = 'active';
31
- * }
32
- *
33
- * // Validation
34
- * if (!context.doc.email) {
35
- * context.addError('Email is required');
36
- * }
37
- * }
38
- * };
39
- *
40
- * @example After Update Trigger
41
- * export default {
42
- * timing: 'after',
43
- * action: 'update',
44
- * execute: async (context: TriggerContext) => {
45
- * // Update related records
46
- * if (context.getOldValue('status') !== context.doc.status) {
47
- * await context.ql.object('activity_log').create({
48
- * record_id: context.doc.id,
49
- * message: `Status changed from ${context.getOldValue('status')} to ${context.doc.status}`,
50
- * user_id: context.userId,
51
- * });
52
- * }
53
- * }
54
- * };
55
- */
56
- export declare const TriggerContextSchema: z.ZodObject<{
57
- /**
58
- * The database operation that triggered execution.
59
- * One of: 'insert', 'update', 'delete'
60
- */
61
- action: z.ZodEnum<["insert", "update", "delete"]>;
62
- /**
63
- * When the trigger executes relative to the operation.
64
- * - 'before': Execute before database operation (can modify doc, prevent operation)
65
- * - 'after': Execute after database operation (can trigger side effects)
66
- */
67
- timing: z.ZodEnum<["before", "after"]>;
68
- /**
69
- * The current document/record being operated on.
70
- *
71
- * For 'before' triggers: Can be modified to change what gets saved.
72
- * For 'after' triggers: Contains the final saved state (read-only).
73
- * For 'delete' triggers: Contains the record being deleted.
74
- */
75
- doc: z.ZodRecord<z.ZodString, z.ZodAny>;
76
- /**
77
- * The document state before the current operation.
78
- *
79
- * Only available for 'update' and 'delete' operations.
80
- * Null for 'insert' operations.
81
- *
82
- * Use this to detect what changed in an update trigger.
83
- */
84
- previousDoc: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
85
- /**
86
- * ID of the user performing the operation.
87
- */
88
- userId: z.ZodString;
89
- /**
90
- * Complete user record of the user performing the operation.
91
- * Contains fields like name, email, roles, etc.
92
- */
93
- user: z.ZodRecord<z.ZodString, z.ZodAny>;
94
- /**
95
- * ObjectQL data access API.
96
- * Use this to query or modify other records.
97
- *
98
- * @example
99
- * await context.ql.object('account').findOne(context.doc.account_id);
100
- * await context.ql.object('activity').create({ ... });
101
- */
102
- ql: z.ZodAny;
103
- /**
104
- * Logging interface.
105
- * Use this for debugging and auditing.
106
- *
107
- * @example
108
- * context.logger.info('Trigger executed', { recordId: context.doc.id });
109
- * context.logger.error('Validation failed', { error });
110
- */
111
- logger: z.ZodAny;
112
- /**
113
- * Add a validation error.
114
- * For 'before' triggers only - prevents the operation from completing.
115
- *
116
- * @param message - Error message to display
117
- * @param field - Optional field name the error relates to
118
- *
119
- * @example
120
- * if (context.doc.amount < 0) {
121
- * context.addError('Amount must be positive', 'amount');
122
- * }
123
- */
124
- addError: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodOptional<z.ZodString>], z.ZodUnknown>, z.ZodVoid>;
125
- /**
126
- * Get the old value of a field.
127
- * Helper function for 'update' triggers to easily compare old vs new values.
128
- *
129
- * @param fieldName - Name of the field
130
- * @returns Previous value of the field, or undefined if not available
131
- *
132
- * @example
133
- * if (context.getOldValue('status') !== context.doc.status) {
134
- * // Status changed
135
- * }
136
- */
137
- getOldValue: z.ZodFunction<z.ZodTuple<[z.ZodString], z.ZodUnknown>, z.ZodAny>;
138
- }, "strip", z.ZodTypeAny, {
139
- user: Record<string, any>;
140
- action: "update" | "delete" | "insert";
141
- timing: "before" | "after";
142
- doc: Record<string, any>;
143
- userId: string;
144
- addError: (args_0: string, args_1: string | undefined, ...args: unknown[]) => void;
145
- getOldValue: (args_0: string, ...args: unknown[]) => any;
146
- previousDoc?: Record<string, any> | undefined;
147
- ql?: any;
148
- logger?: any;
149
- }, {
150
- user: Record<string, any>;
151
- action: "update" | "delete" | "insert";
152
- timing: "before" | "after";
153
- doc: Record<string, any>;
154
- userId: string;
155
- addError: (args_0: string, args_1: string | undefined, ...args: unknown[]) => void;
156
- getOldValue: (args_0: string, ...args: unknown[]) => any;
157
- previousDoc?: Record<string, any> | undefined;
158
- ql?: any;
159
- logger?: any;
160
- }>;
161
- /**
162
- * Trigger Definition Schema
163
- *
164
- * Complete definition of a trigger including metadata and execution function.
165
- */
166
- export declare const TriggerSchema: z.ZodObject<{
167
- /**
168
- * Unique trigger name.
169
- */
170
- name: z.ZodString;
171
- /**
172
- * Object this trigger is attached to.
173
- */
174
- object: z.ZodString;
175
- /**
176
- * Trigger timing.
177
- */
178
- timing: z.ZodEnum<["before", "after"]>;
179
- /**
180
- * Trigger action(s).
181
- * Can be a single action or array of actions.
182
- */
183
- action: z.ZodUnion<[z.ZodEnum<["insert", "update", "delete"]>, z.ZodArray<z.ZodEnum<["insert", "update", "delete"]>, "many">]>;
184
- /**
185
- * Trigger execution function.
186
- * Receives TriggerContext and performs the business logic.
187
- */
188
- execute: z.ZodFunction<z.ZodTuple<[z.ZodObject<{
189
- /**
190
- * The database operation that triggered execution.
191
- * One of: 'insert', 'update', 'delete'
192
- */
193
- action: z.ZodEnum<["insert", "update", "delete"]>;
194
- /**
195
- * When the trigger executes relative to the operation.
196
- * - 'before': Execute before database operation (can modify doc, prevent operation)
197
- * - 'after': Execute after database operation (can trigger side effects)
198
- */
199
- timing: z.ZodEnum<["before", "after"]>;
200
- /**
201
- * The current document/record being operated on.
202
- *
203
- * For 'before' triggers: Can be modified to change what gets saved.
204
- * For 'after' triggers: Contains the final saved state (read-only).
205
- * For 'delete' triggers: Contains the record being deleted.
206
- */
207
- doc: z.ZodRecord<z.ZodString, z.ZodAny>;
208
- /**
209
- * The document state before the current operation.
210
- *
211
- * Only available for 'update' and 'delete' operations.
212
- * Null for 'insert' operations.
213
- *
214
- * Use this to detect what changed in an update trigger.
215
- */
216
- previousDoc: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
217
- /**
218
- * ID of the user performing the operation.
219
- */
220
- userId: z.ZodString;
221
- /**
222
- * Complete user record of the user performing the operation.
223
- * Contains fields like name, email, roles, etc.
224
- */
225
- user: z.ZodRecord<z.ZodString, z.ZodAny>;
226
- /**
227
- * ObjectQL data access API.
228
- * Use this to query or modify other records.
229
- *
230
- * @example
231
- * await context.ql.object('account').findOne(context.doc.account_id);
232
- * await context.ql.object('activity').create({ ... });
233
- */
234
- ql: z.ZodAny;
235
- /**
236
- * Logging interface.
237
- * Use this for debugging and auditing.
238
- *
239
- * @example
240
- * context.logger.info('Trigger executed', { recordId: context.doc.id });
241
- * context.logger.error('Validation failed', { error });
242
- */
243
- logger: z.ZodAny;
244
- /**
245
- * Add a validation error.
246
- * For 'before' triggers only - prevents the operation from completing.
247
- *
248
- * @param message - Error message to display
249
- * @param field - Optional field name the error relates to
250
- *
251
- * @example
252
- * if (context.doc.amount < 0) {
253
- * context.addError('Amount must be positive', 'amount');
254
- * }
255
- */
256
- addError: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodOptional<z.ZodString>], z.ZodUnknown>, z.ZodVoid>;
257
- /**
258
- * Get the old value of a field.
259
- * Helper function for 'update' triggers to easily compare old vs new values.
260
- *
261
- * @param fieldName - Name of the field
262
- * @returns Previous value of the field, or undefined if not available
263
- *
264
- * @example
265
- * if (context.getOldValue('status') !== context.doc.status) {
266
- * // Status changed
267
- * }
268
- */
269
- getOldValue: z.ZodFunction<z.ZodTuple<[z.ZodString], z.ZodUnknown>, z.ZodAny>;
270
- }, "strip", z.ZodTypeAny, {
271
- user: Record<string, any>;
272
- action: "update" | "delete" | "insert";
273
- timing: "before" | "after";
274
- doc: Record<string, any>;
275
- userId: string;
276
- addError: (args_0: string, args_1: string | undefined, ...args: unknown[]) => void;
277
- getOldValue: (args_0: string, ...args: unknown[]) => any;
278
- previousDoc?: Record<string, any> | undefined;
279
- ql?: any;
280
- logger?: any;
281
- }, {
282
- user: Record<string, any>;
283
- action: "update" | "delete" | "insert";
284
- timing: "before" | "after";
285
- doc: Record<string, any>;
286
- userId: string;
287
- addError: (args_0: string, args_1: string | undefined, ...args: unknown[]) => void;
288
- getOldValue: (args_0: string, ...args: unknown[]) => any;
289
- previousDoc?: Record<string, any> | undefined;
290
- ql?: any;
291
- logger?: any;
292
- }>], z.ZodUnknown>, z.ZodPromise<z.ZodVoid>>;
293
- /**
294
- * Optional description of what the trigger does.
295
- */
296
- description: z.ZodOptional<z.ZodString>;
297
- /**
298
- * Whether the trigger is active.
299
- */
300
- active: z.ZodDefault<z.ZodBoolean>;
301
- /**
302
- * Execution order when multiple triggers are defined.
303
- * Lower numbers execute first.
304
- */
305
- order: z.ZodDefault<z.ZodNumber>;
306
- }, "strip", z.ZodTypeAny, {
307
- object: string;
308
- name: string;
309
- active: boolean;
310
- order: number;
311
- action: "update" | "delete" | "insert" | ("update" | "delete" | "insert")[];
312
- timing: "before" | "after";
313
- execute: (args_0: {
314
- user: Record<string, any>;
315
- action: "update" | "delete" | "insert";
316
- timing: "before" | "after";
317
- doc: Record<string, any>;
318
- userId: string;
319
- addError: (args_0: string, args_1: string | undefined, ...args: unknown[]) => void;
320
- getOldValue: (args_0: string, ...args: unknown[]) => any;
321
- previousDoc?: Record<string, any> | undefined;
322
- ql?: any;
323
- logger?: any;
324
- }, ...args: unknown[]) => Promise<void>;
325
- description?: string | undefined;
326
- }, {
327
- object: string;
328
- name: string;
329
- action: "update" | "delete" | "insert" | ("update" | "delete" | "insert")[];
330
- timing: "before" | "after";
331
- execute: (args_0: {
332
- user: Record<string, any>;
333
- action: "update" | "delete" | "insert";
334
- timing: "before" | "after";
335
- doc: Record<string, any>;
336
- userId: string;
337
- addError: (args_0: string, args_1: string | undefined, ...args: unknown[]) => void;
338
- getOldValue: (args_0: string, ...args: unknown[]) => any;
339
- previousDoc?: Record<string, any> | undefined;
340
- ql?: any;
341
- logger?: any;
342
- }, ...args: unknown[]) => Promise<void>;
343
- description?: string | undefined;
344
- active?: boolean | undefined;
345
- order?: number | undefined;
346
- }>;
347
- /**
348
- * TypeScript types
349
- */
350
- export type TriggerAction = z.infer<typeof TriggerAction>;
351
- export type TriggerTiming = z.infer<typeof TriggerTiming>;
352
- export type TriggerContext = z.infer<typeof TriggerContextSchema>;
353
- export type Trigger = z.infer<typeof TriggerSchema>;
354
- //# sourceMappingURL=trigger.zod.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trigger.zod.d.ts","sourceRoot":"","sources":["../../src/data/trigger.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,aAAa,2CAAyC,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,aAAa,gCAA8B,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;;OAGG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;;;;;OAWG;;IAMH;;;;;;;;;;;OAWG;;;;;;;;;;;;;;;;;;;;;;;;EAKH,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,aAAa;IACxB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAMH;;;OAGG;;QAnIH;;;WAGG;;QAGH;;;;WAIG;;QAGH;;;;;;WAMG;;QAGH;;;;;;;WAOG;;QAGH;;WAEG;;QAGH;;;WAGG;;QAGH;;;;;;;WAOG;;QAGH;;;;;;;WAOG;;QAGH;;;;;;;;;;;WAWG;;QAMH;;;;;;;;;;;WAWG;;;;;;;;;;;;;;;;;;;;;;;;;IA8CH;;OAEG;;IAGH;;OAEG;;IAGH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}