@objectstack/spec 6.7.1 → 6.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1755) hide show
  1. package/LICENSE +202 -0
  2. package/dist/ai/index.d.mts +308 -8
  3. package/dist/ai/index.d.ts +308 -8
  4. package/dist/ai/index.js +1211 -37
  5. package/dist/ai/index.js.map +1 -1
  6. package/dist/ai/index.mjs +1209 -38
  7. package/dist/ai/index.mjs.map +1 -1
  8. package/dist/api/index.d.mts +846 -967
  9. package/dist/api/index.d.ts +846 -967
  10. package/dist/api/index.js +5537 -5334
  11. package/dist/api/index.js.map +1 -1
  12. package/dist/api/index.mjs +5537 -5334
  13. package/dist/api/index.mjs.map +1 -1
  14. package/dist/{app.zod-nPfH1TcS.d.ts → app.zod-CLlpb0AH.d.ts} +290 -259
  15. package/dist/{app.zod-D7fgbn5Z.d.mts → app.zod-DvMDoI87.d.mts} +290 -259
  16. package/dist/automation/index.d.mts +332 -31
  17. package/dist/automation/index.d.ts +332 -31
  18. package/dist/automation/index.js +1184 -1
  19. package/dist/automation/index.js.map +1 -1
  20. package/dist/automation/index.mjs +1182 -2
  21. package/dist/automation/index.mjs.map +1 -1
  22. package/dist/cloud/index.d.mts +361 -192
  23. package/dist/cloud/index.d.ts +361 -192
  24. package/dist/cloud/index.js +261 -93
  25. package/dist/cloud/index.js.map +1 -1
  26. package/dist/cloud/index.mjs +256 -94
  27. package/dist/cloud/index.mjs.map +1 -1
  28. package/dist/contracts/index.d.mts +27 -5
  29. package/dist/contracts/index.d.ts +27 -5
  30. package/dist/data/index.d.mts +305 -4
  31. package/dist/data/index.d.ts +305 -4
  32. package/dist/data/index.js +299 -3
  33. package/dist/data/index.js.map +1 -1
  34. package/dist/data/index.mjs +297 -4
  35. package/dist/data/index.mjs.map +1 -1
  36. package/dist/{execution-context.zod-7FfY8UW2.d.mts → execution-context.zod-D4xMP7B4.d.mts} +7 -0
  37. package/dist/{execution-context.zod-7FfY8UW2.d.ts → execution-context.zod-D4xMP7B4.d.ts} +7 -0
  38. package/dist/{field.zod-Bqhc6_7G.d.mts → field.zod-BGr7R7KU.d.mts} +4 -0
  39. package/dist/{field.zod-Bqhc6_7G.d.ts → field.zod-BGr7R7KU.d.ts} +4 -0
  40. package/dist/identity/index.d.mts +117 -15
  41. package/dist/identity/index.d.ts +117 -15
  42. package/dist/identity/index.js +1093 -1
  43. package/dist/identity/index.js.map +1 -1
  44. package/dist/identity/index.mjs +1093 -2
  45. package/dist/identity/index.mjs.map +1 -1
  46. package/dist/index.d.mts +280 -286
  47. package/dist/index.d.ts +280 -286
  48. package/dist/index.js +71 -3
  49. package/dist/index.js.map +1 -1
  50. package/dist/index.mjs +71 -4
  51. package/dist/index.mjs.map +1 -1
  52. package/dist/kernel/index.d.mts +1 -1
  53. package/dist/kernel/index.d.ts +1 -1
  54. package/dist/kernel/index.js +29 -15
  55. package/dist/kernel/index.js.map +1 -1
  56. package/dist/kernel/index.mjs +29 -15
  57. package/dist/kernel/index.mjs.map +1 -1
  58. package/dist/{object.zod-rhReSd7V.d.mts → object.zod-C1mmiCDL.d.mts} +22 -4
  59. package/dist/{object.zod-BntYUReb.d.ts → object.zod-D4gYbFv4.d.ts} +22 -4
  60. package/dist/security/index.d.mts +108 -1
  61. package/dist/security/index.d.ts +108 -1
  62. package/dist/security/index.js +1080 -2
  63. package/dist/security/index.js.map +1 -1
  64. package/dist/security/index.mjs +1080 -3
  65. package/dist/security/index.mjs.map +1 -1
  66. package/dist/shared/index.js +6 -1
  67. package/dist/shared/index.js.map +1 -1
  68. package/dist/shared/index.mjs +6 -1
  69. package/dist/shared/index.mjs.map +1 -1
  70. package/dist/{subscription.zod-CsRDvTgL.d.ts → subscription.zod-CBBzN0Tf.d.ts} +329 -0
  71. package/dist/{subscription.zod-CBGq0BgL.d.mts → subscription.zod-MSheiEQT.d.mts} +329 -0
  72. package/dist/system/index.d.mts +193 -18
  73. package/dist/system/index.d.ts +193 -18
  74. package/dist/system/index.js +109 -3
  75. package/dist/system/index.js.map +1 -1
  76. package/dist/system/index.mjs +109 -4
  77. package/dist/system/index.mjs.map +1 -1
  78. package/dist/ui/index.d.mts +603 -9
  79. package/dist/ui/index.d.ts +603 -9
  80. package/dist/ui/index.js +1791 -1335
  81. package/dist/ui/index.js.map +1 -1
  82. package/dist/ui/index.mjs +1784 -1336
  83. package/dist/ui/index.mjs.map +1 -1
  84. package/json-schema/ai/AIKnowledge.json +2 -2
  85. package/json-schema/ai/AIModelConfig.json +2 -2
  86. package/json-schema/ai/AITool.json +2 -2
  87. package/json-schema/ai/AIUsageRecord.json +2 -2
  88. package/json-schema/ai/Agent.json +2 -2
  89. package/json-schema/ai/CodeContent.json +2 -2
  90. package/json-schema/ai/ConversationAnalytics.json +2 -2
  91. package/json-schema/ai/ConversationContext.json +2 -2
  92. package/json-schema/ai/ConversationMessage.json +2 -2
  93. package/json-schema/ai/ConversationSession.json +2 -2
  94. package/json-schema/ai/ConversationSummary.json +2 -2
  95. package/json-schema/ai/EmbeddingModel.json +2 -2
  96. package/json-schema/ai/FileContent.json +2 -2
  97. package/json-schema/ai/FileKnowledgeSource.json +2 -2
  98. package/json-schema/ai/FunctionCall.json +2 -2
  99. package/json-schema/ai/HttpKnowledgeSource.json +2 -2
  100. package/json-schema/ai/ImageContent.json +2 -2
  101. package/json-schema/ai/KnowledgeChunk.json +2 -2
  102. package/json-schema/ai/KnowledgeDocument.json +2 -2
  103. package/json-schema/ai/KnowledgeHit.json +2 -2
  104. package/json-schema/ai/KnowledgeRefreshPolicy.json +2 -2
  105. package/json-schema/ai/KnowledgeSource.json +2 -2
  106. package/json-schema/ai/KnowledgeSourceKind.json +2 -2
  107. package/json-schema/ai/MCPApprovalPolicy.json +2 -2
  108. package/json-schema/ai/MCPServerRef.json +2 -2
  109. package/json-schema/ai/MCPToolBinding.json +2 -2
  110. package/json-schema/ai/MCPTransport.json +2 -2
  111. package/json-schema/ai/MessageContent.json +2 -2
  112. package/json-schema/ai/MessageContentType.json +2 -2
  113. package/json-schema/ai/MessagePruningEvent.json +2 -2
  114. package/json-schema/ai/MessageRole.json +2 -2
  115. package/json-schema/ai/ModelCapability.json +2 -2
  116. package/json-schema/ai/ModelConfig.json +2 -2
  117. package/json-schema/ai/ModelLimits.json +2 -2
  118. package/json-schema/ai/ModelPricing.json +2 -2
  119. package/json-schema/ai/ModelProvider.json +2 -2
  120. package/json-schema/ai/ModelRegistryEntry.json +2 -2
  121. package/json-schema/ai/ModelSelectionCriteria.json +2 -2
  122. package/json-schema/ai/ObjectKnowledgeSource.json +2 -2
  123. package/json-schema/ai/PromptVariable.json +2 -2
  124. package/json-schema/ai/Skill.json +2 -2
  125. package/json-schema/ai/SkillTriggerCondition.json +2 -2
  126. package/json-schema/ai/StructuredOutputConfig.json +2 -2
  127. package/json-schema/ai/StructuredOutputFormat.json +2 -2
  128. package/json-schema/ai/TextContent.json +2 -2
  129. package/json-schema/ai/TokenBudgetConfig.json +2 -2
  130. package/json-schema/ai/TokenBudgetStrategy.json +2 -2
  131. package/json-schema/ai/TokenUsage.json +2 -2
  132. package/json-schema/ai/TokenUsageStats.json +2 -2
  133. package/json-schema/ai/Tool.json +2 -2
  134. package/json-schema/ai/ToolCall.json +2 -2
  135. package/json-schema/ai/ToolCategory.json +2 -2
  136. package/json-schema/ai/TransformPipelineStep.json +2 -2
  137. package/json-schema/ai/VectorStore.json +2 -2
  138. package/json-schema/ai/VectorStoreProvider.json +2 -2
  139. package/json-schema/api/AckMessage.json +2 -2
  140. package/json-schema/api/AddReactionRequest.json +2 -2
  141. package/json-schema/api/AddReactionResponse.json +2 -2
  142. package/json-schema/api/AiInsightsRequest.json +2 -2
  143. package/json-schema/api/AiInsightsResponse.json +2 -2
  144. package/json-schema/api/AiNlqRequest.json +2 -2
  145. package/json-schema/api/AiNlqResponse.json +2 -2
  146. package/json-schema/api/AiSuggestRequest.json +2 -2
  147. package/json-schema/api/AiSuggestResponse.json +2 -2
  148. package/json-schema/api/AnalyticsEndpoint.json +2 -2
  149. package/json-schema/api/AnalyticsMetadataResponse.json +2 -2
  150. package/json-schema/api/AnalyticsQueryRequest.json +2 -2
  151. package/json-schema/api/AnalyticsResultResponse.json +2 -2
  152. package/json-schema/api/AnalyticsSqlResponse.json +2 -2
  153. package/json-schema/api/ApiChangelogEntry.json +2 -2
  154. package/json-schema/api/ApiDiscoveryQuery.json +2 -2
  155. package/json-schema/api/ApiDiscoveryResponse.json +2 -2
  156. package/json-schema/api/ApiDocumentationConfig.json +2 -2
  157. package/json-schema/api/ApiEndpoint.json +2 -2
  158. package/json-schema/api/ApiEndpointRegistration.json +2 -2
  159. package/json-schema/api/ApiError.json +2 -2
  160. package/json-schema/api/ApiMapping.json +2 -2
  161. package/json-schema/api/ApiMetadata.json +2 -2
  162. package/json-schema/api/ApiParameter.json +2 -2
  163. package/json-schema/api/ApiProtocolType.json +2 -2
  164. package/json-schema/api/ApiRegistry.json +2 -2
  165. package/json-schema/api/ApiRegistryEntry.json +2 -2
  166. package/json-schema/api/ApiResponse.json +2 -2
  167. package/json-schema/api/ApiRoutes.json +2 -2
  168. package/json-schema/api/ApiTestCollection.json +2 -2
  169. package/json-schema/api/ApiTestRequest.json +2 -2
  170. package/json-schema/api/ApiTestingUiConfig.json +2 -2
  171. package/json-schema/api/ApiTestingUiType.json +2 -2
  172. package/json-schema/api/AuthEndpoint.json +2 -2
  173. package/json-schema/api/AuthFeaturesConfig.json +2 -2
  174. package/json-schema/api/AuthProvider.json +2 -2
  175. package/json-schema/api/AuthProviderInfo.json +2 -2
  176. package/json-schema/api/AutomationApiErrorCode.json +2 -2
  177. package/json-schema/api/AutomationFlowPathParams.json +2 -2
  178. package/json-schema/api/AutomationRunPathParams.json +2 -2
  179. package/json-schema/api/AutomationTriggerRequest.json +2 -2
  180. package/json-schema/api/AutomationTriggerResponse.json +2 -2
  181. package/json-schema/api/BasePresence.json +2 -2
  182. package/json-schema/api/BaseResponse.json +2 -2
  183. package/json-schema/api/BatchConfig.json +2 -2
  184. package/json-schema/api/BatchDataRequest.json +2 -2
  185. package/json-schema/api/BatchDataResponse.json +2 -2
  186. package/json-schema/api/BatchEndpointsConfig.json +2 -2
  187. package/json-schema/api/BatchLoadingStrategy.json +2 -2
  188. package/json-schema/api/BatchOperationResult.json +2 -2
  189. package/json-schema/api/BatchOperationType.json +2 -2
  190. package/json-schema/api/BatchOptions.json +2 -2
  191. package/json-schema/api/BatchRecord.json +2 -2
  192. package/json-schema/api/BatchUpdateRequest.json +2 -2
  193. package/json-schema/api/BatchUpdateResponse.json +2 -2
  194. package/json-schema/api/BulkRequest.json +2 -2
  195. package/json-schema/api/BulkResponse.json +2 -2
  196. package/json-schema/api/CacheControl.json +2 -2
  197. package/json-schema/api/CacheDirective.json +2 -2
  198. package/json-schema/api/CacheInvalidationRequest.json +2 -2
  199. package/json-schema/api/CacheInvalidationResponse.json +2 -2
  200. package/json-schema/api/CacheInvalidationTarget.json +2 -2
  201. package/json-schema/api/Callback.json +2 -2
  202. package/json-schema/api/ChangelogEntry.json +2 -2
  203. package/json-schema/api/CheckPermissionRequest.json +2 -2
  204. package/json-schema/api/CheckPermissionResponse.json +2 -2
  205. package/json-schema/api/CodeGenerationTemplate.json +2 -2
  206. package/json-schema/api/CompleteChunkedUploadRequest.json +2 -2
  207. package/json-schema/api/CompleteChunkedUploadResponse.json +2 -2
  208. package/json-schema/api/CompleteUploadRequest.json +2 -2
  209. package/json-schema/api/ConceptListResponse.json +2 -2
  210. package/json-schema/api/ConflictResolutionStrategy.json +2 -2
  211. package/json-schema/api/CreateDataRequest.json +2 -2
  212. package/json-schema/api/CreateDataResponse.json +2 -2
  213. package/json-schema/api/CreateExportJobRequest.json +2 -2
  214. package/json-schema/api/CreateExportJobResponse.json +2 -2
  215. package/json-schema/api/CreateFeedItemRequest.json +2 -2
  216. package/json-schema/api/CreateFeedItemResponse.json +2 -2
  217. package/json-schema/api/CreateManyDataRequest.json +2 -2
  218. package/json-schema/api/CreateManyDataResponse.json +2 -2
  219. package/json-schema/api/CreateRequest.json +2 -2
  220. package/json-schema/api/CrudEndpointPattern.json +2 -2
  221. package/json-schema/api/CrudEndpointsConfig.json +2 -2
  222. package/json-schema/api/CrudOperation.json +2 -2
  223. package/json-schema/api/CursorMessage.json +2 -2
  224. package/json-schema/api/CursorPosition.json +2 -2
  225. package/json-schema/api/DataEvent.json +2 -2
  226. package/json-schema/api/DataEventType.json +2 -2
  227. package/json-schema/api/DataLoaderConfig.json +2 -2
  228. package/json-schema/api/DeduplicationStrategy.json +2 -2
  229. package/json-schema/api/DeleteDataRequest.json +2 -2
  230. package/json-schema/api/DeleteDataResponse.json +2 -2
  231. package/json-schema/api/DeleteFeedItemRequest.json +2 -2
  232. package/json-schema/api/DeleteFeedItemResponse.json +2 -2
  233. package/json-schema/api/DeleteFlowRequest.json +2 -2
  234. package/json-schema/api/DeleteFlowResponse.json +2 -2
  235. package/json-schema/api/DeleteManyDataRequest.json +2 -2
  236. package/json-schema/api/DeleteManyDataResponse.json +2 -2
  237. package/json-schema/api/DeleteManyRequest.json +2 -2
  238. package/json-schema/api/DeleteMetaItemRequest.json +2 -2
  239. package/json-schema/api/DeleteMetaItemResponse.json +2 -2
  240. package/json-schema/api/DeleteResponse.json +2 -2
  241. package/json-schema/api/DeleteViewRequest.json +2 -2
  242. package/json-schema/api/DeleteViewResponse.json +2 -2
  243. package/json-schema/api/DeviceRequestResponse.json +2 -2
  244. package/json-schema/api/DeviceTokenResponse.json +2 -2
  245. package/json-schema/api/DisablePackageRequest.json +2 -2
  246. package/json-schema/api/DisablePackageResponse.json +2 -2
  247. package/json-schema/api/Discovery.json +2 -2
  248. package/json-schema/api/DispatcherConfig.json +2 -2
  249. package/json-schema/api/DispatcherErrorCode.json +2 -2
  250. package/json-schema/api/DispatcherErrorResponse.json +2 -2
  251. package/json-schema/api/DispatcherRoute.json +2 -2
  252. package/json-schema/api/DocumentState.json +2 -2
  253. package/json-schema/api/ETag.json +2 -2
  254. package/json-schema/api/EditMessage.json +2 -2
  255. package/json-schema/api/EditOperation.json +2 -2
  256. package/json-schema/api/EditOperationType.json +2 -2
  257. package/json-schema/api/EmailPasswordConfigPublic.json +2 -2
  258. package/json-schema/api/EnablePackageRequest.json +2 -2
  259. package/json-schema/api/EnablePackageResponse.json +2 -2
  260. package/json-schema/api/EndpointRegistry.json +2 -2
  261. package/json-schema/api/EnhancedApiError.json +2 -2
  262. package/json-schema/api/ErrorCategory.json +2 -2
  263. package/json-schema/api/ErrorHandlingConfig.json +2 -2
  264. package/json-schema/api/ErrorMessage.json +2 -2
  265. package/json-schema/api/ErrorResponse.json +2 -2
  266. package/json-schema/api/EventFilter.json +2 -2
  267. package/json-schema/api/EventFilterCondition.json +2 -2
  268. package/json-schema/api/EventMessage.json +2 -2
  269. package/json-schema/api/EventPattern.json +2 -2
  270. package/json-schema/api/EventSubscription.json +2 -2
  271. package/json-schema/api/ExportFormat.json +2 -2
  272. package/json-schema/api/ExportImportTemplate.json +2 -2
  273. package/json-schema/api/ExportJobProgress.json +2 -2
  274. package/json-schema/api/ExportJobStatus.json +2 -2
  275. package/json-schema/api/ExportJobSummary.json +2 -2
  276. package/json-schema/api/ExportRequest.json +2 -2
  277. package/json-schema/api/FederationEntity.json +2 -2
  278. package/json-schema/api/FederationEntityKey.json +2 -2
  279. package/json-schema/api/FederationExternalField.json +2 -2
  280. package/json-schema/api/FederationGateway.json +2 -2
  281. package/json-schema/api/FederationProvides.json +2 -2
  282. package/json-schema/api/FederationRequires.json +2 -2
  283. package/json-schema/api/FeedApiErrorCode.json +2 -2
  284. package/json-schema/api/FeedItemPathParams.json +2 -2
  285. package/json-schema/api/FeedListFilterType.json +2 -2
  286. package/json-schema/api/FeedPathParams.json +2 -2
  287. package/json-schema/api/FeedUnsubscribeRequest.json +2 -2
  288. package/json-schema/api/FieldError.json +2 -2
  289. package/json-schema/api/FieldMappingEntry.json +2 -2
  290. package/json-schema/api/FileTypeValidation.json +2 -2
  291. package/json-schema/api/FileUploadResponse.json +2 -2
  292. package/json-schema/api/FilterOperator.json +2 -2
  293. package/json-schema/api/FindDataRequest.json +2 -2
  294. package/json-schema/api/FindDataResponse.json +2 -2
  295. package/json-schema/api/FlowSummary.json +2 -2
  296. package/json-schema/api/GeneratedApiDocumentation.json +2 -2
  297. package/json-schema/api/GeneratedEndpoint.json +2 -2
  298. package/json-schema/api/GetAnalyticsMetaRequest.json +2 -2
  299. package/json-schema/api/GetAuthConfigResponse.json +2 -2
  300. package/json-schema/api/GetChangelogRequest.json +2 -2
  301. package/json-schema/api/GetChangelogResponse.json +2 -2
  302. package/json-schema/api/GetDataRequest.json +2 -2
  303. package/json-schema/api/GetDataResponse.json +2 -2
  304. package/json-schema/api/GetDiscoveryRequest.json +2 -2
  305. package/json-schema/api/GetDiscoveryResponse.json +2 -2
  306. package/json-schema/api/GetEffectivePermissionsRequest.json +2 -2
  307. package/json-schema/api/GetEffectivePermissionsResponse.json +2 -2
  308. package/json-schema/api/GetExportJobDownloadRequest.json +2 -2
  309. package/json-schema/api/GetExportJobDownloadResponse.json +2 -2
  310. package/json-schema/api/GetFeedRequest.json +2 -2
  311. package/json-schema/api/GetFeedResponse.json +2 -2
  312. package/json-schema/api/GetFieldLabelsRequest.json +2 -2
  313. package/json-schema/api/GetFieldLabelsResponse.json +2 -2
  314. package/json-schema/api/GetFlowRequest.json +2 -2
  315. package/json-schema/api/GetInstalledPackageRequest.json +2 -2
  316. package/json-schema/api/GetInstalledPackageResponse.json +2 -2
  317. package/json-schema/api/GetLocalesRequest.json +2 -2
  318. package/json-schema/api/GetLocalesResponse.json +2 -2
  319. package/json-schema/api/GetMetaItemCachedRequest.json +2 -2
  320. package/json-schema/api/GetMetaItemCachedResponse.json +2 -2
  321. package/json-schema/api/GetMetaItemRequest.json +2 -2
  322. package/json-schema/api/GetMetaItemResponse.json +2 -2
  323. package/json-schema/api/GetMetaItemsRequest.json +2 -2
  324. package/json-schema/api/GetMetaItemsResponse.json +2 -2
  325. package/json-schema/api/GetMetaTypesRequest.json +2 -2
  326. package/json-schema/api/GetMetaTypesResponse.json +90 -2
  327. package/json-schema/api/GetNotificationPreferencesRequest.json +2 -2
  328. package/json-schema/api/GetNotificationPreferencesResponse.json +2 -2
  329. package/json-schema/api/GetObjectPermissionsRequest.json +2 -2
  330. package/json-schema/api/GetObjectPermissionsResponse.json +2 -2
  331. package/json-schema/api/GetPackageRequest.json +2 -2
  332. package/json-schema/api/GetPackageResponse.json +2 -2
  333. package/json-schema/api/GetPresenceRequest.json +2 -2
  334. package/json-schema/api/GetPresenceResponse.json +2 -2
  335. package/json-schema/api/GetPresignedUrlRequest.json +2 -2
  336. package/json-schema/api/GetRunRequest.json +2 -2
  337. package/json-schema/api/GetRunResponse.json +2 -2
  338. package/json-schema/api/GetTranslationsRequest.json +2 -2
  339. package/json-schema/api/GetTranslationsResponse.json +2 -2
  340. package/json-schema/api/GetUiViewRequest.json +2 -2
  341. package/json-schema/api/GetViewRequest.json +2 -2
  342. package/json-schema/api/GetWorkflowConfigRequest.json +2 -2
  343. package/json-schema/api/GetWorkflowStateRequest.json +2 -2
  344. package/json-schema/api/GetWorkflowStateResponse.json +2 -2
  345. package/json-schema/api/GraphQLDataLoaderConfig.json +2 -2
  346. package/json-schema/api/GraphQLDirectiveConfig.json +2 -2
  347. package/json-schema/api/GraphQLDirectiveLocation.json +2 -2
  348. package/json-schema/api/GraphQLMutationConfig.json +2 -2
  349. package/json-schema/api/GraphQLPersistedQuery.json +2 -2
  350. package/json-schema/api/GraphQLQueryAdapter.json +2 -2
  351. package/json-schema/api/GraphQLQueryComplexity.json +2 -2
  352. package/json-schema/api/GraphQLQueryDepthLimit.json +2 -2
  353. package/json-schema/api/GraphQLRateLimit.json +2 -2
  354. package/json-schema/api/GraphQLScalarType.json +2 -2
  355. package/json-schema/api/GraphQLSubscriptionConfig.json +2 -2
  356. package/json-schema/api/GraphQLTypeConfig.json +2 -2
  357. package/json-schema/api/HandlerStatus.json +2 -2
  358. package/json-schema/api/HttpFindQueryParams.json +2 -2
  359. package/json-schema/api/HttpMethod.json +2 -2
  360. package/json-schema/api/HttpStatusCode.json +2 -2
  361. package/json-schema/api/IdRequest.json +2 -2
  362. package/json-schema/api/ImportValidationConfig.json +2 -2
  363. package/json-schema/api/ImportValidationMode.json +2 -2
  364. package/json-schema/api/ImportValidationResult.json +2 -2
  365. package/json-schema/api/InitiateChunkedUploadRequest.json +2 -2
  366. package/json-schema/api/InitiateChunkedUploadResponse.json +2 -2
  367. package/json-schema/api/InstallPackageRequest.json +2 -2
  368. package/json-schema/api/InstallPackageResponse.json +2 -2
  369. package/json-schema/api/ListExportJobsRequest.json +2 -2
  370. package/json-schema/api/ListExportJobsResponse.json +2 -2
  371. package/json-schema/api/ListFlowsRequest.json +2 -2
  372. package/json-schema/api/ListFlowsResponse.json +2 -2
  373. package/json-schema/api/ListInstalledPackagesRequest.json +2 -2
  374. package/json-schema/api/ListInstalledPackagesResponse.json +2 -2
  375. package/json-schema/api/ListNotificationsRequest.json +2 -2
  376. package/json-schema/api/ListNotificationsResponse.json +2 -2
  377. package/json-schema/api/ListPackagesRequest.json +2 -2
  378. package/json-schema/api/ListPackagesResponse.json +2 -2
  379. package/json-schema/api/ListRecordResponse.json +2 -2
  380. package/json-schema/api/ListRunsRequest.json +2 -2
  381. package/json-schema/api/ListRunsResponse.json +2 -2
  382. package/json-schema/api/ListViewsRequest.json +2 -2
  383. package/json-schema/api/LoginRequest.json +2 -2
  384. package/json-schema/api/LoginType.json +2 -2
  385. package/json-schema/api/MarkAllNotificationsReadRequest.json +2 -2
  386. package/json-schema/api/MarkAllNotificationsReadResponse.json +2 -2
  387. package/json-schema/api/MarkNotificationsReadRequest.json +2 -2
  388. package/json-schema/api/MarkNotificationsReadResponse.json +2 -2
  389. package/json-schema/api/MetadataBulkRegisterRequest.json +2 -2
  390. package/json-schema/api/MetadataBulkResponse.json +2 -2
  391. package/json-schema/api/MetadataBulkUnregisterRequest.json +2 -2
  392. package/json-schema/api/MetadataCacheRequest.json +2 -2
  393. package/json-schema/api/MetadataCacheResponse.json +2 -2
  394. package/json-schema/api/MetadataDeleteResponse.json +2 -2
  395. package/json-schema/api/MetadataDependenciesResponse.json +2 -2
  396. package/json-schema/api/MetadataDependentsResponse.json +2 -2
  397. package/json-schema/api/MetadataEffectiveResponse.json +2 -2
  398. package/json-schema/api/MetadataEndpointsConfig.json +2 -2
  399. package/json-schema/api/MetadataEvent.json +2 -2
  400. package/json-schema/api/MetadataEventType.json +2 -2
  401. package/json-schema/api/MetadataExistsResponse.json +2 -2
  402. package/json-schema/api/MetadataExportRequest.json +2 -2
  403. package/json-schema/api/MetadataExportResponse.json +2 -2
  404. package/json-schema/api/MetadataImportRequest.json +2 -2
  405. package/json-schema/api/MetadataImportResponse.json +2 -2
  406. package/json-schema/api/MetadataItemResponse.json +2 -2
  407. package/json-schema/api/MetadataListResponse.json +2 -2
  408. package/json-schema/api/MetadataNamesResponse.json +2 -2
  409. package/json-schema/api/MetadataOverlayResponse.json +2 -2
  410. package/json-schema/api/MetadataOverlaySaveRequest.json +2 -2
  411. package/json-schema/api/MetadataQueryRequest.json +2 -2
  412. package/json-schema/api/MetadataQueryResponse.json +2 -2
  413. package/json-schema/api/MetadataRegisterRequest.json +2 -2
  414. package/json-schema/api/MetadataTypeInfoResponse.json +2 -2
  415. package/json-schema/api/MetadataTypesResponse.json +2 -2
  416. package/json-schema/api/MetadataValidateRequest.json +2 -2
  417. package/json-schema/api/MetadataValidateResponse.json +2 -2
  418. package/json-schema/api/ModificationResult.json +2 -2
  419. package/json-schema/api/Notification.json +2 -2
  420. package/json-schema/api/NotificationPreferences.json +2 -2
  421. package/json-schema/api/ODataConfig.json +2 -2
  422. package/json-schema/api/ODataError.json +2 -2
  423. package/json-schema/api/ODataFilterFunction.json +2 -2
  424. package/json-schema/api/ODataFilterOperator.json +2 -2
  425. package/json-schema/api/ODataMetadata.json +2 -2
  426. package/json-schema/api/ODataQuery.json +2 -2
  427. package/json-schema/api/ODataQueryAdapter.json +2 -2
  428. package/json-schema/api/ODataResponse.json +2 -2
  429. package/json-schema/api/ObjectQLReference.json +2 -2
  430. package/json-schema/api/OpenApi31Extensions.json +2 -2
  431. package/json-schema/api/OpenApiGenerationConfig.json +2 -2
  432. package/json-schema/api/OpenApiSecurityScheme.json +2 -2
  433. package/json-schema/api/OpenApiServer.json +2 -2
  434. package/json-schema/api/OpenApiSpec.json +2 -2
  435. package/json-schema/api/OperatorMapping.json +2 -2
  436. package/json-schema/api/PackageApiErrorCode.json +2 -2
  437. package/json-schema/api/PackageInstallRequest.json +2 -2
  438. package/json-schema/api/PackageInstallResponse.json +2 -2
  439. package/json-schema/api/PackagePathParams.json +2 -2
  440. package/json-schema/api/PackageRollbackRequest.json +2 -2
  441. package/json-schema/api/PackageRollbackResponse.json +2 -2
  442. package/json-schema/api/PackageUpgradeRequest.json +2 -2
  443. package/json-schema/api/PackageUpgradeResponse.json +2 -2
  444. package/json-schema/api/PinFeedItemRequest.json +2 -2
  445. package/json-schema/api/PinFeedItemResponse.json +2 -2
  446. package/json-schema/api/PingMessage.json +2 -2
  447. package/json-schema/api/PongMessage.json +2 -2
  448. package/json-schema/api/PresenceMessage.json +2 -2
  449. package/json-schema/api/PresenceState.json +2 -2
  450. package/json-schema/api/PresenceStatus.json +2 -2
  451. package/json-schema/api/PresenceUpdate.json +2 -2
  452. package/json-schema/api/PresignedUrlResponse.json +2 -2
  453. package/json-schema/api/QueryAdapterConfig.json +2 -2
  454. package/json-schema/api/QueryAdapterTarget.json +2 -2
  455. package/json-schema/api/QueryOptimizationConfig.json +2 -2
  456. package/json-schema/api/RealtimeConfig.json +2 -2
  457. package/json-schema/api/RealtimeConnectRequest.json +2 -2
  458. package/json-schema/api/RealtimeConnectResponse.json +2 -2
  459. package/json-schema/api/RealtimeDisconnectRequest.json +2 -2
  460. package/json-schema/api/RealtimeDisconnectResponse.json +2 -2
  461. package/json-schema/api/RealtimeEvent.json +2 -2
  462. package/json-schema/api/RealtimeEventType.json +2 -2
  463. package/json-schema/api/RealtimePresence.json +2 -2
  464. package/json-schema/api/RealtimeRecordAction.json +2 -2
  465. package/json-schema/api/RealtimeSubscribeRequest.json +2 -2
  466. package/json-schema/api/RealtimeSubscribeResponse.json +2 -2
  467. package/json-schema/api/RealtimeUnsubscribeRequest.json +2 -2
  468. package/json-schema/api/RealtimeUnsubscribeResponse.json +2 -2
  469. package/json-schema/api/RecordData.json +2 -2
  470. package/json-schema/api/RefreshTokenRequest.json +2 -2
  471. package/json-schema/api/RegisterDeviceRequest.json +2 -2
  472. package/json-schema/api/RegisterDeviceResponse.json +2 -2
  473. package/json-schema/api/RegisterRequest.json +2 -2
  474. package/json-schema/api/RemoveReactionRequest.json +2 -2
  475. package/json-schema/api/RemoveReactionResponse.json +2 -2
  476. package/json-schema/api/RequestValidationConfig.json +2 -2
  477. package/json-schema/api/ResolveDependenciesRequest.json +2 -2
  478. package/json-schema/api/ResolveDependenciesResponse.json +2 -2
  479. package/json-schema/api/ResponseEnvelopeConfig.json +2 -2
  480. package/json-schema/api/RestApiConfig.json +2 -2
  481. package/json-schema/api/RestApiEndpoint.json +2 -2
  482. package/json-schema/api/RestApiPluginConfig.json +2 -2
  483. package/json-schema/api/RestApiRouteCategory.json +2 -2
  484. package/json-schema/api/RestApiRouteRegistration.json +2 -2
  485. package/json-schema/api/RestQueryAdapter.json +2 -2
  486. package/json-schema/api/RestServerConfig.json +2 -2
  487. package/json-schema/api/RetryStrategy.json +2 -2
  488. package/json-schema/api/RouteCategory.json +2 -2
  489. package/json-schema/api/RouteCoverageEntry.json +2 -2
  490. package/json-schema/api/RouteCoverageReport.json +2 -2
  491. package/json-schema/api/RouteDefinition.json +2 -2
  492. package/json-schema/api/RouteGenerationConfig.json +2 -2
  493. package/json-schema/api/RouteHealthEntry.json +2 -2
  494. package/json-schema/api/RouteHealthReport.json +2 -2
  495. package/json-schema/api/RouterConfig.json +2 -2
  496. package/json-schema/api/SaveMetaItemRequest.json +2 -2
  497. package/json-schema/api/SaveMetaItemResponse.json +2 -2
  498. package/json-schema/api/ScheduleExportResponse.json +2 -2
  499. package/json-schema/api/SchemaDefinition.json +2 -2
  500. package/json-schema/api/SearchFeedRequest.json +2 -2
  501. package/json-schema/api/SearchFeedResponse.json +2 -2
  502. package/json-schema/api/ServiceInfo.json +2 -2
  503. package/json-schema/api/ServiceStatus.json +2 -2
  504. package/json-schema/api/Session.json +2 -2
  505. package/json-schema/api/SessionResponse.json +2 -2
  506. package/json-schema/api/SessionUser.json +2 -2
  507. package/json-schema/api/SetPresenceRequest.json +2 -2
  508. package/json-schema/api/SetPresenceResponse.json +2 -2
  509. package/json-schema/api/SimpleCursorPosition.json +2 -2
  510. package/json-schema/api/SimplePresenceState.json +2 -2
  511. package/json-schema/api/SingleRecordResponse.json +2 -2
  512. package/json-schema/api/StandardErrorCode.json +2 -2
  513. package/json-schema/api/StarFeedItemRequest.json +2 -2
  514. package/json-schema/api/StarFeedItemResponse.json +2 -2
  515. package/json-schema/api/SubgraphConfig.json +2 -2
  516. package/json-schema/api/SubscribeMessage.json +2 -2
  517. package/json-schema/api/SubscribeRequest.json +2 -2
  518. package/json-schema/api/SubscribeResponse.json +2 -2
  519. package/json-schema/api/Subscription.json +2 -2
  520. package/json-schema/api/SubscriptionEvent.json +2 -2
  521. package/json-schema/api/ToggleFlowRequest.json +2 -2
  522. package/json-schema/api/ToggleFlowResponse.json +2 -2
  523. package/json-schema/api/TransportProtocol.json +2 -2
  524. package/json-schema/api/TriggerFlowRequest.json +2 -2
  525. package/json-schema/api/TriggerFlowResponse.json +2 -2
  526. package/json-schema/api/UninstallPackageApiRequest.json +2 -2
  527. package/json-schema/api/UninstallPackageApiResponse.json +2 -2
  528. package/json-schema/api/UninstallPackageRequest.json +2 -2
  529. package/json-schema/api/UninstallPackageResponse.json +2 -2
  530. package/json-schema/api/UnpinFeedItemRequest.json +2 -2
  531. package/json-schema/api/UnpinFeedItemResponse.json +2 -2
  532. package/json-schema/api/UnregisterDeviceRequest.json +2 -2
  533. package/json-schema/api/UnregisterDeviceResponse.json +2 -2
  534. package/json-schema/api/UnstarFeedItemRequest.json +2 -2
  535. package/json-schema/api/UnstarFeedItemResponse.json +2 -2
  536. package/json-schema/api/UnsubscribeMessage.json +2 -2
  537. package/json-schema/api/UnsubscribeRequest.json +2 -2
  538. package/json-schema/api/UnsubscribeResponse.json +2 -2
  539. package/json-schema/api/UpdateDataRequest.json +2 -2
  540. package/json-schema/api/UpdateDataResponse.json +2 -2
  541. package/json-schema/api/UpdateFeedItemRequest.json +2 -2
  542. package/json-schema/api/UpdateFeedItemResponse.json +2 -2
  543. package/json-schema/api/UpdateManyDataRequest.json +2 -2
  544. package/json-schema/api/UpdateManyDataResponse.json +2 -2
  545. package/json-schema/api/UpdateManyRequest.json +2 -2
  546. package/json-schema/api/UpdateNotificationPreferencesRequest.json +2 -2
  547. package/json-schema/api/UpdateNotificationPreferencesResponse.json +2 -2
  548. package/json-schema/api/UpdateRequest.json +2 -2
  549. package/json-schema/api/UploadArtifactRequest.json +2 -2
  550. package/json-schema/api/UploadArtifactResponse.json +2 -2
  551. package/json-schema/api/UploadChunkRequest.json +2 -2
  552. package/json-schema/api/UploadChunkResponse.json +2 -2
  553. package/json-schema/api/UploadProgress.json +2 -2
  554. package/json-schema/api/UserProfileResponse.json +2 -2
  555. package/json-schema/api/ValidationMode.json +2 -2
  556. package/json-schema/api/VersionDefinition.json +2 -2
  557. package/json-schema/api/VersionNegotiationResponse.json +2 -2
  558. package/json-schema/api/VersionStatus.json +2 -2
  559. package/json-schema/api/VersioningConfig.json +2 -2
  560. package/json-schema/api/VersioningStrategy.json +2 -2
  561. package/json-schema/api/WebSocketConfig.json +2 -2
  562. package/json-schema/api/WebSocketEvent.json +2 -2
  563. package/json-schema/api/WebSocketMessage.json +2 -2
  564. package/json-schema/api/WebSocketMessageType.json +2 -2
  565. package/json-schema/api/WebSocketPresenceStatus.json +2 -2
  566. package/json-schema/api/WebSocketServerConfig.json +2 -2
  567. package/json-schema/api/WebhookConfig.json +2 -2
  568. package/json-schema/api/WebhookEvent.json +2 -2
  569. package/json-schema/api/WellKnownCapabilities.json +2 -2
  570. package/json-schema/api/WorkflowApproveRequest.json +2 -2
  571. package/json-schema/api/WorkflowApproveResponse.json +2 -2
  572. package/json-schema/api/WorkflowRejectRequest.json +2 -2
  573. package/json-schema/api/WorkflowRejectResponse.json +2 -2
  574. package/json-schema/api/WorkflowState.json +2 -2
  575. package/json-schema/api/WorkflowTransitionRequest.json +2 -2
  576. package/json-schema/api/WorkflowTransitionResponse.json +2 -2
  577. package/json-schema/automation/ActionRef.json +2 -2
  578. package/json-schema/automation/ApprovalAction.json +2 -2
  579. package/json-schema/automation/ApprovalActionType.json +2 -2
  580. package/json-schema/automation/ApproverType.json +2 -2
  581. package/json-schema/automation/AuthField.json +2 -2
  582. package/json-schema/automation/Authentication.json +2 -2
  583. package/json-schema/automation/AuthenticationType.json +2 -2
  584. package/json-schema/automation/BpmnDiagnostic.json +2 -2
  585. package/json-schema/automation/BpmnElementMapping.json +2 -2
  586. package/json-schema/automation/BpmnExportOptions.json +2 -2
  587. package/json-schema/automation/BpmnImportOptions.json +2 -2
  588. package/json-schema/automation/BpmnInteropResult.json +2 -2
  589. package/json-schema/automation/BpmnUnmappedStrategy.json +2 -2
  590. package/json-schema/automation/BpmnVersion.json +2 -2
  591. package/json-schema/automation/Checkpoint.json +2 -2
  592. package/json-schema/automation/ConcurrencyPolicy.json +2 -2
  593. package/json-schema/automation/ConflictResolution.json +2 -2
  594. package/json-schema/automation/Connector.json +2 -2
  595. package/json-schema/automation/ConnectorActionRef.json +2 -2
  596. package/json-schema/automation/ConnectorCategory.json +2 -2
  597. package/json-schema/automation/ConnectorInstance.json +2 -2
  598. package/json-schema/automation/ConnectorOperation.json +2 -2
  599. package/json-schema/automation/ConnectorTrigger.json +2 -2
  600. package/json-schema/automation/CustomScriptAction.json +2 -2
  601. package/json-schema/automation/DataSourceConfig.json +2 -2
  602. package/json-schema/automation/ETLDestination.json +2 -2
  603. package/json-schema/automation/ETLEndpointType.json +2 -2
  604. package/json-schema/automation/ETLPipelineRun.json +2 -2
  605. package/json-schema/automation/ETLRunStatus.json +2 -2
  606. package/json-schema/automation/ETLSource.json +2 -2
  607. package/json-schema/automation/ETLSyncMode.json +2 -2
  608. package/json-schema/automation/ETLTransformation.json +2 -2
  609. package/json-schema/automation/ETLTransformationType.json +2 -2
  610. package/json-schema/automation/EmailAlertAction.json +2 -2
  611. package/json-schema/automation/Event.json +2 -2
  612. package/json-schema/automation/ExecutionError.json +2 -2
  613. package/json-schema/automation/ExecutionErrorSeverity.json +2 -2
  614. package/json-schema/automation/ExecutionLog.json +2 -2
  615. package/json-schema/automation/ExecutionStatus.json +2 -2
  616. package/json-schema/automation/ExecutionStepLog.json +2 -2
  617. package/json-schema/automation/FieldUpdateAction.json +2 -2
  618. package/json-schema/automation/FlowNode.json +2 -2
  619. package/json-schema/automation/FlowNodeAction.json +2 -2
  620. package/json-schema/automation/FlowVariable.json +2 -2
  621. package/json-schema/automation/GuardRef.json +2 -2
  622. package/json-schema/automation/HttpCallAction.json +2 -2
  623. package/json-schema/automation/NodeExecutorDescriptor.json +2 -2
  624. package/json-schema/automation/OAuth2Config.json +2 -2
  625. package/json-schema/automation/OperationParameter.json +2 -2
  626. package/json-schema/automation/OperationType.json +2 -2
  627. package/json-schema/automation/PushNotificationAction.json +2 -2
  628. package/json-schema/automation/StateMachine.json +2 -2
  629. package/json-schema/automation/StateNode.json +2 -2
  630. package/json-schema/automation/SyncDirection.json +2 -2
  631. package/json-schema/automation/SyncExecutionResult.json +2 -2
  632. package/json-schema/automation/SyncExecutionStatus.json +2 -2
  633. package/json-schema/automation/SyncMode.json +2 -2
  634. package/json-schema/automation/Transition.json +2 -2
  635. package/json-schema/automation/WaitEventType.json +2 -2
  636. package/json-schema/automation/WaitExecutorConfig.json +2 -2
  637. package/json-schema/automation/WaitResumePayload.json +2 -2
  638. package/json-schema/automation/WaitTimeoutBehavior.json +2 -2
  639. package/json-schema/automation/Webhook.json +2 -2
  640. package/json-schema/automation/WebhookReceiver.json +2 -2
  641. package/json-schema/automation/WebhookTriggerType.json +2 -2
  642. package/json-schema/automation/WorkflowTriggerType.json +2 -2
  643. package/json-schema/cloud/AnalyticsTimeRange.json +2 -2
  644. package/json-schema/cloud/AppDiscoveryRequest.json +2 -2
  645. package/json-schema/cloud/AppDiscoveryResponse.json +2 -2
  646. package/json-schema/cloud/AppSubscription.json +2 -2
  647. package/json-schema/cloud/ArtifactDownloadResponse.json +2 -2
  648. package/json-schema/cloud/ArtifactReference.json +2 -2
  649. package/json-schema/cloud/CreateListingRequest.json +2 -2
  650. package/json-schema/cloud/CreatePackageRequest.json +48 -2
  651. package/json-schema/cloud/CreatePackageVersionRequest.json +2 -2
  652. package/json-schema/cloud/CuratedCollection.json +2 -2
  653. package/json-schema/cloud/Environment.json +2 -2
  654. package/json-schema/cloud/EnvironmentCredential.json +2 -2
  655. package/json-schema/cloud/EnvironmentCredentialStatus.json +2 -2
  656. package/json-schema/cloud/EnvironmentDriver.json +2 -2
  657. package/json-schema/cloud/EnvironmentMember.json +2 -2
  658. package/json-schema/cloud/EnvironmentPackageInstallation.json +2 -2
  659. package/json-schema/cloud/EnvironmentPackageStatus.json +2 -2
  660. package/json-schema/cloud/EnvironmentRole.json +2 -2
  661. package/json-schema/cloud/EnvironmentStatus.json +2 -2
  662. package/json-schema/cloud/EnvironmentType.json +2 -2
  663. package/json-schema/cloud/EnvironmentVisibility.json +2 -2
  664. package/json-schema/cloud/FeaturedListing.json +2 -2
  665. package/json-schema/cloud/InstallPackageToEnvironmentRequest.json +2 -2
  666. package/json-schema/cloud/InstalledAppSummary.json +2 -2
  667. package/json-schema/cloud/ListEnvironmentPackagesResponse.json +2 -2
  668. package/json-schema/cloud/ListInstalledAppsRequest.json +2 -2
  669. package/json-schema/cloud/ListInstalledAppsResponse.json +2 -2
  670. package/json-schema/cloud/ListReviewsRequest.json +2 -2
  671. package/json-schema/cloud/ListReviewsResponse.json +2 -2
  672. package/json-schema/cloud/ListingActionRequest.json +2 -2
  673. package/json-schema/cloud/ListingStatus.json +2 -2
  674. package/json-schema/cloud/MarketplaceCategory.json +2 -2
  675. package/json-schema/cloud/MarketplaceHealthMetrics.json +2 -2
  676. package/json-schema/cloud/MarketplaceInstallRequest.json +2 -2
  677. package/json-schema/cloud/MarketplaceInstallResponse.json +2 -2
  678. package/json-schema/cloud/MarketplaceListing.json +48 -2
  679. package/json-schema/cloud/MarketplaceSearchRequest.json +2 -2
  680. package/json-schema/cloud/MarketplaceSearchResponse.json +48 -2
  681. package/json-schema/cloud/Package.json +48 -2
  682. package/json-schema/cloud/PackageCategory.json +2 -2
  683. package/json-schema/cloud/PackageDependency.json +2 -2
  684. package/json-schema/cloud/PackageInstallation.json +2 -2
  685. package/json-schema/cloud/PackageInstallationStatus.json +2 -2
  686. package/json-schema/cloud/PackageLocale.json +8 -0
  687. package/json-schema/cloud/PackageManifest.json +2 -2
  688. package/json-schema/cloud/PackagePublisher.json +2 -2
  689. package/json-schema/cloud/PackageSubmission.json +2 -2
  690. package/json-schema/cloud/PackageTranslation.json +40 -0
  691. package/json-schema/cloud/PackageTranslations.json +49 -0
  692. package/json-schema/cloud/PackageVersion.json +2 -2
  693. package/json-schema/cloud/PackageVersionStatus.json +2 -2
  694. package/json-schema/cloud/PackageVisibility.json +2 -2
  695. package/json-schema/cloud/PolicyAction.json +2 -2
  696. package/json-schema/cloud/PolicyViolationType.json +2 -2
  697. package/json-schema/cloud/PricingModel.json +2 -2
  698. package/json-schema/cloud/ProvisionEnvironmentRequest.json +2 -2
  699. package/json-schema/cloud/ProvisionEnvironmentResponse.json +2 -2
  700. package/json-schema/cloud/ProvisionOrganizationRequest.json +2 -2
  701. package/json-schema/cloud/ProvisionOrganizationResponse.json +2 -2
  702. package/json-schema/cloud/ProvisionTenantRequest.json +2 -2
  703. package/json-schema/cloud/ProvisionTenantResponse.json +2 -2
  704. package/json-schema/cloud/PublishPackageVersionRequest.json +2 -2
  705. package/json-schema/cloud/Publisher.json +2 -2
  706. package/json-schema/cloud/PublisherProfile.json +2 -2
  707. package/json-schema/cloud/PublisherVerification.json +2 -2
  708. package/json-schema/cloud/PublishingAnalyticsRequest.json +2 -2
  709. package/json-schema/cloud/PublishingAnalyticsResponse.json +2 -2
  710. package/json-schema/cloud/RecommendationReason.json +2 -2
  711. package/json-schema/cloud/RecommendedApp.json +2 -2
  712. package/json-schema/cloud/RejectionReason.json +2 -2
  713. package/json-schema/cloud/ReleaseChannel.json +2 -2
  714. package/json-schema/cloud/ReviewCriterion.json +2 -2
  715. package/json-schema/cloud/ReviewDecision.json +2 -2
  716. package/json-schema/cloud/ReviewModerationStatus.json +2 -2
  717. package/json-schema/cloud/RollbackEnvironmentPackageRequest.json +2 -2
  718. package/json-schema/cloud/Sha256Digest.json +2 -2
  719. package/json-schema/cloud/SubmissionReview.json +2 -2
  720. package/json-schema/cloud/SubmitReviewRequest.json +2 -2
  721. package/json-schema/cloud/SubscriptionStatus.json +2 -2
  722. package/json-schema/cloud/TemplateManifest.json +48 -2
  723. package/json-schema/cloud/TenantContext.json +2 -2
  724. package/json-schema/cloud/TenantDatabase.json +2 -2
  725. package/json-schema/cloud/TenantDatabaseStatus.json +2 -2
  726. package/json-schema/cloud/TenantIdentificationSource.json +2 -2
  727. package/json-schema/cloud/TenantPlan.json +2 -2
  728. package/json-schema/cloud/TenantRoutingConfig.json +2 -2
  729. package/json-schema/cloud/TimeSeriesPoint.json +2 -2
  730. package/json-schema/cloud/TrendingListing.json +2 -2
  731. package/json-schema/cloud/UpdateListingRequest.json +2 -2
  732. package/json-schema/cloud/UpdatePackageRequest.json +48 -2
  733. package/json-schema/cloud/UpdatePackageVersionRequest.json +2 -2
  734. package/json-schema/cloud/UpgradeEnvironmentPackageRequest.json +2 -2
  735. package/json-schema/cloud/UserReview.json +2 -2
  736. package/json-schema/cloud/VersionRelease.json +2 -2
  737. package/json-schema/data/Address.json +2 -2
  738. package/json-schema/data/AggregationFunction.json +2 -2
  739. package/json-schema/data/AggregationMetricType.json +2 -2
  740. package/json-schema/data/AggregationNode.json +2 -2
  741. package/json-schema/data/AggregationPipeline.json +2 -2
  742. package/json-schema/data/AggregationStage.json +2 -2
  743. package/json-schema/data/AnalyticsQuery.json +2 -2
  744. package/json-schema/data/ApiMethod.json +2 -2
  745. package/json-schema/data/AsyncValidation.json +2 -2
  746. package/json-schema/data/BaseEngineOptions.json +23 -2
  747. package/json-schema/data/CDCConfig.json +2 -2
  748. package/json-schema/data/ComputedFieldCache.json +2 -2
  749. package/json-schema/data/ConsistencyLevel.json +2 -2
  750. package/json-schema/data/Cube.json +2 -2
  751. package/json-schema/data/CubeJoin.json +2 -2
  752. package/json-schema/data/CurrencyConfig.json +2 -2
  753. package/json-schema/data/CurrencyValue.json +2 -2
  754. package/json-schema/data/CustomValidator.json +2 -2
  755. package/json-schema/data/DataEngineAggregateOptions.json +23 -2
  756. package/json-schema/data/DataEngineAggregateRequest.json +23 -2
  757. package/json-schema/data/DataEngineBatchRequest.json +149 -2
  758. package/json-schema/data/DataEngineCountOptions.json +23 -2
  759. package/json-schema/data/DataEngineCountRequest.json +23 -2
  760. package/json-schema/data/DataEngineDeleteOptions.json +23 -2
  761. package/json-schema/data/DataEngineDeleteRequest.json +23 -2
  762. package/json-schema/data/DataEngineExecuteRequest.json +2 -2
  763. package/json-schema/data/DataEngineFilter.json +2 -2
  764. package/json-schema/data/DataEngineFindOneRequest.json +23 -2
  765. package/json-schema/data/DataEngineFindRequest.json +23 -2
  766. package/json-schema/data/DataEngineInsertOptions.json +23 -2
  767. package/json-schema/data/DataEngineInsertRequest.json +23 -2
  768. package/json-schema/data/DataEngineQueryOptions.json +23 -2
  769. package/json-schema/data/DataEngineRequest.json +296 -2
  770. package/json-schema/data/DataEngineSort.json +2 -2
  771. package/json-schema/data/DataEngineUpdateOptions.json +23 -2
  772. package/json-schema/data/DataEngineUpdateRequest.json +23 -2
  773. package/json-schema/data/DataEngineVectorFindRequest.json +2 -2
  774. package/json-schema/data/DataQualityRules.json +2 -2
  775. package/json-schema/data/DataTypeMapping.json +2 -2
  776. package/json-schema/data/Dataset.json +2 -2
  777. package/json-schema/data/DatasetLoadResult.json +2 -2
  778. package/json-schema/data/DatasetMode.json +2 -2
  779. package/json-schema/data/Datasource.json +2 -2
  780. package/json-schema/data/DatasourceCapabilities.json +2 -2
  781. package/json-schema/data/DateGranularity.json +2 -2
  782. package/json-schema/data/DateMacroPlaceholder.json +2 -2
  783. package/json-schema/data/DateMacroToken.json +2 -2
  784. package/json-schema/data/Dimension.json +2 -2
  785. package/json-schema/data/DimensionType.json +2 -2
  786. package/json-schema/data/Document.json +2 -2
  787. package/json-schema/data/DocumentTemplate.json +2 -2
  788. package/json-schema/data/DocumentValidationSchema.json +2 -2
  789. package/json-schema/data/DocumentVersion.json +2 -2
  790. package/json-schema/data/DriverCapabilities.json +2 -2
  791. package/json-schema/data/DriverConfig.json +2 -2
  792. package/json-schema/data/DriverDefinition.json +2 -2
  793. package/json-schema/data/DriverOptions.json +2 -2
  794. package/json-schema/data/DriverType.json +2 -2
  795. package/json-schema/data/ESignatureConfig.json +2 -2
  796. package/json-schema/data/EngineAggregateOptions.json +23 -2
  797. package/json-schema/data/EngineCountOptions.json +23 -2
  798. package/json-schema/data/EngineDeleteOptions.json +23 -2
  799. package/json-schema/data/EngineQueryOptions.json +23 -2
  800. package/json-schema/data/EngineUpdateOptions.json +23 -2
  801. package/json-schema/data/EqualityOperator.json +2 -2
  802. package/json-schema/data/ExpressionBody.json +2 -2
  803. package/json-schema/data/ExternalDataSource.json +2 -2
  804. package/json-schema/data/FeedActor.json +2 -2
  805. package/json-schema/data/FeedFilterMode.json +2 -2
  806. package/json-schema/data/FeedItem.json +2 -2
  807. package/json-schema/data/FeedItemType.json +2 -2
  808. package/json-schema/data/FeedVisibility.json +2 -2
  809. package/json-schema/data/FieldChangeEntry.json +2 -2
  810. package/json-schema/data/FieldMapping.json +2 -2
  811. package/json-schema/data/FieldNode.json +2 -2
  812. package/json-schema/data/FieldReference.json +2 -2
  813. package/json-schema/data/FieldType.json +4 -2
  814. package/json-schema/data/FileAttachmentConfig.json +2 -2
  815. package/json-schema/data/FilterCondition.json +2 -2
  816. package/json-schema/data/FormatValidation.json +2 -2
  817. package/json-schema/data/FullTextSearch.json +2 -2
  818. package/json-schema/data/GroupByNode.json +2 -2
  819. package/json-schema/data/HookBody.json +2 -2
  820. package/json-schema/data/HookBodyCapability.json +2 -2
  821. package/json-schema/data/HookContext.json +2 -2
  822. package/json-schema/data/HookEvent.json +2 -2
  823. package/json-schema/data/Index.json +2 -2
  824. package/json-schema/data/JSONValidation.json +2 -2
  825. package/json-schema/data/JoinNode.json +2 -2
  826. package/json-schema/data/JoinStrategy.json +2 -2
  827. package/json-schema/data/JoinType.json +2 -2
  828. package/json-schema/data/LocationCoordinates.json +2 -2
  829. package/json-schema/data/Mapping.json +2 -2
  830. package/json-schema/data/Mention.json +2 -2
  831. package/json-schema/data/Metric.json +2 -2
  832. package/json-schema/data/NoSQLDataTypeMapping.json +2 -2
  833. package/json-schema/data/NoSQLDatabaseType.json +2 -2
  834. package/json-schema/data/NoSQLDriverConfig.json +2 -2
  835. package/json-schema/data/NoSQLIndex.json +2 -2
  836. package/json-schema/data/NoSQLIndexType.json +2 -2
  837. package/json-schema/data/NoSQLOperationType.json +2 -2
  838. package/json-schema/data/NoSQLQueryOptions.json +2 -2
  839. package/json-schema/data/NoSQLTransactionOptions.json +2 -2
  840. package/json-schema/data/NotificationChannel.json +2 -2
  841. package/json-schema/data/ObjectCapabilities.json +2 -2
  842. package/json-schema/data/ObjectDependencyGraph.json +2 -2
  843. package/json-schema/data/ObjectDependencyNode.json +2 -2
  844. package/json-schema/data/ObjectOwnershipEnum.json +2 -2
  845. package/json-schema/data/PartitioningConfig.json +2 -2
  846. package/json-schema/data/PoolConfig.json +2 -2
  847. package/json-schema/data/Query.json +2 -2
  848. package/json-schema/data/QueryFilter.json +2 -2
  849. package/json-schema/data/Reaction.json +2 -2
  850. package/json-schema/data/RecordSubscription.json +2 -2
  851. package/json-schema/data/ReferenceResolution.json +2 -2
  852. package/json-schema/data/ReferenceResolutionError.json +2 -2
  853. package/json-schema/data/ReplicationConfig.json +2 -2
  854. package/json-schema/data/SQLDialect.json +2 -2
  855. package/json-schema/data/SQLDriverConfig.json +2 -2
  856. package/json-schema/data/SSLConfig.json +2 -2
  857. package/json-schema/data/ScriptBody.json +2 -2
  858. package/json-schema/data/SearchConfig.json +2 -2
  859. package/json-schema/data/SeedLoaderConfig.json +2 -2
  860. package/json-schema/data/SeedLoaderRequest.json +2 -2
  861. package/json-schema/data/SeedLoaderResult.json +2 -2
  862. package/json-schema/data/SelectOption.json +2 -2
  863. package/json-schema/data/SetOperator.json +2 -2
  864. package/json-schema/data/ShardingConfig.json +2 -2
  865. package/json-schema/data/SoftDeleteConfig.json +2 -2
  866. package/json-schema/data/SortNode.json +2 -2
  867. package/json-schema/data/SpecialOperator.json +2 -2
  868. package/json-schema/data/StateMachineValidation.json +2 -2
  869. package/json-schema/data/StringOperator.json +2 -2
  870. package/json-schema/data/SubscriptionEventType.json +2 -2
  871. package/json-schema/data/TenancyConfig.json +2 -2
  872. package/json-schema/data/TenantDatabaseLifecycle.json +2 -2
  873. package/json-schema/data/TenantResolverStrategy.json +2 -2
  874. package/json-schema/data/TimeUpdateInterval.json +2 -2
  875. package/json-schema/data/TransformType.json +2 -2
  876. package/json-schema/data/TursoGroup.json +2 -2
  877. package/json-schema/data/TursoMultiTenantConfig.json +2 -2
  878. package/json-schema/data/VectorConfig.json +2 -2
  879. package/json-schema/data/VersioningConfig.json +2 -2
  880. package/json-schema/data/WindowFunction.json +2 -2
  881. package/json-schema/data/WindowFunctionNode.json +2 -2
  882. package/json-schema/data/WindowSpec.json +2 -2
  883. package/json-schema/identity/Account.json +2 -2
  884. package/json-schema/identity/ApiKey.json +2 -2
  885. package/json-schema/identity/Invitation.json +2 -2
  886. package/json-schema/identity/InvitationStatus.json +2 -2
  887. package/json-schema/identity/Member.json +2 -2
  888. package/json-schema/identity/Organization.json +2 -2
  889. package/json-schema/identity/Role.json +2 -2
  890. package/json-schema/identity/SCIMAddress.json +2 -2
  891. package/json-schema/identity/SCIMBulkOperation.json +2 -2
  892. package/json-schema/identity/SCIMBulkRequest.json +2 -2
  893. package/json-schema/identity/SCIMBulkResponse.json +2 -2
  894. package/json-schema/identity/SCIMBulkResponseOperation.json +2 -2
  895. package/json-schema/identity/SCIMEmail.json +2 -2
  896. package/json-schema/identity/SCIMEnterpriseUser.json +2 -2
  897. package/json-schema/identity/SCIMError.json +2 -2
  898. package/json-schema/identity/SCIMGroup.json +2 -2
  899. package/json-schema/identity/SCIMGroupReference.json +2 -2
  900. package/json-schema/identity/SCIMListResponse.json +2 -2
  901. package/json-schema/identity/SCIMMemberReference.json +2 -2
  902. package/json-schema/identity/SCIMMeta.json +2 -2
  903. package/json-schema/identity/SCIMName.json +2 -2
  904. package/json-schema/identity/SCIMPatchOperation.json +2 -2
  905. package/json-schema/identity/SCIMPatchRequest.json +2 -2
  906. package/json-schema/identity/SCIMPhoneNumber.json +2 -2
  907. package/json-schema/identity/SCIMUser.json +2 -2
  908. package/json-schema/identity/Session.json +2 -2
  909. package/json-schema/identity/User.json +2 -2
  910. package/json-schema/identity/VerificationToken.json +2 -2
  911. package/json-schema/integration/AckMode.json +2 -2
  912. package/json-schema/integration/ApiVersionConfig.json +2 -2
  913. package/json-schema/integration/BuildConfig.json +2 -2
  914. package/json-schema/integration/CdcConfig.json +2 -2
  915. package/json-schema/integration/CircuitBreakerConfig.json +2 -2
  916. package/json-schema/integration/ConflictResolution.json +2 -2
  917. package/json-schema/integration/ConnectorAction.json +2 -2
  918. package/json-schema/integration/ConnectorHealth.json +2 -2
  919. package/json-schema/integration/ConnectorStatus.json +2 -2
  920. package/json-schema/integration/ConnectorTrigger.json +2 -2
  921. package/json-schema/integration/ConnectorType.json +2 -2
  922. package/json-schema/integration/ConsumerConfig.json +2 -2
  923. package/json-schema/integration/DatabasePoolConfig.json +2 -2
  924. package/json-schema/integration/DatabaseProvider.json +2 -2
  925. package/json-schema/integration/DeliveryGuarantee.json +2 -2
  926. package/json-schema/integration/DeploymentConfig.json +2 -2
  927. package/json-schema/integration/DlqConfig.json +2 -2
  928. package/json-schema/integration/DomainConfig.json +2 -2
  929. package/json-schema/integration/EdgeFunctionConfig.json +2 -2
  930. package/json-schema/integration/EnvironmentVariables.json +2 -2
  931. package/json-schema/integration/ErrorCategory.json +2 -2
  932. package/json-schema/integration/ErrorMappingConfig.json +2 -2
  933. package/json-schema/integration/ErrorMappingRule.json +2 -2
  934. package/json-schema/integration/FileAccessPattern.json +2 -2
  935. package/json-schema/integration/FileFilterConfig.json +2 -2
  936. package/json-schema/integration/FileMetadataConfig.json +2 -2
  937. package/json-schema/integration/FileStorageProvider.json +2 -2
  938. package/json-schema/integration/FileVersioningConfig.json +2 -2
  939. package/json-schema/integration/GitHubActionsWorkflow.json +2 -2
  940. package/json-schema/integration/GitHubCommitConfig.json +2 -2
  941. package/json-schema/integration/GitHubIssueTracking.json +2 -2
  942. package/json-schema/integration/GitHubProvider.json +2 -2
  943. package/json-schema/integration/GitHubReleaseConfig.json +2 -2
  944. package/json-schema/integration/GitHubRepository.json +2 -2
  945. package/json-schema/integration/GitRepositoryConfig.json +2 -2
  946. package/json-schema/integration/HealthCheckConfig.json +2 -2
  947. package/json-schema/integration/MessageFormat.json +2 -2
  948. package/json-schema/integration/MessageQueueProvider.json +2 -2
  949. package/json-schema/integration/MultipartUploadConfig.json +2 -2
  950. package/json-schema/integration/ProducerConfig.json +2 -2
  951. package/json-schema/integration/RateLimitConfig.json +2 -2
  952. package/json-schema/integration/RateLimitStrategy.json +2 -2
  953. package/json-schema/integration/RetryConfig.json +2 -2
  954. package/json-schema/integration/RetryStrategy.json +2 -2
  955. package/json-schema/integration/SaasProvider.json +2 -2
  956. package/json-schema/integration/SslConfig.json +2 -2
  957. package/json-schema/integration/StorageBucket.json +2 -2
  958. package/json-schema/integration/SyncStrategy.json +2 -2
  959. package/json-schema/integration/TopicQueue.json +2 -2
  960. package/json-schema/integration/VercelFramework.json +2 -2
  961. package/json-schema/integration/VercelMonitoring.json +2 -2
  962. package/json-schema/integration/VercelProject.json +2 -2
  963. package/json-schema/integration/VercelProvider.json +2 -2
  964. package/json-schema/integration/VercelTeam.json +2 -2
  965. package/json-schema/integration/WebhookConfig.json +2 -2
  966. package/json-schema/integration/WebhookEvent.json +2 -2
  967. package/json-schema/integration/WebhookSignatureAlgorithm.json +2 -2
  968. package/json-schema/kernel/ActivationEvent.json +2 -2
  969. package/json-schema/kernel/AdvancedPluginLifecycleConfig.json +2 -2
  970. package/json-schema/kernel/ArtifactChecksum.json +2 -2
  971. package/json-schema/kernel/ArtifactFileEntry.json +2 -2
  972. package/json-schema/kernel/ArtifactSignature.json +2 -2
  973. package/json-schema/kernel/BreakingChange.json +2 -2
  974. package/json-schema/kernel/CLICommandContribution.json +2 -2
  975. package/json-schema/kernel/CapabilityConformanceLevel.json +2 -2
  976. package/json-schema/kernel/ClusterCapabilityConfig.json +2 -2
  977. package/json-schema/kernel/ClusterDriver.json +2 -2
  978. package/json-schema/kernel/ClusterTenantIsolation.json +2 -2
  979. package/json-schema/kernel/CompatibilityLevel.json +2 -2
  980. package/json-schema/kernel/CompatibilityMatrixEntry.json +2 -2
  981. package/json-schema/kernel/CustomizationOrigin.json +2 -2
  982. package/json-schema/kernel/CustomizationPolicy.json +2 -2
  983. package/json-schema/kernel/DeadLetterQueueEntry.json +2 -2
  984. package/json-schema/kernel/DependencyConflict.json +2 -2
  985. package/json-schema/kernel/DependencyGraph.json +2 -2
  986. package/json-schema/kernel/DependencyGraphNode.json +2 -2
  987. package/json-schema/kernel/DependencyResolutionResult.json +2 -2
  988. package/json-schema/kernel/DependencyStatusEnum.json +2 -2
  989. package/json-schema/kernel/DeprecationNotice.json +2 -2
  990. package/json-schema/kernel/DevFixtureConfig.json +2 -2
  991. package/json-schema/kernel/DevPluginConfig.json +2 -2
  992. package/json-schema/kernel/DevPluginPreset.json +2 -2
  993. package/json-schema/kernel/DevServiceOverride.json +2 -2
  994. package/json-schema/kernel/DevToolsConfig.json +2 -2
  995. package/json-schema/kernel/DisablePackageRequest.json +2 -2
  996. package/json-schema/kernel/DisablePackageResponse.json +2 -2
  997. package/json-schema/kernel/DistributedStateConfig.json +2 -2
  998. package/json-schema/kernel/DynamicLoadRequest.json +2 -2
  999. package/json-schema/kernel/DynamicLoadingConfig.json +2 -2
  1000. package/json-schema/kernel/DynamicPluginOperation.json +2 -2
  1001. package/json-schema/kernel/DynamicPluginResult.json +2 -2
  1002. package/json-schema/kernel/DynamicUnloadRequest.json +2 -2
  1003. package/json-schema/kernel/EnablePackageRequest.json +2 -2
  1004. package/json-schema/kernel/EnablePackageResponse.json +2 -2
  1005. package/json-schema/kernel/Event.json +2 -2
  1006. package/json-schema/kernel/EventBusConfig.json +2 -2
  1007. package/json-schema/kernel/EventClusterOptions.json +2 -2
  1008. package/json-schema/kernel/EventDeliverySemantics.json +2 -2
  1009. package/json-schema/kernel/EventHandler.json +2 -2
  1010. package/json-schema/kernel/EventLogEntry.json +2 -2
  1011. package/json-schema/kernel/EventMessageQueueConfig.json +2 -2
  1012. package/json-schema/kernel/EventMetadata.json +2 -2
  1013. package/json-schema/kernel/EventPersistence.json +2 -2
  1014. package/json-schema/kernel/EventPhase.json +2 -2
  1015. package/json-schema/kernel/EventPriority.json +2 -2
  1016. package/json-schema/kernel/EventQueueConfig.json +2 -2
  1017. package/json-schema/kernel/EventReplayConfig.json +2 -2
  1018. package/json-schema/kernel/EventRoute.json +2 -2
  1019. package/json-schema/kernel/EventScope.json +2 -2
  1020. package/json-schema/kernel/EventSourcingConfig.json +2 -2
  1021. package/json-schema/kernel/EventTypeDefinition.json +2 -2
  1022. package/json-schema/kernel/EventWebhookConfig.json +2 -2
  1023. package/json-schema/kernel/ExecutionContext.json +23 -2
  1024. package/json-schema/kernel/ExtensionPoint.json +2 -2
  1025. package/json-schema/kernel/FeatureStrategy.json +2 -2
  1026. package/json-schema/kernel/FieldChange.json +2 -2
  1027. package/json-schema/kernel/GetPackageRequest.json +2 -2
  1028. package/json-schema/kernel/GetPackageResponse.json +2 -2
  1029. package/json-schema/kernel/GracefulDegradation.json +2 -2
  1030. package/json-schema/kernel/HealthStatus.json +2 -2
  1031. package/json-schema/kernel/HookRegisteredEvent.json +2 -2
  1032. package/json-schema/kernel/HookTriggeredEvent.json +2 -2
  1033. package/json-schema/kernel/HotReloadConfig.json +2 -2
  1034. package/json-schema/kernel/InstallPackageRequest.json +2 -2
  1035. package/json-schema/kernel/InstallPackageResponse.json +2 -2
  1036. package/json-schema/kernel/InstalledPackage.json +2 -2
  1037. package/json-schema/kernel/KernelContext.json +2 -2
  1038. package/json-schema/kernel/KernelEventBase.json +2 -2
  1039. package/json-schema/kernel/KernelReadyEvent.json +2 -2
  1040. package/json-schema/kernel/KernelSecurityPolicy.json +2 -2
  1041. package/json-schema/kernel/KernelSecurityScanResult.json +2 -2
  1042. package/json-schema/kernel/KernelSecurityVulnerability.json +2 -2
  1043. package/json-schema/kernel/KernelShutdownEvent.json +2 -2
  1044. package/json-schema/kernel/ListPackagesRequest.json +2 -2
  1045. package/json-schema/kernel/ListPackagesResponse.json +2 -2
  1046. package/json-schema/kernel/Manifest.json +2 -2
  1047. package/json-schema/kernel/MergeConflict.json +2 -2
  1048. package/json-schema/kernel/MergeResult.json +2 -2
  1049. package/json-schema/kernel/MergeStrategyConfig.json +2 -2
  1050. package/json-schema/kernel/MetadataBulkRegisterRequest.json +2 -2
  1051. package/json-schema/kernel/MetadataBulkResult.json +2 -2
  1052. package/json-schema/kernel/MetadataCategoryEnum.json +2 -2
  1053. package/json-schema/kernel/MetadataChangeOperation.json +2 -2
  1054. package/json-schema/kernel/MetadataChangeType.json +2 -2
  1055. package/json-schema/kernel/MetadataCollectionInfo.json +2 -2
  1056. package/json-schema/kernel/MetadataDependency.json +2 -2
  1057. package/json-schema/kernel/MetadataDiffItem.json +2 -2
  1058. package/json-schema/kernel/MetadataEvent.json +2 -2
  1059. package/json-schema/kernel/MetadataFallbackStrategy.json +2 -2
  1060. package/json-schema/kernel/MetadataFormat.json +2 -2
  1061. package/json-schema/kernel/MetadataImportOptions.json +2 -2
  1062. package/json-schema/kernel/MetadataLoadResult.json +2 -2
  1063. package/json-schema/kernel/MetadataLoaderContract.json +2 -2
  1064. package/json-schema/kernel/MetadataManagerConfig.json +2 -2
  1065. package/json-schema/kernel/MetadataOverlay.json +2 -2
  1066. package/json-schema/kernel/MetadataPluginConfig.json +2 -2
  1067. package/json-schema/kernel/MetadataPluginManifest.json +2 -2
  1068. package/json-schema/kernel/MetadataQuery.json +2 -2
  1069. package/json-schema/kernel/MetadataQueryResult.json +2 -2
  1070. package/json-schema/kernel/MetadataSaveOptions.json +2 -2
  1071. package/json-schema/kernel/MetadataSaveResult.json +2 -2
  1072. package/json-schema/kernel/MetadataStats.json +2 -2
  1073. package/json-schema/kernel/MetadataType.json +2 -2
  1074. package/json-schema/kernel/MetadataTypeRegistryEntry.json +2 -2
  1075. package/json-schema/kernel/MetadataValidationResult.json +2 -2
  1076. package/json-schema/kernel/MetadataWatchEvent.json +2 -2
  1077. package/json-schema/kernel/NamespaceConflictError.json +2 -2
  1078. package/json-schema/kernel/NamespaceRegistryEntry.json +2 -2
  1079. package/json-schema/kernel/OclifPluginConfig.json +2 -2
  1080. package/json-schema/kernel/OpsDomainModule.json +2 -2
  1081. package/json-schema/kernel/OpsFilePath.json +2 -2
  1082. package/json-schema/kernel/OpsPluginStructure.json +2 -2
  1083. package/json-schema/kernel/PackageArtifact.json +2 -2
  1084. package/json-schema/kernel/PackageDependency.json +2 -2
  1085. package/json-schema/kernel/PackageDependencyConflict.json +2 -2
  1086. package/json-schema/kernel/PackageDependencyResolutionResult.json +2 -2
  1087. package/json-schema/kernel/PackageStatusEnum.json +2 -2
  1088. package/json-schema/kernel/PermissionAction.json +2 -2
  1089. package/json-schema/kernel/PermissionScope.json +2 -2
  1090. package/json-schema/kernel/PluginCaching.json +2 -2
  1091. package/json-schema/kernel/PluginCapability.json +2 -2
  1092. package/json-schema/kernel/PluginCapabilityManifest.json +2 -2
  1093. package/json-schema/kernel/PluginCodeSplitting.json +2 -2
  1094. package/json-schema/kernel/PluginCompatibilityMatrix.json +2 -2
  1095. package/json-schema/kernel/PluginDependency.json +2 -2
  1096. package/json-schema/kernel/PluginDependencyResolution.json +2 -2
  1097. package/json-schema/kernel/PluginDependencyResolutionResult.json +2 -2
  1098. package/json-schema/kernel/PluginDiscoveryConfig.json +2 -2
  1099. package/json-schema/kernel/PluginDiscoverySource.json +2 -2
  1100. package/json-schema/kernel/PluginDynamicImport.json +2 -2
  1101. package/json-schema/kernel/PluginErrorEvent.json +2 -2
  1102. package/json-schema/kernel/PluginEventBase.json +2 -2
  1103. package/json-schema/kernel/PluginHealthCheck.json +2 -2
  1104. package/json-schema/kernel/PluginHealthReport.json +2 -2
  1105. package/json-schema/kernel/PluginHealthStatus.json +2 -2
  1106. package/json-schema/kernel/PluginHotReload.json +2 -2
  1107. package/json-schema/kernel/PluginInitialization.json +2 -2
  1108. package/json-schema/kernel/PluginInstallConfig.json +2 -2
  1109. package/json-schema/kernel/PluginInterface.json +2 -2
  1110. package/json-schema/kernel/PluginLifecycleEventType.json +2 -2
  1111. package/json-schema/kernel/PluginLifecyclePhaseEvent.json +2 -2
  1112. package/json-schema/kernel/PluginLoadingConfig.json +2 -2
  1113. package/json-schema/kernel/PluginLoadingEvent.json +2 -2
  1114. package/json-schema/kernel/PluginLoadingState.json +2 -2
  1115. package/json-schema/kernel/PluginLoadingStrategy.json +2 -2
  1116. package/json-schema/kernel/PluginMetadata.json +2 -2
  1117. package/json-schema/kernel/PluginPerformanceMonitoring.json +2 -2
  1118. package/json-schema/kernel/PluginPreloadConfig.json +2 -2
  1119. package/json-schema/kernel/PluginProvenance.json +2 -2
  1120. package/json-schema/kernel/PluginQualityMetrics.json +2 -2
  1121. package/json-schema/kernel/PluginRegisteredEvent.json +2 -2
  1122. package/json-schema/kernel/PluginRegistryEntry.json +2 -2
  1123. package/json-schema/kernel/PluginSandboxing.json +2 -2
  1124. package/json-schema/kernel/PluginSearchFilters.json +2 -2
  1125. package/json-schema/kernel/PluginSource.json +2 -2
  1126. package/json-schema/kernel/PluginStartupResult.json +2 -2
  1127. package/json-schema/kernel/PluginStateSnapshot.json +2 -2
  1128. package/json-schema/kernel/PluginStatistics.json +2 -2
  1129. package/json-schema/kernel/PluginTrustLevel.json +2 -2
  1130. package/json-schema/kernel/PluginTrustScore.json +2 -2
  1131. package/json-schema/kernel/PluginUpdateStrategy.json +2 -2
  1132. package/json-schema/kernel/PluginVendor.json +2 -2
  1133. package/json-schema/kernel/PluginVersionMetadata.json +2 -2
  1134. package/json-schema/kernel/PreviewModeConfig.json +2 -2
  1135. package/json-schema/kernel/ProtocolFeature.json +2 -2
  1136. package/json-schema/kernel/ProtocolReference.json +2 -2
  1137. package/json-schema/kernel/ProtocolVersion.json +2 -2
  1138. package/json-schema/kernel/RealTimeNotificationConfig.json +2 -2
  1139. package/json-schema/kernel/RequiredAction.json +2 -2
  1140. package/json-schema/kernel/ResolvedDependency.json +2 -2
  1141. package/json-schema/kernel/ResourceType.json +2 -2
  1142. package/json-schema/kernel/RollbackPackageRequest.json +2 -2
  1143. package/json-schema/kernel/RollbackPackageResponse.json +2 -2
  1144. package/json-schema/kernel/RuntimeConfig.json +2 -2
  1145. package/json-schema/kernel/RuntimeMode.json +2 -2
  1146. package/json-schema/kernel/SBOM.json +2 -2
  1147. package/json-schema/kernel/SBOMEntry.json +2 -2
  1148. package/json-schema/kernel/SandboxConfig.json +2 -2
  1149. package/json-schema/kernel/ScopeConfig.json +2 -2
  1150. package/json-schema/kernel/ScopeInfo.json +2 -2
  1151. package/json-schema/kernel/SecurityPolicy.json +2 -2
  1152. package/json-schema/kernel/SecurityScanResult.json +2 -2
  1153. package/json-schema/kernel/SecurityVulnerability.json +2 -2
  1154. package/json-schema/kernel/SemanticVersion.json +2 -2
  1155. package/json-schema/kernel/ServiceClusterAnnotations.json +2 -2
  1156. package/json-schema/kernel/ServiceClusterScope.json +2 -2
  1157. package/json-schema/kernel/ServiceFactoryRegistration.json +2 -2
  1158. package/json-schema/kernel/ServiceLeaderStrategy.json +2 -2
  1159. package/json-schema/kernel/ServiceMetadata.json +2 -2
  1160. package/json-schema/kernel/ServiceRegisteredEvent.json +2 -2
  1161. package/json-schema/kernel/ServiceRegistryConfig.json +2 -2
  1162. package/json-schema/kernel/ServiceScopeType.json +2 -2
  1163. package/json-schema/kernel/ServiceUnregisteredEvent.json +2 -2
  1164. package/json-schema/kernel/StartupOptions.json +2 -2
  1165. package/json-schema/kernel/StartupOrchestrationResult.json +2 -2
  1166. package/json-schema/kernel/TenantRuntimeContext.json +2 -2
  1167. package/json-schema/kernel/UninstallPackageRequest.json +2 -2
  1168. package/json-schema/kernel/UninstallPackageResponse.json +2 -2
  1169. package/json-schema/kernel/UpgradeContext.json +2 -2
  1170. package/json-schema/kernel/UpgradeImpactLevel.json +2 -2
  1171. package/json-schema/kernel/UpgradePackageRequest.json +2 -2
  1172. package/json-schema/kernel/UpgradePackageResponse.json +2 -2
  1173. package/json-schema/kernel/UpgradePhase.json +2 -2
  1174. package/json-schema/kernel/UpgradePlan.json +2 -2
  1175. package/json-schema/kernel/UpgradeSnapshot.json +2 -2
  1176. package/json-schema/kernel/ValidationError.json +2 -2
  1177. package/json-schema/kernel/ValidationResult.json +2 -2
  1178. package/json-schema/kernel/ValidationWarning.json +2 -2
  1179. package/json-schema/kernel/VersionConstraint.json +2 -2
  1180. package/json-schema/kernel/VulnerabilitySeverity.json +2 -2
  1181. package/json-schema/objectstack.json +4761 -3409
  1182. package/json-schema/openapi.json +1 -1
  1183. package/json-schema/qa/TestAction.json +2 -2
  1184. package/json-schema/qa/TestActionType.json +2 -2
  1185. package/json-schema/qa/TestAssertion.json +2 -2
  1186. package/json-schema/qa/TestAssertionType.json +2 -2
  1187. package/json-schema/qa/TestContext.json +2 -2
  1188. package/json-schema/qa/TestScenario.json +2 -2
  1189. package/json-schema/qa/TestStep.json +2 -2
  1190. package/json-schema/qa/TestSuite.json +2 -2
  1191. package/json-schema/security/AuditPolicy.json +2 -2
  1192. package/json-schema/security/FieldPermission.json +2 -2
  1193. package/json-schema/security/NetworkPolicy.json +2 -2
  1194. package/json-schema/security/OWDModel.json +2 -2
  1195. package/json-schema/security/ObjectPermission.json +2 -2
  1196. package/json-schema/security/OwnerSharingRule.json +2 -2
  1197. package/json-schema/security/PasswordPolicy.json +2 -2
  1198. package/json-schema/security/PermissionSet.json +2 -2
  1199. package/json-schema/security/Policy.json +2 -2
  1200. package/json-schema/security/RLSAuditConfig.json +2 -2
  1201. package/json-schema/security/RLSAuditEvent.json +2 -2
  1202. package/json-schema/security/RLSConfig.json +2 -2
  1203. package/json-schema/security/RLSEvaluationResult.json +2 -2
  1204. package/json-schema/security/RLSOperation.json +2 -2
  1205. package/json-schema/security/RLSUserContext.json +2 -2
  1206. package/json-schema/security/RowLevelSecurityPolicy.json +2 -2
  1207. package/json-schema/security/SessionPolicy.json +2 -2
  1208. package/json-schema/security/ShareRecipientType.json +2 -2
  1209. package/json-schema/security/SharingLevel.json +2 -2
  1210. package/json-schema/security/SharingRuleType.json +2 -2
  1211. package/json-schema/security/Territory.json +2 -2
  1212. package/json-schema/security/TerritoryModel.json +2 -2
  1213. package/json-schema/security/TerritoryType.json +2 -2
  1214. package/json-schema/shared/AggregationFunctionEnum.json +2 -2
  1215. package/json-schema/shared/AppName.json +2 -2
  1216. package/json-schema/shared/BaseMetadataRecord.json +2 -2
  1217. package/json-schema/shared/CacheStrategyEnum.json +2 -2
  1218. package/json-schema/shared/CorsConfig.json +2 -2
  1219. package/json-schema/shared/EventName.json +2 -2
  1220. package/json-schema/shared/Expression.json +2 -2
  1221. package/json-schema/shared/ExpressionDialect.json +2 -2
  1222. package/json-schema/shared/ExpressionMeta.json +2 -2
  1223. package/json-schema/shared/FieldName.json +2 -2
  1224. package/json-schema/shared/FlowName.json +2 -2
  1225. package/json-schema/shared/HttpMethod.json +2 -2
  1226. package/json-schema/shared/HttpRequest.json +2 -2
  1227. package/json-schema/shared/IsolationLevelEnum.json +2 -2
  1228. package/json-schema/shared/MetadataFormat.json +2 -2
  1229. package/json-schema/shared/MutationEventEnum.json +2 -2
  1230. package/json-schema/shared/ObjectName.json +2 -2
  1231. package/json-schema/shared/Predicate.json +2 -2
  1232. package/json-schema/shared/RateLimitConfig.json +2 -2
  1233. package/json-schema/shared/RoleName.json +2 -2
  1234. package/json-schema/shared/SnakeCaseIdentifier.json +2 -2
  1235. package/json-schema/shared/SortDirectionEnum.json +2 -2
  1236. package/json-schema/shared/SortItem.json +2 -2
  1237. package/json-schema/shared/StaticMount.json +2 -2
  1238. package/json-schema/shared/SystemIdentifier.json +2 -2
  1239. package/json-schema/shared/ViewName.json +2 -2
  1240. package/json-schema/studio/ActionContribution.json +2 -2
  1241. package/json-schema/studio/ActionLocation.json +2 -2
  1242. package/json-schema/studio/ActivationEvent.json +2 -2
  1243. package/json-schema/studio/CanvasSnapSettings.json +2 -2
  1244. package/json-schema/studio/CanvasZoomSettings.json +2 -2
  1245. package/json-schema/studio/CommandContribution.json +2 -2
  1246. package/json-schema/studio/ERDiagramConfig.json +2 -2
  1247. package/json-schema/studio/ERLayoutAlgorithm.json +2 -2
  1248. package/json-schema/studio/ERNodeDisplay.json +2 -2
  1249. package/json-schema/studio/ElementPaletteItem.json +2 -2
  1250. package/json-schema/studio/FieldEditorConfig.json +2 -2
  1251. package/json-schema/studio/FieldGroup.json +2 -2
  1252. package/json-schema/studio/FieldPropertySection.json +2 -2
  1253. package/json-schema/studio/FlowBuilderConfig.json +2 -2
  1254. package/json-schema/studio/FlowCanvasEdge.json +2 -2
  1255. package/json-schema/studio/FlowCanvasEdgeStyle.json +2 -2
  1256. package/json-schema/studio/FlowCanvasNode.json +2 -2
  1257. package/json-schema/studio/FlowLayoutAlgorithm.json +2 -2
  1258. package/json-schema/studio/FlowLayoutDirection.json +2 -2
  1259. package/json-schema/studio/FlowNodeRenderDescriptor.json +2 -2
  1260. package/json-schema/studio/FlowNodeShape.json +2 -2
  1261. package/json-schema/studio/InterfaceBuilderConfig.json +2 -2
  1262. package/json-schema/studio/MetadataIconContribution.json +2 -2
  1263. package/json-schema/studio/MetadataViewerContribution.json +2 -2
  1264. package/json-schema/studio/ObjectDesignerConfig.json +2 -2
  1265. package/json-schema/studio/ObjectDesignerDefaultView.json +2 -2
  1266. package/json-schema/studio/ObjectFilter.json +2 -2
  1267. package/json-schema/studio/ObjectListDisplayMode.json +2 -2
  1268. package/json-schema/studio/ObjectManagerConfig.json +2 -2
  1269. package/json-schema/studio/ObjectPreviewConfig.json +2 -2
  1270. package/json-schema/studio/ObjectPreviewTab.json +2 -2
  1271. package/json-schema/studio/ObjectSortField.json +2 -2
  1272. package/json-schema/studio/PageBuilderConfig.json +2 -2
  1273. package/json-schema/studio/PanelContribution.json +2 -2
  1274. package/json-schema/studio/PanelLocation.json +2 -2
  1275. package/json-schema/studio/RelationshipDisplay.json +2 -2
  1276. package/json-schema/studio/RelationshipMapperConfig.json +2 -2
  1277. package/json-schema/studio/SidebarGroupContribution.json +2 -2
  1278. package/json-schema/studio/StudioPluginContributions.json +2 -2
  1279. package/json-schema/studio/StudioPluginManifest.json +2 -2
  1280. package/json-schema/studio/ViewMode.json +2 -2
  1281. package/json-schema/system/AccessControlConfig.json +2 -2
  1282. package/json-schema/system/AdvancedAuthConfig.json +2 -2
  1283. package/json-schema/system/AnalyzerConfig.json +2 -2
  1284. package/json-schema/system/AppCompatibilityCheck.json +2 -2
  1285. package/json-schema/system/AppInstallRequest.json +2 -2
  1286. package/json-schema/system/AppInstallResult.json +2 -2
  1287. package/json-schema/system/AppManifest.json +2 -2
  1288. package/json-schema/system/AppTranslationBundle.json +2 -2
  1289. package/json-schema/system/AuditEvent.json +2 -2
  1290. package/json-schema/system/AuditEventActor.json +2 -2
  1291. package/json-schema/system/AuditEventChange.json +2 -2
  1292. package/json-schema/system/AuditEventFilter.json +2 -2
  1293. package/json-schema/system/AuditEventSeverity.json +2 -2
  1294. package/json-schema/system/AuditEventTarget.json +2 -2
  1295. package/json-schema/system/AuditEventType.json +2 -2
  1296. package/json-schema/system/AuditFinding.json +2 -2
  1297. package/json-schema/system/AuditFindingSeverity.json +2 -2
  1298. package/json-schema/system/AuditFindingStatus.json +2 -2
  1299. package/json-schema/system/AuditLogConfig.json +2 -2
  1300. package/json-schema/system/AuditRetentionPolicy.json +2 -2
  1301. package/json-schema/system/AuditSchedule.json +2 -2
  1302. package/json-schema/system/AuditStorageConfig.json +2 -2
  1303. package/json-schema/system/AuthConfig.json +2 -2
  1304. package/json-schema/system/AuthPluginConfig.json +2 -2
  1305. package/json-schema/system/AuthProviderConfig.json +2 -2
  1306. package/json-schema/system/AwarenessEvent.json +2 -2
  1307. package/json-schema/system/AwarenessSession.json +2 -2
  1308. package/json-schema/system/AwarenessUpdate.json +2 -2
  1309. package/json-schema/system/AwarenessUserState.json +2 -2
  1310. package/json-schema/system/BackupRetention.json +2 -2
  1311. package/json-schema/system/BackupStrategy.json +2 -2
  1312. package/json-schema/system/BatchProgress.json +2 -2
  1313. package/json-schema/system/BucketConfig.json +2 -2
  1314. package/json-schema/system/CRDTMergeResult.json +2 -2
  1315. package/json-schema/system/CRDTState.json +2 -2
  1316. package/json-schema/system/CRDTType.json +2 -2
  1317. package/json-schema/system/CacheAvalanchePrevention.json +2 -2
  1318. package/json-schema/system/CacheConfig.json +2 -2
  1319. package/json-schema/system/CacheConsistency.json +2 -2
  1320. package/json-schema/system/CacheInvalidation.json +2 -2
  1321. package/json-schema/system/CacheStrategy.json +2 -2
  1322. package/json-schema/system/CacheTier.json +2 -2
  1323. package/json-schema/system/ChangeImpact.json +2 -2
  1324. package/json-schema/system/ChangePriority.json +2 -2
  1325. package/json-schema/system/ChangeRequest.json +2 -2
  1326. package/json-schema/system/ChangeSchema.json +2 -2
  1327. package/json-schema/system/ChangeStatus.json +2 -2
  1328. package/json-schema/system/ChangeType.json +2 -2
  1329. package/json-schema/system/CollaborationMode.json +2 -2
  1330. package/json-schema/system/CollaborationSession.json +2 -2
  1331. package/json-schema/system/CollaborationSessionConfig.json +2 -2
  1332. package/json-schema/system/CollaborativeCursor.json +2 -2
  1333. package/json-schema/system/ComplianceAuditRequirement.json +2 -2
  1334. package/json-schema/system/ComplianceConfig.json +2 -2
  1335. package/json-schema/system/ComplianceEncryptionRequirement.json +2 -2
  1336. package/json-schema/system/ComplianceFramework.json +2 -2
  1337. package/json-schema/system/ConsoleDestinationConfig.json +2 -2
  1338. package/json-schema/system/ConsumerConfig.json +2 -2
  1339. package/json-schema/system/CoreServiceName.json +2 -2
  1340. package/json-schema/system/CounterOperation.json +2 -2
  1341. package/json-schema/system/CoverageBreakdownEntry.json +2 -2
  1342. package/json-schema/system/CursorColorPreset.json +2 -2
  1343. package/json-schema/system/CursorSelection.json +2 -2
  1344. package/json-schema/system/CursorStyle.json +2 -2
  1345. package/json-schema/system/CursorUpdate.json +2 -2
  1346. package/json-schema/system/DataClassification.json +2 -2
  1347. package/json-schema/system/DataClassificationPolicy.json +2 -2
  1348. package/json-schema/system/DatabaseLevelIsolationStrategy.json +2 -2
  1349. package/json-schema/system/DatabaseProvider.json +2 -2
  1350. package/json-schema/system/DeadLetterQueue.json +2 -2
  1351. package/json-schema/system/DeleteObjectOperation.json +2 -2
  1352. package/json-schema/system/DeployBundle.json +2 -2
  1353. package/json-schema/system/DeployDiff.json +2 -2
  1354. package/json-schema/system/DeployManifest.json +2 -2
  1355. package/json-schema/system/DeployStatusEnum.json +2 -2
  1356. package/json-schema/system/DeployValidationIssue.json +2 -2
  1357. package/json-schema/system/DeployValidationResult.json +2 -2
  1358. package/json-schema/system/EmailAddressConfig.json +2 -2
  1359. package/json-schema/system/EmailAndPasswordConfig.json +2 -2
  1360. package/json-schema/system/EmailProvider.json +2 -2
  1361. package/json-schema/system/EmailServiceConfig.json +2 -2
  1362. package/json-schema/system/EmailTemplateDefinition.json +2 -2
  1363. package/json-schema/system/EmailTemplateDefinitionCategory.json +2 -2
  1364. package/json-schema/system/EmailTemplateDefinitionVariable.json +2 -2
  1365. package/json-schema/system/EmailVerificationConfig.json +2 -2
  1366. package/json-schema/system/EncryptionAlgorithm.json +2 -2
  1367. package/json-schema/system/EncryptionConfig.json +2 -2
  1368. package/json-schema/system/EnvironmentArtifact.json +2 -2
  1369. package/json-schema/system/EnvironmentArtifactChecksum.json +2 -2
  1370. package/json-schema/system/EnvironmentArtifactFunction.json +2 -2
  1371. package/json-schema/system/EnvironmentArtifactFunctionLanguageEnum.json +2 -2
  1372. package/json-schema/system/EnvironmentArtifactHashAlgorithmEnum.json +2 -2
  1373. package/json-schema/system/EnvironmentArtifactManifest.json +2 -2
  1374. package/json-schema/system/EnvironmentArtifactMetadata.json +2 -2
  1375. package/json-schema/system/EnvironmentArtifactPayloadRef.json +2 -2
  1376. package/json-schema/system/EnvironmentArtifactRequirement.json +2 -2
  1377. package/json-schema/system/ExecuteSqlOperation.json +2 -2
  1378. package/json-schema/system/ExtendedLogLevel.json +2 -2
  1379. package/json-schema/system/ExternalServiceDestinationConfig.json +2 -2
  1380. package/json-schema/system/FacetConfig.json +2 -2
  1381. package/json-schema/system/FailoverConfig.json +2 -2
  1382. package/json-schema/system/FailoverMode.json +2 -2
  1383. package/json-schema/system/Feature.json +2 -2
  1384. package/json-schema/system/FieldEncryption.json +2 -2
  1385. package/json-schema/system/FieldTranslation.json +2 -2
  1386. package/json-schema/system/FileDestinationConfig.json +2 -2
  1387. package/json-schema/system/FileMetadata.json +2 -2
  1388. package/json-schema/system/GCounter.json +2 -2
  1389. package/json-schema/system/GDPRConfig.json +2 -2
  1390. package/json-schema/system/HIPAAConfig.json +2 -2
  1391. package/json-schema/system/HistogramBucketConfig.json +2 -2
  1392. package/json-schema/system/HttpDestinationConfig.json +2 -2
  1393. package/json-schema/system/HttpServerConfig.json +2 -2
  1394. package/json-schema/system/Incident.json +2 -2
  1395. package/json-schema/system/IncidentCategory.json +2 -2
  1396. package/json-schema/system/IncidentNotificationMatrix.json +2 -2
  1397. package/json-schema/system/IncidentNotificationRule.json +2 -2
  1398. package/json-schema/system/IncidentResponsePhase.json +2 -2
  1399. package/json-schema/system/IncidentResponsePolicy.json +2 -2
  1400. package/json-schema/system/IncidentSeverity.json +2 -2
  1401. package/json-schema/system/IncidentStatus.json +2 -2
  1402. package/json-schema/system/IntervalSchedule.json +2 -2
  1403. package/json-schema/system/JobExecution.json +2 -2
  1404. package/json-schema/system/JobExecutionStatus.json +2 -2
  1405. package/json-schema/system/KernelServiceMap.json +2 -2
  1406. package/json-schema/system/KeyManagementProvider.json +2 -2
  1407. package/json-schema/system/KeyRotationPolicy.json +2 -2
  1408. package/json-schema/system/LWWRegister.json +2 -2
  1409. package/json-schema/system/LevelIsolationStrategySchema.json +2 -2
  1410. package/json-schema/system/License.json +2 -2
  1411. package/json-schema/system/LicenseMetricType.json +2 -2
  1412. package/json-schema/system/LifecycleAction.json +2 -2
  1413. package/json-schema/system/LifecyclePolicyConfig.json +2 -2
  1414. package/json-schema/system/LifecyclePolicyRule.json +2 -2
  1415. package/json-schema/system/Locale.json +2 -2
  1416. package/json-schema/system/LogDestination.json +2 -2
  1417. package/json-schema/system/LogDestinationType.json +2 -2
  1418. package/json-schema/system/LogEnrichmentConfig.json +2 -2
  1419. package/json-schema/system/LogEntry.json +2 -2
  1420. package/json-schema/system/LogFormat.json +2 -2
  1421. package/json-schema/system/LogLevel.json +2 -2
  1422. package/json-schema/system/LoggerConfig.json +2 -2
  1423. package/json-schema/system/LoggingConfig.json +2 -2
  1424. package/json-schema/system/MaskingConfig.json +2 -2
  1425. package/json-schema/system/MaskingRule.json +2 -2
  1426. package/json-schema/system/MaskingStrategy.json +2 -2
  1427. package/json-schema/system/MaskingVisibilityRule.json +2 -2
  1428. package/json-schema/system/MessageFormat.json +2 -2
  1429. package/json-schema/system/MessageQueueConfig.json +2 -2
  1430. package/json-schema/system/MessageQueueProvider.json +2 -2
  1431. package/json-schema/system/MetadataCollectionInfo.json +2 -2
  1432. package/json-schema/system/MetadataDiffResult.json +2 -2
  1433. package/json-schema/system/MetadataExportOptions.json +2 -2
  1434. package/json-schema/system/MetadataFallbackStrategy.json +2 -2
  1435. package/json-schema/system/MetadataFormat.json +2 -2
  1436. package/json-schema/system/MetadataHistoryQueryOptions.json +2 -2
  1437. package/json-schema/system/MetadataHistoryQueryResult.json +2 -2
  1438. package/json-schema/system/MetadataHistoryRecord.json +2 -2
  1439. package/json-schema/system/MetadataHistoryRetentionPolicy.json +2 -2
  1440. package/json-schema/system/MetadataImportOptions.json +2 -2
  1441. package/json-schema/system/MetadataLoadOptions.json +2 -2
  1442. package/json-schema/system/MetadataLoadResult.json +2 -2
  1443. package/json-schema/system/MetadataLoaderContract.json +2 -2
  1444. package/json-schema/system/MetadataManagerConfig.json +2 -2
  1445. package/json-schema/system/MetadataRecord.json +2 -2
  1446. package/json-schema/system/MetadataSaveOptions.json +2 -2
  1447. package/json-schema/system/MetadataSaveResult.json +2 -2
  1448. package/json-schema/system/MetadataScope.json +2 -2
  1449. package/json-schema/system/MetadataSource.json +2 -2
  1450. package/json-schema/system/MetadataState.json +2 -2
  1451. package/json-schema/system/MetadataStats.json +2 -2
  1452. package/json-schema/system/MetadataWatchEvent.json +2 -2
  1453. package/json-schema/system/MetricAggregationConfig.json +2 -2
  1454. package/json-schema/system/MetricAggregationType.json +2 -2
  1455. package/json-schema/system/MetricDataPoint.json +2 -2
  1456. package/json-schema/system/MetricDefinition.json +2 -2
  1457. package/json-schema/system/MetricExportConfig.json +2 -2
  1458. package/json-schema/system/MetricLabels.json +2 -2
  1459. package/json-schema/system/MetricType.json +2 -2
  1460. package/json-schema/system/MetricUnit.json +2 -2
  1461. package/json-schema/system/MiddlewareConfig.json +2 -2
  1462. package/json-schema/system/MiddlewareType.json +2 -2
  1463. package/json-schema/system/MigrationDependency.json +2 -2
  1464. package/json-schema/system/MigrationPlan.json +2 -2
  1465. package/json-schema/system/MigrationStatement.json +2 -2
  1466. package/json-schema/system/ModifyFieldOperation.json +2 -2
  1467. package/json-schema/system/MultipartUploadConfig.json +2 -2
  1468. package/json-schema/system/MutualTLSConfig.json +2 -2
  1469. package/json-schema/system/NotificationChannel.json +2 -2
  1470. package/json-schema/system/ORSet.json +2 -2
  1471. package/json-schema/system/ORSetElement.json +2 -2
  1472. package/json-schema/system/OTComponent.json +2 -2
  1473. package/json-schema/system/OTOperation.json +2 -2
  1474. package/json-schema/system/OTOperationType.json +2 -2
  1475. package/json-schema/system/OTTransformResult.json +2 -2
  1476. package/json-schema/system/ObjectMetadata.json +2 -2
  1477. package/json-schema/system/ObjectStorageConfig.json +2 -2
  1478. package/json-schema/system/ObjectTranslationData.json +2 -2
  1479. package/json-schema/system/ObjectTranslationNode.json +2 -2
  1480. package/json-schema/system/OidcProviderConfig.json +2 -2
  1481. package/json-schema/system/OidcProvidersConfig.json +2 -2
  1482. package/json-schema/system/OnceSchedule.json +2 -2
  1483. package/json-schema/system/OpenTelemetryCompatibility.json +2 -2
  1484. package/json-schema/system/OtelExporterType.json +2 -2
  1485. package/json-schema/system/PCIDSSConfig.json +2 -2
  1486. package/json-schema/system/PNCounter.json +2 -2
  1487. package/json-schema/system/PackagePublishResult.json +2 -2
  1488. package/json-schema/system/Plan.json +2 -2
  1489. package/json-schema/system/PresignedUrlConfig.json +2 -2
  1490. package/json-schema/system/ProvisioningStep.json +2 -2
  1491. package/json-schema/system/QueueConfig.json +2 -2
  1492. package/json-schema/system/QuotaEnforcementResult.json +2 -2
  1493. package/json-schema/system/RPO.json +2 -2
  1494. package/json-schema/system/RTO.json +2 -2
  1495. package/json-schema/system/RegistryConfig.json +2 -2
  1496. package/json-schema/system/RegistrySyncPolicy.json +2 -2
  1497. package/json-schema/system/RegistryUpstream.json +2 -2
  1498. package/json-schema/system/RemoveFieldOperation.json +2 -2
  1499. package/json-schema/system/RenameObjectOperation.json +2 -2
  1500. package/json-schema/system/ResolvedSettingValue.json +2 -2
  1501. package/json-schema/system/RetryPolicy.json +2 -2
  1502. package/json-schema/system/RollbackPlan.json +2 -2
  1503. package/json-schema/system/RouteHandlerMetadata.json +2 -2
  1504. package/json-schema/system/RowLevelIsolationStrategy.json +2 -2
  1505. package/json-schema/system/SamplingDecision.json +2 -2
  1506. package/json-schema/system/SamplingStrategyType.json +2 -2
  1507. package/json-schema/system/SearchConfig.json +2 -2
  1508. package/json-schema/system/SearchIndexConfig.json +2 -2
  1509. package/json-schema/system/SearchProvider.json +2 -2
  1510. package/json-schema/system/SecurityContextConfig.json +2 -2
  1511. package/json-schema/system/SecurityEventCorrelation.json +2 -2
  1512. package/json-schema/system/ServerCapabilities.json +2 -2
  1513. package/json-schema/system/ServerEvent.json +2 -2
  1514. package/json-schema/system/ServerEventType.json +2 -2
  1515. package/json-schema/system/ServerStatus.json +2 -2
  1516. package/json-schema/system/ServiceConfig.json +2 -2
  1517. package/json-schema/system/ServiceCriticality.json +2 -2
  1518. package/json-schema/system/ServiceLevelObjective.json +2 -2
  1519. package/json-schema/system/ServiceStatus.json +2 -2
  1520. package/json-schema/system/SettingsActionResult.json +2 -2
  1521. package/json-schema/system/SettingsChangeEvent.json +2 -2
  1522. package/json-schema/system/SocialProviderConfig.json +2 -2
  1523. package/json-schema/system/Span.json +2 -2
  1524. package/json-schema/system/SpanAttributeValue.json +2 -2
  1525. package/json-schema/system/SpanAttributes.json +2 -2
  1526. package/json-schema/system/SpanEvent.json +2 -2
  1527. package/json-schema/system/SpanKind.json +2 -2
  1528. package/json-schema/system/SpanLink.json +2 -2
  1529. package/json-schema/system/SpanStatus.json +2 -2
  1530. package/json-schema/system/SpecifierHandler.json +2 -2
  1531. package/json-schema/system/SpecifierOption.json +2 -2
  1532. package/json-schema/system/SpecifierScope.json +2 -2
  1533. package/json-schema/system/SpecifierType.json +2 -2
  1534. package/json-schema/system/StorageAcl.json +2 -2
  1535. package/json-schema/system/StorageClass.json +2 -2
  1536. package/json-schema/system/StorageConnection.json +2 -2
  1537. package/json-schema/system/StorageProvider.json +2 -2
  1538. package/json-schema/system/StorageScope.json +2 -2
  1539. package/json-schema/system/StructuredLogEntry.json +2 -2
  1540. package/json-schema/system/SupplierAssessmentStatus.json +2 -2
  1541. package/json-schema/system/SupplierRiskLevel.json +2 -2
  1542. package/json-schema/system/SupplierSecurityAssessment.json +2 -2
  1543. package/json-schema/system/SupplierSecurityPolicy.json +2 -2
  1544. package/json-schema/system/SupplierSecurityRequirement.json +2 -2
  1545. package/json-schema/system/Task.json +2 -2
  1546. package/json-schema/system/TaskExecutionResult.json +2 -2
  1547. package/json-schema/system/TaskPriority.json +2 -2
  1548. package/json-schema/system/TaskRetryPolicy.json +2 -2
  1549. package/json-schema/system/TaskStatus.json +2 -2
  1550. package/json-schema/system/Tenant.json +2 -2
  1551. package/json-schema/system/TenantConnectionConfig.json +2 -2
  1552. package/json-schema/system/TenantIsolationConfig.json +2 -2
  1553. package/json-schema/system/TenantIsolationLevel.json +2 -2
  1554. package/json-schema/system/TenantPlan.json +2 -2
  1555. package/json-schema/system/TenantProvisioningRequest.json +2 -2
  1556. package/json-schema/system/TenantProvisioningResult.json +2 -2
  1557. package/json-schema/system/TenantProvisioningStatusEnum.json +2 -2
  1558. package/json-schema/system/TenantQuota.json +2 -2
  1559. package/json-schema/system/TenantRegion.json +2 -2
  1560. package/json-schema/system/TenantSecurityPolicy.json +2 -2
  1561. package/json-schema/system/TenantUsage.json +2 -2
  1562. package/json-schema/system/TextCRDTOperation.json +2 -2
  1563. package/json-schema/system/TextCRDTState.json +2 -2
  1564. package/json-schema/system/TimeSeries.json +2 -2
  1565. package/json-schema/system/TimeSeriesDataPoint.json +2 -2
  1566. package/json-schema/system/TopicConfig.json +2 -2
  1567. package/json-schema/system/TraceContext.json +2 -2
  1568. package/json-schema/system/TraceContextPropagation.json +2 -2
  1569. package/json-schema/system/TraceFlags.json +2 -2
  1570. package/json-schema/system/TracePropagationFormat.json +2 -2
  1571. package/json-schema/system/TraceState.json +2 -2
  1572. package/json-schema/system/TrainingCategory.json +2 -2
  1573. package/json-schema/system/TrainingCompletionStatus.json +2 -2
  1574. package/json-schema/system/TrainingCourse.json +2 -2
  1575. package/json-schema/system/TrainingPlan.json +2 -2
  1576. package/json-schema/system/TrainingRecord.json +2 -2
  1577. package/json-schema/system/TranslationBundle.json +2 -2
  1578. package/json-schema/system/TranslationConfig.json +2 -2
  1579. package/json-schema/system/TranslationCoverageResult.json +2 -2
  1580. package/json-schema/system/TranslationData.json +2 -2
  1581. package/json-schema/system/TranslationDiffItem.json +2 -2
  1582. package/json-schema/system/TranslationDiffStatus.json +2 -2
  1583. package/json-schema/system/TranslationFileOrganization.json +2 -2
  1584. package/json-schema/system/UserActivityStatus.json +2 -2
  1585. package/json-schema/system/VectorClock.json +2 -2
  1586. package/json-schema/system/WorkerStats.json +2 -2
  1587. package/json-schema/ui/AIChatWindowProps.json +2 -2
  1588. package/json-schema/ui/ActionParam.json +4 -2
  1589. package/json-schema/ui/ActionType.json +2 -2
  1590. package/json-schema/ui/AddRecordConfig.json +2 -2
  1591. package/json-schema/ui/Animation.json +2 -2
  1592. package/json-schema/ui/AnimationTrigger.json +2 -2
  1593. package/json-schema/ui/AppBranding.json +2 -2
  1594. package/json-schema/ui/AppearanceConfig.json +2 -2
  1595. package/json-schema/ui/AriaProps.json +2 -2
  1596. package/json-schema/ui/BlankPageLayout.json +2 -2
  1597. package/json-schema/ui/BlankPageLayoutItem.json +2 -2
  1598. package/json-schema/ui/BorderRadius.json +2 -2
  1599. package/json-schema/ui/BreakpointColumnMap.json +2 -2
  1600. package/json-schema/ui/BreakpointName.json +2 -2
  1601. package/json-schema/ui/BreakpointOrderMap.json +2 -2
  1602. package/json-schema/ui/Breakpoints.json +2 -2
  1603. package/json-schema/ui/CalendarConfig.json +2 -2
  1604. package/json-schema/ui/ChartAnnotation.json +2 -2
  1605. package/json-schema/ui/ChartAxis.json +2 -2
  1606. package/json-schema/ui/ChartConfig.json +2 -2
  1607. package/json-schema/ui/ChartInteraction.json +2 -2
  1608. package/json-schema/ui/ChartSeries.json +2 -2
  1609. package/json-schema/ui/ChartType.json +2 -2
  1610. package/json-schema/ui/ColorPalette.json +2 -2
  1611. package/json-schema/ui/ColumnSummary.json +2 -2
  1612. package/json-schema/ui/ComponentAnimation.json +2 -2
  1613. package/json-schema/ui/ConflictResolution.json +2 -2
  1614. package/json-schema/ui/Dashboard.json +2 -2
  1615. package/json-schema/ui/DashboardHeader.json +2 -2
  1616. package/json-schema/ui/DashboardHeaderAction.json +2 -2
  1617. package/json-schema/ui/DashboardWidget.json +2 -2
  1618. package/json-schema/ui/DateFormat.json +2 -2
  1619. package/json-schema/ui/DensityMode.json +2 -2
  1620. package/json-schema/ui/DndConfig.json +2 -2
  1621. package/json-schema/ui/DragConstraint.json +2 -2
  1622. package/json-schema/ui/DragHandle.json +2 -2
  1623. package/json-schema/ui/DragItem.json +2 -2
  1624. package/json-schema/ui/DropEffect.json +2 -2
  1625. package/json-schema/ui/DropZone.json +2 -2
  1626. package/json-schema/ui/EasingFunction.json +2 -2
  1627. package/json-schema/ui/ElementButtonProps.json +2 -2
  1628. package/json-schema/ui/ElementDataSource.json +2 -2
  1629. package/json-schema/ui/ElementFilterProps.json +2 -2
  1630. package/json-schema/ui/ElementImageProps.json +2 -2
  1631. package/json-schema/ui/ElementNumberProps.json +2 -2
  1632. package/json-schema/ui/ElementRecordPickerProps.json +2 -2
  1633. package/json-schema/ui/ElementTextProps.json +2 -2
  1634. package/json-schema/ui/EmbedConfig.json +2 -2
  1635. package/json-schema/ui/EvictionPolicy.json +2 -2
  1636. package/json-schema/ui/FocusManagement.json +2 -2
  1637. package/json-schema/ui/FocusTrapConfig.json +2 -2
  1638. package/json-schema/ui/GalleryConfig.json +2 -2
  1639. package/json-schema/ui/GanttConfig.json +2 -2
  1640. package/json-schema/ui/GestureConfig.json +2 -2
  1641. package/json-schema/ui/GestureType.json +2 -2
  1642. package/json-schema/ui/GlobalFilter.json +2 -2
  1643. package/json-schema/ui/GlobalFilterOptionsFrom.json +2 -2
  1644. package/json-schema/ui/GroupingConfig.json +2 -2
  1645. package/json-schema/ui/GroupingField.json +2 -2
  1646. package/json-schema/ui/HttpMethod.json +2 -2
  1647. package/json-schema/ui/HttpRequest.json +2 -2
  1648. package/json-schema/ui/I18nLabel.json +2 -2
  1649. package/json-schema/ui/I18nObject.json +2 -2
  1650. package/json-schema/ui/InterfacePageConfig.json +2 -2
  1651. package/json-schema/ui/JoinedReportBlock.json +2 -2
  1652. package/json-schema/ui/KanbanConfig.json +2 -2
  1653. package/json-schema/ui/KeyboardNavigationConfig.json +2 -2
  1654. package/json-schema/ui/KeyboardShortcut.json +2 -2
  1655. package/json-schema/ui/ListChartConfig.json +2 -2
  1656. package/json-schema/ui/ListColumn.json +2 -2
  1657. package/json-schema/ui/LocaleConfig.json +2 -2
  1658. package/json-schema/ui/LongPressGestureConfig.json +2 -2
  1659. package/json-schema/ui/MotionConfig.json +2 -2
  1660. package/json-schema/ui/NavigationConfig.json +2 -2
  1661. package/json-schema/ui/NavigationMode.json +2 -2
  1662. package/json-schema/ui/Notification.json +2 -2
  1663. package/json-schema/ui/NotificationAction.json +2 -2
  1664. package/json-schema/ui/NotificationConfig.json +2 -2
  1665. package/json-schema/ui/NotificationPosition.json +2 -2
  1666. package/json-schema/ui/NotificationSeverity.json +2 -2
  1667. package/json-schema/ui/NotificationType.json +2 -2
  1668. package/json-schema/ui/NumberFormat.json +2 -2
  1669. package/json-schema/ui/OfflineCacheConfig.json +2 -2
  1670. package/json-schema/ui/OfflineConfig.json +2 -2
  1671. package/json-schema/ui/OfflineStrategy.json +2 -2
  1672. package/json-schema/ui/PageAccordionProps.json +2 -2
  1673. package/json-schema/ui/PageCardProps.json +2 -2
  1674. package/json-schema/ui/PageComponentType.json +2 -2
  1675. package/json-schema/ui/PageHeaderProps.json +2 -2
  1676. package/json-schema/ui/PageTabsProps.json +2 -2
  1677. package/json-schema/ui/PageTransition.json +2 -2
  1678. package/json-schema/ui/PageType.json +2 -2
  1679. package/json-schema/ui/PageVariable.json +2 -2
  1680. package/json-schema/ui/PaginationConfig.json +2 -2
  1681. package/json-schema/ui/PerformanceConfig.json +2 -2
  1682. package/json-schema/ui/PersistStorage.json +2 -2
  1683. package/json-schema/ui/PinchGestureConfig.json +2 -2
  1684. package/json-schema/ui/PluralRule.json +2 -2
  1685. package/json-schema/ui/Portal.json +2 -2
  1686. package/json-schema/ui/PortalActionNavItem.json +2 -2
  1687. package/json-schema/ui/PortalAnonymousEntry.json +2 -2
  1688. package/json-schema/ui/PortalAnonymousRoute.json +2 -2
  1689. package/json-schema/ui/PortalAuthMode.json +2 -2
  1690. package/json-schema/ui/PortalDashboardNavItem.json +2 -2
  1691. package/json-schema/ui/PortalLayout.json +2 -2
  1692. package/json-schema/ui/PortalNavItem.json +2 -2
  1693. package/json-schema/ui/PortalRateLimit.json +2 -2
  1694. package/json-schema/ui/PortalSeo.json +2 -2
  1695. package/json-schema/ui/PortalTheme.json +2 -2
  1696. package/json-schema/ui/PortalUrlNavItem.json +2 -2
  1697. package/json-schema/ui/PortalViewNavItem.json +2 -2
  1698. package/json-schema/ui/RecordActivityProps.json +2 -2
  1699. package/json-schema/ui/RecordChatterProps.json +2 -2
  1700. package/json-schema/ui/RecordDetailsProps.json +2 -2
  1701. package/json-schema/ui/RecordHighlightsField.json +2 -2
  1702. package/json-schema/ui/RecordHighlightsProps.json +2 -2
  1703. package/json-schema/ui/RecordPathProps.json +2 -2
  1704. package/json-schema/ui/RecordRelatedListProps.json +2 -2
  1705. package/json-schema/ui/RecordReviewConfig.json +2 -2
  1706. package/json-schema/ui/Report.json +2 -2
  1707. package/json-schema/ui/ReportChart.json +2 -2
  1708. package/json-schema/ui/ReportColumn.json +2 -2
  1709. package/json-schema/ui/ReportGrouping.json +2 -2
  1710. package/json-schema/ui/ReportType.json +2 -2
  1711. package/json-schema/ui/ResponsiveConfig.json +2 -2
  1712. package/json-schema/ui/RowColorConfig.json +2 -2
  1713. package/json-schema/ui/RowHeight.json +2 -2
  1714. package/json-schema/ui/SelectionConfig.json +2 -2
  1715. package/json-schema/ui/Shadow.json +2 -2
  1716. package/json-schema/ui/SharingConfig.json +2 -2
  1717. package/json-schema/ui/Spacing.json +2 -2
  1718. package/json-schema/ui/SwipeDirection.json +2 -2
  1719. package/json-schema/ui/SwipeGestureConfig.json +2 -2
  1720. package/json-schema/ui/SyncConfig.json +2 -2
  1721. package/json-schema/ui/Theme.json +2 -2
  1722. package/json-schema/ui/ThemeMode.json +2 -2
  1723. package/json-schema/ui/TimelineConfig.json +2 -2
  1724. package/json-schema/ui/TouchInteraction.json +2 -2
  1725. package/json-schema/ui/TouchTargetConfig.json +2 -2
  1726. package/json-schema/ui/TransitionConfig.json +2 -2
  1727. package/json-schema/ui/TransitionPreset.json +2 -2
  1728. package/json-schema/ui/Typography.json +2 -2
  1729. package/json-schema/ui/UserActionsConfig.json +2 -2
  1730. package/json-schema/ui/ViewData.json +28 -2
  1731. package/json-schema/ui/ViewFilterRule.json +2 -2
  1732. package/json-schema/ui/ViewSharing.json +2 -2
  1733. package/json-schema/ui/ViewTab.json +2 -2
  1734. package/json-schema/ui/VisualizationType.json +2 -2
  1735. package/json-schema/ui/WcagContrastLevel.json +2 -2
  1736. package/json-schema/ui/WidgetActionType.json +2 -2
  1737. package/json-schema/ui/WidgetColorVariant.json +2 -2
  1738. package/json-schema/ui/WidgetEvent.json +2 -2
  1739. package/json-schema/ui/WidgetLifecycle.json +2 -2
  1740. package/json-schema/ui/WidgetManifest.json +2 -2
  1741. package/json-schema/ui/WidgetMeasure.json +2 -2
  1742. package/json-schema/ui/WidgetProperty.json +2 -2
  1743. package/json-schema/ui/WidgetSource.json +2 -2
  1744. package/json-schema/ui/ZIndex.json +2 -2
  1745. package/package.json +1 -1
  1746. package/prompts/architecture.md +6 -6
  1747. package/src/api/protocol.zod.ts +20 -0
  1748. package/src/automation/workflow.zod.ts +3 -0
  1749. package/src/cloud/marketplace.zod.ts +10 -0
  1750. package/src/cloud/package.zod.ts +91 -0
  1751. package/src/data/field.zod.ts +4 -1
  1752. package/src/kernel/execution-context.zod.ts +16 -0
  1753. package/src/kernel/metadata-plugin.zod.ts +15 -15
  1754. package/src/ui/app.zod.ts +28 -1
  1755. package/src/ui/view.zod.ts +122 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/lazy-schema.ts","../../src/shared/identifiers.zod.ts","../../src/security/rls.zod.ts","../../src/security/permission.zod.ts","../../src/shared/expression.zod.ts","../../src/security/sharing.zod.ts","../../src/security/territory.zod.ts","../../src/security/policy.zod.ts"],"names":["z"],"mappings":"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","file":"index.mjs","sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { z } from 'zod';\n\n/**\n * Wrap a Zod schema constructor so its body is only evaluated on first use.\n *\n * Why: building Zod schemas at module-load creates millions of closures that\n * dominate dev-server RSS even though most schemas are never parsed in a\n * given session. Wrapping the constructor in a Proxy defers allocation until\n * the first property access (`.parse`, `.shape`, `._def`, etc.) and reuses\n * a single cached instance thereafter.\n *\n * Type system: the returned Proxy is structurally indistinguishable from the\n * underlying ZodType, so `z.infer<typeof X>` and `.parse()` callers do not\n * need to change.\n *\n * Emergency rollback: set `OS_EAGER_SCHEMAS=1` to evaluate the\n * factory immediately and bypass the Proxy entirely.\n */\nexport function lazySchema<T extends z.ZodTypeAny>(factory: () => T): T {\n if (typeof process !== 'undefined' && process.env?.OS_EAGER_SCHEMAS === '1') {\n return factory();\n }\n\n let cached: T | undefined;\n const resolve = (): T => {\n if (cached === undefined) cached = factory();\n return cached;\n };\n\n const target = function lazyZod() {} as unknown as T;\n\n const proxy = new Proxy(target as object, {\n get(_t, prop) {\n const real = resolve() as unknown as Record<PropertyKey, unknown>;\n const value = real[prop];\n if (typeof value === 'function') {\n return (value as (...a: unknown[]) => unknown).bind(real);\n }\n return value;\n },\n set(_t, prop, value) {\n const real = resolve() as unknown as Record<PropertyKey, unknown>;\n real[prop] = value;\n return true;\n },\n has(_t, prop) {\n return prop in (resolve() as object);\n },\n ownKeys() {\n return Reflect.ownKeys(resolve() as object);\n },\n getOwnPropertyDescriptor(_t, prop) {\n return Reflect.getOwnPropertyDescriptor(resolve() as object, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(resolve() as object);\n },\n });\n\n return proxy as T;\n}\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * System Identifier Schema\n * \n * Universal naming convention for all machine identifiers (API Names) in ObjectStack.\n * Enforces lowercase with underscores or dots to ensure:\n * - Cross-platform compatibility (case-insensitive filesystems)\n * - URL-friendliness (no encoding needed)\n * - Database consistency (no collation issues)\n * - Security (no case-sensitivity bugs in permission checks)\n * \n * **Applies to all metadata that acts as a machine identifier:**\n * - Object names (tables/collections)\n * - Field names\n * - Role names\n * - Permission set names\n * - Action/trigger names\n * - Event keys\n * - App IDs\n * - Menu/page IDs\n * - Select option values\n * - Workflow names\n * - Webhook names\n * \n * **Naming Convention Summary:**\n * | Type | Pattern | Example |\n * |------|---------|---------|\n * | Machine ID | snake_case | `crm_account`, `btn_submit`, `role_admin` |\n * | Event keys | dot.notation | `user.login`, `order.created` |\n * | Labels | Any case | `Client Account`, `Submit Form` |\n * \n * @example Valid identifiers\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * - 'order.created' (for events)\n * - 'api_v2_endpoint'\n * \n * @example Invalid identifiers (will be rejected)\n * - 'Account' (uppercase)\n * - 'CrmAccount' (camelCase)\n * - 'crm-account' (kebab-case - use underscore instead)\n * - 'user profile' (spaces)\n */\nimport { lazySchema } from './lazy-schema';\nexport const SystemIdentifierSchema = lazySchema(() => z\n .string()\n .min(2, { message: 'System identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., \"user_profile\" or \"order.created\")',\n })\n .describe('System identifier (lowercase with underscores or dots)'));\n\n/**\n * Strict Snake Case Identifier\n * \n * More restrictive than SystemIdentifierSchema - only allows underscores (no dots).\n * Use this for identifiers that should NOT contain dots (e.g., database table/column names).\n * \n * @example Valid\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * \n * @example Invalid\n * - 'user.profile' (dots not allowed)\n * - 'UserProfile' (uppercase)\n */\nexport const SnakeCaseIdentifierSchema = lazySchema(() => z\n .string()\n .min(2, { message: 'Identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_]*$/, {\n message:\n 'Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., \"user_profile\")',\n })\n .describe('Snake case identifier (lowercase with underscores only)'));\n\n/**\n * Event Name Identifier\n * \n * Specialized identifier for event names that encourages dot notation.\n * Used in event-driven systems, message queues, and webhooks.\n * \n * Pattern: `namespace.action` or `entity.event_type`\n * \n * @example Valid\n * - 'user.created'\n * - 'order.paid'\n * - 'user.login_success'\n * - 'alarm.high_cpu'\n * \n * @example Invalid\n * - 'UserCreated' (camelCase)\n * - 'user_created' (should use dots for namespacing)\n */\nexport const EventNameSchema = lazySchema(() => z\n .string()\n .min(3, { message: 'Event name must be at least 3 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'Event name must be lowercase with dots for namespacing (e.g., \"user.created\", \"order.paid\")',\n })\n .describe('Event name (lowercase with dot notation for namespacing)'));\n\n/**\n * Type Exports\n */\nexport type SystemIdentifier = z.infer<typeof SystemIdentifierSchema>;\nexport type SnakeCaseIdentifier = z.infer<typeof SnakeCaseIdentifierSchema>;\nexport type EventName = z.infer<typeof EventNameSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * # Row-Level Security (RLS) Protocol\n * \n * Implements fine-grained record-level access control inspired by PostgreSQL RLS\n * and Salesforce Criteria-Based Sharing Rules.\n * \n * ## Overview\n * \n * Row-Level Security (RLS) allows you to control which rows users can access\n * in database tables based on their identity and role. Unlike object-level\n * permissions (CRUD), RLS provides record-level filtering.\n * \n * ## Use Cases\n * \n * 1. **Multi-Tenant Data Isolation**\n * - Users only see records from their organization\n * - `using: \"organization_id = current_user.organization_id\"`\n * \n * 2. **Ownership-Based Access**\n * - Users only see records they own\n * - `using: \"owner_id = current_user.id\"`\n * \n * 3. **Department-Based Access**\n * - Users only see records from their department\n * - `using: \"department = current_user.department\"`\n * \n * 4. **Regional Access Control**\n * - Sales reps only see accounts in their territory\n * - `using: \"region IN (current_user.assigned_regions)\"`\n * \n * 5. **Time-Based Access**\n * - Users can only access active records\n * - `using: \"status = 'active' AND expiry_date > NOW()\"`\n * \n * ## PostgreSQL RLS Comparison\n * \n * PostgreSQL RLS Example:\n * ```sql\n * CREATE POLICY tenant_isolation ON accounts\n * FOR SELECT\n * USING (tenant_id = current_setting('app.current_tenant_id')::uuid);\n * \n * CREATE POLICY account_insert ON accounts\n * FOR INSERT\n * WITH CHECK (tenant_id = current_setting('app.current_tenant_id')::uuid);\n * ```\n * \n * ObjectStack RLS Equivalent:\n * ```typescript\n * {\n * name: 'tenant_isolation',\n * object: 'account',\n * operation: 'select',\n * using: 'organization_id = current_user.organization_id'\n * }\n * ```\n * \n * ## Salesforce Sharing Rules Comparison\n * \n * Salesforce uses \"Sharing Rules\" and \"Role Hierarchy\" for record-level access.\n * ObjectStack RLS provides similar functionality with more flexibility.\n * \n * Salesforce:\n * - Criteria-Based Sharing: Share records matching criteria with users/roles\n * - Owner-Based Sharing: Share records based on owner's role\n * - Manual Sharing: Individual record sharing\n * \n * ObjectStack RLS:\n * - More flexible formula-based conditions\n * - Direct SQL-like syntax\n * - Supports complex logic with AND/OR/NOT\n * \n * ## Best Practices\n * \n * 1. **Always Define SELECT Policy**: Control what users can view\n * 2. **Define INSERT/UPDATE CHECK Policies**: Prevent data leakage\n * 3. **Use Role-Based Policies**: Apply different rules to different roles\n * 4. **Test Thoroughly**: RLS can have complex interactions\n * 5. **Monitor Performance**: Complex RLS policies can impact query performance\n * \n * ## Security Considerations\n * \n * 1. **Defense in Depth**: RLS is one layer; use with object permissions\n * 2. **Default Deny**: If no policy matches, access is denied\n * 3. **Policy Precedence**: More permissive policy wins (OR logic)\n * 4. **Context Variables**: Ensure current_user context is always set\n * \n * @see https://www.postgresql.org/docs/current/ddl-rowsecurity.html\n * @see https://help.salesforce.com/s/articleView?id=sf.security_sharing_rules.htm\n */\n\n/**\n * RLS Operation Enum\n * Specifies which database operation this policy applies to.\n * \n * - **select**: Controls which rows can be read (SELECT queries)\n * - **insert**: Controls which rows can be inserted (INSERT statements)\n * - **update**: Controls which rows can be updated (UPDATE statements)\n * - **delete**: Controls which rows can be deleted (DELETE statements)\n * - **all**: Shorthand for all operations (equivalent to defining 4 separate policies)\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const RLSOperation = z.enum(['select', 'insert', 'update', 'delete', 'all']);\n\nexport type RLSOperation = z.infer<typeof RLSOperation>;\n\n/**\n * Row-Level Security Policy Schema\n * \n * Defines a single RLS policy that filters records based on conditions.\n * Multiple policies can be defined for the same object, and they are\n * combined with OR logic (union of results).\n * \n * @example Multi-Tenant Isolation\n * ```typescript\n * {\n * name: 'tenant_isolation',\n * label: 'Multi-Tenant Data Isolation',\n * object: 'account',\n * operation: 'select',\n * using: 'organization_id = current_user.organization_id',\n * enabled: true\n * }\n * ```\n * \n * @example Owner-Based Access\n * ```typescript\n * {\n * name: 'owner_access',\n * label: 'Users Can View Their Own Records',\n * object: 'opportunity',\n * operation: 'select',\n * using: 'owner_id = current_user.id',\n * enabled: true\n * }\n * ```\n * \n * @example Manager Can View Team Records\n * ```typescript\n * {\n * name: 'manager_team_access',\n * label: 'Managers Can View Team Records',\n * object: 'task',\n * operation: 'select',\n * using: 'assigned_to_id IN (SELECT id FROM users WHERE manager_id = current_user.id)',\n * roles: ['manager', 'director'],\n * enabled: true\n * }\n * ```\n * \n * @example Prevent Cross-Tenant Data Insertion\n * ```typescript\n * {\n * name: 'tenant_insert_check',\n * label: 'Prevent Cross-Tenant Data Creation',\n * object: 'account',\n * operation: 'insert',\n * check: 'organization_id = current_user.organization_id',\n * enabled: true\n * }\n * ```\n * \n * @example Regional Sales Access\n * ```typescript\n * {\n * name: 'regional_sales_access',\n * label: 'Sales Reps Access Regional Accounts',\n * object: 'account',\n * operation: 'select',\n * using: 'region = current_user.region OR region IS NULL',\n * roles: ['sales_rep'],\n * enabled: true\n * }\n * ```\n * \n * @example Time-Based Access Control\n * ```typescript\n * {\n * name: 'active_records_only',\n * label: 'Users Only Access Active Records',\n * object: 'contract',\n * operation: 'select',\n * using: 'status = \"active\" AND start_date <= NOW() AND end_date >= NOW()',\n * enabled: true\n * }\n * ```\n * \n * @example Hierarchical Access (Role-Based)\n * ```typescript\n * {\n * name: 'executive_full_access',\n * label: 'Executives See All Records',\n * object: 'account',\n * operation: 'all',\n * using: '1 = 1', // Always true - see everything\n * roles: ['ceo', 'cfo', 'cto'],\n * enabled: true\n * }\n * ```\n */\nexport const RowLevelSecurityPolicySchema = lazySchema(() => z.object({\n /**\n * Unique identifier for this policy.\n * Must be unique within the object.\n * Use snake_case following ObjectStack naming conventions.\n * \n * @example \"tenant_isolation\", \"owner_access\", \"manager_team_view\"\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Policy unique identifier (snake_case)'),\n\n /**\n * Human-readable label for the policy.\n * Used in admin UI and logs.\n * \n * @example \"Multi-Tenant Data Isolation\", \"Owner-Based Access\"\n */\n label: z.string()\n .optional()\n .describe('Human-readable policy label'),\n\n /**\n * Description explaining what this policy does and why.\n * Helps with governance and compliance.\n * \n * @example \"Ensures users can only access records from their own tenant organization\"\n */\n description: z.string()\n .optional()\n .describe('Policy description and business justification'),\n\n /**\n * Target object (table) this policy applies to.\n * Must reference a valid ObjectStack object name.\n * \n * @example \"account\", \"opportunity\", \"contact\", \"custom_object\"\n */\n object: z.string()\n .describe('Target object name'),\n\n /**\n * Database operation(s) this policy applies to.\n * \n * - **select**: Controls read access (SELECT queries)\n * - **insert**: Controls insert access (INSERT statements)\n * - **update**: Controls update access (UPDATE statements)\n * - **delete**: Controls delete access (DELETE statements)\n * - **all**: Applies to all operations\n * \n * @example \"select\" - Most common, controls what users can view\n * @example \"all\" - Apply same rule to all operations\n */\n operation: RLSOperation\n .describe('Database operation this policy applies to'),\n\n /**\n * USING clause - Filter condition for SELECT/UPDATE/DELETE.\n * \n * This is a SQL-like expression evaluated for each row.\n * Only rows where this expression returns TRUE are accessible.\n * \n * **Note**: For INSERT-only policies, USING is not required (only CHECK is needed).\n * For SELECT/UPDATE/DELETE operations, USING is required.\n * \n * **Security Note**: RLS conditions are executed at the database level with\n * parameterized queries. The implementation must use prepared statements\n * to prevent SQL injection. Never concatenate user input directly into\n * RLS conditions.\n * \n * **SQL Dialect**: Compatible with PostgreSQL SQL syntax. Implementations\n * may adapt to other databases (MySQL, SQL Server, etc.) but should maintain\n * semantic equivalence.\n * \n * Available context variables:\n * - `current_user.id` - Current user's ID\n * - `current_user.organization_id` - Active organization id (maps to `tenantId` in RLSUserContext / `ExecutionContext.tenantId`)\n * - `current_user.role` - Current user's role\n * - `current_user.department` - Current user's department\n * - `current_user.*` - Any custom user field\n * - `NOW()` - Current timestamp\n * - `CURRENT_DATE` - Current date\n * - `CURRENT_TIME` - Current time\n * \n * **Context Variable Mapping**: The RLSUserContext schema uses camelCase (e.g., `tenantId`),\n * but expressions use snake_case with `current_user.` prefix (e.g., `current_user.organization_id`).\n * Implementations must handle this mapping.\n * \n * Supported operators:\n * - Comparison: =, !=, <, >, <=, >=, <> (not equal)\n * - Logical: AND, OR, NOT\n * - NULL checks: IS NULL, IS NOT NULL\n * - Set operations: IN, NOT IN\n * - String: LIKE, NOT LIKE, ILIKE (case-insensitive)\n * - Pattern matching: ~ (regex), !~ (not regex)\n * - Subqueries: (SELECT ...)\n * - Array operations: ANY, ALL\n * \n * **Prohibited**: Dynamic SQL, DDL statements, DML statements (INSERT/UPDATE/DELETE)\n * \n * @example \"organization_id = current_user.organization_id\"\n * @example \"owner_id = current_user.id OR created_by = current_user.id\"\n * @example \"department IN (SELECT department FROM user_departments WHERE user_id = current_user.id)\"\n * @example \"status = 'active' AND expiry_date > NOW()\"\n */\n using: z.string()\n .optional()\n .describe('Filter condition for SELECT/UPDATE/DELETE (PostgreSQL SQL WHERE clause syntax with parameterized context variables). Optional for INSERT-only policies.'),\n\n /**\n * CHECK clause - Validation for INSERT/UPDATE operations.\n * \n * Similar to USING but applies to new/modified rows.\n * Prevents users from creating/updating rows they wouldn't be able to see.\n * \n * **Default Behavior**: If not specified, implementations should use the\n * USING clause as the CHECK clause. This ensures data integrity by preventing\n * users from creating records they cannot view.\n * \n * Use cases:\n * - Prevent cross-tenant data creation\n * - Enforce mandatory field values\n * - Validate data integrity rules\n * - Restrict certain operations (e.g., only allow creating \"draft\" status)\n * \n * @example \"organization_id = current_user.organization_id\"\n * @example \"status IN ('draft', 'pending')\" - Only allow certain statuses\n * @example \"created_by = current_user.id\" - Must be the creator\n */\n check: z.string()\n .optional()\n .describe('Validation condition for INSERT/UPDATE (defaults to USING clause if not specified - enforced at application level)'),\n\n /**\n * Restrict this policy to specific roles.\n * If specified, only users with these roles will have this policy applied.\n * If omitted, policy applies to all users (except those with bypassRLS permission).\n * \n * Role names must match defined roles in the system.\n * \n * @example [\"sales_rep\", \"account_manager\"]\n * @example [\"employee\"] - Apply to all employees\n * @example [\"guest\"] - Special restrictions for guests\n */\n roles: z.array(z.string())\n .optional()\n .describe('Roles this policy applies to (omit for all roles)'),\n\n /**\n * Whether this policy is currently active.\n * Disabled policies are not evaluated.\n * Useful for temporary policy changes without deletion.\n * \n * @default true\n */\n enabled: z.boolean()\n .default(true)\n .describe('Whether this policy is active'),\n\n /**\n * Policy priority for conflict resolution.\n * Higher numbers = higher priority.\n * When multiple policies apply, the most permissive wins (OR logic).\n * Priority is only used for ordering evaluation (performance).\n * \n * @default 0\n */\n priority: z.number()\n .int()\n .default(0)\n .describe('Policy evaluation priority (higher = evaluated first)'),\n\n /**\n * Tags for policy categorization and reporting.\n * Useful for governance, compliance, and auditing.\n * \n * @example [\"compliance\", \"gdpr\", \"pci\"]\n * @example [\"multi-tenant\", \"security\"]\n */\n tags: z.array(z.string())\n .optional()\n .describe('Policy categorization tags'),\n}).superRefine((data, ctx) => {\n // Ensure at least one of USING or CHECK is provided\n if (!data.using && !data.check) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'At least one of \"using\" or \"check\" must be specified. For SELECT/UPDATE/DELETE operations, provide \"using\". For INSERT operations, provide \"check\".',\n });\n }\n \n // For non-insert operations, USING should typically be present\n // This is a soft warning through documentation, not enforced here\n // since 'all' and mixed operation types are valid\n}));\n\n/**\n * RLS Audit Event Schema\n * \n * Records a single RLS policy evaluation event for compliance and debugging.\n */\nexport const RLSAuditEventSchema = lazySchema(() => z.object({\n /** ISO 8601 timestamp of the evaluation */\n timestamp: z.string()\n .describe('ISO 8601 timestamp of the evaluation'),\n\n /** ID of the user whose access was evaluated */\n userId: z.string()\n .describe('User ID whose access was evaluated'),\n\n /** Database operation being performed */\n operation: z.enum(['select', 'insert', 'update', 'delete'])\n .describe('Database operation being performed'),\n\n /** Target object (table) name */\n object: z.string()\n .describe('Target object name'),\n\n /** Name of the RLS policy evaluated */\n policyName: z.string()\n .describe('Name of the RLS policy evaluated'),\n\n /** Whether access was granted */\n granted: z.boolean()\n .describe('Whether access was granted'),\n\n /** Time taken to evaluate the policy in milliseconds */\n evaluationDurationMs: z.number()\n .describe('Policy evaluation duration in milliseconds'),\n\n /** Which USING/CHECK clause matched */\n matchedCondition: z.string()\n .optional()\n .describe('Which USING/CHECK clause matched'),\n\n /** Number of rows affected by the operation */\n rowCount: z.number()\n .optional()\n .describe('Number of rows affected'),\n\n /** Additional metadata for the audit event */\n metadata: z.record(z.string(), z.unknown())\n .optional()\n .describe('Additional audit event metadata'),\n}));\n\nexport type RLSAuditEvent = z.infer<typeof RLSAuditEventSchema>;\n\n/**\n * RLS Audit Configuration Schema\n * \n * Controls how RLS policy evaluations are logged and monitored.\n */\nexport const RLSAuditConfigSchema = lazySchema(() => z.object({\n /** Enable RLS audit logging */\n enabled: z.boolean()\n .describe('Enable RLS audit logging'),\n\n /** Which evaluations to log */\n logLevel: z.enum(['all', 'denied_only', 'granted_only', 'none'])\n .describe('Which evaluations to log'),\n\n /** Where to send audit logs */\n destination: z.enum(['system_log', 'audit_trail', 'external'])\n .describe('Audit log destination'),\n\n /** Sampling rate for high-traffic environments (0-1) */\n sampleRate: z.number()\n .min(0)\n .max(1)\n .describe('Sampling rate (0-1) for high-traffic environments'),\n\n /** Number of days to retain audit logs */\n retentionDays: z.number()\n .int()\n .default(90)\n .describe('Audit log retention period in days'),\n\n /** Whether to include row data in audit logs (security-sensitive) */\n includeRowData: z.boolean()\n .default(false)\n .describe('Include row data in audit logs (security-sensitive)'),\n\n /** Alert when access is denied */\n alertOnDenied: z.boolean()\n .default(true)\n .describe('Send alerts when access is denied'),\n}));\n\nexport type RLSAuditConfig = z.infer<typeof RLSAuditConfigSchema>;\n\n/**\n * RLS Configuration Schema\n * \n * Global configuration for the Row-Level Security system.\n * Defines how RLS is enforced across the entire platform.\n */\nexport const RLSConfigSchema = lazySchema(() => z.object({\n /**\n * Global RLS enable/disable flag.\n * When false, all RLS policies are ignored (use with caution!).\n * \n * @default true\n */\n enabled: z.boolean()\n .default(true)\n .describe('Enable RLS enforcement globally'),\n\n /**\n * Default behavior when no policies match.\n * \n * - **deny**: Deny access (secure default)\n * - **allow**: Allow access (permissive mode, not recommended)\n * \n * @default \"deny\"\n */\n defaultPolicy: z.enum(['deny', 'allow'])\n .default('deny')\n .describe('Default action when no policies match'),\n\n /**\n * Whether to allow superusers to bypass RLS.\n * Superusers include system administrators and service accounts.\n * \n * @default true\n */\n allowSuperuserBypass: z.boolean()\n .default(true)\n .describe('Allow superusers to bypass RLS'),\n\n /**\n * List of roles that can bypass RLS.\n * Users with these roles see all records regardless of policies.\n * \n * @example [\"system_admin\", \"data_auditor\"]\n */\n bypassRoles: z.array(z.string())\n .optional()\n .describe('Roles that bypass RLS (see all data)'),\n\n /**\n * Whether to log RLS policy evaluations.\n * Useful for debugging and auditing.\n * Can impact performance if enabled globally.\n * \n * @default false\n */\n logEvaluations: z.boolean()\n .default(false)\n .describe('Log RLS policy evaluations for debugging'),\n\n /**\n * Cache RLS policy evaluation results.\n * Can improve performance for frequently accessed records.\n * Cache is invalidated when policies change or user context changes.\n * \n * @default true\n */\n cacheResults: z.boolean()\n .default(true)\n .describe('Cache RLS evaluation results'),\n\n /**\n * Cache TTL in seconds.\n * How long to cache RLS evaluation results.\n * \n * @default 300 (5 minutes)\n */\n cacheTtlSeconds: z.number()\n .int()\n .positive()\n .default(300)\n .describe('Cache TTL in seconds'),\n\n /**\n * Performance optimization: Pre-fetch user context.\n * Load user context once per request instead of per-query.\n * \n * @default true\n */\n prefetchUserContext: z.boolean()\n .default(true)\n .describe('Pre-fetch user context for performance'),\n\n /**\n * Audit logging configuration for RLS evaluations.\n */\n audit: RLSAuditConfigSchema\n .optional()\n .describe('RLS audit logging configuration'),\n}));\n\n/**\n * User Context Schema\n * \n * Represents the current user's context for RLS evaluation.\n * This data is used to evaluate USING and CHECK clauses.\n */\nexport const RLSUserContextSchema = lazySchema(() => z.object({\n /**\n * User ID\n */\n id: z.string()\n .describe('User ID'),\n\n /**\n * User email\n */\n email: z.string()\n .email()\n .optional()\n .describe('User email'),\n\n /**\n * Tenant/Organization ID\n */\n tenantId: z.string()\n .optional()\n .describe('Tenant/Organization ID'),\n\n /**\n * User role(s)\n */\n role: z.union([\n z.string(),\n z.array(z.string()),\n ])\n .optional()\n .describe('User role(s)'),\n\n /**\n * User department\n */\n department: z.string()\n .optional()\n .describe('User department'),\n\n /**\n * Additional custom attributes\n * Can include any custom user fields for RLS evaluation\n */\n attributes: z.record(z.string(), z.unknown())\n .optional()\n .describe('Additional custom user attributes'),\n}));\n\n/**\n * RLS Policy Evaluation Result\n * \n * Result of evaluating an RLS policy for a specific record.\n * Used for debugging and audit logging.\n */\nexport const RLSEvaluationResultSchema = lazySchema(() => z.object({\n /**\n * Policy name that was evaluated\n */\n policyName: z.string()\n .describe('Policy name'),\n\n /**\n * Whether access was granted\n */\n granted: z.boolean()\n .describe('Whether access was granted'),\n\n /**\n * Evaluation duration in milliseconds\n */\n durationMs: z.number()\n .optional()\n .describe('Evaluation duration in milliseconds'),\n\n /**\n * Error message if evaluation failed\n */\n error: z.string()\n .optional()\n .describe('Error message if evaluation failed'),\n\n /**\n * Evaluated USING clause result\n */\n usingResult: z.boolean()\n .optional()\n .describe('USING clause evaluation result'),\n\n /**\n * Evaluated CHECK clause result (for INSERT/UPDATE)\n */\n checkResult: z.boolean()\n .optional()\n .describe('CHECK clause evaluation result'),\n}));\n\n/**\n * Type exports\n */\nexport type RowLevelSecurityPolicy = z.infer<typeof RowLevelSecurityPolicySchema>;\nexport type RLSConfig = z.infer<typeof RLSConfigSchema>;\nexport type RLSUserContext = z.infer<typeof RLSUserContextSchema>;\nexport type RLSEvaluationResult = z.infer<typeof RLSEvaluationResultSchema>;\n\n/**\n * Helper factory for creating RLS policies\n */\nexport const RLS = {\n /**\n * Create a simple owner-based policy\n */\n ownerPolicy: (object: string, ownerField: string = 'owner_id'): RowLevelSecurityPolicy => ({\n name: `${object}_owner_access`,\n label: `Owner Access for ${object}`,\n object,\n operation: 'all',\n using: `${ownerField} = current_user.id`,\n enabled: true,\n priority: 0,\n }),\n\n /**\n * Create a tenant isolation policy.\n *\n * The default `tenantField` is `organization_id` to match better-auth's\n * organization plugin and the canonical platform schema. The\n * `current_user.organization_id` placeholder is resolved by\n * `RLSCompiler` from `ExecutionContext.tenantId` at request time.\n * Pass a custom field name if your schema uses a different column.\n */\n tenantPolicy: (object: string, tenantField: string = 'organization_id'): RowLevelSecurityPolicy => ({\n name: `${object}_tenant_isolation`,\n label: `Tenant Isolation for ${object}`,\n object,\n operation: 'all',\n using: `${tenantField} = current_user.organization_id`,\n check: `${tenantField} = current_user.organization_id`,\n enabled: true,\n priority: 0,\n }),\n\n /**\n * Create a role-based policy\n */\n rolePolicy: (object: string, roles: string[], condition: string): RowLevelSecurityPolicy => ({\n name: `${object}_${roles.join('_')}_access`,\n label: `${roles.join(', ')} Access for ${object}`,\n object,\n operation: 'select',\n using: condition,\n roles,\n enabled: true,\n priority: 0,\n }),\n\n /**\n * Create a permissive policy (allow all for specific roles)\n */\n allowAllPolicy: (object: string, roles: string[]): RowLevelSecurityPolicy => ({\n name: `${object}_${roles.join('_')}_full_access`,\n label: `Full Access for ${roles.join(', ')}`,\n object,\n operation: 'all',\n using: '1 = 1', // Always true\n roles,\n enabled: true,\n priority: 0,\n }),\n} as const;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\nimport { RowLevelSecurityPolicySchema } from './rls.zod';\n\n/**\n * Entity (Object) Level Permissions\n * Defines CRUD + VAMA (View All / Modify All) + Lifecycle access.\n * \n * Refined with enterprise data lifecycle controls:\n * - Transfer (Ownership change)\n * - Restore (Soft delete recovery)\n * - Purge (Hard delete / Compliance)\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const ObjectPermissionSchema = lazySchema(() => z.object({\n /** C: Create */\n allowCreate: z.boolean().default(false).describe('Create permission'),\n /** R: Read (Owned records or Shared records) */\n allowRead: z.boolean().default(false).describe('Read permission'),\n /** U: Edit (Owned records or Shared records) */\n allowEdit: z.boolean().default(false).describe('Edit permission'),\n /** D: Delete (Owned records or Shared records) */\n allowDelete: z.boolean().default(false).describe('Delete permission'),\n \n /** Lifecycle Operations */\n allowTransfer: z.boolean().default(false).describe('Change record ownership'),\n allowRestore: z.boolean().default(false).describe('Restore from trash (Undelete)'),\n allowPurge: z.boolean().default(false).describe('Permanently delete (Hard Delete/GDPR)'),\n\n /** \n * View All Records: Super-user read access. \n * Bypasses Sharing Rules and Ownership checks.\n * Equivalent to Microsoft Dataverse \"Organization\" level read access.\n */\n viewAllRecords: z.boolean().default(false).describe('View All Data (Bypass Sharing)'),\n \n /** \n * Modify All Records: Super-user write access. \n * Bypasses Sharing Rules and Ownership checks.\n * Equivalent to Microsoft Dataverse \"Organization\" level write access.\n */\n modifyAllRecords: z.boolean().default(false).describe('Modify All Data (Bypass Sharing)'),\n}));\n\n/**\n * Field Level Security (FLS)\n */\nexport const FieldPermissionSchema = lazySchema(() => z.object({\n /** Can see this field */\n readable: z.boolean().default(true).describe('Field read access'),\n /** Can edit this field */\n editable: z.boolean().default(false).describe('Field edit access'),\n}));\n\n/**\n * Permission Set Schema\n * Defines a collection of permissions that can be assigned to users.\n * \n * DIFFERENTIATION:\n * - Profile: The ONE primary functional definition of a user (e.g. Standard User).\n * - Permission Set: Add-on capabilities assigned to users (e.g. Export Reports).\n * - Role: (Defined in src/system/role.zod.ts) Defines data visibility hierarchy.\n * \n * **NAMING CONVENTION:**\n * Permission set names MUST be lowercase snake_case to prevent security issues.\n * \n * @example Good permission set names\n * - 'read_only'\n * - 'system_admin'\n * - 'standard_user'\n * - 'api_access'\n * \n * @example Bad permission set names (will be rejected)\n * - 'ReadOnly' (camelCase)\n * - 'SystemAdmin' (mixed case)\n * - 'Read Only' (spaces)\n */\nexport const PermissionSetSchema = lazySchema(() => z.object({\n /** Unique permission set name */\n name: SnakeCaseIdentifierSchema.describe('Permission set unique name (lowercase snake_case)'),\n \n /** Display label */\n label: z.string().optional().describe('Display label'),\n \n /** Is this a Profile? (Base set for a user) */\n isProfile: z.boolean().default(false).describe('Whether this is a user profile'),\n \n /** Object Permissions Map: <entity_name> -> permissions */\n objects: z.record(z.string(), ObjectPermissionSchema).describe('Entity permissions'),\n \n /** Field Permissions Map: <entity_name>.<field_name> -> permissions */\n fields: z.record(z.string(), FieldPermissionSchema).optional().describe('Field level security'),\n \n /** System permissions (e.g., \"manage_users\") */\n systemPermissions: z.array(z.string()).optional().describe('System level capabilities'),\n \n /**\n * Tab/App Visibility Permissions (Salesforce Pattern)\n * Controls which app tabs are visible, hidden, or set as default for this permission set.\n * \n * @example\n * ```typescript\n * tabPermissions: {\n * 'app_crm': 'visible',\n * 'app_admin': 'hidden',\n * 'app_sales': 'default_on'\n * }\n * ```\n */\n tabPermissions: z.record(z.string(), z.enum(['visible', 'hidden', 'default_on', 'default_off'])).optional()\n .describe('App/tab visibility: visible, hidden, default_on (shown by default), default_off (available but hidden initially)'),\n \n /** \n * Row-Level Security Rules\n * \n * Row-level security policies that filter records based on user context.\n * These rules are applied in addition to object-level permissions.\n * \n * Uses the canonical RLS protocol from rls.zod.ts for comprehensive\n * row-level security features including PostgreSQL-style USING and CHECK clauses.\n * \n * @see {@link RowLevelSecurityPolicySchema} for full RLS specification\n * @see {@link file://./rls.zod.ts} for comprehensive RLS documentation\n * \n * @example Multi-tenant isolation\n * ```typescript\n * rls: [{\n * name: 'tenant_filter',\n * object: 'account',\n * operation: 'select',\n * using: 'organization_id = current_user.organization_id'\n * }]\n * ```\n */\n rowLevelSecurity: z.array(RowLevelSecurityPolicySchema).optional()\n .describe('Row-level security policies (see rls.zod.ts for full spec)'),\n \n /**\n * Context-Based Access Control Variables\n * \n * Custom context variables that can be referenced in RLS rules.\n * These variables are evaluated at runtime based on the user's session.\n * \n * Common context variables:\n * - `current_user.id` - Current user ID\n * - `current_user.organization_id` - Active organization id\n * - `current_user.department` - User's department\n * - `current_user.role` - User's role\n * - `current_user.region` - User's geographic region\n * \n * @example Custom context\n * ```typescript\n * contextVariables: {\n * allowed_regions: ['US', 'EU'],\n * access_level: 2,\n * custom_attribute: 'value'\n * }\n * ```\n */\n contextVariables: z.record(z.string(), z.unknown()).optional().describe('Context variables for RLS evaluation'),\n}));\n\nexport type PermissionSet = z.infer<typeof PermissionSetSchema>;\nexport type ObjectPermission = z.infer<typeof ObjectPermissionSchema>;\nexport type FieldPermission = z.infer<typeof FieldPermissionSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * # Expression Protocol\n *\n * Canonical wire format for all \"expression\"-shaped metadata across ObjectStack\n * (formula fields, predicates, conditions, criteria, visibility rules, seed\n * dynamic values, …).\n *\n * The persisted form is `{ dialect, source }` (and, after `objectstack\n * compile` normalization, `{ dialect, ast }`). String-only shorthand is\n * accepted at *input* time for developer ergonomics; build emits the canonical\n * envelope.\n *\n * ## Dialects\n *\n * | dialect | engine | use |\n * |:---|:---|:---|\n * | `cel` | `@objectstack/formula` (cel-js + ObjectStack stdlib) | formulas, predicates, seed dynamic values |\n * | `js` | sandboxed L2 hook bodies (`isolated-vm` / `quickjs`) | mapping, hook bodies |\n * | `cron` | `cron-parser` | job schedules |\n *\n * SQL fragments (analytics joins, partial indexes) are intentionally **not**\n * routed through this schema — they stay driver-native because their security\n * posture and portability story differ.\n *\n * @see content/docs/concepts/north-star.mdx §8 \"No private expression DSL\"\n */\n\n/** Supported expression dialects. */\nexport const ExpressionDialect = z.enum(['cel', 'js', 'cron', 'template']);\nexport type ExpressionDialect = z.infer<typeof ExpressionDialect>;\n\n/**\n * Authorship metadata for an expression. Optional but encouraged for AI-\n * generated artifacts so audit/explanation tooling has something to render.\n */\nexport const ExpressionMetaSchema = z.object({\n /** Human-readable rationale (often AI-emitted). */\n rationale: z.string().optional(),\n /** Identifier of the agent / tool that produced this expression. */\n generatedBy: z.string().optional(),\n});\nexport type ExpressionMeta = z.infer<typeof ExpressionMetaSchema>;\n\n/**\n * Canonical Expression envelope.\n *\n * Phase 1 (M9.1): `source` is the canonical persisted form. `ast` is reserved\n * and accepted as opaque structured value — `objectstack compile` will fill it\n * in M9.2 with the engine's parsed AST so the artifact carries an AST-only\n * representation.\n *\n * Phase 2 (M9.2+): `ast` becomes required in build output; `source` is kept\n * only for round-trip / debug.\n */\nexport const ExpressionSchema = z.object({\n /** Which engine evaluates `source` / `ast`. */\n dialect: ExpressionDialect,\n /** Surface syntax. Required while `ast` is not yet populated. */\n source: z.string().min(1).optional(),\n /**\n * Engine-native AST. Opaque at the spec layer; each engine validates its own\n * shape. For `dialect: 'cel'` this is the cel-js parsed AST node.\n */\n ast: z.unknown().optional(),\n /** Optional authorship metadata. */\n meta: ExpressionMetaSchema.optional(),\n}).refine(e => e.source !== undefined || e.ast !== undefined, {\n message: 'Expression requires at least one of `source` or `ast`',\n});\nexport type Expression = z.infer<typeof ExpressionSchema>;\n\n/**\n * Author-time input shape: a bare string is shorthand for `{ dialect: 'cel',\n * source }`. Engines that need other dialects must use the full envelope.\n *\n * Build (`objectstack compile`) normalizes this union to `Expression` so the\n * persisted artifact never contains the bare-string form.\n */\nexport const ExpressionInputSchema = z.union([\n z.string().min(1).transform((source): Expression => ({ dialect: 'cel', source })),\n ExpressionSchema,\n]);\nexport type ExpressionInput = z.input<typeof ExpressionInputSchema>;\n\n/**\n * Cron-typed input shape: a bare string is shorthand for `{ dialect: 'cron',\n * source }` (not `cel`). Use this for `schedule` / `cronExpression` fields so\n * authors can write `'0 9 * * 1-5'` without manually wrapping.\n */\nexport const CronExpressionInputSchema = z.union([\n z.string().min(1).transform((source): Expression => ({ dialect: 'cron', source })),\n ExpressionSchema,\n]);\nexport type CronExpressionInput = z.input<typeof CronExpressionInputSchema>;\n\n/**\n * Template-typed input shape: a bare string is shorthand for\n * `{ dialect: 'template', source }`. Use this for notification subjects/bodies,\n * titleFormat, prompt templates — anything with `{{var}}` interpolation.\n */\nexport const TemplateExpressionInputSchema = z.union([\n z.string().min(1).transform((source): Expression => ({ dialect: 'template', source })),\n ExpressionSchema,\n]);\nexport type TemplateExpressionInput = z.input<typeof TemplateExpressionInputSchema>;\n\n/**\n * Predicate — an Expression whose evaluation is expected to be boolean.\n * Spec layer cannot enforce return type at parse time; this alias exists for\n * intent documentation and future runtime type-check wiring.\n */\nexport const PredicateSchema = ExpressionSchema;\nexport type Predicate = z.infer<typeof PredicateSchema>;\n\nexport const PredicateInputSchema = ExpressionInputSchema;\nexport type PredicateInput = z.input<typeof PredicateInputSchema>;\n\n/**\n * Construct an Expression literal from a CEL source string. Used by DX\n * shorthand (`cel\\`...\\``) and by codegen tools.\n */\nexport function expression(source: string, dialect: ExpressionDialect = 'cel', meta?: ExpressionMeta): Expression {\n return { dialect, source, ...(meta ? { meta } : {}) };\n}\n\n/**\n * Tagged-template helpers for inline expression authoring.\n *\n * ```ts\n * import { cel, F, P } from '@objectstack/spec';\n *\n * const f = { formula: F`record.amount * 0.1` };\n * const v = { visible: P`record.status == \"open\"` };\n * const d = { close_date: cel`now() + duration(\"P30D\")` };\n * ```\n *\n * Each helper produces an {@link Expression} envelope with `dialect: 'cel'`\n * and the rendered template string as `source`. The CLI `objectstack compile`\n * step (M9.2) parses these into ASTs at build time so the persisted artifact\n * is dialect-AST only.\n */\nfunction renderTemplate(strings: TemplateStringsArray, values: readonly unknown[]): string {\n if (values.length === 0) return strings[0] ?? '';\n let out = strings[0] ?? '';\n for (let i = 0; i < values.length; i++) {\n const v = values[i];\n // Inline literal substitution. Strings get JSON-escaped so `${name}` for\n // `name = 'O\\'Brien'` produces a valid CEL string literal. Numbers and\n // booleans render as their toString. Anything exotic should be passed via\n // the variable scope (record/input) rather than interpolated.\n if (typeof v === 'string') out += JSON.stringify(v);\n else if (typeof v === 'number' || typeof v === 'boolean') out += String(v);\n else if (v === null || v === undefined) out += 'null';\n else out += JSON.stringify(v);\n out += strings[i + 1] ?? '';\n }\n return out;\n}\n\n/** Tagged template — produces a CEL Expression envelope. */\nexport function cel(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n return { dialect: 'cel', source: renderTemplate(strings, values) };\n}\n\n/** Formula alias of {@link cel} — semantic shorthand for computed-field formulas. */\nexport const F = cel;\n\n/** Predicate alias of {@link cel} — semantic shorthand for boolean conditions. */\nexport const P = cel;\n\n/**\n * Tagged template — produces a Mustache-template Expression envelope. Use for\n * notification subjects, prompt bodies, titleFormat strings, etc. Variable\n * scope is the same as CEL (`{{record.x}}`, `{{os.user.id}}`).\n */\nexport function tmpl(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n // Templates do not get JSON.stringify on substitution — interpolation happens\n // at evaluate time via `{{path}}` markers, so we keep raw substitutions here.\n let out = strings[0] ?? '';\n for (let i = 0; i < values.length; i++) {\n out += String(values[i]);\n out += strings[i + 1] ?? '';\n }\n return { dialect: 'template', source: out };\n}\n\n/** Tagged template — produces a cron Expression envelope. */\nexport function cron(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n let out = strings[0] ?? '';\n for (let i = 0; i < values.length; i++) {\n out += String(values[i]);\n out += strings[i + 1] ?? '';\n }\n return { dialect: 'cron', source: out };\n}\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { ExpressionInputSchema } from '../shared/expression.zod';\n\n/**\n * Organization-Wide Defaults (OWD)\n * The baseline security posture for an object.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const OWDModel = z.enum([\n 'private', // Only owner can see\n 'public_read', // Everyone can see, owner can edit\n 'public_read_write', // Everyone can see and edit\n 'controlled_by_parent' // Access derived from parent record (Master-Detail)\n]);\n\n/**\n * Sharing Rule Type\n * How is the data shared?\n */\nexport const SharingRuleType = z.enum([\n 'owner', // Based on record ownership (Role Hierarchy)\n 'criteria', // Based on field values (e.g. Status = 'Open')\n]);\n\n/**\n * Sharing Level\n * What access is granted?\n */\nexport const SharingLevel = z.enum([\n 'read', // Read Only\n 'edit', // Read / Write\n 'full' // Full Access (Transfer, Share, Delete)\n]);\n\n/**\n * Recipient Type \n * Who receives the access?\n */\nexport const ShareRecipientType = z.enum([\n 'user',\n 'group',\n 'role',\n 'role_and_subordinates',\n 'guest' // for public sharing\n]);\n\n/**\n * Base Sharing Rule\n * Common metadata for all sharing strategies.\n */\nconst BaseSharingRuleSchema = z.object({\n // Identification\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Unique rule name (snake_case)'),\n label: z.string().optional().describe('Human-readable label'),\n description: z.string().optional().describe('Administrative notes'),\n \n // Scope\n object: z.string().describe('Target Object Name'),\n active: z.boolean().default(true),\n \n // Access\n accessLevel: SharingLevel.default('read'),\n \n // Recipient (Whom to share with)\n sharedWith: z.object({\n type: ShareRecipientType,\n value: z.string().describe('ID or Code of the User/Group/Role'),\n }).describe('The recipient of the shared access'),\n});\n\n/**\n * 1. Criteria-Based Sharing Rule\n * Share records that meet specific field criteria.\n */\nexport const CriteriaSharingRuleSchema = lazySchema(() => BaseSharingRuleSchema.extend({\n type: z.literal('criteria'),\n condition: ExpressionInputSchema.describe('Predicate (CEL). e.g. P`record.department == \"Sales\"`'),\n}));\n\n/**\n * 2. Owner-Based Sharing Rule\n * Share records owned by a specific group of users.\n */\nexport const OwnerSharingRuleSchema = lazySchema(() => BaseSharingRuleSchema.extend({\n type: z.literal('owner'),\n ownedBy: z.object({\n type: ShareRecipientType,\n value: z.string(),\n }).describe('Source group/role whose records are being shared'),\n}));\n\n/**\n * Master Sharing Rule Schema\n */\nexport const SharingRuleSchema = lazySchema(() => z.discriminatedUnion('type', [\n CriteriaSharingRuleSchema,\n OwnerSharingRuleSchema\n]));\n\nexport type SharingRule = z.infer<typeof SharingRuleSchema>;\nexport type CriteriaSharingRule = z.infer<typeof CriteriaSharingRuleSchema>;\nexport type OwnerSharingRule = z.infer<typeof OwnerSharingRuleSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * Territory Management Protocol\n * Defines a matrix reporting structure that exists parallel to the Role Hierarchy.\n * \n * USE CASE:\n * - Enterprise Sales Teams (Geo-based: \"EMEA\", \"APAC\")\n * - Industry Verticals (Industry-based: \"Healthcare\", \"Financial\")\n * - Strategic Accounts (Account-based: \"Strategic Accounts\")\n * \n * DIFFERENCE FROM ROLE:\n * - Role: Hierarchy of PEOPLE (Who reports to whom). Stable. HR-driven.\n * - Territory: Hierarchy of ACCOUNTS/REVENUE (Who owns which market). Flexible. Sales-driven.\n * - One User can be assigned to MANY Territories (Matrix).\n * - One User has only ONE Role (Tree).\n */\n\nimport { lazySchema } from '../shared/lazy-schema';\nexport const TerritoryType = z.enum([\n 'geography', // Region/Country/City\n 'industry', // Vertical\n 'named_account', // Key Accounts\n 'product_line' // Product Specialty\n]);\n\n/**\n * Territory Model Schema\n * A container for a version of territory planning.\n * (e.g. \"Fiscal Year 2024 Planning\" vs \"Fiscal Year 2025 Planning\")\n */\nexport const TerritoryModelSchema = lazySchema(() => z.object({\n name: z.string().describe('Model Name (e.g. FY24 Planning)'),\n state: z.enum(['planning', 'active', 'archived']).default('planning'),\n startDate: z.string().optional(),\n endDate: z.string().optional(),\n}));\n\n/**\n * Territory Node Schema\n * A single node in the territory tree.\n * \n * **NAMING CONVENTION:**\n * Territory names are machine identifiers and must be lowercase snake_case.\n * \n * @example Good territory names\n * - 'west_coast'\n * - 'emea_region'\n * - 'healthcare_vertical'\n * - 'strategic_accounts'\n * \n * @example Bad territory names (will be rejected)\n * - 'WestCoast' (PascalCase)\n * - 'West Coast' (spaces)\n */\nexport const TerritorySchema = lazySchema(() => z.object({\n /** Identity */\n name: SnakeCaseIdentifierSchema.describe('Territory unique name (lowercase snake_case)'),\n label: z.string().describe('Territory Label (e.g. \"West Coast\")'),\n \n /** Structure */\n modelId: z.string().describe('Belongs to which Territory Model'),\n parent: z.string().optional().describe('Parent Territory'),\n type: TerritoryType.default('geography'),\n \n /** \n * Assignment Rules (The \"Magic\")\n * How do accounts automatically fall into this territory?\n * e.g. \"BillingCountry = 'US' AND BillingState = 'CA'\"\n */\n assignmentRule: z.string().optional().describe('Criteria based assignment rule'),\n \n /**\n * User Assignment\n * Users assigned to work this territory.\n */\n assignedUsers: z.array(z.string()).optional(),\n \n /** Access Level */\n accountAccess: z.enum(['read', 'edit']).default('read'),\n opportunityAccess: z.enum(['read', 'edit']).default('read'),\n caseAccess: z.enum(['read', 'edit']).default('read'),\n}));\n\nexport type Territory = z.infer<typeof TerritorySchema>;\nexport type TerritoryModel = z.infer<typeof TerritoryModelSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Password Complexity Policy\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const PasswordPolicySchema = lazySchema(() => z.object({\n minLength: z.number().default(8),\n requireUppercase: z.boolean().default(true),\n requireLowercase: z.boolean().default(true),\n requireNumbers: z.boolean().default(true),\n requireSymbols: z.boolean().default(false),\n expirationDays: z.number().optional().describe('Force password change every X days'),\n historyCount: z.number().default(3).describe('Prevent reusing last X passwords'),\n}));\n\n/**\n * Network Access Policy (IP Whitelisting)\n */\nexport const NetworkPolicySchema = lazySchema(() => z.object({\n trustedRanges: z.array(z.string()).describe('CIDR ranges allowed to access (e.g. 10.0.0.0/8)'),\n blockUnknown: z.boolean().default(false).describe('Block all IPs not in trusted ranges'),\n vpnRequired: z.boolean().default(false),\n}));\n\n/**\n * Session Policy\n */\nexport const SessionPolicySchema = lazySchema(() => z.object({\n idleTimeout: z.number().default(30).describe('Minutes before idle session logout'),\n absoluteTimeout: z.number().default(480).describe('Max session duration (minutes)'),\n forceMfa: z.boolean().default(false).describe('Require 2FA for all users'),\n}));\n\n/**\n * Audit Retention Policy\n */\nexport const AuditPolicySchema = lazySchema(() => z.object({\n logRetentionDays: z.number().default(180),\n sensitiveFields: z.array(z.string()).describe('Fields to redact in logs (e.g. password, ssn)'),\n captureRead: z.boolean().default(false).describe('Log read access (High volume!)'),\n}));\n\n/**\n * Security Policy Schema\n * \"The Cloud Compliance Contract\"\n */\nexport const PolicySchema = lazySchema(() => z.object({\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Policy Name'),\n \n password: PasswordPolicySchema.optional(),\n network: NetworkPolicySchema.optional(),\n session: SessionPolicySchema.optional(),\n audit: AuditPolicySchema.optional(),\n\n /** Assignment */\n isDefault: z.boolean().default(false).describe('Apply to all users by default'),\n assignedProfiles: z.array(z.string()).optional().describe('Apply to specific profiles'),\n}));\n\nexport type Policy = z.infer<typeof PolicySchema>;\n"]}
1
+ {"version":3,"sources":["../../src/shared/lazy-schema.ts","../../src/shared/identifiers.zod.ts","../../src/security/rls.zod.ts","../../src/security/permission.zod.ts","../../src/shared/expression.zod.ts","../../src/ui/i18n.zod.ts","../../src/ui/sharing.zod.ts","../../src/ui/responsive.zod.ts","../../src/system/encryption.zod.ts","../../src/system/masking.zod.ts","../../src/data/field.zod.ts","../../src/shared/http.zod.ts","../../src/ui/view.zod.ts","../../src/security/permission.form.ts","../../src/security/sharing.zod.ts","../../src/security/territory.zod.ts","../../src/security/policy.zod.ts"],"names":["z"],"mappings":"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","file":"index.mjs","sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { z } from 'zod';\n\n/**\n * Wrap a Zod schema constructor so its body is only evaluated on first use.\n *\n * Why: building Zod schemas at module-load creates millions of closures that\n * dominate dev-server RSS even though most schemas are never parsed in a\n * given session. Wrapping the constructor in a Proxy defers allocation until\n * the first property access (`.parse`, `.shape`, `._def`, etc.) and reuses\n * a single cached instance thereafter.\n *\n * Type system: the returned Proxy is structurally indistinguishable from the\n * underlying ZodType, so `z.infer<typeof X>` and `.parse()` callers do not\n * need to change.\n *\n * Emergency rollback: set `OS_EAGER_SCHEMAS=1` to evaluate the\n * factory immediately and bypass the Proxy entirely.\n */\nexport function lazySchema<T extends z.ZodTypeAny>(factory: () => T): T {\n if (typeof process !== 'undefined' && process.env?.OS_EAGER_SCHEMAS === '1') {\n return factory();\n }\n\n let cached: T | undefined;\n const resolve = (): T => {\n if (cached === undefined) cached = factory();\n return cached;\n };\n\n const target = function lazyZod() {} as unknown as T;\n\n const proxy = new Proxy(target as object, {\n get(_t, prop) {\n const real = resolve() as unknown as Record<PropertyKey, unknown>;\n const value = real[prop];\n if (typeof value === 'function') {\n return (value as (...a: unknown[]) => unknown).bind(real);\n }\n return value;\n },\n set(_t, prop, value) {\n const real = resolve() as unknown as Record<PropertyKey, unknown>;\n real[prop] = value;\n return true;\n },\n has(_t, prop) {\n return prop in (resolve() as object);\n },\n ownKeys() {\n return Reflect.ownKeys(resolve() as object);\n },\n getOwnPropertyDescriptor(_t, prop) {\n return Reflect.getOwnPropertyDescriptor(resolve() as object, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(resolve() as object);\n },\n });\n\n return proxy as T;\n}\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * System Identifier Schema\n * \n * Universal naming convention for all machine identifiers (API Names) in ObjectStack.\n * Enforces lowercase with underscores or dots to ensure:\n * - Cross-platform compatibility (case-insensitive filesystems)\n * - URL-friendliness (no encoding needed)\n * - Database consistency (no collation issues)\n * - Security (no case-sensitivity bugs in permission checks)\n * \n * **Applies to all metadata that acts as a machine identifier:**\n * - Object names (tables/collections)\n * - Field names\n * - Role names\n * - Permission set names\n * - Action/trigger names\n * - Event keys\n * - App IDs\n * - Menu/page IDs\n * - Select option values\n * - Workflow names\n * - Webhook names\n * \n * **Naming Convention Summary:**\n * | Type | Pattern | Example |\n * |------|---------|---------|\n * | Machine ID | snake_case | `crm_account`, `btn_submit`, `role_admin` |\n * | Event keys | dot.notation | `user.login`, `order.created` |\n * | Labels | Any case | `Client Account`, `Submit Form` |\n * \n * @example Valid identifiers\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * - 'order.created' (for events)\n * - 'api_v2_endpoint'\n * \n * @example Invalid identifiers (will be rejected)\n * - 'Account' (uppercase)\n * - 'CrmAccount' (camelCase)\n * - 'crm-account' (kebab-case - use underscore instead)\n * - 'user profile' (spaces)\n */\nimport { lazySchema } from './lazy-schema';\nexport const SystemIdentifierSchema = lazySchema(() => z\n .string()\n .min(2, { message: 'System identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., \"user_profile\" or \"order.created\")',\n })\n .describe('System identifier (lowercase with underscores or dots)'));\n\n/**\n * Strict Snake Case Identifier\n * \n * More restrictive than SystemIdentifierSchema - only allows underscores (no dots).\n * Use this for identifiers that should NOT contain dots (e.g., database table/column names).\n * \n * @example Valid\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * \n * @example Invalid\n * - 'user.profile' (dots not allowed)\n * - 'UserProfile' (uppercase)\n */\nexport const SnakeCaseIdentifierSchema = lazySchema(() => z\n .string()\n .min(2, { message: 'Identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_]*$/, {\n message:\n 'Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., \"user_profile\")',\n })\n .describe('Snake case identifier (lowercase with underscores only)'));\n\n/**\n * Event Name Identifier\n * \n * Specialized identifier for event names that encourages dot notation.\n * Used in event-driven systems, message queues, and webhooks.\n * \n * Pattern: `namespace.action` or `entity.event_type`\n * \n * @example Valid\n * - 'user.created'\n * - 'order.paid'\n * - 'user.login_success'\n * - 'alarm.high_cpu'\n * \n * @example Invalid\n * - 'UserCreated' (camelCase)\n * - 'user_created' (should use dots for namespacing)\n */\nexport const EventNameSchema = lazySchema(() => z\n .string()\n .min(3, { message: 'Event name must be at least 3 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'Event name must be lowercase with dots for namespacing (e.g., \"user.created\", \"order.paid\")',\n })\n .describe('Event name (lowercase with dot notation for namespacing)'));\n\n/**\n * Type Exports\n */\nexport type SystemIdentifier = z.infer<typeof SystemIdentifierSchema>;\nexport type SnakeCaseIdentifier = z.infer<typeof SnakeCaseIdentifierSchema>;\nexport type EventName = z.infer<typeof EventNameSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * # Row-Level Security (RLS) Protocol\n * \n * Implements fine-grained record-level access control inspired by PostgreSQL RLS\n * and Salesforce Criteria-Based Sharing Rules.\n * \n * ## Overview\n * \n * Row-Level Security (RLS) allows you to control which rows users can access\n * in database tables based on their identity and role. Unlike object-level\n * permissions (CRUD), RLS provides record-level filtering.\n * \n * ## Use Cases\n * \n * 1. **Multi-Tenant Data Isolation**\n * - Users only see records from their organization\n * - `using: \"organization_id = current_user.organization_id\"`\n * \n * 2. **Ownership-Based Access**\n * - Users only see records they own\n * - `using: \"owner_id = current_user.id\"`\n * \n * 3. **Department-Based Access**\n * - Users only see records from their department\n * - `using: \"department = current_user.department\"`\n * \n * 4. **Regional Access Control**\n * - Sales reps only see accounts in their territory\n * - `using: \"region IN (current_user.assigned_regions)\"`\n * \n * 5. **Time-Based Access**\n * - Users can only access active records\n * - `using: \"status = 'active' AND expiry_date > NOW()\"`\n * \n * ## PostgreSQL RLS Comparison\n * \n * PostgreSQL RLS Example:\n * ```sql\n * CREATE POLICY tenant_isolation ON accounts\n * FOR SELECT\n * USING (tenant_id = current_setting('app.current_tenant_id')::uuid);\n * \n * CREATE POLICY account_insert ON accounts\n * FOR INSERT\n * WITH CHECK (tenant_id = current_setting('app.current_tenant_id')::uuid);\n * ```\n * \n * ObjectStack RLS Equivalent:\n * ```typescript\n * {\n * name: 'tenant_isolation',\n * object: 'account',\n * operation: 'select',\n * using: 'organization_id = current_user.organization_id'\n * }\n * ```\n * \n * ## Salesforce Sharing Rules Comparison\n * \n * Salesforce uses \"Sharing Rules\" and \"Role Hierarchy\" for record-level access.\n * ObjectStack RLS provides similar functionality with more flexibility.\n * \n * Salesforce:\n * - Criteria-Based Sharing: Share records matching criteria with users/roles\n * - Owner-Based Sharing: Share records based on owner's role\n * - Manual Sharing: Individual record sharing\n * \n * ObjectStack RLS:\n * - More flexible formula-based conditions\n * - Direct SQL-like syntax\n * - Supports complex logic with AND/OR/NOT\n * \n * ## Best Practices\n * \n * 1. **Always Define SELECT Policy**: Control what users can view\n * 2. **Define INSERT/UPDATE CHECK Policies**: Prevent data leakage\n * 3. **Use Role-Based Policies**: Apply different rules to different roles\n * 4. **Test Thoroughly**: RLS can have complex interactions\n * 5. **Monitor Performance**: Complex RLS policies can impact query performance\n * \n * ## Security Considerations\n * \n * 1. **Defense in Depth**: RLS is one layer; use with object permissions\n * 2. **Default Deny**: If no policy matches, access is denied\n * 3. **Policy Precedence**: More permissive policy wins (OR logic)\n * 4. **Context Variables**: Ensure current_user context is always set\n * \n * @see https://www.postgresql.org/docs/current/ddl-rowsecurity.html\n * @see https://help.salesforce.com/s/articleView?id=sf.security_sharing_rules.htm\n */\n\n/**\n * RLS Operation Enum\n * Specifies which database operation this policy applies to.\n * \n * - **select**: Controls which rows can be read (SELECT queries)\n * - **insert**: Controls which rows can be inserted (INSERT statements)\n * - **update**: Controls which rows can be updated (UPDATE statements)\n * - **delete**: Controls which rows can be deleted (DELETE statements)\n * - **all**: Shorthand for all operations (equivalent to defining 4 separate policies)\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const RLSOperation = z.enum(['select', 'insert', 'update', 'delete', 'all']);\n\nexport type RLSOperation = z.infer<typeof RLSOperation>;\n\n/**\n * Row-Level Security Policy Schema\n * \n * Defines a single RLS policy that filters records based on conditions.\n * Multiple policies can be defined for the same object, and they are\n * combined with OR logic (union of results).\n * \n * @example Multi-Tenant Isolation\n * ```typescript\n * {\n * name: 'tenant_isolation',\n * label: 'Multi-Tenant Data Isolation',\n * object: 'account',\n * operation: 'select',\n * using: 'organization_id = current_user.organization_id',\n * enabled: true\n * }\n * ```\n * \n * @example Owner-Based Access\n * ```typescript\n * {\n * name: 'owner_access',\n * label: 'Users Can View Their Own Records',\n * object: 'opportunity',\n * operation: 'select',\n * using: 'owner_id = current_user.id',\n * enabled: true\n * }\n * ```\n * \n * @example Manager Can View Team Records\n * ```typescript\n * {\n * name: 'manager_team_access',\n * label: 'Managers Can View Team Records',\n * object: 'task',\n * operation: 'select',\n * using: 'assigned_to_id IN (SELECT id FROM users WHERE manager_id = current_user.id)',\n * roles: ['manager', 'director'],\n * enabled: true\n * }\n * ```\n * \n * @example Prevent Cross-Tenant Data Insertion\n * ```typescript\n * {\n * name: 'tenant_insert_check',\n * label: 'Prevent Cross-Tenant Data Creation',\n * object: 'account',\n * operation: 'insert',\n * check: 'organization_id = current_user.organization_id',\n * enabled: true\n * }\n * ```\n * \n * @example Regional Sales Access\n * ```typescript\n * {\n * name: 'regional_sales_access',\n * label: 'Sales Reps Access Regional Accounts',\n * object: 'account',\n * operation: 'select',\n * using: 'region = current_user.region OR region IS NULL',\n * roles: ['sales_rep'],\n * enabled: true\n * }\n * ```\n * \n * @example Time-Based Access Control\n * ```typescript\n * {\n * name: 'active_records_only',\n * label: 'Users Only Access Active Records',\n * object: 'contract',\n * operation: 'select',\n * using: 'status = \"active\" AND start_date <= NOW() AND end_date >= NOW()',\n * enabled: true\n * }\n * ```\n * \n * @example Hierarchical Access (Role-Based)\n * ```typescript\n * {\n * name: 'executive_full_access',\n * label: 'Executives See All Records',\n * object: 'account',\n * operation: 'all',\n * using: '1 = 1', // Always true - see everything\n * roles: ['ceo', 'cfo', 'cto'],\n * enabled: true\n * }\n * ```\n */\nexport const RowLevelSecurityPolicySchema = lazySchema(() => z.object({\n /**\n * Unique identifier for this policy.\n * Must be unique within the object.\n * Use snake_case following ObjectStack naming conventions.\n * \n * @example \"tenant_isolation\", \"owner_access\", \"manager_team_view\"\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Policy unique identifier (snake_case)'),\n\n /**\n * Human-readable label for the policy.\n * Used in admin UI and logs.\n * \n * @example \"Multi-Tenant Data Isolation\", \"Owner-Based Access\"\n */\n label: z.string()\n .optional()\n .describe('Human-readable policy label'),\n\n /**\n * Description explaining what this policy does and why.\n * Helps with governance and compliance.\n * \n * @example \"Ensures users can only access records from their own tenant organization\"\n */\n description: z.string()\n .optional()\n .describe('Policy description and business justification'),\n\n /**\n * Target object (table) this policy applies to.\n * Must reference a valid ObjectStack object name.\n * \n * @example \"account\", \"opportunity\", \"contact\", \"custom_object\"\n */\n object: z.string()\n .describe('Target object name'),\n\n /**\n * Database operation(s) this policy applies to.\n * \n * - **select**: Controls read access (SELECT queries)\n * - **insert**: Controls insert access (INSERT statements)\n * - **update**: Controls update access (UPDATE statements)\n * - **delete**: Controls delete access (DELETE statements)\n * - **all**: Applies to all operations\n * \n * @example \"select\" - Most common, controls what users can view\n * @example \"all\" - Apply same rule to all operations\n */\n operation: RLSOperation\n .describe('Database operation this policy applies to'),\n\n /**\n * USING clause - Filter condition for SELECT/UPDATE/DELETE.\n * \n * This is a SQL-like expression evaluated for each row.\n * Only rows where this expression returns TRUE are accessible.\n * \n * **Note**: For INSERT-only policies, USING is not required (only CHECK is needed).\n * For SELECT/UPDATE/DELETE operations, USING is required.\n * \n * **Security Note**: RLS conditions are executed at the database level with\n * parameterized queries. The implementation must use prepared statements\n * to prevent SQL injection. Never concatenate user input directly into\n * RLS conditions.\n * \n * **SQL Dialect**: Compatible with PostgreSQL SQL syntax. Implementations\n * may adapt to other databases (MySQL, SQL Server, etc.) but should maintain\n * semantic equivalence.\n * \n * Available context variables:\n * - `current_user.id` - Current user's ID\n * - `current_user.organization_id` - Active organization id (maps to `tenantId` in RLSUserContext / `ExecutionContext.tenantId`)\n * - `current_user.role` - Current user's role\n * - `current_user.department` - Current user's department\n * - `current_user.*` - Any custom user field\n * - `NOW()` - Current timestamp\n * - `CURRENT_DATE` - Current date\n * - `CURRENT_TIME` - Current time\n * \n * **Context Variable Mapping**: The RLSUserContext schema uses camelCase (e.g., `tenantId`),\n * but expressions use snake_case with `current_user.` prefix (e.g., `current_user.organization_id`).\n * Implementations must handle this mapping.\n * \n * Supported operators:\n * - Comparison: =, !=, <, >, <=, >=, <> (not equal)\n * - Logical: AND, OR, NOT\n * - NULL checks: IS NULL, IS NOT NULL\n * - Set operations: IN, NOT IN\n * - String: LIKE, NOT LIKE, ILIKE (case-insensitive)\n * - Pattern matching: ~ (regex), !~ (not regex)\n * - Subqueries: (SELECT ...)\n * - Array operations: ANY, ALL\n * \n * **Prohibited**: Dynamic SQL, DDL statements, DML statements (INSERT/UPDATE/DELETE)\n * \n * @example \"organization_id = current_user.organization_id\"\n * @example \"owner_id = current_user.id OR created_by = current_user.id\"\n * @example \"department IN (SELECT department FROM user_departments WHERE user_id = current_user.id)\"\n * @example \"status = 'active' AND expiry_date > NOW()\"\n */\n using: z.string()\n .optional()\n .describe('Filter condition for SELECT/UPDATE/DELETE (PostgreSQL SQL WHERE clause syntax with parameterized context variables). Optional for INSERT-only policies.'),\n\n /**\n * CHECK clause - Validation for INSERT/UPDATE operations.\n * \n * Similar to USING but applies to new/modified rows.\n * Prevents users from creating/updating rows they wouldn't be able to see.\n * \n * **Default Behavior**: If not specified, implementations should use the\n * USING clause as the CHECK clause. This ensures data integrity by preventing\n * users from creating records they cannot view.\n * \n * Use cases:\n * - Prevent cross-tenant data creation\n * - Enforce mandatory field values\n * - Validate data integrity rules\n * - Restrict certain operations (e.g., only allow creating \"draft\" status)\n * \n * @example \"organization_id = current_user.organization_id\"\n * @example \"status IN ('draft', 'pending')\" - Only allow certain statuses\n * @example \"created_by = current_user.id\" - Must be the creator\n */\n check: z.string()\n .optional()\n .describe('Validation condition for INSERT/UPDATE (defaults to USING clause if not specified - enforced at application level)'),\n\n /**\n * Restrict this policy to specific roles.\n * If specified, only users with these roles will have this policy applied.\n * If omitted, policy applies to all users (except those with bypassRLS permission).\n * \n * Role names must match defined roles in the system.\n * \n * @example [\"sales_rep\", \"account_manager\"]\n * @example [\"employee\"] - Apply to all employees\n * @example [\"guest\"] - Special restrictions for guests\n */\n roles: z.array(z.string())\n .optional()\n .describe('Roles this policy applies to (omit for all roles)'),\n\n /**\n * Whether this policy is currently active.\n * Disabled policies are not evaluated.\n * Useful for temporary policy changes without deletion.\n * \n * @default true\n */\n enabled: z.boolean()\n .default(true)\n .describe('Whether this policy is active'),\n\n /**\n * Policy priority for conflict resolution.\n * Higher numbers = higher priority.\n * When multiple policies apply, the most permissive wins (OR logic).\n * Priority is only used for ordering evaluation (performance).\n * \n * @default 0\n */\n priority: z.number()\n .int()\n .default(0)\n .describe('Policy evaluation priority (higher = evaluated first)'),\n\n /**\n * Tags for policy categorization and reporting.\n * Useful for governance, compliance, and auditing.\n * \n * @example [\"compliance\", \"gdpr\", \"pci\"]\n * @example [\"multi-tenant\", \"security\"]\n */\n tags: z.array(z.string())\n .optional()\n .describe('Policy categorization tags'),\n}).superRefine((data, ctx) => {\n // Ensure at least one of USING or CHECK is provided\n if (!data.using && !data.check) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'At least one of \"using\" or \"check\" must be specified. For SELECT/UPDATE/DELETE operations, provide \"using\". For INSERT operations, provide \"check\".',\n });\n }\n \n // For non-insert operations, USING should typically be present\n // This is a soft warning through documentation, not enforced here\n // since 'all' and mixed operation types are valid\n}));\n\n/**\n * RLS Audit Event Schema\n * \n * Records a single RLS policy evaluation event for compliance and debugging.\n */\nexport const RLSAuditEventSchema = lazySchema(() => z.object({\n /** ISO 8601 timestamp of the evaluation */\n timestamp: z.string()\n .describe('ISO 8601 timestamp of the evaluation'),\n\n /** ID of the user whose access was evaluated */\n userId: z.string()\n .describe('User ID whose access was evaluated'),\n\n /** Database operation being performed */\n operation: z.enum(['select', 'insert', 'update', 'delete'])\n .describe('Database operation being performed'),\n\n /** Target object (table) name */\n object: z.string()\n .describe('Target object name'),\n\n /** Name of the RLS policy evaluated */\n policyName: z.string()\n .describe('Name of the RLS policy evaluated'),\n\n /** Whether access was granted */\n granted: z.boolean()\n .describe('Whether access was granted'),\n\n /** Time taken to evaluate the policy in milliseconds */\n evaluationDurationMs: z.number()\n .describe('Policy evaluation duration in milliseconds'),\n\n /** Which USING/CHECK clause matched */\n matchedCondition: z.string()\n .optional()\n .describe('Which USING/CHECK clause matched'),\n\n /** Number of rows affected by the operation */\n rowCount: z.number()\n .optional()\n .describe('Number of rows affected'),\n\n /** Additional metadata for the audit event */\n metadata: z.record(z.string(), z.unknown())\n .optional()\n .describe('Additional audit event metadata'),\n}));\n\nexport type RLSAuditEvent = z.infer<typeof RLSAuditEventSchema>;\n\n/**\n * RLS Audit Configuration Schema\n * \n * Controls how RLS policy evaluations are logged and monitored.\n */\nexport const RLSAuditConfigSchema = lazySchema(() => z.object({\n /** Enable RLS audit logging */\n enabled: z.boolean()\n .describe('Enable RLS audit logging'),\n\n /** Which evaluations to log */\n logLevel: z.enum(['all', 'denied_only', 'granted_only', 'none'])\n .describe('Which evaluations to log'),\n\n /** Where to send audit logs */\n destination: z.enum(['system_log', 'audit_trail', 'external'])\n .describe('Audit log destination'),\n\n /** Sampling rate for high-traffic environments (0-1) */\n sampleRate: z.number()\n .min(0)\n .max(1)\n .describe('Sampling rate (0-1) for high-traffic environments'),\n\n /** Number of days to retain audit logs */\n retentionDays: z.number()\n .int()\n .default(90)\n .describe('Audit log retention period in days'),\n\n /** Whether to include row data in audit logs (security-sensitive) */\n includeRowData: z.boolean()\n .default(false)\n .describe('Include row data in audit logs (security-sensitive)'),\n\n /** Alert when access is denied */\n alertOnDenied: z.boolean()\n .default(true)\n .describe('Send alerts when access is denied'),\n}));\n\nexport type RLSAuditConfig = z.infer<typeof RLSAuditConfigSchema>;\n\n/**\n * RLS Configuration Schema\n * \n * Global configuration for the Row-Level Security system.\n * Defines how RLS is enforced across the entire platform.\n */\nexport const RLSConfigSchema = lazySchema(() => z.object({\n /**\n * Global RLS enable/disable flag.\n * When false, all RLS policies are ignored (use with caution!).\n * \n * @default true\n */\n enabled: z.boolean()\n .default(true)\n .describe('Enable RLS enforcement globally'),\n\n /**\n * Default behavior when no policies match.\n * \n * - **deny**: Deny access (secure default)\n * - **allow**: Allow access (permissive mode, not recommended)\n * \n * @default \"deny\"\n */\n defaultPolicy: z.enum(['deny', 'allow'])\n .default('deny')\n .describe('Default action when no policies match'),\n\n /**\n * Whether to allow superusers to bypass RLS.\n * Superusers include system administrators and service accounts.\n * \n * @default true\n */\n allowSuperuserBypass: z.boolean()\n .default(true)\n .describe('Allow superusers to bypass RLS'),\n\n /**\n * List of roles that can bypass RLS.\n * Users with these roles see all records regardless of policies.\n * \n * @example [\"system_admin\", \"data_auditor\"]\n */\n bypassRoles: z.array(z.string())\n .optional()\n .describe('Roles that bypass RLS (see all data)'),\n\n /**\n * Whether to log RLS policy evaluations.\n * Useful for debugging and auditing.\n * Can impact performance if enabled globally.\n * \n * @default false\n */\n logEvaluations: z.boolean()\n .default(false)\n .describe('Log RLS policy evaluations for debugging'),\n\n /**\n * Cache RLS policy evaluation results.\n * Can improve performance for frequently accessed records.\n * Cache is invalidated when policies change or user context changes.\n * \n * @default true\n */\n cacheResults: z.boolean()\n .default(true)\n .describe('Cache RLS evaluation results'),\n\n /**\n * Cache TTL in seconds.\n * How long to cache RLS evaluation results.\n * \n * @default 300 (5 minutes)\n */\n cacheTtlSeconds: z.number()\n .int()\n .positive()\n .default(300)\n .describe('Cache TTL in seconds'),\n\n /**\n * Performance optimization: Pre-fetch user context.\n * Load user context once per request instead of per-query.\n * \n * @default true\n */\n prefetchUserContext: z.boolean()\n .default(true)\n .describe('Pre-fetch user context for performance'),\n\n /**\n * Audit logging configuration for RLS evaluations.\n */\n audit: RLSAuditConfigSchema\n .optional()\n .describe('RLS audit logging configuration'),\n}));\n\n/**\n * User Context Schema\n * \n * Represents the current user's context for RLS evaluation.\n * This data is used to evaluate USING and CHECK clauses.\n */\nexport const RLSUserContextSchema = lazySchema(() => z.object({\n /**\n * User ID\n */\n id: z.string()\n .describe('User ID'),\n\n /**\n * User email\n */\n email: z.string()\n .email()\n .optional()\n .describe('User email'),\n\n /**\n * Tenant/Organization ID\n */\n tenantId: z.string()\n .optional()\n .describe('Tenant/Organization ID'),\n\n /**\n * User role(s)\n */\n role: z.union([\n z.string(),\n z.array(z.string()),\n ])\n .optional()\n .describe('User role(s)'),\n\n /**\n * User department\n */\n department: z.string()\n .optional()\n .describe('User department'),\n\n /**\n * Additional custom attributes\n * Can include any custom user fields for RLS evaluation\n */\n attributes: z.record(z.string(), z.unknown())\n .optional()\n .describe('Additional custom user attributes'),\n}));\n\n/**\n * RLS Policy Evaluation Result\n * \n * Result of evaluating an RLS policy for a specific record.\n * Used for debugging and audit logging.\n */\nexport const RLSEvaluationResultSchema = lazySchema(() => z.object({\n /**\n * Policy name that was evaluated\n */\n policyName: z.string()\n .describe('Policy name'),\n\n /**\n * Whether access was granted\n */\n granted: z.boolean()\n .describe('Whether access was granted'),\n\n /**\n * Evaluation duration in milliseconds\n */\n durationMs: z.number()\n .optional()\n .describe('Evaluation duration in milliseconds'),\n\n /**\n * Error message if evaluation failed\n */\n error: z.string()\n .optional()\n .describe('Error message if evaluation failed'),\n\n /**\n * Evaluated USING clause result\n */\n usingResult: z.boolean()\n .optional()\n .describe('USING clause evaluation result'),\n\n /**\n * Evaluated CHECK clause result (for INSERT/UPDATE)\n */\n checkResult: z.boolean()\n .optional()\n .describe('CHECK clause evaluation result'),\n}));\n\n/**\n * Type exports\n */\nexport type RowLevelSecurityPolicy = z.infer<typeof RowLevelSecurityPolicySchema>;\nexport type RLSConfig = z.infer<typeof RLSConfigSchema>;\nexport type RLSUserContext = z.infer<typeof RLSUserContextSchema>;\nexport type RLSEvaluationResult = z.infer<typeof RLSEvaluationResultSchema>;\n\n/**\n * Helper factory for creating RLS policies\n */\nexport const RLS = {\n /**\n * Create a simple owner-based policy\n */\n ownerPolicy: (object: string, ownerField: string = 'owner_id'): RowLevelSecurityPolicy => ({\n name: `${object}_owner_access`,\n label: `Owner Access for ${object}`,\n object,\n operation: 'all',\n using: `${ownerField} = current_user.id`,\n enabled: true,\n priority: 0,\n }),\n\n /**\n * Create a tenant isolation policy.\n *\n * The default `tenantField` is `organization_id` to match better-auth's\n * organization plugin and the canonical platform schema. The\n * `current_user.organization_id` placeholder is resolved by\n * `RLSCompiler` from `ExecutionContext.tenantId` at request time.\n * Pass a custom field name if your schema uses a different column.\n */\n tenantPolicy: (object: string, tenantField: string = 'organization_id'): RowLevelSecurityPolicy => ({\n name: `${object}_tenant_isolation`,\n label: `Tenant Isolation for ${object}`,\n object,\n operation: 'all',\n using: `${tenantField} = current_user.organization_id`,\n check: `${tenantField} = current_user.organization_id`,\n enabled: true,\n priority: 0,\n }),\n\n /**\n * Create a role-based policy\n */\n rolePolicy: (object: string, roles: string[], condition: string): RowLevelSecurityPolicy => ({\n name: `${object}_${roles.join('_')}_access`,\n label: `${roles.join(', ')} Access for ${object}`,\n object,\n operation: 'select',\n using: condition,\n roles,\n enabled: true,\n priority: 0,\n }),\n\n /**\n * Create a permissive policy (allow all for specific roles)\n */\n allowAllPolicy: (object: string, roles: string[]): RowLevelSecurityPolicy => ({\n name: `${object}_${roles.join('_')}_full_access`,\n label: `Full Access for ${roles.join(', ')}`,\n object,\n operation: 'all',\n using: '1 = 1', // Always true\n roles,\n enabled: true,\n priority: 0,\n }),\n} as const;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\nimport { RowLevelSecurityPolicySchema } from './rls.zod';\n\n/**\n * Entity (Object) Level Permissions\n * Defines CRUD + VAMA (View All / Modify All) + Lifecycle access.\n * \n * Refined with enterprise data lifecycle controls:\n * - Transfer (Ownership change)\n * - Restore (Soft delete recovery)\n * - Purge (Hard delete / Compliance)\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const ObjectPermissionSchema = lazySchema(() => z.object({\n /** C: Create */\n allowCreate: z.boolean().default(false).describe('Create permission'),\n /** R: Read (Owned records or Shared records) */\n allowRead: z.boolean().default(false).describe('Read permission'),\n /** U: Edit (Owned records or Shared records) */\n allowEdit: z.boolean().default(false).describe('Edit permission'),\n /** D: Delete (Owned records or Shared records) */\n allowDelete: z.boolean().default(false).describe('Delete permission'),\n \n /** Lifecycle Operations */\n allowTransfer: z.boolean().default(false).describe('Change record ownership'),\n allowRestore: z.boolean().default(false).describe('Restore from trash (Undelete)'),\n allowPurge: z.boolean().default(false).describe('Permanently delete (Hard Delete/GDPR)'),\n\n /** \n * View All Records: Super-user read access. \n * Bypasses Sharing Rules and Ownership checks.\n * Equivalent to Microsoft Dataverse \"Organization\" level read access.\n */\n viewAllRecords: z.boolean().default(false).describe('View All Data (Bypass Sharing)'),\n \n /** \n * Modify All Records: Super-user write access. \n * Bypasses Sharing Rules and Ownership checks.\n * Equivalent to Microsoft Dataverse \"Organization\" level write access.\n */\n modifyAllRecords: z.boolean().default(false).describe('Modify All Data (Bypass Sharing)'),\n}));\n\n/**\n * Field Level Security (FLS)\n */\nexport const FieldPermissionSchema = lazySchema(() => z.object({\n /** Can see this field */\n readable: z.boolean().default(true).describe('Field read access'),\n /** Can edit this field */\n editable: z.boolean().default(false).describe('Field edit access'),\n}));\n\n/**\n * Permission Set Schema\n * Defines a collection of permissions that can be assigned to users.\n * \n * DIFFERENTIATION:\n * - Profile: The ONE primary functional definition of a user (e.g. Standard User).\n * - Permission Set: Add-on capabilities assigned to users (e.g. Export Reports).\n * - Role: (Defined in src/system/role.zod.ts) Defines data visibility hierarchy.\n * \n * **NAMING CONVENTION:**\n * Permission set names MUST be lowercase snake_case to prevent security issues.\n * \n * @example Good permission set names\n * - 'read_only'\n * - 'system_admin'\n * - 'standard_user'\n * - 'api_access'\n * \n * @example Bad permission set names (will be rejected)\n * - 'ReadOnly' (camelCase)\n * - 'SystemAdmin' (mixed case)\n * - 'Read Only' (spaces)\n */\nexport const PermissionSetSchema = lazySchema(() => z.object({\n /** Unique permission set name */\n name: SnakeCaseIdentifierSchema.describe('Permission set unique name (lowercase snake_case)'),\n \n /** Display label */\n label: z.string().optional().describe('Display label'),\n \n /** Is this a Profile? (Base set for a user) */\n isProfile: z.boolean().default(false).describe('Whether this is a user profile'),\n \n /** Object Permissions Map: <entity_name> -> permissions */\n objects: z.record(z.string(), ObjectPermissionSchema).describe('Entity permissions'),\n \n /** Field Permissions Map: <entity_name>.<field_name> -> permissions */\n fields: z.record(z.string(), FieldPermissionSchema).optional().describe('Field level security'),\n \n /** System permissions (e.g., \"manage_users\") */\n systemPermissions: z.array(z.string()).optional().describe('System level capabilities'),\n \n /**\n * Tab/App Visibility Permissions (Salesforce Pattern)\n * Controls which app tabs are visible, hidden, or set as default for this permission set.\n * \n * @example\n * ```typescript\n * tabPermissions: {\n * 'app_crm': 'visible',\n * 'app_admin': 'hidden',\n * 'app_sales': 'default_on'\n * }\n * ```\n */\n tabPermissions: z.record(z.string(), z.enum(['visible', 'hidden', 'default_on', 'default_off'])).optional()\n .describe('App/tab visibility: visible, hidden, default_on (shown by default), default_off (available but hidden initially)'),\n \n /** \n * Row-Level Security Rules\n * \n * Row-level security policies that filter records based on user context.\n * These rules are applied in addition to object-level permissions.\n * \n * Uses the canonical RLS protocol from rls.zod.ts for comprehensive\n * row-level security features including PostgreSQL-style USING and CHECK clauses.\n * \n * @see {@link RowLevelSecurityPolicySchema} for full RLS specification\n * @see {@link file://./rls.zod.ts} for comprehensive RLS documentation\n * \n * @example Multi-tenant isolation\n * ```typescript\n * rls: [{\n * name: 'tenant_filter',\n * object: 'account',\n * operation: 'select',\n * using: 'organization_id = current_user.organization_id'\n * }]\n * ```\n */\n rowLevelSecurity: z.array(RowLevelSecurityPolicySchema).optional()\n .describe('Row-level security policies (see rls.zod.ts for full spec)'),\n \n /**\n * Context-Based Access Control Variables\n * \n * Custom context variables that can be referenced in RLS rules.\n * These variables are evaluated at runtime based on the user's session.\n * \n * Common context variables:\n * - `current_user.id` - Current user ID\n * - `current_user.organization_id` - Active organization id\n * - `current_user.department` - User's department\n * - `current_user.role` - User's role\n * - `current_user.region` - User's geographic region\n * \n * @example Custom context\n * ```typescript\n * contextVariables: {\n * allowed_regions: ['US', 'EU'],\n * access_level: 2,\n * custom_attribute: 'value'\n * }\n * ```\n */\n contextVariables: z.record(z.string(), z.unknown()).optional().describe('Context variables for RLS evaluation'),\n}));\n\nexport type PermissionSet = z.infer<typeof PermissionSetSchema>;\nexport type ObjectPermission = z.infer<typeof ObjectPermissionSchema>;\nexport type FieldPermission = z.infer<typeof FieldPermissionSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * # Expression Protocol\n *\n * Canonical wire format for all \"expression\"-shaped metadata across ObjectStack\n * (formula fields, predicates, conditions, criteria, visibility rules, seed\n * dynamic values, …).\n *\n * The persisted form is `{ dialect, source }` (and, after `objectstack\n * compile` normalization, `{ dialect, ast }`). String-only shorthand is\n * accepted at *input* time for developer ergonomics; build emits the canonical\n * envelope.\n *\n * ## Dialects\n *\n * | dialect | engine | use |\n * |:---|:---|:---|\n * | `cel` | `@objectstack/formula` (cel-js + ObjectStack stdlib) | formulas, predicates, seed dynamic values |\n * | `js` | sandboxed L2 hook bodies (`isolated-vm` / `quickjs`) | mapping, hook bodies |\n * | `cron` | `cron-parser` | job schedules |\n *\n * SQL fragments (analytics joins, partial indexes) are intentionally **not**\n * routed through this schema — they stay driver-native because their security\n * posture and portability story differ.\n *\n * @see content/docs/concepts/north-star.mdx §8 \"No private expression DSL\"\n */\n\n/** Supported expression dialects. */\nexport const ExpressionDialect = z.enum(['cel', 'js', 'cron', 'template']);\nexport type ExpressionDialect = z.infer<typeof ExpressionDialect>;\n\n/**\n * Authorship metadata for an expression. Optional but encouraged for AI-\n * generated artifacts so audit/explanation tooling has something to render.\n */\nexport const ExpressionMetaSchema = z.object({\n /** Human-readable rationale (often AI-emitted). */\n rationale: z.string().optional(),\n /** Identifier of the agent / tool that produced this expression. */\n generatedBy: z.string().optional(),\n});\nexport type ExpressionMeta = z.infer<typeof ExpressionMetaSchema>;\n\n/**\n * Canonical Expression envelope.\n *\n * Phase 1 (M9.1): `source` is the canonical persisted form. `ast` is reserved\n * and accepted as opaque structured value — `objectstack compile` will fill it\n * in M9.2 with the engine's parsed AST so the artifact carries an AST-only\n * representation.\n *\n * Phase 2 (M9.2+): `ast` becomes required in build output; `source` is kept\n * only for round-trip / debug.\n */\nexport const ExpressionSchema = z.object({\n /** Which engine evaluates `source` / `ast`. */\n dialect: ExpressionDialect,\n /** Surface syntax. Required while `ast` is not yet populated. */\n source: z.string().min(1).optional(),\n /**\n * Engine-native AST. Opaque at the spec layer; each engine validates its own\n * shape. For `dialect: 'cel'` this is the cel-js parsed AST node.\n */\n ast: z.unknown().optional(),\n /** Optional authorship metadata. */\n meta: ExpressionMetaSchema.optional(),\n}).refine(e => e.source !== undefined || e.ast !== undefined, {\n message: 'Expression requires at least one of `source` or `ast`',\n});\nexport type Expression = z.infer<typeof ExpressionSchema>;\n\n/**\n * Author-time input shape: a bare string is shorthand for `{ dialect: 'cel',\n * source }`. Engines that need other dialects must use the full envelope.\n *\n * Build (`objectstack compile`) normalizes this union to `Expression` so the\n * persisted artifact never contains the bare-string form.\n */\nexport const ExpressionInputSchema = z.union([\n z.string().min(1).transform((source): Expression => ({ dialect: 'cel', source })),\n ExpressionSchema,\n]);\nexport type ExpressionInput = z.input<typeof ExpressionInputSchema>;\n\n/**\n * Cron-typed input shape: a bare string is shorthand for `{ dialect: 'cron',\n * source }` (not `cel`). Use this for `schedule` / `cronExpression` fields so\n * authors can write `'0 9 * * 1-5'` without manually wrapping.\n */\nexport const CronExpressionInputSchema = z.union([\n z.string().min(1).transform((source): Expression => ({ dialect: 'cron', source })),\n ExpressionSchema,\n]);\nexport type CronExpressionInput = z.input<typeof CronExpressionInputSchema>;\n\n/**\n * Template-typed input shape: a bare string is shorthand for\n * `{ dialect: 'template', source }`. Use this for notification subjects/bodies,\n * titleFormat, prompt templates — anything with `{{var}}` interpolation.\n */\nexport const TemplateExpressionInputSchema = z.union([\n z.string().min(1).transform((source): Expression => ({ dialect: 'template', source })),\n ExpressionSchema,\n]);\nexport type TemplateExpressionInput = z.input<typeof TemplateExpressionInputSchema>;\n\n/**\n * Predicate — an Expression whose evaluation is expected to be boolean.\n * Spec layer cannot enforce return type at parse time; this alias exists for\n * intent documentation and future runtime type-check wiring.\n */\nexport const PredicateSchema = ExpressionSchema;\nexport type Predicate = z.infer<typeof PredicateSchema>;\n\nexport const PredicateInputSchema = ExpressionInputSchema;\nexport type PredicateInput = z.input<typeof PredicateInputSchema>;\n\n/**\n * Construct an Expression literal from a CEL source string. Used by DX\n * shorthand (`cel\\`...\\``) and by codegen tools.\n */\nexport function expression(source: string, dialect: ExpressionDialect = 'cel', meta?: ExpressionMeta): Expression {\n return { dialect, source, ...(meta ? { meta } : {}) };\n}\n\n/**\n * Tagged-template helpers for inline expression authoring.\n *\n * ```ts\n * import { cel, F, P } from '@objectstack/spec';\n *\n * const f = { formula: F`record.amount * 0.1` };\n * const v = { visible: P`record.status == \"open\"` };\n * const d = { close_date: cel`now() + duration(\"P30D\")` };\n * ```\n *\n * Each helper produces an {@link Expression} envelope with `dialect: 'cel'`\n * and the rendered template string as `source`. The CLI `objectstack compile`\n * step (M9.2) parses these into ASTs at build time so the persisted artifact\n * is dialect-AST only.\n */\nfunction renderTemplate(strings: TemplateStringsArray, values: readonly unknown[]): string {\n if (values.length === 0) return strings[0] ?? '';\n let out = strings[0] ?? '';\n for (let i = 0; i < values.length; i++) {\n const v = values[i];\n // Inline literal substitution. Strings get JSON-escaped so `${name}` for\n // `name = 'O\\'Brien'` produces a valid CEL string literal. Numbers and\n // booleans render as their toString. Anything exotic should be passed via\n // the variable scope (record/input) rather than interpolated.\n if (typeof v === 'string') out += JSON.stringify(v);\n else if (typeof v === 'number' || typeof v === 'boolean') out += String(v);\n else if (v === null || v === undefined) out += 'null';\n else out += JSON.stringify(v);\n out += strings[i + 1] ?? '';\n }\n return out;\n}\n\n/** Tagged template — produces a CEL Expression envelope. */\nexport function cel(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n return { dialect: 'cel', source: renderTemplate(strings, values) };\n}\n\n/** Formula alias of {@link cel} — semantic shorthand for computed-field formulas. */\nexport const F = cel;\n\n/** Predicate alias of {@link cel} — semantic shorthand for boolean conditions. */\nexport const P = cel;\n\n/**\n * Tagged template — produces a Mustache-template Expression envelope. Use for\n * notification subjects, prompt bodies, titleFormat strings, etc. Variable\n * scope is the same as CEL (`{{record.x}}`, `{{os.user.id}}`).\n */\nexport function tmpl(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n // Templates do not get JSON.stringify on substitution — interpolation happens\n // at evaluate time via `{{path}}` markers, so we keep raw substitutions here.\n let out = strings[0] ?? '';\n for (let i = 0; i < values.length; i++) {\n out += String(values[i]);\n out += strings[i + 1] ?? '';\n }\n return { dialect: 'template', source: out };\n}\n\n/** Tagged template — produces a cron Expression envelope. */\nexport function cron(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n let out = strings[0] ?? '';\n for (let i = 0; i < values.length; i++) {\n out += String(values[i]);\n out += strings[i + 1] ?? '';\n }\n return { dialect: 'cron', source: out };\n}\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * I18n Object Schema\n * Structured internationalization label with translation key and parameters.\n * \n * @example\n * ```typescript\n * const label: I18nObject = {\n * key: 'views.task_list.label',\n * defaultValue: 'Task List',\n * params: { count: 5 },\n * };\n * ```\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const I18nObjectSchema = lazySchema(() => z.object({\n /** Translation key (e.g., \"views.task_list.label\", \"apps.crm.description\") */\n key: z.string().describe('Translation key (e.g., \"views.task_list.label\")'),\n\n /** Default value when translation is not available */\n defaultValue: z.string().optional().describe('Fallback value when translation key is not found'),\n\n /** Interpolation parameters for dynamic translations */\n params: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).optional().describe('Interpolation parameters (e.g., { count: 5 })'),\n}));\n\nexport type I18nObject = z.infer<typeof I18nObjectSchema>;\n\n/**\n * I18n Label Schema\n * \n * A plain string label for display purposes.\n * i18n translation keys are auto-generated by the framework at registration time\n * based on a standardized naming convention (e.g., `apps.<packageId>.<name>.label`).\n * Developers only need to provide the default-language string; translations are\n * managed through translation files, not inline i18n objects.\n * \n * @example\n * ```typescript\n * const label: I18nLabel = \"All Active\";\n * ```\n */\nexport const I18nLabelSchema = lazySchema(() => z.string().describe('Display label (plain string; i18n keys are auto-generated by the framework)'));\n\nexport type I18nLabel = z.infer<typeof I18nLabelSchema>;\n\n/**\n * ARIA Accessibility Properties Schema\n * \n * Common ARIA attributes for UI components to support screen readers\n * and assistive technologies.\n * \n * Aligned with WAI-ARIA 1.2 specification.\n * \n * @see https://www.w3.org/TR/wai-aria-1.2/\n * \n * @example\n * ```typescript\n * const aria: AriaProps = {\n * ariaLabel: 'Close dialog',\n * ariaDescribedBy: 'dialog-description',\n * role: 'dialog',\n * };\n * ```\n */\nexport const AriaPropsSchema = lazySchema(() => z.object({\n /** Accessible label for screen readers */\n ariaLabel: I18nLabelSchema.optional().describe('Accessible label for screen readers (WAI-ARIA aria-label)'),\n\n /** ID of element that describes this component */\n ariaDescribedBy: z.string().optional().describe('ID of element providing additional description (WAI-ARIA aria-describedby)'),\n\n /** WAI-ARIA role override */\n role: z.string().optional().describe('WAI-ARIA role attribute (e.g., \"dialog\", \"navigation\", \"alert\")'),\n}).describe('ARIA accessibility attributes'));\n\nexport type AriaProps = z.infer<typeof AriaPropsSchema>;\n\n/**\n * Plural Rule Schema\n *\n * Defines plural forms for a translation key, following ICU MessageFormat / i18next conventions.\n * Supports zero, one, two, few, many, other forms per CLDR plural rules.\n *\n * @see https://unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules\n *\n * @example\n * ```typescript\n * const plural: PluralRule = {\n * key: 'items.count',\n * zero: 'No items',\n * one: '{count} item',\n * other: '{count} items',\n * };\n * ```\n */\nexport const PluralRuleSchema = lazySchema(() => z.object({\n /** Translation key for the plural form */\n key: z.string().describe('Translation key'),\n /** Form for zero quantity */\n zero: z.string().optional().describe('Zero form (e.g., \"No items\")'),\n /** Form for singular (1) */\n one: z.string().optional().describe('Singular form (e.g., \"{count} item\")'),\n /** Form for dual (2) — used in Arabic, Welsh, etc. */\n two: z.string().optional().describe('Dual form (e.g., \"{count} items\" for exactly 2)'),\n /** Form for few (2-4 in Slavic languages) */\n few: z.string().optional().describe('Few form (e.g., for 2-4 in some languages)'),\n /** Form for many (5+ in Slavic languages) */\n many: z.string().optional().describe('Many form (e.g., for 5+ in some languages)'),\n /** Default/fallback form */\n other: z.string().describe('Default plural form (e.g., \"{count} items\")'),\n}).describe('ICU plural rules for a translation key'));\n\nexport type PluralRule = z.infer<typeof PluralRuleSchema>;\n\n/**\n * Number Format Schema\n *\n * Defines number formatting rules for localization.\n *\n * @example\n * ```typescript\n * const format: NumberFormat = {\n * style: 'currency',\n * currency: 'USD',\n * minimumFractionDigits: 2,\n * };\n * ```\n */\nexport const NumberFormatSchema = lazySchema(() => z.object({\n style: z.enum(['decimal', 'currency', 'percent', 'unit']).default('decimal')\n .describe('Number formatting style'),\n currency: z.string().optional().describe('ISO 4217 currency code (e.g., \"USD\", \"EUR\")'),\n unit: z.string().optional().describe('Unit for unit formatting (e.g., \"kilometer\", \"liter\")'),\n minimumFractionDigits: z.number().optional().describe('Minimum number of fraction digits'),\n maximumFractionDigits: z.number().optional().describe('Maximum number of fraction digits'),\n useGrouping: z.boolean().optional().describe('Whether to use grouping separators (e.g., 1,000)'),\n}).describe('Number formatting rules'));\n\nexport type NumberFormat = z.infer<typeof NumberFormatSchema>;\n\n/**\n * Date Format Schema\n *\n * Defines date/time formatting rules for localization.\n *\n * @example\n * ```typescript\n * const format: DateFormat = {\n * dateStyle: 'medium',\n * timeStyle: 'short',\n * timeZone: 'America/New_York',\n * };\n * ```\n */\nexport const DateFormatSchema = lazySchema(() => z.object({\n dateStyle: z.enum(['full', 'long', 'medium', 'short']).optional()\n .describe('Date display style'),\n timeStyle: z.enum(['full', 'long', 'medium', 'short']).optional()\n .describe('Time display style'),\n timeZone: z.string().optional().describe('IANA time zone (e.g., \"America/New_York\")'),\n hour12: z.boolean().optional().describe('Use 12-hour format'),\n}).describe('Date/time formatting rules'));\n\nexport type DateFormat = z.infer<typeof DateFormatSchema>;\n\n/**\n * Locale Configuration Schema\n *\n * Defines a complete locale configuration including language code,\n * fallback chain, and formatting preferences.\n *\n * @example\n * ```typescript\n * const locale: LocaleConfig = {\n * code: 'zh-CN',\n * fallbackChain: ['zh-TW', 'en'],\n * direction: 'ltr',\n * numberFormat: { style: 'decimal', useGrouping: true },\n * dateFormat: { dateStyle: 'medium', timeStyle: 'short' },\n * };\n * ```\n */\nexport const LocaleConfigSchema = lazySchema(() => z.object({\n /** BCP 47 language code (e.g., \"en-US\", \"zh-CN\", \"ar-SA\") */\n code: z.string().describe('BCP 47 language code (e.g., \"en-US\", \"zh-CN\")'),\n\n /** Ordered fallback chain for missing translations */\n fallbackChain: z.array(z.string()).optional()\n .describe('Fallback language codes in priority order (e.g., [\"zh-TW\", \"en\"])'),\n\n /** Text direction */\n direction: z.enum(['ltr', 'rtl']).default('ltr')\n .describe('Text direction: left-to-right or right-to-left'),\n\n /** Default number formatting */\n numberFormat: NumberFormatSchema.optional().describe('Default number formatting rules'),\n\n /** Default date formatting */\n dateFormat: DateFormatSchema.optional().describe('Default date/time formatting rules'),\n}).describe('Locale configuration'));\n\nexport type LocaleConfig = z.infer<typeof LocaleConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\n/**\n * @module ui/sharing\n *\n * Sharing & Embedding Protocol\n *\n * Defines schemas for public link sharing, embed configuration,\n * domain restrictions, and password protection for apps, pages, and forms.\n */\n\nimport { z } from 'zod';\n\n/**\n * Sharing Config Schema\n * Configuration for public sharing of an app, page, or form.\n * Supports public links, password protection, domain restrictions, and expiration.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const SharingConfigSchema = lazySchema(() => z.object({\n enabled: z.boolean().default(false).describe('Enable public sharing'),\n publicLink: z.string().optional().describe('Generated public share URL'),\n password: z.string().optional().describe('Password required to access shared link'),\n allowedDomains: z.array(z.string()).optional()\n .describe('Restrict access to specific email domains (e.g. [\"example.com\"])'),\n expiresAt: z.string().optional()\n .describe('Expiration date/time in ISO 8601 format'),\n allowAnonymous: z.boolean().optional().default(false)\n .describe('Allow access without authentication'),\n}));\n\n/**\n * Embed Config Schema\n * Configuration for iframe embedding of an app, page, or form.\n * Supports origin restrictions, display options, and responsive sizing.\n */\nexport const EmbedConfigSchema = lazySchema(() => z.object({\n enabled: z.boolean().default(false).describe('Enable iframe embedding'),\n allowedOrigins: z.array(z.string()).optional()\n .describe('Allowed iframe parent origins (e.g. [\"https://example.com\"])'),\n width: z.string().optional().default('100%').describe('Embed width (CSS value)'),\n height: z.string().optional().default('600px').describe('Embed height (CSS value)'),\n showHeader: z.boolean().optional().default(true).describe('Show interface header in embed'),\n showNavigation: z.boolean().optional().default(false).describe('Show navigation in embed'),\n responsive: z.boolean().optional().default(true).describe('Enable responsive resizing'),\n}));\n\n// Type Exports\nexport type SharingConfig = z.infer<typeof SharingConfigSchema>;\nexport type EmbedConfig = z.infer<typeof EmbedConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Breakpoint Name Enum\n * Matches the breakpoint names defined in theme.zod.ts BreakpointsSchema.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const BreakpointName = z.enum(['xs', 'sm', 'md', 'lg', 'xl', '2xl']);\n\nexport type BreakpointName = z.infer<typeof BreakpointName>;\n\n/**\n * Responsive Configuration Schema\n *\n * Provides responsive layout configuration for UI components.\n * Maps breakpoint names to layout behavior (columns, visibility, order).\n *\n * Aligned with theme.zod.ts BreakpointsSchema for a unified responsive system.\n *\n * @example\n * ```typescript\n * const config: ResponsiveConfig = {\n * columns: { xs: 12, sm: 6, lg: 4 },\n * hiddenOn: ['xs'],\n * order: { xs: 2, lg: 1 },\n * };\n * ```\n */\n/**\n * Breakpoint Column Map Schema\n * Maps breakpoint names to grid column counts (1-12).\n * All entries are optional — only specified breakpoints are configured.\n */\nexport const BreakpointColumnMapSchema = lazySchema(() => z.object({\n xs: z.number().min(1).max(12).optional(),\n sm: z.number().min(1).max(12).optional(),\n md: z.number().min(1).max(12).optional(),\n lg: z.number().min(1).max(12).optional(),\n xl: z.number().min(1).max(12).optional(),\n '2xl': z.number().min(1).max(12).optional(),\n}).describe('Grid columns per breakpoint (1-12)'));\n\n/**\n * Breakpoint Order Map Schema\n * Maps breakpoint names to display order numbers.\n * All entries are optional — only specified breakpoints are configured.\n */\nexport const BreakpointOrderMapSchema = lazySchema(() => z.object({\n xs: z.number().optional(),\n sm: z.number().optional(),\n md: z.number().optional(),\n lg: z.number().optional(),\n xl: z.number().optional(),\n '2xl': z.number().optional(),\n}).describe('Display order per breakpoint'));\n\nexport const ResponsiveConfigSchema = lazySchema(() => z.object({\n /** Minimum breakpoint for visibility */\n breakpoint: BreakpointName.optional()\n .describe('Minimum breakpoint for visibility'),\n\n /** Hide on specific breakpoints */\n hiddenOn: z.array(BreakpointName).optional()\n .describe('Hide on these breakpoints'),\n\n /** Grid columns per breakpoint (1-12 column grid) */\n columns: BreakpointColumnMapSchema.optional().describe('Grid columns per breakpoint'),\n\n /** Display order per breakpoint */\n order: BreakpointOrderMapSchema.optional().describe('Display order per breakpoint'),\n}).describe('Responsive layout configuration'));\n\nexport type ResponsiveConfig = z.infer<typeof ResponsiveConfigSchema>;\n\n/**\n * Performance Configuration Schema\n *\n * Defines performance optimization settings for UI components\n * such as lazy loading, virtual scrolling, and caching.\n *\n * @example\n * ```typescript\n * const perf: PerformanceConfig = {\n * lazyLoad: true,\n * virtualScroll: { enabled: true, itemHeight: 40, overscan: 5 },\n * cacheStrategy: 'stale-while-revalidate',\n * prefetch: true,\n * };\n * ```\n */\nexport const PerformanceConfigSchema = lazySchema(() => z.object({\n /** Enable lazy loading for this component */\n lazyLoad: z.boolean().optional()\n .describe('Enable lazy loading (defer rendering until visible)'),\n\n /** Virtual scrolling configuration for large datasets */\n virtualScroll: z.object({\n enabled: z.boolean().default(false).describe('Enable virtual scrolling'),\n itemHeight: z.number().optional().describe('Fixed item height in pixels (for estimation)'),\n overscan: z.number().optional().describe('Number of extra items to render outside viewport'),\n }).optional().describe('Virtual scrolling configuration'),\n\n /** Client-side caching strategy */\n cacheStrategy: z.enum([\n 'none',\n 'cache-first',\n 'network-first',\n 'stale-while-revalidate',\n ]).optional().describe('Client-side data caching strategy'),\n\n /** Enable data prefetching */\n prefetch: z.boolean().optional()\n .describe('Prefetch data before component is visible'),\n\n /** Maximum number of items to render before pagination */\n pageSize: z.number().optional()\n .describe('Number of items per page for pagination'),\n\n /** Debounce interval for user interactions (ms) */\n debounceMs: z.number().optional()\n .describe('Debounce interval for user interactions in milliseconds'),\n}).describe('Performance optimization configuration'));\n\nexport type PerformanceConfig = z.infer<typeof PerformanceConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Field-level encryption protocol\n * GDPR/HIPAA/PCI-DSS compliant\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const EncryptionAlgorithmSchema = lazySchema(() => z.enum([\n 'aes-256-gcm',\n 'aes-256-cbc',\n 'chacha20-poly1305',\n]).describe('Supported encryption algorithm'));\n\nexport type EncryptionAlgorithm = z.infer<typeof EncryptionAlgorithmSchema>;\n\nexport const KeyManagementProviderSchema = lazySchema(() => z.enum([\n 'local',\n 'aws-kms',\n 'azure-key-vault',\n 'gcp-kms',\n 'hashicorp-vault',\n]).describe('Key management service provider'));\n\nexport type KeyManagementProvider = z.infer<typeof KeyManagementProviderSchema>;\n\nexport const KeyRotationPolicySchema = lazySchema(() => z.object({\n enabled: z.boolean().default(false).describe('Enable automatic key rotation'),\n frequencyDays: z.number().min(1).default(90).describe('Rotation frequency in days'),\n retainOldVersions: z.number().default(3).describe('Number of old key versions to retain'),\n autoRotate: z.boolean().default(true).describe('Automatically rotate without manual approval'),\n}).describe('Policy for automatic encryption key rotation'));\n\nexport type KeyRotationPolicy = z.infer<typeof KeyRotationPolicySchema>;\nexport type KeyRotationPolicyInput = z.input<typeof KeyRotationPolicySchema>;\n\nexport const EncryptionConfigSchema = lazySchema(() => z.object({\n enabled: z.boolean().default(false).describe('Enable field-level encryption'),\n algorithm: EncryptionAlgorithmSchema.default('aes-256-gcm').describe('Encryption algorithm'),\n keyManagement: z.object({\n provider: KeyManagementProviderSchema.describe('Key management service provider'),\n keyId: z.string().optional().describe('Key identifier in the provider'),\n rotationPolicy: KeyRotationPolicySchema.optional().describe('Key rotation policy'),\n }).describe('Key management configuration'),\n scope: z.enum(['field', 'record', 'table', 'database']).describe('Encryption scope level'),\n deterministicEncryption: z.boolean().default(false).describe('Allows equality queries on encrypted data'),\n searchableEncryption: z.boolean().default(false).describe('Allows search on encrypted data'),\n}).describe('Field-level encryption configuration'));\n\nexport type EncryptionConfig = z.infer<typeof EncryptionConfigSchema>;\nexport type EncryptionConfigInput = z.input<typeof EncryptionConfigSchema>;\n\nexport const FieldEncryptionSchema = lazySchema(() => z.object({\n fieldName: z.string().describe('Name of the field to encrypt'),\n encryptionConfig: EncryptionConfigSchema.describe('Encryption settings for this field'),\n indexable: z.boolean().default(false).describe('Allow indexing on encrypted field'),\n}).describe('Per-field encryption assignment'));\n\nexport type FieldEncryption = z.infer<typeof FieldEncryptionSchema>;\nexport type FieldEncryptionInput = z.input<typeof FieldEncryptionSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Data masking protocol for PII protection\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const MaskingStrategySchema = lazySchema(() => z.enum([\n 'redact', // Complete redaction: ****\n 'partial', // Partial masking: 138****5678\n 'hash', // Hash value: sha256(value)\n 'tokenize', // Tokenization: token-12345\n 'randomize', // Randomize: generate random value\n 'nullify', // Null value: null\n 'substitute', // Substitute with dummy data\n]).describe('Data masking strategy for PII protection'));\n\nexport type MaskingStrategy = z.infer<typeof MaskingStrategySchema>;\n\nexport const MaskingRuleSchema = lazySchema(() => z.object({\n field: z.string().describe('Field name to apply masking to'),\n strategy: MaskingStrategySchema.describe('Masking strategy to use'),\n pattern: z.string().optional().describe('Regex pattern for partial masking'),\n preserveFormat: z.boolean().default(true).describe('Keep the original data format after masking'),\n preserveLength: z.boolean().default(true).describe('Keep the original data length after masking'),\n roles: z.array(z.string()).optional().describe('Roles that see masked data'),\n exemptRoles: z.array(z.string()).optional().describe('Roles that see unmasked data'),\n}).describe('Masking rule for a single field'));\n\nexport type MaskingRule = z.infer<typeof MaskingRuleSchema>;\nexport type MaskingRuleInput = z.input<typeof MaskingRuleSchema>;\n\nexport const MaskingConfigSchema = lazySchema(() => z.object({\n enabled: z.boolean().default(false).describe('Enable data masking'),\n rules: z.array(MaskingRuleSchema).describe('List of field-level masking rules'),\n auditUnmasking: z.boolean().default(true).describe('Log when masked data is accessed unmasked'),\n}).describe('Top-level data masking configuration for PII protection'));\n\nexport type MaskingConfig = z.infer<typeof MaskingConfigSchema>;\nexport type MaskingConfigInput = z.input<typeof MaskingConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SystemIdentifierSchema } from '../shared/identifiers.zod';\nimport { ExpressionInputSchema } from '../shared/expression.zod';\nimport { EncryptionConfigSchema } from '../system/encryption.zod';\nimport { MaskingRuleSchema } from '../system/masking.zod';\n\n/**\n * Field Type Enum\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const FieldType = z.enum([\n // Core Text\n 'text', 'textarea', 'email', 'url', 'phone', 'password',\n // Rich Content\n 'markdown', 'html', 'richtext',\n // Numbers\n 'number', 'currency', 'percent', \n // Date & Time\n 'date', 'datetime', 'time',\n // Logic\n 'boolean', 'toggle', // Toggle is a distinct UI from checkbox\n // Selection\n 'select', // Single select dropdown\n 'multiselect', // Multi select (often tags)\n 'radio', // Radio group\n 'checkboxes', // Checkbox group\n // Relational\n 'lookup', 'master_detail', // Dynamic reference\n 'tree', // Hierarchical reference\n // Media\n 'image', 'file', 'avatar', 'video', 'audio',\n // Calculated / System\n 'formula', 'summary', 'autonumber',\n // Embedded structured values (stored as JSON on the parent row — no separate table / FK)\n 'composite', // Single embedded sub-object with declared sub-fields (≈ Strapi component / ACF group)\n 'repeater', // Repeating embedded sub-object array with declared sub-fields (≈ Strapi repeatable component / ACF repeater)\n // Enhanced Types\n 'location', // GPS coordinates\n 'address', // Structured address\n 'code', // Code editor (JSON/SQL/JS)\n 'json', // Structured JSON data (untyped escape hatch)\n 'color', // Color picker\n 'rating', // Star rating\n 'slider', // Numeric slider\n 'signature', // Digital signature\n 'qrcode', // QR code / Barcode\n 'progress', // Progress bar\n 'tags', // Simple tag list\n // AI/ML Types\n 'vector', // Vector embeddings for AI/ML (semantic search, RAG)\n]);\n\nexport type FieldType = z.infer<typeof FieldType>;\n\n/**\n * Select Option Schema\n * \n * Defines option values for select/picklist fields.\n * \n * **CRITICAL RULE**: The `value` field is a machine identifier that gets stored in the database.\n * It MUST be lowercase to avoid case-sensitivity issues in queries and comparisons.\n * \n * @example Good\n * { label: 'New', value: 'new' }\n * { label: 'In Progress', value: 'in_progress' }\n * { label: 'Closed Won', value: 'closed_won' }\n * \n * @example Bad (will be rejected)\n * { label: 'New', value: 'New' } // uppercase\n * { label: 'In Progress', value: 'In Progress' } // spaces and uppercase\n * { label: 'Closed Won', value: 'Closed_Won' } // mixed case\n */\nexport const SelectOptionSchema = lazySchema(() => z.object({\n label: z.string().describe('Display label (human-readable, any case allowed)'),\n value: SystemIdentifierSchema.describe('Stored value (lowercase machine identifier)'),\n color: z.string().optional().describe('Color code for badges/charts'),\n default: z.boolean().optional().describe('Is default option'),\n}));\n\n/**\n * Location Coordinates Schema\n * GPS coordinates for location field type\n */\nexport const LocationCoordinatesSchema = lazySchema(() => z.object({\n latitude: z.number().min(-90).max(90).describe('Latitude coordinate'),\n longitude: z.number().min(-180).max(180).describe('Longitude coordinate'),\n altitude: z.number().optional().describe('Altitude in meters'),\n accuracy: z.number().optional().describe('Accuracy in meters'),\n}));\n\n/**\n * Currency Configuration Schema\n * Configuration for currency field type supporting multi-currency\n * \n * Note: Currency codes are validated by length only (3 characters) to support:\n * - Standard ISO 4217 codes (USD, EUR, CNY, etc.)\n * - Cryptocurrency codes (BTC, ETH, etc.)\n * - Custom business-specific codes\n * Stricter validation can be implemented at the application layer based on business requirements.\n */\nexport const CurrencyConfigSchema = lazySchema(() => z.object({\n precision: z.number().int().min(0).max(10).default(2).describe('Decimal precision (default: 2)'),\n currencyMode: z.enum(['dynamic', 'fixed']).default('dynamic').describe('Currency mode: dynamic (user selectable) or fixed (single currency)'),\n defaultCurrency: z.string().length(3).default('CNY').describe('Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)'),\n}));\n\n/**\n * Currency Value Schema\n * Runtime value structure for currency fields\n * \n * Note: Currency codes are validated by length only (3 characters) to support flexibility.\n * See CurrencyConfigSchema for details on currency code validation strategy.\n */\nexport const CurrencyValueSchema = lazySchema(() => z.object({\n value: z.number().describe('Monetary amount'),\n currency: z.string().length(3).describe('Currency code (ISO 4217)'),\n}));\n\n/**\n * Address Schema\n * Structured address for address field type\n */\nexport const AddressSchema = lazySchema(() => z.object({\n street: z.string().optional().describe('Street address'),\n city: z.string().optional().describe('City name'),\n state: z.string().optional().describe('State/Province'),\n postalCode: z.string().optional().describe('Postal/ZIP code'),\n country: z.string().optional().describe('Country name or code'),\n countryCode: z.string().optional().describe('ISO country code (e.g., US, GB)'),\n formatted: z.string().optional().describe('Formatted address string'),\n}));\n\n/**\n * Vector Configuration Schema\n * Configuration for vector field type supporting AI/ML embeddings\n * \n * Vector fields store numerical embeddings for semantic search, similarity matching,\n * and Retrieval-Augmented Generation (RAG) workflows.\n * \n * @example\n * // Text embeddings for semantic search\n * {\n * dimensions: 1536, // OpenAI text-embedding-ada-002\n * distanceMetric: 'cosine',\n * indexed: true\n * }\n * \n * @example\n * // Image embeddings with normalization\n * {\n * dimensions: 512, // ResNet-50\n * distanceMetric: 'euclidean',\n * normalized: true,\n * indexed: true\n * }\n */\nexport const VectorConfigSchema = lazySchema(() => z.object({\n dimensions: z.number().int().min(1).max(10000).describe('Vector dimensionality (e.g., 1536 for OpenAI embeddings)'),\n distanceMetric: z.enum(['cosine', 'euclidean', 'dotProduct', 'manhattan']).default('cosine').describe('Distance/similarity metric for vector search'),\n normalized: z.boolean().default(false).describe('Whether vectors are normalized (unit length)'),\n indexed: z.boolean().default(true).describe('Whether to create a vector index for fast similarity search'),\n indexType: z.enum(['hnsw', 'ivfflat', 'flat']).optional().describe('Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)'),\n}));\n\n/**\n * File Attachment Configuration Schema\n * Configuration for file and attachment field types\n * \n * Provides comprehensive file upload capabilities with:\n * - File type restrictions (allowed/blocked)\n * - File size limits (min/max)\n * - Virus scanning integration\n * - Storage provider integration\n * - Image-specific features (dimensions, thumbnails)\n * \n * @example Basic file upload with size limit\n * {\n * maxSize: 10485760, // 10MB\n * allowedTypes: ['.pdf', '.docx', '.xlsx'],\n * virusScan: true\n * }\n * \n * @example Image upload with validation\n * {\n * maxSize: 5242880, // 5MB\n * allowedTypes: ['.jpg', '.jpeg', '.png', '.webp'],\n * imageValidation: {\n * maxWidth: 4096,\n * maxHeight: 4096,\n * generateThumbnails: true\n * }\n * }\n */\nexport const FileAttachmentConfigSchema = lazySchema(() => z.object({\n /** File Size Limits */\n minSize: z.number().min(0).optional().describe('Minimum file size in bytes'),\n maxSize: z.number().min(1).optional().describe('Maximum file size in bytes (e.g., 10485760 = 10MB)'),\n \n /** File Type Restrictions */\n allowedTypes: z.array(z.string()).optional().describe('Allowed file extensions (e.g., [\".pdf\", \".docx\", \".jpg\"])'),\n blockedTypes: z.array(z.string()).optional().describe('Blocked file extensions (e.g., [\".exe\", \".bat\", \".sh\"])'),\n allowedMimeTypes: z.array(z.string()).optional().describe('Allowed MIME types (e.g., [\"image/jpeg\", \"application/pdf\"])'),\n blockedMimeTypes: z.array(z.string()).optional().describe('Blocked MIME types'),\n \n /** Virus Scanning */\n virusScan: z.boolean().default(false).describe('Enable virus scanning for uploaded files'),\n virusScanProvider: z.enum(['clamav', 'virustotal', 'metadefender', 'custom']).optional().describe('Virus scanning service provider'),\n virusScanOnUpload: z.boolean().default(true).describe('Scan files immediately on upload'),\n quarantineOnThreat: z.boolean().default(true).describe('Quarantine files if threat detected'),\n \n /** Storage Configuration */\n storageProvider: z.string().optional().describe('Object storage provider name (references ObjectStorageConfig)'),\n storageBucket: z.string().optional().describe('Target bucket name'),\n storagePrefix: z.string().optional().describe('Storage path prefix (e.g., \"uploads/documents/\")'),\n \n /** Image-Specific Validation */\n imageValidation: z.object({\n minWidth: z.number().min(1).optional().describe('Minimum image width in pixels'),\n maxWidth: z.number().min(1).optional().describe('Maximum image width in pixels'),\n minHeight: z.number().min(1).optional().describe('Minimum image height in pixels'),\n maxHeight: z.number().min(1).optional().describe('Maximum image height in pixels'),\n aspectRatio: z.string().optional().describe('Required aspect ratio (e.g., \"16:9\", \"1:1\")'),\n generateThumbnails: z.boolean().default(false).describe('Auto-generate thumbnails'),\n thumbnailSizes: z.array(z.object({\n name: z.string().describe('Thumbnail variant name (e.g., \"small\", \"medium\", \"large\")'),\n width: z.number().min(1).describe('Thumbnail width in pixels'),\n height: z.number().min(1).describe('Thumbnail height in pixels'),\n crop: z.boolean().default(false).describe('Crop to exact dimensions'),\n })).optional().describe('Thumbnail size configurations'),\n preserveMetadata: z.boolean().default(false).describe('Preserve EXIF metadata'),\n autoRotate: z.boolean().default(true).describe('Auto-rotate based on EXIF orientation'),\n }).optional().describe('Image-specific validation rules'),\n \n /** Upload Behavior */\n allowMultiple: z.boolean().default(false).describe('Allow multiple file uploads (overrides field.multiple)'),\n allowReplace: z.boolean().default(true).describe('Allow replacing existing files'),\n allowDelete: z.boolean().default(true).describe('Allow deleting uploaded files'),\n requireUpload: z.boolean().default(false).describe('Require at least one file when field is required'),\n \n /** Metadata Extraction */\n extractMetadata: z.boolean().default(true).describe('Extract file metadata (name, size, type, etc.)'),\n extractText: z.boolean().default(false).describe('Extract text content from documents (OCR/parsing)'),\n \n /** Versioning */\n versioningEnabled: z.boolean().default(false).describe('Keep previous versions of replaced files'),\n maxVersions: z.number().min(1).optional().describe('Maximum number of versions to retain'),\n \n /** Access Control */\n publicRead: z.boolean().default(false).describe('Allow public read access to uploaded files'),\n presignedUrlExpiry: z.number().min(60).max(604800).default(3600).describe('Presigned URL expiration in seconds (default: 1 hour)'),\n}).refine((data) => {\n // Validate minSize is less than or equal to maxSize\n if (data.minSize !== undefined && data.maxSize !== undefined && data.minSize > data.maxSize) {\n return false;\n }\n return true;\n}, {\n message: 'minSize must be less than or equal to maxSize',\n}).refine((data) => {\n // Validate virusScanProvider requires virusScan to be enabled\n if (data.virusScanProvider !== undefined && data.virusScan !== true) {\n return false;\n }\n return true;\n}, {\n message: 'virusScanProvider requires virusScan to be enabled',\n}));\n\n/**\n * Data Quality Rules Schema\n * Defines data quality validation and monitoring for fields\n * \n * @example Unique SSN field with completeness requirement\n * {\n * uniqueness: true,\n * completeness: 0.95, // 95% of records must have this field\n * accuracy: {\n * source: 'government_db',\n * threshold: 0.98\n * }\n * }\n */\nexport const DataQualityRulesSchema = lazySchema(() => z.object({\n /** Enforce uniqueness constraint */\n uniqueness: z.boolean().default(false).describe('Enforce unique values across all records'),\n \n /** Completeness ratio (0-1) indicating minimum percentage of non-null values */\n completeness: z.number().min(0).max(1).default(0).describe('Minimum ratio of non-null values (0-1, default: 0 = no requirement)'),\n \n /** Accuracy validation against authoritative source */\n accuracy: z.object({\n source: z.string().describe('Reference data source for validation (e.g., \"api.verify.com\", \"master_data\")'),\n threshold: z.number().min(0).max(1).describe('Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)'),\n }).optional().describe('Accuracy validation configuration'),\n}));\n\n/**\n * Computed Field Caching Schema\n * Configuration for caching computed/formula field results\n * \n * @example Cache product price with 1-hour TTL, invalidate on inventory changes\n * {\n * enabled: true,\n * ttl: 3600,\n * invalidateOn: ['inventory.quantity', 'pricing.discount']\n * }\n */\nexport const ComputedFieldCacheSchema = lazySchema(() => z.object({\n /** Enable caching for this computed field */\n enabled: z.boolean().describe('Enable caching for computed field results'),\n \n /** Time-to-live in seconds */\n ttl: z.number().min(0).describe('Cache TTL in seconds (0 = no expiration)'),\n \n /** Array of field paths that trigger cache invalidation when changed */\n invalidateOn: z.array(z.string()).describe('Field paths that invalidate cache (e.g., [\"inventory.quantity\", \"pricing.base_price\"])'),\n}));\n\n/**\n * Field Schema - Best Practice Enterprise Pattern\n */\n/**\n * Field Definition Schema\n * Defines the properties, type, and behavior of a single field (column) on an object.\n * \n * @example Lookup Field\n * {\n * name: \"account_id\",\n * label: \"Account\",\n * type: \"lookup\",\n * reference: \"accounts\",\n * required: true\n * }\n * \n * @example Select Field\n * {\n * name: \"status\",\n * label: \"Status\",\n * type: \"select\",\n * options: [\n * { label: \"Open\", value: \"open\" },\n * { label: \"Closed\", value: \"closed\" }\n * ],\n * defaultValue: \"open\"\n * }\n */\nexport const FieldSchema = lazySchema(() => z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name (snake_case)').optional(),\n label: z.string().optional().describe('Human readable label'),\n type: FieldType.describe('Field Data Type'),\n description: z.string().optional().describe('Tooltip/Help text'),\n format: z.string().optional().describe('Format string (e.g. email, phone)'),\n\n /** Storage Layer Mapping */\n columnName: z.string().optional().describe('Physical column name in the target datasource. Defaults to the field key when not set.'),\n\n /** Database Constraints */\n required: z.boolean().default(false).describe('Is required'),\n searchable: z.boolean().default(false).describe('Is searchable'),\n multiple: z.boolean().default(false).describe('Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image.'),\n unique: z.boolean().default(false).describe('Is unique constraint'),\n defaultValue: z.unknown().optional().describe('Default value'),\n \n /** Text/String Constraints */\n maxLength: z.number().optional().describe('Max character length'),\n minLength: z.number().optional().describe('Min character length'),\n \n /** Number Constraints */\n precision: z.number().optional().describe('Total digits'),\n scale: z.number().optional().describe('Decimal places'),\n min: z.number().optional().describe('Minimum value'),\n max: z.number().optional().describe('Maximum value'),\n\n /** Selection Options */\n options: z.array(SelectOptionSchema).optional().describe('Static options for select/multiselect'),\n\n /**\n * Relationship Config\n * \n * Used by `lookup` and `master_detail` field types to define cross-object references.\n * The `reference` property is **required** for these types — it identifies the target\n * object whose records this field links to. The engine uses `reference` during $expand\n * post-processing to resolve foreign key IDs into full related objects via batch queries.\n * \n * For `master_detail` fields, the parent record controls the lifecycle of child records\n * (e.g., cascade delete). For `lookup` fields, the reference is a soft link.\n */\n reference: z.string().optional().describe(\n 'Target object name (snake_case) for lookup/master_detail fields. '\n + 'Required for relationship types. Used by $expand to resolve foreign key IDs into full objects.'\n ),\n referenceFilters: z.array(z.string()).optional().describe('Filters applied to lookup dialogs (e.g. \"active = true\")'),\n writeRequiresMasterRead: z.boolean().optional().describe('If true, user needs read access to master record to edit this field'),\n deleteBehavior: z.enum(['set_null', 'cascade', 'restrict']).optional().default('set_null').describe('What happens if referenced record is deleted'),\n\n /** Calculation — CEL formula. Plain string accepted for back-compat; build emits canonical envelope. */\n expression: ExpressionInputSchema.optional().describe('Formula expression (CEL). e.g. F`record.amount * 0.1`'),\n summaryOperations: z.object({\n object: z.string().describe('Source child object name for roll-up'),\n field: z.string().describe('Field on child object to aggregate'),\n function: z.enum(['count', 'sum', 'min', 'max', 'avg']).describe('Aggregation function to apply'),\n }).optional().describe('Roll-up summary definition'),\n\n /** Enhanced Field Type Configurations */\n // Code field config\n language: z.string().optional().describe('Programming language for syntax highlighting (e.g., javascript, python, sql)'),\n theme: z.string().optional().describe('Code editor theme (e.g., dark, light, monokai)'),\n lineNumbers: z.boolean().optional().describe('Show line numbers in code editor'),\n \n // Rating field config\n maxRating: z.number().optional().describe('Maximum rating value (default: 5)'),\n allowHalf: z.boolean().optional().describe('Allow half-star ratings'),\n \n // Location field config\n displayMap: z.boolean().optional().describe('Display map widget for location field'),\n allowGeocoding: z.boolean().optional().describe('Allow address-to-coordinate conversion'),\n \n // Address field config\n addressFormat: z.enum(['us', 'uk', 'international']).optional().describe('Address format template'),\n \n // Color field config\n colorFormat: z.enum(['hex', 'rgb', 'rgba', 'hsl']).optional().describe('Color value format'),\n allowAlpha: z.boolean().optional().describe('Allow transparency/alpha channel'),\n presetColors: z.array(z.string()).optional().describe('Preset color options'),\n \n // Slider field config\n step: z.number().optional().describe('Step increment for slider (default: 1)'),\n showValue: z.boolean().optional().describe('Display current value on slider'),\n marks: z.record(z.string(), z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: \"Low\", 50: \"Medium\", 100: \"High\"})'),\n \n // QR Code / Barcode field config\n // Note: qrErrorCorrection is only applicable when barcodeFormat='qr'\n // Runtime validation should enforce this constraint\n barcodeFormat: z.enum(['qr', 'ean13', 'ean8', 'code128', 'code39', 'upca', 'upce']).optional().describe('Barcode format type'),\n qrErrorCorrection: z.enum(['L', 'M', 'Q', 'H']).optional().describe('QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is \"qr\"'),\n displayValue: z.boolean().optional().describe('Display human-readable value below barcode/QR code'),\n allowScanning: z.boolean().optional().describe('Enable camera scanning for barcode/QR code input'),\n\n // Currency field config\n currencyConfig: CurrencyConfigSchema.optional().describe('Configuration for currency field type'),\n\n // Vector field config\n vectorConfig: VectorConfigSchema.optional().describe('Configuration for vector field type (AI/ML embeddings)'),\n\n // File attachment field config\n fileAttachmentConfig: FileAttachmentConfigSchema.optional().describe('Configuration for file and attachment field types'),\n\n /** Enhanced Security & Compliance */\n // Encryption configuration\n encryptionConfig: EncryptionConfigSchema.optional().describe('Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)'),\n \n // Data masking rules\n maskingRule: MaskingRuleSchema.optional().describe('Data masking rules for PII protection'),\n \n // Audit trail\n auditTrail: z.boolean().default(false).describe('Enable detailed audit trail for this field (tracks all changes with user and timestamp)'),\n \n /** Field Dependencies & Relationships */\n // Field dependencies\n dependencies: z.array(z.string()).optional().describe('Array of field names that this field depends on (for formulas, visibility rules, etc.)'),\n \n /** Computed Field Optimization */\n // Computed field caching\n cached: ComputedFieldCacheSchema.optional().describe('Caching configuration for computed/formula fields'),\n \n /** Data Quality & Governance */\n // Data quality rules\n dataQuality: DataQualityRulesSchema.optional().describe('Data quality validation and monitoring rules'),\n\n /** Layout & Grouping */\n group: z.string().optional().describe('Field group name for organizing fields in forms and layouts (e.g., \"contact_info\", \"billing\", \"system\")'),\n\n /** Conditional Requirements */\n conditionalRequired: ExpressionInputSchema.optional().describe('Predicate (CEL) — field is required when TRUE. e.g. P`record.status == \\'closed_won\\'`'),\n\n /** Security & Visibility */\n hidden: z.boolean().default(false).describe('Hidden from default UI'),\n readonly: z.boolean().default(false).describe('Read-only in UI'),\n system: z.boolean().optional().describe('Auto-injected system/audit field (e.g. created_at, updated_by, organization_id). Tools that surface system fields separately from author-declared business fields should branch on this flag.'),\n sortable: z.boolean().optional().default(true).describe('Whether field is sortable in list views'),\n inlineHelpText: z.string().optional().describe('Help text displayed below the field in forms'),\n trackFeedHistory: z.boolean().optional().describe('Track field changes in Chatter/activity feed (Salesforce pattern)'),\n caseSensitive: z.boolean().optional().describe('Whether text comparisons are case-sensitive'),\n autonumberFormat: z.string().optional().describe('Auto-number display format pattern (e.g., \"CASE-{0000}\")'),\n /** Indexing */\n index: z.boolean().default(false).describe('Create standard database index'),\n externalId: z.boolean().default(false).describe('Is external ID for upsert operations'),\n}));\n\nexport type Field = z.infer<typeof FieldSchema>;\nexport type SelectOption = z.infer<typeof SelectOptionSchema>;\nexport type LocationCoordinates = z.infer<typeof LocationCoordinatesSchema>;\nexport type Address = z.infer<typeof AddressSchema>;\nexport type CurrencyConfig = z.infer<typeof CurrencyConfigSchema>;\nexport type CurrencyConfigInput = z.input<typeof CurrencyConfigSchema>;\nexport type CurrencyValue = z.infer<typeof CurrencyValueSchema>;\nexport type VectorConfig = z.infer<typeof VectorConfigSchema>;\nexport type VectorConfigInput = z.input<typeof VectorConfigSchema>;\nexport type FileAttachmentConfig = z.infer<typeof FileAttachmentConfigSchema>;\nexport type FileAttachmentConfigInput = z.input<typeof FileAttachmentConfigSchema>;\nexport type DataQualityRules = z.infer<typeof DataQualityRulesSchema>;\nexport type DataQualityRulesInput = z.input<typeof DataQualityRulesSchema>;\nexport type ComputedFieldCache = z.infer<typeof ComputedFieldCacheSchema>;\n\n/**\n * Field Factory Helper\n */\nexport type FieldInput = Omit<Partial<Field>, 'type'>;\n\nexport const Field = {\n text: (config: FieldInput = {}) => ({ type: 'text', ...config } as const),\n textarea: (config: FieldInput = {}) => ({ type: 'textarea', ...config } as const),\n number: (config: FieldInput = {}) => ({ type: 'number', ...config } as const),\n boolean: (config: FieldInput = {}) => ({ type: 'boolean', ...config } as const),\n date: (config: FieldInput = {}) => ({ type: 'date', ...config } as const),\n datetime: (config: FieldInput = {}) => ({ type: 'datetime', ...config } as const),\n currency: (config: FieldInput = {}) => ({ type: 'currency', ...config } as const),\n percent: (config: FieldInput = {}) => ({ type: 'percent', ...config } as const),\n url: (config: FieldInput = {}) => ({ type: 'url', ...config } as const),\n email: (config: FieldInput = {}) => ({ type: 'email', ...config } as const),\n phone: (config: FieldInput = {}) => ({ type: 'phone', ...config } as const),\n image: (config: FieldInput = {}) => ({ type: 'image', ...config } as const),\n file: (config: FieldInput = {}) => ({ type: 'file', ...config } as const),\n avatar: (config: FieldInput = {}) => ({ type: 'avatar', ...config } as const),\n formula: (config: FieldInput = {}) => ({ type: 'formula', ...config } as const),\n summary: (config: FieldInput = {}) => ({ type: 'summary', ...config } as const),\n autonumber: (config: FieldInput = {}) => ({ type: 'autonumber', ...config } as const),\n markdown: (config: FieldInput = {}) => ({ type: 'markdown', ...config } as const),\n html: (config: FieldInput = {}) => ({ type: 'html', ...config } as const),\n password: (config: FieldInput = {}) => ({ type: 'password', ...config } as const),\n \n /**\n * Select field helper with backward-compatible API\n * \n * Automatically converts option values to lowercase to enforce naming conventions.\n * \n * @example Old API (array first) - auto-converts to lowercase\n * Field.select(['High', 'Low'], { label: 'Priority' })\n * // Results in: [{ label: 'High', value: 'high' }, { label: 'Low', value: 'low' }]\n * \n * @example New API (config object) - enforces lowercase\n * Field.select({ options: [{label: 'High', value: 'high'}], label: 'Priority' })\n * \n * @example Multi-word values - converts to snake_case\n * Field.select(['In Progress', 'Closed Won'], { label: 'Status' })\n * // Results in: [{ label: 'In Progress', value: 'in_progress' }, { label: 'Closed Won', value: 'closed_won' }]\n */\n select: (optionsOrConfig: SelectOption[] | string[] | FieldInput & { options: SelectOption[] | string[] }, config?: FieldInput) => {\n // Helper function to convert string to lowercase snake_case\n const toSnakeCase = (str: string): string => {\n return str\n .toLowerCase()\n .replace(/\\s+/g, '_') // Replace spaces with underscores\n .replace(/[^a-z0-9_]/g, ''); // Remove invalid characters (keeping underscores only)\n };\n\n // Support both old and new signatures:\n // Old: Field.select(['a', 'b'], { label: 'X' })\n // New: Field.select({ options: [{label: 'A', value: 'a'}], label: 'X' })\n let options: SelectOption[];\n let finalConfig: FieldInput;\n \n if (Array.isArray(optionsOrConfig)) {\n // Old signature: array as first param\n options = optionsOrConfig.map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n finalConfig = config || {};\n } else {\n // New signature: config object with options\n options = (optionsOrConfig.options || []).map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n // Remove options from config to avoid confusion\n const { options: _, ...restConfig } = optionsOrConfig;\n finalConfig = restConfig;\n }\n \n return { type: 'select', options, ...finalConfig } as const;\n },\n\n \n lookup: (reference: string, config: FieldInput = {}) => ({ \n type: 'lookup', \n reference, \n ...config \n } as const),\n \n masterDetail: (reference: string, config: FieldInput = {}) => ({ \n type: 'master_detail', \n reference, \n ...config \n } as const),\n\n // Enhanced Field Type Helpers\n location: (config: FieldInput = {}) => ({ \n type: 'location', \n ...config \n } as const),\n \n address: (config: FieldInput = {}) => ({ \n type: 'address', \n ...config \n } as const),\n \n richtext: (config: FieldInput = {}) => ({ \n type: 'richtext', \n ...config \n } as const),\n \n code: (language?: string, config: FieldInput = {}) => ({ \n type: 'code', \n language,\n ...config \n } as const),\n \n color: (config: FieldInput = {}) => ({ \n type: 'color', \n ...config \n } as const),\n \n rating: (maxRating: number = 5, config: FieldInput = {}) => ({ \n type: 'rating', \n maxRating,\n ...config \n } as const),\n \n signature: (config: FieldInput = {}) => ({ \n type: 'signature', \n ...config \n } as const),\n \n slider: (config: FieldInput = {}) => ({ \n type: 'slider', \n ...config \n } as const),\n \n qrcode: (config: FieldInput = {}) => ({ \n type: 'qrcode', \n ...config \n } as const),\n \n json: (config: FieldInput = {}) => ({ \n type: 'json', \n ...config \n } as const),\n \n vector: (dimensions: number, config: FieldInput = {}) => ({ \n type: 'vector', \n vectorConfig: {\n dimensions,\n distanceMetric: 'cosine' as const,\n normalized: false,\n indexed: true,\n ...config.vectorConfig\n },\n ...config \n } as const),\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Shared HTTP Schemas\n * \n * Common HTTP-related schemas used across API and System protocols.\n * These schemas ensure consistency across different parts of the stack.\n */\n\n// ==========================================\n// Basic HTTP Types\n// ==========================================\n\n/**\n * HTTP Method Enum\n */\nimport { lazySchema } from './lazy-schema';\nexport const HttpMethod = z.enum([\n 'GET', \n 'POST', \n 'PUT', \n 'DELETE', \n 'PATCH', \n 'HEAD', \n 'OPTIONS'\n]);\n\nexport type HttpMethod = z.infer<typeof HttpMethod>;\n\n/**\n * HTTP Method Schema (subset for UI/View data sources)\n * Common HTTP methods used in view data source configurations.\n * Migrated from ui/view.zod.ts to shared for reuse across modules.\n */\nexport const HttpMethodSchema = lazySchema(() => z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE']));\n\nexport type HttpMethodType = z.infer<typeof HttpMethodSchema>;\n\n/**\n * HTTP Request Configuration Schema\n * Defines a complete HTTP request configuration used by API data providers.\n * Migrated from ui/view.zod.ts to shared for reuse across modules.\n */\nexport const HttpRequestSchema = lazySchema(() => z.object({\n url: z.string().describe('API endpoint URL'),\n method: HttpMethodSchema.optional().default('GET').describe('HTTP method'),\n headers: z.record(z.string(), z.string()).optional().describe('Custom HTTP headers'),\n params: z.record(z.string(), z.unknown()).optional().describe('Query parameters'),\n body: z.unknown().optional().describe('Request body for POST/PUT/PATCH'),\n}));\n\nexport type HttpRequest = z.infer<typeof HttpRequestSchema>;\n\n// ==========================================\n// CORS Configuration\n// ==========================================\n\n/**\n * CORS Configuration Schema\n * Cross-Origin Resource Sharing configuration\n * \n * Used by:\n * - api/router.zod.ts (RouterConfigSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"enabled\": true,\n * \"origins\": [\"http://localhost:3000\", \"https://app.example.com\"],\n * \"methods\": [\"GET\", \"POST\", \"PUT\", \"DELETE\"],\n * \"credentials\": true,\n * \"maxAge\": 86400\n * }\n */\nexport const CorsConfigSchema = lazySchema(() => z.object({\n /**\n * Enable CORS\n */\n enabled: z.boolean().default(true).describe('Enable CORS'),\n \n /**\n * Allowed origins (* for all)\n */\n origins: z.union([\n z.string(),\n z.array(z.string())\n ]).default('*').describe('Allowed origins (* for all)'),\n \n /**\n * Allowed HTTP methods\n */\n methods: z.array(HttpMethod).optional().describe('Allowed HTTP methods'),\n \n /**\n * Allow credentials (cookies, authorization headers)\n */\n credentials: z.boolean().default(false).describe('Allow credentials (cookies, authorization headers)'),\n \n /**\n * Preflight cache duration in seconds\n */\n maxAge: z.number().int().optional().describe('Preflight cache duration in seconds'),\n}));\n\nexport type CorsConfig = z.infer<typeof CorsConfigSchema>;\n\n// ==========================================\n// Rate Limiting\n// ==========================================\n\n/**\n * Rate Limit Configuration Schema\n * \n * Used by:\n * - api/endpoint.zod.ts (ApiEndpointSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"enabled\": true,\n * \"windowMs\": 60000,\n * \"maxRequests\": 100\n * }\n */\nexport const RateLimitConfigSchema = lazySchema(() => z.object({\n /**\n * Enable rate limiting\n */\n enabled: z.boolean().default(false).describe('Enable rate limiting'),\n \n /**\n * Time window in milliseconds\n */\n windowMs: z.number().int().default(60000).describe('Time window in milliseconds'),\n \n /**\n * Max requests per window\n */\n maxRequests: z.number().int().default(100).describe('Max requests per window'),\n}));\n\nexport type RateLimitConfig = z.infer<typeof RateLimitConfigSchema>;\n\n// ==========================================\n// Static File Serving\n// ==========================================\n\n/**\n * Static Mount Configuration Schema\n * Configuration for serving static files\n * \n * Used by:\n * - api/router.zod.ts (RouterConfigSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"path\": \"/static\",\n * \"directory\": \"./public\",\n * \"cacheControl\": \"public, max-age=31536000\"\n * }\n */\nexport const StaticMountSchema = lazySchema(() => z.object({\n /**\n * URL path to serve from\n */\n path: z.string().describe('URL path to serve from'),\n \n /**\n * Physical directory to serve\n */\n directory: z.string().describe('Physical directory to serve'),\n \n /**\n * Cache-Control header value\n */\n cacheControl: z.string().optional().describe('Cache-Control header value'),\n}));\n\nexport type StaticMount = z.infer<typeof StaticMountSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\nimport { ExpressionInputSchema } from '../shared/expression.zod';\nimport { I18nLabelSchema, AriaPropsSchema } from './i18n.zod';\nimport { SharingConfigSchema } from './sharing.zod';\nimport { ResponsiveConfigSchema, PerformanceConfigSchema } from './responsive.zod';\nimport { FieldType, SelectOptionSchema } from '../data/field.zod';\n\n/**\n * HTTP Method Enum & HTTP Request Schema\n * Migrated to shared/http.zod.ts. Re-exported here for backward compatibility.\n */\nimport { HttpMethodSchema, HttpRequestSchema } from '../shared/http.zod';\nimport { lazySchema } from '../shared/lazy-schema';\nexport { HttpMethodSchema, HttpRequestSchema };\n\n/**\n * View Data Source Configuration\n * Supports three modes:\n * 1. 'object': Standard Protocol - Auto-connects to ObjectStack Metadata and Data APIs\n * 2. 'api': Custom API - Explicitly provided API URLs\n * 3. 'value': Static Data - Hardcoded data array\n */\nexport const ViewDataSchema = lazySchema(() => z.discriminatedUnion('provider', [\n z.object({\n provider: z.literal('object'),\n object: z.string().describe('Target object name'),\n }),\n z.object({\n provider: z.literal('api'),\n read: HttpRequestSchema.optional().describe('Configuration for fetching data'),\n write: HttpRequestSchema.optional().describe('Configuration for submitting data (for forms/editable tables)'),\n }),\n z.object({\n provider: z.literal('value'),\n items: z.array(z.unknown()).describe('Static data array'),\n }),\n /**\n * Schema-bound data source — used by standalone forms whose data is\n * shaped by a JSON Schema (or Zod-derived schema) rather than by an\n * ObjectQL object. Powers the metadata editor, action input dialogs,\n * and any Form that is not bound to a CRUD object.\n */\n z.object({\n provider: z.literal('schema'),\n /** Schema identifier (e.g. metadata type name \"report\"). Resolved at runtime against /meta entries. */\n schemaId: z.string().describe('Schema identifier — typically the metadata type name'),\n /** Optional inline JSON Schema; when omitted the runtime resolves schemaId from the server. */\n schema: z.record(z.string(), z.unknown()).optional().describe('Inline JSON Schema (Draft 2020-12). Optional when schemaId is resolvable.'),\n }),\n]));\n\n/**\n * View Filter Rule Schema\n * Standardized filter condition used in list views, tabs, and page-level filters.\n * Uses a declarative array-of-objects format: [{ field, operator, value }].\n *\n * @example\n * ```ts\n * filter: [\n * { field: 'status', operator: 'equals', value: 'active' },\n * { field: 'close_date', operator: 'this_quarter' },\n * ]\n * ```\n */\nexport const ViewFilterRuleSchema = lazySchema(() => z.object({\n /** Field name to filter on */\n field: z.string().describe('Field name to filter on'),\n /** Filter operator */\n operator: z.string().describe('Filter operator (e.g. equals, not_equals, contains, this_quarter)'),\n /** Filter value (optional for unary operators like is_null, this_quarter) */\n value: z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(z.union([z.string(), z.number()]))])\n .optional().describe('Filter value'),\n}).describe('View filter rule'));\n\nexport type ViewFilterRule = z.infer<typeof ViewFilterRuleSchema>;\n\n/**\n * Column Summary Function Schema\n * Aggregation function for column footer (Airtable-style column summaries)\n */\nexport const ColumnSummarySchema = lazySchema(() => z.enum([\n 'none',\n 'count',\n 'count_empty',\n 'count_filled',\n 'count_unique',\n 'percent_empty',\n 'percent_filled',\n 'sum',\n 'avg',\n 'min',\n 'max',\n]).describe('Aggregation function for column footer summary'));\n\n/**\n * List Column Configuration Schema\n * Detailed configuration for individual list view columns\n */\nexport const ListColumnSchema = lazySchema(() => z.object({\n field: z.string().describe('Field name (snake_case)'),\n label: I18nLabelSchema.optional().describe('Display label override'),\n width: z.number().positive().optional().describe('Column width in pixels'),\n align: z.enum(['left', 'center', 'right']).optional().describe('Text alignment'),\n hidden: z.boolean().optional().describe('Hide column by default'),\n sortable: z.boolean().optional().describe('Allow sorting by this column'),\n resizable: z.boolean().optional().describe('Allow resizing this column'),\n wrap: z.boolean().optional().describe('Allow text wrapping'),\n type: z.string().optional().describe('Renderer type override (e.g., \"currency\", \"date\")'),\n\n /** Pinning (Airtable-style frozen columns) */\n pinned: z.enum(['left', 'right']).optional().describe('Pin/freeze column to left or right side'),\n\n /** Column Footer Summary (Airtable-style aggregation) */\n summary: ColumnSummarySchema.optional().describe('Footer aggregation function for this column'),\n\n /** Interaction */\n link: z.boolean().optional().describe('Functions as the primary navigation link (triggers View navigation)'),\n action: z.string().optional().describe('Registered Action ID to execute when clicked'),\n}));\n\n/**\n * List View Selection Configuration\n */\nexport const SelectionConfigSchema = lazySchema(() => z.object({\n type: z.enum(['none', 'single', 'multiple']).default('none').describe('Selection mode'),\n}));\n\n/**\n * List View Pagination Configuration\n */\nexport const PaginationConfigSchema = lazySchema(() => z.object({\n pageSize: z.number().int().positive().default(25).describe('Number of records per page'),\n pageSizeOptions: z.array(z.number().int().positive()).optional().describe('Available page size options'),\n}));\n\n/**\n * Row Height / Density Schema (Airtable-style)\n * Controls the visual density of rows in a list view.\n */\nexport const RowHeightSchema = lazySchema(() => z.enum([\n 'compact', // Minimal padding, single line\n 'short', // Reduced padding\n 'medium', // Default padding\n 'tall', // Extra padding, multi-line preview\n 'extra_tall', // Maximum padding, rich content preview\n]).describe('Row height / density setting for list view'));\n\n/**\n * Grouping Field Configuration\n * Defines a single grouping level for record grouping.\n */\nexport const GroupingFieldSchema = lazySchema(() => z.object({\n field: z.string().describe('Field name to group by'),\n order: z.enum(['asc', 'desc']).default('asc').describe('Group sort order'),\n collapsed: z.boolean().default(false).describe('Collapse groups by default'),\n}));\n\n/**\n * Grouping Configuration Schema (Airtable-style)\n * Supports multi-level grouping for grid/gallery views.\n */\nexport const GroupingConfigSchema = lazySchema(() => z.object({\n fields: z.array(GroupingFieldSchema).min(1).describe('Fields to group by (supports up to 3 levels)'),\n}).describe('Record grouping configuration'));\n\n/**\n * Gallery View Configuration (Airtable-style)\n * Configures card layout for gallery/card views.\n */\nexport const GalleryConfigSchema = lazySchema(() => z.object({\n coverField: z.string().optional().describe('Attachment/image field to display as card cover'),\n coverFit: z.enum(['cover', 'contain']).default('cover').describe('Image fit mode for card cover'),\n cardSize: z.enum(['small', 'medium', 'large']).default('medium').describe('Card size in gallery view'),\n titleField: z.string().optional().describe('Field to display as card title'),\n visibleFields: z.array(z.string()).optional().describe('Fields to display on card body'),\n}).describe('Gallery/card view configuration'));\n\n/**\n * Timeline View Configuration (Airtable-style)\n * Configures timeline/chronological views.\n */\nexport const TimelineConfigSchema = lazySchema(() => z.object({\n startDateField: z.string().describe('Field for timeline item start date'),\n endDateField: z.string().optional().describe('Field for timeline item end date'),\n titleField: z.string().describe('Field to display as timeline item title'),\n groupByField: z.string().optional().describe('Field to group timeline rows'),\n colorField: z.string().optional().describe('Field to determine item color'),\n scale: z.enum(['hour', 'day', 'week', 'month', 'quarter', 'year']).default('week').describe('Default timeline scale'),\n}).describe('Timeline view configuration'));\n\n/**\n * View Sharing Configuration (Airtable-style)\n * Defines who can see and modify a view.\n */\nexport const ViewSharingSchema = lazySchema(() => z.object({\n type: z.enum(['personal', 'collaborative']).default('collaborative').describe('View ownership type'),\n lockedBy: z.string().optional().describe('User who locked the view configuration'),\n}).describe('View sharing and access configuration'));\n\n/**\n * Row Color Configuration (Airtable-style)\n * Defines how rows are colored based on field values.\n */\nexport const RowColorConfigSchema = lazySchema(() => z.object({\n field: z.string().describe('Field to derive color from (typically a select/status field)'),\n colors: z.record(z.string(), z.string()).optional().describe('Map of field value to color (hex/token)'),\n}).describe('Row color configuration based on field values'));\n\n/**\n * Visualization Type Schema\n * Whitelist of visualization types the user can switch between.\n * Maps to Airtable's \"Visualizations\" setting in Appearance panel.\n */\nexport const VisualizationTypeSchema = lazySchema(() => z.enum([\n 'grid',\n 'kanban',\n 'gallery',\n 'calendar',\n 'timeline',\n 'gantt',\n 'map',\n]).describe('Visualization type that users can switch to'));\n\n/**\n * User Actions Configuration Schema (Airtable Interface parity)\n * Controls which interactive actions are available to users in the view toolbar.\n * Each boolean toggles the corresponding toolbar element on/off.\n *\n * @see Airtable Interface → \"User actions\" panel\n */\nexport const UserActionsConfigSchema = lazySchema(() => z.object({\n sort: z.boolean().default(true).describe('Allow users to sort records'),\n search: z.boolean().default(true).describe('Allow users to search records'),\n filter: z.boolean().default(true).describe('Allow users to filter records'),\n rowHeight: z.boolean().default(true).describe('Allow users to toggle row height/density'),\n addRecordForm: z.boolean().default(false).describe('Add records through a form instead of inline'),\n buttons: z.array(z.string()).optional().describe('Custom action button IDs to show in the toolbar'),\n}).describe('User action toggles for the view toolbar'));\n\n/**\n * Appearance Configuration Schema (Airtable Interface parity)\n * Controls visual presentation options for the view.\n *\n * @see Airtable Interface → \"Appearance\" panel\n */\nexport const AppearanceConfigSchema = lazySchema(() => z.object({\n showDescription: z.boolean().default(true).describe('Show the view description text'),\n allowedVisualizations: z.array(VisualizationTypeSchema).optional()\n .describe('Whitelist of visualization types users can switch between (e.g. [\"grid\", \"gallery\", \"kanban\"])'),\n}).describe('Appearance and visualization configuration'));\n\n/**\n * View Tab Schema (Airtable Interface parity)\n * Defines a tab in a multi-tab view interface.\n * Each tab references a named list view and can be ordered, pinned, or set as default.\n *\n * @see Airtable Interface → \"Tabs\" panel\n */\nexport const ViewTabSchema = lazySchema(() => z.object({\n name: SnakeCaseIdentifierSchema.describe('Tab identifier (snake_case)'),\n label: I18nLabelSchema.optional().describe('Display label'),\n icon: z.string().optional().describe('Tab icon name'),\n view: z.string().optional().describe('Referenced list view name from listViews'),\n filter: z.array(ViewFilterRuleSchema).optional().describe('Tab-specific filter criteria'),\n order: z.number().int().min(0).optional().describe('Tab display order'),\n pinned: z.boolean().default(false).describe('Pin tab (cannot be removed by users)'),\n isDefault: z.boolean().default(false).describe('Set as the default active tab'),\n visible: z.boolean().default(true).describe('Tab visibility'),\n}).describe('Tab configuration for multi-tab view interface'));\n\n/**\n * Add Record Configuration Schema (Airtable Interface parity)\n * Configures the \"Add Record\" entry point for a list view.\n *\n * @see Airtable Interface → \"+ Add record\" button\n */\nexport const AddRecordConfigSchema = lazySchema(() => z.object({\n enabled: z.boolean().default(true).describe('Show the add record entry point'),\n position: z.enum(['top', 'bottom', 'both']).default('bottom').describe('Position of the add record button'),\n mode: z.enum(['inline', 'form', 'modal']).default('inline').describe('How to add a new record'),\n formView: z.string().optional().describe('Named form view to use when mode is \"form\" or \"modal\"'),\n}).describe('Add record entry point configuration'));\n\n/**\n * Kanban Settings\n */\nexport const KanbanConfigSchema = lazySchema(() => z.object({\n groupByField: z.string().describe('Field to group columns by (usually status/select)'),\n summarizeField: z.string().optional().describe('Field to sum at top of column (e.g. amount)'),\n columns: z.array(z.string()).describe('Fields to show on cards'),\n}));\n\n/**\n * List Chart View Configuration (Airtable-style)\n * Configures aggregate chart visualizations (bar/line/pie/area/scatter)\n * when used as a `type: 'chart'` ListView. Distinct from the full-featured\n * `ChartConfigSchema` in `chart.zod.ts` (which is for embedded reports).\n */\nexport const ListChartConfigSchema = lazySchema(() => z.object({\n chartType: z.enum(['bar', 'line', 'pie', 'area', 'scatter']).default('bar').describe('Chart visualisation type'),\n xAxisField: z.string().describe('Field used as the X axis / category dimension'),\n yAxisFields: z.array(z.string()).min(1).describe('Field(s) used as the Y axis / measures'),\n aggregation: z.enum(['sum', 'avg', 'count', 'min', 'max']).optional().describe('Aggregation function applied to Y axis fields'),\n groupByField: z.string().optional().describe('Optional field used to split / stack the chart'),\n}).describe('List chart view configuration'));\n\n/**\n * Calendar Settings\n */\nexport const CalendarConfigSchema = lazySchema(() => z.object({\n startDateField: z.string(),\n endDateField: z.string().optional(),\n titleField: z.string(),\n colorField: z.string().optional(),\n}));\n\n/**\n * Gantt Settings\n */\nexport const GanttConfigSchema = lazySchema(() => z.object({\n startDateField: z.string(),\n endDateField: z.string(),\n titleField: z.string(),\n progressField: z.string().optional(),\n dependenciesField: z.string().optional(),\n}));\n\n/**\n * Navigation Mode Enum\n * Defines how to navigate to the detail view from a list item.\n */\nexport const NavigationModeSchema = lazySchema(() => z.enum([\n 'page', // Navigate to a new route (default)\n 'drawer', // Open details in a side drawer/panel\n 'modal', // Open details in a modal dialog\n 'split', // Show details side-by-side with the list (master-detail)\n 'popover', // Show details in a popover (lightweight)\n 'new_window', // Open in new browser tab/window\n 'none' // No navigation (read-only list)\n]));\n\n/**\n * Navigation Configuration Schema\n */\nexport const NavigationConfigSchema = lazySchema(() => z.object({\n mode: NavigationModeSchema.default('page'),\n \n /** Target View Config */\n view: z.string().optional().describe('Name of the form view to use for details (e.g. \"summary_view\", \"edit_form\")'),\n \n /** Interaction Triggers */\n preventNavigation: z.boolean().default(false).describe('Disable standard navigation entirely'),\n openNewTab: z.boolean().default(false).describe('Force open in new tab (applies to page mode)'),\n \n /** Dimensions (for modal/drawer) */\n width: z.union([z.string(), z.number()]).optional().describe('Width of the drawer/modal (e.g. \"600px\", \"50%\")'),\n}));\n\n/**\n * List View Schema (Expanded)\n * Defines how a collection of records is displayed to the user.\n * \n * **NAMING CONVENTION:**\n * View names (when provided) are machine identifiers and must be lowercase snake_case.\n * \n * @example Standard Grid\n * {\n * name: \"all_active\",\n * label: \"All Active\",\n * type: \"grid\",\n * columns: [\"name\", \"status\", \"created_at\"],\n * filter: [[\"status\", \"=\", \"active\"]]\n * }\n * \n * @example Kanban Board\n * {\n * type: \"kanban\",\n * columns: [\"name\", \"amount\"],\n * kanban: {\n * groupByField: \"stage\",\n * summarizeField: \"amount\",\n * columns: [\"name\", \"close_date\"]\n * }\n * }\n */\nexport const ListViewSchema = lazySchema(() => z.object({\n name: SnakeCaseIdentifierSchema.optional().describe('Internal view name (lowercase snake_case)'),\n label: I18nLabelSchema.optional(), // Display label override (supports i18n)\n type: z.enum([\n 'grid', // Standard Data Table\n 'kanban', // Board / Columns\n 'gallery', // Card Deck / Masonry\n 'calendar', // Monthly/Weekly/Daily\n 'timeline', // Chronological Stream (Feed)\n 'gantt', // Project Timeline\n 'map', // Geospatial\n 'chart' // Aggregate visualisation\n ]).default('grid'),\n \n /** Data Source Configuration */\n data: ViewDataSchema.optional().describe('Data source configuration (defaults to \"object\" provider)'),\n \n /** Shared Query Config */\n columns: z.union([\n z.array(z.string()), // Legacy: simple field names\n z.array(ListColumnSchema), // Enhanced: detailed column config\n ]).describe('Fields to display as columns'),\n filter: z.array(ViewFilterRuleSchema).optional().describe('Filter criteria (JSON Rules)'),\n sort: z.union([\n z.string(), //Legacy \"field desc\"\n z.array(z.object({\n field: z.string(),\n order: z.enum(['asc', 'desc'])\n }))\n ]).optional(),\n \n /** Search & Filter */\n searchableFields: z.array(z.string()).optional().describe('Fields enabled for search'),\n filterableFields: z.array(z.string()).optional().describe('Fields enabled for end-user filtering in the top bar'),\n\n /** Grid Features */\n resizable: z.boolean().optional().describe('Enable column resizing'),\n striped: z.boolean().optional().describe('Striped row styling'),\n bordered: z.boolean().optional().describe('Show borders'),\n compactToolbar: z.boolean().optional().describe('Collapse Group/Color/Density/Hide-fields into a single View settings popover'),\n\n /** Selection */\n selection: SelectionConfigSchema.optional().describe('Row selection configuration'),\n\n /** Navigation / Interaction */\n navigation: NavigationConfigSchema.optional().describe('Configuration for item click navigation (page, drawer, modal, etc.)'),\n\n /** Pagination */\n pagination: PaginationConfigSchema.optional().describe('Pagination configuration'),\n\n /** Type Specific Config */\n kanban: KanbanConfigSchema.optional(),\n calendar: CalendarConfigSchema.optional(),\n gantt: GanttConfigSchema.optional(),\n gallery: GalleryConfigSchema.optional(),\n timeline: TimelineConfigSchema.optional(),\n chart: ListChartConfigSchema.optional(),\n\n /** View Metadata (Airtable-style view management) */\n description: I18nLabelSchema.optional().describe('View description for documentation/tooltips'),\n sharing: ViewSharingSchema.optional().describe('View sharing and access configuration'),\n\n /** Row Height / Density (Airtable-style) */\n rowHeight: RowHeightSchema.optional().describe('Row height / density setting'),\n\n /** Record Grouping (Airtable-style) */\n grouping: GroupingConfigSchema.optional().describe('Group records by one or more fields'),\n\n /** Row Color (Airtable-style) */\n rowColor: RowColorConfigSchema.optional().describe('Color rows based on field value'),\n\n /** Field Visibility & Ordering per View (Airtable-style) */\n hiddenFields: z.array(z.string()).optional().describe('Fields to hide in this specific view'),\n fieldOrder: z.array(z.string()).optional().describe('Explicit field display order for this view'),\n\n /** Row & Bulk Actions */\n rowActions: z.array(z.string()).optional().describe('Actions available for individual row items'),\n bulkActions: z.array(z.string()).optional().describe('Actions available when multiple rows are selected'),\n bulkActionDefs: z.array(z.record(z.string(), z.any())).optional().describe('Rich bulk action definitions (schema-driven, executed via BulkActionDialog)'),\n\n /** Performance */\n virtualScroll: z.boolean().optional().describe('Enable virtual scrolling for large datasets'),\n\n /** Conditional Formatting */\n conditionalFormatting: z.array(z.object({\n condition: ExpressionInputSchema.describe('Predicate (CEL) to evaluate.'),\n style: z.record(z.string(), z.string()).describe('CSS styles to apply when condition is true'),\n })).optional().describe('Conditional formatting rules for list rows'),\n\n /** Inline Edit */\n inlineEdit: z.boolean().optional().describe('Allow inline editing of records directly in the list view'),\n\n /** Export */\n exportOptions: z.array(z.enum(['csv', 'xlsx', 'pdf', 'json'])).optional().describe('Available export format options'),\n\n /** User Actions (Airtable Interface parity) */\n userActions: UserActionsConfigSchema.optional().describe('User action toggles for the view toolbar'),\n\n /** Appearance (Airtable Interface parity) */\n appearance: AppearanceConfigSchema.optional().describe('Appearance and visualization configuration'),\n\n /** Tabs (Airtable Interface parity) */\n tabs: z.array(ViewTabSchema).optional().describe('Tab definitions for multi-tab view interface'),\n\n /** Add Record (Airtable Interface parity) */\n addRecord: AddRecordConfigSchema.optional().describe('Add record entry point configuration'),\n\n /** Record Count Display (Airtable Interface parity) */\n showRecordCount: z.boolean().optional().describe('Show record count at the bottom of the list'),\n\n /** Advanced: Allow Printing (Airtable Interface parity) */\n allowPrinting: z.boolean().optional().describe('Allow users to print the view'),\n\n /** Empty State */\n emptyState: z.object({\n title: I18nLabelSchema.optional(),\n message: I18nLabelSchema.optional(),\n icon: z.string().optional(),\n }).optional().describe('Empty state configuration when no records found'),\n\n /** ARIA accessibility attributes */\n aria: AriaPropsSchema.optional().describe('ARIA accessibility attributes for the list view'),\n\n /** Responsive layout overrides per breakpoint */\n responsive: ResponsiveConfigSchema.optional().describe('Responsive layout configuration'),\n\n /** Performance optimization settings */\n performance: PerformanceConfigSchema.optional().describe('Performance optimization settings'),\n}));\n\n/**\n * Form Field Configuration Schema\n * Detailed configuration for individual form fields.\n * \n * Reuses Data.FieldType and related constraints from the Data protocol to avoid duplication.\n * The `type` field auto-infers widget rendering; explicit `widget` overrides are only needed\n * for custom components.\n * \n * @example Auto-inferred select widget\n * { field: 'status', type: 'select', options: [{ label: 'Open', value: 'open' }] }\n * \n * @example Lookup field with reference\n * { field: 'account_id', type: 'lookup', reference: 'account', label: 'Account' }\n * \n * @example Custom widget override\n * { field: 'filter', widget: 'filter-builder' }\n */\nexport const FormFieldSchema: z.ZodType<any> = lazySchema(() => z.object({\n /** Field name (snake_case) */\n field: z.string().describe('Field name (snake_case)'),\n \n /** Field type — reuses Data.FieldType. When set, widget is auto-inferred (can be overridden). */\n type: FieldType.optional().describe('Field type (auto-infers widget if omitted)'),\n \n /** Select/multiselect options — only needed when type=select/multiselect/radio/checkboxes */\n options: z.array(SelectOptionSchema).optional().describe('Options for select/multiselect/radio/checkboxes fields'),\n \n /** Reference object for lookup/master_detail fields */\n reference: z.string().optional().describe('Target object name for lookup/master_detail fields'),\n \n /** Text constraints */\n maxLength: z.number().optional().describe('Maximum character length (for text/textarea/email/url/phone)'),\n minLength: z.number().optional().describe('Minimum character length'),\n \n /** Number constraints */\n min: z.number().optional().describe('Minimum value (for number/currency/percent/slider)'),\n max: z.number().optional().describe('Maximum value'),\n precision: z.number().optional().describe('Total digits (for number/currency)'),\n scale: z.number().optional().describe('Decimal places'),\n \n /** Multi-value flag */\n multiple: z.boolean().optional().describe('Allow multiple values (for select/lookup/file/image)'),\n \n /** UI overrides */\n label: I18nLabelSchema.optional().describe('Display label override'),\n placeholder: I18nLabelSchema.optional().describe('Placeholder text'),\n helpText: I18nLabelSchema.optional().describe('Help/hint text'),\n readonly: z.boolean().optional().describe('Read-only override'),\n immutable: z.boolean().optional().describe('Editable on create, locked once the record exists (e.g. machine names).'),\n required: z.boolean().optional().describe('Required override'),\n hidden: z.boolean().optional().describe('Hidden override'),\n colSpan: z.number().int().min(1).max(4).optional().describe('Column span in grid layout (1-4)'),\n \n /** Custom widget override — only needed when auto-inference is insufficient */\n widget: z.string().optional().describe('Custom widget/component name (overrides type-based inference)'),\n\n /** For `code` fields: source language (e.g. 'javascript', 'sql', 'json', 'typescript', 'expression', 'cel'). Drives syntax highlighting. */\n language: z.string().optional().describe('Code editor language (for type=code)'),\n\n /**\n * Sub-fields for `composite` / `repeater` types — declares the inner shape\n * of an embedded sub-object (composite) or each row of an embedded\n * sub-object array (repeater). Recursive: composite/repeater can nest.\n * Ignored for all other field types.\n *\n * Use `lookup` / `master_detail` instead when the children are independent\n * records with their own IDs in a separate object/table.\n */\n fields: z.array(z.lazy(() => FormFieldSchema)).optional()\n .describe('Sub-fields for composite/repeater types'),\n\n dependsOn: z.string().optional().describe('Parent field name for cascading'),\n visibleOn: ExpressionInputSchema.optional().describe('Visibility predicate (CEL).'),\n}));\n\n/**\n * Form Layout Section\n */\nexport const FormSectionSchema = lazySchema(() => z.object({\n label: I18nLabelSchema.optional(),\n description: z.string().optional().describe('Optional description rendered under the section header.'),\n collapsible: z.boolean().default(false),\n collapsed: z.boolean().default(false),\n visibleOn: ExpressionInputSchema.optional().describe('Visibility predicate (CEL). Hides the whole section when false.'),\n columns: z.union([\n z.enum(['1', '2', '3', '4']),\n z.literal(1),\n z.literal(2),\n z.literal(3),\n z.literal(4),\n ]).default(1).transform(val => (typeof val === 'string' ? parseInt(val) : val) as 1 | 2 | 3 | 4),\n fields: z.array(z.union([\n z.string(), // Legacy: simple field name\n FormFieldSchema, // Enhanced: detailed field config\n ])),\n}));\n\n/**\n * Form View Schema\n * Defines the layout for creating or editing a single record.\n * \n * @example Simple Sectioned Form\n * {\n * type: \"simple\",\n * sections: [\n * {\n * label: \"General Info\",\n * columns: 2,\n * fields: [\"name\", \"status\"]\n * },\n * {\n * label: \"Details\",\n * fields: [\"description\", { field: \"priority\", widget: \"rating\" }]\n * }\n * ]\n * }\n */\nexport const FormViewSchema = lazySchema(() => z.object({\n type: z.enum([\n 'simple', // Single column or sections\n 'tabbed', // Tabs\n 'wizard', // Step by step\n 'split', // Master-Detail split\n 'drawer', // Side panel\n 'modal' // Dialog\n ]).default('simple'),\n \n /** Data Source Configuration */\n data: ViewDataSchema.optional().describe('Data source configuration (defaults to \"object\" provider)'),\n \n sections: z.array(FormSectionSchema).optional(), // For simple layout\n groups: z.array(FormSectionSchema).optional(), // Legacy support -> alias to sections\n\n /** Default Sort for Related Lists (e.g., sort child records by date) */\n defaultSort: z.array(z.object({\n field: z.string().describe('Field name to sort by'),\n order: z.enum(['asc', 'desc']).default('desc').describe('Sort direction'),\n })).optional().describe('Default sort order for related list views within this form'),\n\n /** Public form sharing configuration */\n sharing: SharingConfigSchema.optional().describe('Public sharing configuration for this form'),\n\n /**\n * What happens after a successful submit.\n *\n * - `thank-you` (default) — show a confirmation panel\n * - `redirect` — send the browser to a URL\n * - `continue` — reset the form so another response can be entered\n * - `next-record` — advance to the next record (internal queues only)\n */\n submitBehavior: z.union([\n z.object({\n kind: z.literal('thank-you'),\n title: z.string().optional(),\n message: z.string().optional(),\n }),\n z.object({\n kind: z.literal('redirect'),\n url: z.string(),\n delayMs: z.number().int().min(0).optional(),\n }),\n z.object({ kind: z.literal('continue') }),\n z.object({ kind: z.literal('next-record') }),\n ]).optional().describe('Post-submit behavior'),\n\n /** ARIA accessibility attributes */\n aria: AriaPropsSchema.optional().describe('ARIA accessibility attributes for the form view'),\n}));\n\n/**\n * Master View Schema\n * Can define multiple named views.\n */\n/**\n * View Container Schema\n * Aggregates all view definitions for a specific object or context.\n * \n * @example\n * {\n * list: { type: \"grid\", columns: [\"name\"] },\n * form: { type: \"simple\", fields: [\"name\"] },\n * listViews: {\n * \"all\": { label: \"All\", filter: [] },\n * \"my\": { label: \"Mine\", filter: [[\"owner\", \"=\", \"{user_id}\"]] }\n * }\n * }\n */\nexport const ViewSchema = lazySchema(() => z.object({\n list: ListViewSchema.optional(), // Default list view\n form: FormViewSchema.optional(), // Default form view\n listViews: z.record(z.string(), ListViewSchema).optional().describe('Additional named list views'),\n formViews: z.record(z.string(), FormViewSchema).optional().describe('Additional named form views'),\n}));\n\n/**\n * Type-safe factory for creating view definitions.\n *\n * Validates the config at creation time using Zod `.parse()`.\n *\n * @example\n * ```ts\n * const taskViews = defineView({\n * list: {\n * type: 'grid',\n * data: { provider: 'object', object: 'task' },\n * columns: ['subject', 'status', 'priority', 'due_date'],\n * },\n * form: {\n * type: 'simple',\n * sections: [{ label: 'Details', fields: [{ field: 'subject' }] }],\n * },\n * });\n * ```\n */\nexport function defineView(config: z.input<typeof ViewSchema>): View {\n return ViewSchema.parse(config);\n}\n\n/**\n * Type-safe factory for a standalone {@link FormView} bound to a JSON Schema\n * rather than to an ObjectQL object.\n *\n * Use this for forms that edit **metadata** (e.g. `report.form.ts`,\n * `dashboard.form.ts`), **action inputs**, or **flow screens** — anywhere the\n * data shape is described by a Zod-derived JSON Schema instead of an Object\n * field set.\n *\n * The returned FormView is validated at definition time; the runtime form\n * renderer (`@object-ui/plugin-form`) inspects `data.provider === 'schema'`\n * and pulls field metadata from the resolved JSON Schema instead of from\n * ObjectQL.\n *\n * @example\n * ```ts\n * export const reportForm = defineForm({\n * schemaId: 'report',\n * type: 'tabbed',\n * sections: [\n * { label: 'Basics', columns: 2, fields: [\n * { field: 'name' },\n * { field: 'label' },\n * { field: 'objectName', widget: 'ref:object' },\n * { field: 'type' },\n * ]},\n * { label: 'Columns', fields: [{ field: 'columns', widget: 'master-detail' }] },\n * { label: 'Advanced', collapsible: true, collapsed: true, fields: [\n * { field: 'filter', widget: 'filter-builder' },\n * { field: 'chart', widget: 'chart-config' },\n * ]},\n * ],\n * });\n * ```\n */\nexport function defineForm(\n config: Omit<z.input<typeof FormViewSchema>, 'data'> & { schemaId: string },\n): FormView {\n const { schemaId, ...rest } = config;\n return FormViewSchema.parse({\n ...rest,\n data: { provider: 'schema', schemaId },\n });\n}\n\nexport type View = z.infer<typeof ViewSchema>;\nexport type ListView = z.infer<typeof ListViewSchema>;\nexport type FormView = z.infer<typeof FormViewSchema>;\nexport type FormSection = z.infer<typeof FormSectionSchema>;\nexport type ListColumn = z.infer<typeof ListColumnSchema>;\nexport type FormField = z.infer<typeof FormFieldSchema>;\nexport type SelectionConfig = z.infer<typeof SelectionConfigSchema>;\nexport type NavigationConfig = z.infer<typeof NavigationConfigSchema>;\nexport type PaginationConfig = z.infer<typeof PaginationConfigSchema>;\nexport type ViewData = z.infer<typeof ViewDataSchema>;\nexport type HttpRequest = z.infer<typeof HttpRequestSchema>;\nexport type HttpMethod = z.infer<typeof HttpMethodSchema>;\nexport type ColumnSummary = z.infer<typeof ColumnSummarySchema>;\nexport type RowHeight = z.infer<typeof RowHeightSchema>;\nexport type GroupingConfig = z.infer<typeof GroupingConfigSchema>;\nexport type GalleryConfig = z.infer<typeof GalleryConfigSchema>;\nexport type TimelineConfig = z.infer<typeof TimelineConfigSchema>;\nexport type ListChartConfig = z.infer<typeof ListChartConfigSchema>;\nexport type ViewSharing = z.infer<typeof ViewSharingSchema>;\nexport type RowColorConfig = z.infer<typeof RowColorConfigSchema>;\nexport type VisualizationType = z.infer<typeof VisualizationTypeSchema>;\nexport type UserActionsConfig = z.infer<typeof UserActionsConfigSchema>;\nexport type AppearanceConfig = z.infer<typeof AppearanceConfigSchema>;\nexport type ViewTab = z.infer<typeof ViewTabSchema>;\nexport type AddRecordConfig = z.infer<typeof AddRecordConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { defineForm } from '../ui/view.zod';\n\n/**\n * PermissionSet — canonical FormView layout.\n *\n * Used for both `permission` (additive permission grant bundles) and\n * `profile` (the base permission set assigned to every user). The only\n * semantic difference is the `isProfile` flag; we expose it as a switch\n * so admins can see and toggle it explicitly.\n *\n * The object/field permission maps are intentionally kept as JSON for\n * now — they're typically managed via the dedicated permission matrix\n * UI on a record-by-record basis, not free-form editing.\n */\nexport const permissionForm = defineForm({\n schemaId: 'permission',\n type: 'simple',\n sections: [\n {\n label: 'Identity',\n description:\n 'Permission Sets stack on top of a Profile to grant additional access. Profiles are the base set assigned 1:1 to each user.',\n columns: 2,\n fields: [\n { field: 'name', required: true, colSpan: 1, helpText: 'Machine name (snake_case)' },\n { field: 'label', colSpan: 1, helpText: 'Display label for admins' },\n { field: 'isProfile', type: 'toggle', colSpan: 2, helpText: 'Profile = base set assigned to users. Permission Set = additive grant.' },\n ],\n },\n {\n label: 'System Permissions',\n description: 'High-level capabilities not tied to a specific object — e.g. manage_users, view_audit_logs.',\n columns: 1,\n fields: [\n { field: 'systemPermissions', type: 'tags', helpText: 'List of system capability keys' },\n ],\n },\n {\n label: 'Object & Field Permissions',\n description: 'Per-object CRUD + per-field FLS. Edit via the matrix editor or paste JSON here.',\n columns: 1,\n fields: [\n { field: 'objects', widget: 'json', helpText: '{ \"account\": { allowRead: true, allowEdit: true, ... } }' },\n { field: 'fields', widget: 'json', helpText: '{ \"account.amount\": { readable: true, editable: false } }' },\n ],\n },\n {\n label: 'Tab & Row-Level Security',\n description: 'Tab visibility, RLS policies, and custom context variables for predicate evaluation.',\n columns: 1,\n fields: [\n { field: 'tabPermissions', widget: 'json', helpText: '{ \"app_crm\": \"visible\", \"app_admin\": \"hidden\" }' },\n { field: 'rowLevelSecurity', widget: 'json', helpText: 'Array of RLS policies (see rls.zod.ts)' },\n { field: 'contextVariables', widget: 'json', helpText: 'Custom variables referenced in RLS predicates' },\n ],\n },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { ExpressionInputSchema } from '../shared/expression.zod';\n\n/**\n * Organization-Wide Defaults (OWD)\n * The baseline security posture for an object.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const OWDModel = z.enum([\n 'private', // Only owner can see\n 'public_read', // Everyone can see, owner can edit\n 'public_read_write', // Everyone can see and edit\n 'controlled_by_parent' // Access derived from parent record (Master-Detail)\n]);\n\n/**\n * Sharing Rule Type\n * How is the data shared?\n */\nexport const SharingRuleType = z.enum([\n 'owner', // Based on record ownership (Role Hierarchy)\n 'criteria', // Based on field values (e.g. Status = 'Open')\n]);\n\n/**\n * Sharing Level\n * What access is granted?\n */\nexport const SharingLevel = z.enum([\n 'read', // Read Only\n 'edit', // Read / Write\n 'full' // Full Access (Transfer, Share, Delete)\n]);\n\n/**\n * Recipient Type \n * Who receives the access?\n */\nexport const ShareRecipientType = z.enum([\n 'user',\n 'group',\n 'role',\n 'role_and_subordinates',\n 'guest' // for public sharing\n]);\n\n/**\n * Base Sharing Rule\n * Common metadata for all sharing strategies.\n */\nconst BaseSharingRuleSchema = z.object({\n // Identification\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Unique rule name (snake_case)'),\n label: z.string().optional().describe('Human-readable label'),\n description: z.string().optional().describe('Administrative notes'),\n \n // Scope\n object: z.string().describe('Target Object Name'),\n active: z.boolean().default(true),\n \n // Access\n accessLevel: SharingLevel.default('read'),\n \n // Recipient (Whom to share with)\n sharedWith: z.object({\n type: ShareRecipientType,\n value: z.string().describe('ID or Code of the User/Group/Role'),\n }).describe('The recipient of the shared access'),\n});\n\n/**\n * 1. Criteria-Based Sharing Rule\n * Share records that meet specific field criteria.\n */\nexport const CriteriaSharingRuleSchema = lazySchema(() => BaseSharingRuleSchema.extend({\n type: z.literal('criteria'),\n condition: ExpressionInputSchema.describe('Predicate (CEL). e.g. P`record.department == \"Sales\"`'),\n}));\n\n/**\n * 2. Owner-Based Sharing Rule\n * Share records owned by a specific group of users.\n */\nexport const OwnerSharingRuleSchema = lazySchema(() => BaseSharingRuleSchema.extend({\n type: z.literal('owner'),\n ownedBy: z.object({\n type: ShareRecipientType,\n value: z.string(),\n }).describe('Source group/role whose records are being shared'),\n}));\n\n/**\n * Master Sharing Rule Schema\n */\nexport const SharingRuleSchema = lazySchema(() => z.discriminatedUnion('type', [\n CriteriaSharingRuleSchema,\n OwnerSharingRuleSchema\n]));\n\nexport type SharingRule = z.infer<typeof SharingRuleSchema>;\nexport type CriteriaSharingRule = z.infer<typeof CriteriaSharingRuleSchema>;\nexport type OwnerSharingRule = z.infer<typeof OwnerSharingRuleSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * Territory Management Protocol\n * Defines a matrix reporting structure that exists parallel to the Role Hierarchy.\n * \n * USE CASE:\n * - Enterprise Sales Teams (Geo-based: \"EMEA\", \"APAC\")\n * - Industry Verticals (Industry-based: \"Healthcare\", \"Financial\")\n * - Strategic Accounts (Account-based: \"Strategic Accounts\")\n * \n * DIFFERENCE FROM ROLE:\n * - Role: Hierarchy of PEOPLE (Who reports to whom). Stable. HR-driven.\n * - Territory: Hierarchy of ACCOUNTS/REVENUE (Who owns which market). Flexible. Sales-driven.\n * - One User can be assigned to MANY Territories (Matrix).\n * - One User has only ONE Role (Tree).\n */\n\nimport { lazySchema } from '../shared/lazy-schema';\nexport const TerritoryType = z.enum([\n 'geography', // Region/Country/City\n 'industry', // Vertical\n 'named_account', // Key Accounts\n 'product_line' // Product Specialty\n]);\n\n/**\n * Territory Model Schema\n * A container for a version of territory planning.\n * (e.g. \"Fiscal Year 2024 Planning\" vs \"Fiscal Year 2025 Planning\")\n */\nexport const TerritoryModelSchema = lazySchema(() => z.object({\n name: z.string().describe('Model Name (e.g. FY24 Planning)'),\n state: z.enum(['planning', 'active', 'archived']).default('planning'),\n startDate: z.string().optional(),\n endDate: z.string().optional(),\n}));\n\n/**\n * Territory Node Schema\n * A single node in the territory tree.\n * \n * **NAMING CONVENTION:**\n * Territory names are machine identifiers and must be lowercase snake_case.\n * \n * @example Good territory names\n * - 'west_coast'\n * - 'emea_region'\n * - 'healthcare_vertical'\n * - 'strategic_accounts'\n * \n * @example Bad territory names (will be rejected)\n * - 'WestCoast' (PascalCase)\n * - 'West Coast' (spaces)\n */\nexport const TerritorySchema = lazySchema(() => z.object({\n /** Identity */\n name: SnakeCaseIdentifierSchema.describe('Territory unique name (lowercase snake_case)'),\n label: z.string().describe('Territory Label (e.g. \"West Coast\")'),\n \n /** Structure */\n modelId: z.string().describe('Belongs to which Territory Model'),\n parent: z.string().optional().describe('Parent Territory'),\n type: TerritoryType.default('geography'),\n \n /** \n * Assignment Rules (The \"Magic\")\n * How do accounts automatically fall into this territory?\n * e.g. \"BillingCountry = 'US' AND BillingState = 'CA'\"\n */\n assignmentRule: z.string().optional().describe('Criteria based assignment rule'),\n \n /**\n * User Assignment\n * Users assigned to work this territory.\n */\n assignedUsers: z.array(z.string()).optional(),\n \n /** Access Level */\n accountAccess: z.enum(['read', 'edit']).default('read'),\n opportunityAccess: z.enum(['read', 'edit']).default('read'),\n caseAccess: z.enum(['read', 'edit']).default('read'),\n}));\n\nexport type Territory = z.infer<typeof TerritorySchema>;\nexport type TerritoryModel = z.infer<typeof TerritoryModelSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Password Complexity Policy\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const PasswordPolicySchema = lazySchema(() => z.object({\n minLength: z.number().default(8),\n requireUppercase: z.boolean().default(true),\n requireLowercase: z.boolean().default(true),\n requireNumbers: z.boolean().default(true),\n requireSymbols: z.boolean().default(false),\n expirationDays: z.number().optional().describe('Force password change every X days'),\n historyCount: z.number().default(3).describe('Prevent reusing last X passwords'),\n}));\n\n/**\n * Network Access Policy (IP Whitelisting)\n */\nexport const NetworkPolicySchema = lazySchema(() => z.object({\n trustedRanges: z.array(z.string()).describe('CIDR ranges allowed to access (e.g. 10.0.0.0/8)'),\n blockUnknown: z.boolean().default(false).describe('Block all IPs not in trusted ranges'),\n vpnRequired: z.boolean().default(false),\n}));\n\n/**\n * Session Policy\n */\nexport const SessionPolicySchema = lazySchema(() => z.object({\n idleTimeout: z.number().default(30).describe('Minutes before idle session logout'),\n absoluteTimeout: z.number().default(480).describe('Max session duration (minutes)'),\n forceMfa: z.boolean().default(false).describe('Require 2FA for all users'),\n}));\n\n/**\n * Audit Retention Policy\n */\nexport const AuditPolicySchema = lazySchema(() => z.object({\n logRetentionDays: z.number().default(180),\n sensitiveFields: z.array(z.string()).describe('Fields to redact in logs (e.g. password, ssn)'),\n captureRead: z.boolean().default(false).describe('Log read access (High volume!)'),\n}));\n\n/**\n * Security Policy Schema\n * \"The Cloud Compliance Contract\"\n */\nexport const PolicySchema = lazySchema(() => z.object({\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Policy Name'),\n \n password: PasswordPolicySchema.optional(),\n network: NetworkPolicySchema.optional(),\n session: SessionPolicySchema.optional(),\n audit: AuditPolicySchema.optional(),\n\n /** Assignment */\n isDefault: z.boolean().default(false).describe('Apply to all users by default'),\n assignedProfiles: z.array(z.string()).optional().describe('Apply to specific profiles'),\n}));\n\nexport type Policy = z.infer<typeof PolicySchema>;\n"]}