@party-stack/ontology 0.19.0 → 0.19.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 (402) hide show
  1. package/lib/OntologyPullConfig.d.ts +15 -13
  2. package/lib/OntologyPullConfig.d.ts.map +1 -1
  3. package/lib/OntologyPullConfig.js +0 -1
  4. package/lib/_virtual/_rolldown/runtime.js +13 -0
  5. package/lib/cli/format.d.ts +4 -0
  6. package/lib/cli/format.d.ts.map +1 -0
  7. package/lib/cli/format.js +19 -0
  8. package/lib/cli/format.js.map +1 -0
  9. package/lib/cli/generate.d.ts +6 -5
  10. package/lib/cli/generate.d.ts.map +1 -1
  11. package/lib/cli/generate.js +86 -110
  12. package/lib/cli/generate.js.map +1 -1
  13. package/lib/cli/index.d.ts +1 -3
  14. package/lib/cli/index.js +42 -59
  15. package/lib/cli/index.js.map +1 -1
  16. package/lib/cli/pull.d.ts +3 -1
  17. package/lib/cli/pull.d.ts.map +1 -1
  18. package/lib/cli/pull.js +42 -60
  19. package/lib/cli/pull.js.map +1 -1
  20. package/lib/examples/blog.d.ts +347 -345
  21. package/lib/examples/blog.d.ts.map +1 -1
  22. package/lib/examples/blog.js +350 -337
  23. package/lib/examples/blog.js.map +1 -1
  24. package/lib/examples/blog.live-queries.d.ts +8 -3
  25. package/lib/examples/blog.live-queries.d.ts.map +1 -1
  26. package/lib/examples/blog.live-queries.js +28 -44
  27. package/lib/examples/blog.live-queries.js.map +1 -1
  28. package/lib/examples/generated/constants.d.ts +1 -2
  29. package/lib/examples/generated/constants.js +0 -2
  30. package/lib/examples/generated/live.d.ts +5 -3
  31. package/lib/examples/generated/live.d.ts.map +1 -1
  32. package/lib/examples/generated/live.js +12 -8
  33. package/lib/examples/generated/live.js.map +1 -1
  34. package/lib/examples/generated/types.d.ts +52 -50
  35. package/lib/examples/generated/types.d.ts.map +1 -1
  36. package/lib/examples/generated/types.js +0 -2
  37. package/lib/generate/builders.d.ts +8 -5
  38. package/lib/generate/builders.d.ts.map +1 -1
  39. package/lib/generate/builders.js +53 -55
  40. package/lib/generate/builders.js.map +1 -1
  41. package/lib/generate/constants.d.ts +3 -1
  42. package/lib/generate/constants.d.ts.map +1 -1
  43. package/lib/generate/constants.js +23 -26
  44. package/lib/generate/constants.js.map +1 -1
  45. package/lib/generate/index.d.ts +6 -6
  46. package/lib/generate/index.js +6 -6
  47. package/lib/generate/live.d.ts +8 -6
  48. package/lib/generate/live.d.ts.map +1 -1
  49. package/lib/generate/live.js +43 -42
  50. package/lib/generate/live.js.map +1 -1
  51. package/lib/generate/ontology.d.ts +4 -2
  52. package/lib/generate/ontology.d.ts.map +1 -1
  53. package/lib/generate/ontology.js +453 -354
  54. package/lib/generate/ontology.js.map +1 -1
  55. package/lib/generate/types.d.ts +7 -6
  56. package/lib/generate/types.d.ts.map +1 -1
  57. package/lib/generate/types.js +190 -262
  58. package/lib/generate/types.js.map +1 -1
  59. package/lib/generate/utils/buildJsDocs.d.ts +7 -4
  60. package/lib/generate/utils/buildJsDocs.d.ts.map +1 -1
  61. package/lib/generate/utils/buildJsDocs.js +14 -10
  62. package/lib/generate/utils/buildJsDocs.js.map +1 -1
  63. package/lib/index.d.ts +30 -13
  64. package/lib/index.js +18 -10
  65. package/lib/infer.d.ts +129 -152
  66. package/lib/infer.d.ts.map +1 -1
  67. package/lib/infer.js +10 -6
  68. package/lib/infer.js.map +1 -1
  69. package/lib/installation/createMetaOntologyConfiguration.d.ts +6 -3
  70. package/lib/installation/createMetaOntologyConfiguration.d.ts.map +1 -1
  71. package/lib/installation/createMetaOntologyConfiguration.js +13 -11
  72. package/lib/installation/createMetaOntologyConfiguration.js.map +1 -1
  73. package/lib/installation/createOntologyBackendInstallation.d.ts +3 -1
  74. package/lib/installation/createOntologyBackendInstallation.d.ts.map +1 -1
  75. package/lib/installation/createOntologyBackendInstallation.js +205 -268
  76. package/lib/installation/createOntologyBackendInstallation.js.map +1 -1
  77. package/lib/installation/index.d.ts +4 -4
  78. package/lib/installation/index.js +3 -3
  79. package/lib/installation/types.d.ts +83 -80
  80. package/lib/installation/types.d.ts.map +1 -1
  81. package/lib/installation/types.js +0 -1
  82. package/lib/ir/generated/builders.d.ts +294 -382
  83. package/lib/ir/generated/builders.d.ts.map +1 -1
  84. package/lib/ir/generated/builders.js +180 -119
  85. package/lib/ir/generated/builders.js.map +1 -1
  86. package/lib/ir/generated/constants.d.ts +137 -135
  87. package/lib/ir/generated/constants.d.ts.map +1 -1
  88. package/lib/ir/generated/constants.js +162 -129
  89. package/lib/ir/generated/constants.js.map +1 -1
  90. package/lib/ir/generated/types.d.ts +239 -234
  91. package/lib/ir/generated/types.d.ts.map +1 -1
  92. package/lib/ir/generated/types.js +0 -2
  93. package/lib/ir/index.d.ts +4 -4
  94. package/lib/ir/index.js +3 -4
  95. package/lib/ir/schema.d.ts +2174 -2172
  96. package/lib/ir/schema.d.ts.map +1 -1
  97. package/lib/ir/schema.js +1184 -1343
  98. package/lib/ir/schema.js.map +1 -1
  99. package/lib/ir/validate.d.ts +5 -3
  100. package/lib/ir/validate.d.ts.map +1 -1
  101. package/lib/ir/validate.js +589 -707
  102. package/lib/ir/validate.js.map +1 -1
  103. package/lib/json/index.d.ts +10 -8
  104. package/lib/json/index.d.ts.map +1 -1
  105. package/lib/json/index.js +101 -135
  106. package/lib/json/index.js.map +1 -1
  107. package/lib/lenses.d.ts +7 -4
  108. package/lib/lenses.d.ts.map +1 -1
  109. package/lib/lenses.js +96 -132
  110. package/lib/lenses.js.map +1 -1
  111. package/lib/live/LiveOntology.d.ts +55 -60
  112. package/lib/live/LiveOntology.d.ts.map +1 -1
  113. package/lib/live/LiveOntology.js +98 -124
  114. package/lib/live/LiveOntology.js.map +1 -1
  115. package/lib/live/OntologyBackendAdapter.d.ts +79 -76
  116. package/lib/live/OntologyBackendAdapter.d.ts.map +1 -1
  117. package/lib/live/OntologyBackendAdapter.js +0 -1
  118. package/lib/live/actions/createLiveOntologyAction.d.ts +27 -24
  119. package/lib/live/actions/createLiveOntologyAction.d.ts.map +1 -1
  120. package/lib/live/actions/createLiveOntologyAction.js +24 -21
  121. package/lib/live/actions/createLiveOntologyAction.js.map +1 -1
  122. package/lib/live/actions/createLiveOntologyActions.d.ts +23 -20
  123. package/lib/live/actions/createLiveOntologyActions.d.ts.map +1 -1
  124. package/lib/live/actions/createLiveOntologyActions.js +131 -161
  125. package/lib/live/actions/createLiveOntologyActions.js.map +1 -1
  126. package/lib/live/actions/prepareActionParameters.d.ts +14 -11
  127. package/lib/live/actions/prepareActionParameters.d.ts.map +1 -1
  128. package/lib/live/actions/prepareActionParameters.js +190 -228
  129. package/lib/live/actions/prepareActionParameters.js.map +1 -1
  130. package/lib/live/attachments/attachmentSources.d.ts +7 -4
  131. package/lib/live/attachments/attachmentSources.d.ts.map +1 -1
  132. package/lib/live/attachments/attachmentSources.js +55 -71
  133. package/lib/live/attachments/attachmentSources.js.map +1 -1
  134. package/lib/live/attachments/createLiveOntologyAttachments.d.ts +47 -45
  135. package/lib/live/attachments/createLiveOntologyAttachments.d.ts.map +1 -1
  136. package/lib/live/attachments/createLiveOntologyAttachments.js +65 -83
  137. package/lib/live/attachments/createLiveOntologyAttachments.js.map +1 -1
  138. package/lib/live/attachments/types.d.ts +10 -9
  139. package/lib/live/attachments/types.d.ts.map +1 -1
  140. package/lib/live/attachments/types.js +0 -1
  141. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.d.ts +3 -1
  142. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.d.ts.map +1 -1
  143. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.js +5 -3
  144. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.js.map +1 -1
  145. package/lib/live/expression.d.ts +16 -14
  146. package/lib/live/expression.d.ts.map +1 -1
  147. package/lib/live/expression.js +142 -223
  148. package/lib/live/expression.js.map +1 -1
  149. package/lib/live/index.d.ts +12 -9
  150. package/lib/live/index.js +6 -8
  151. package/lib/live/mutators/OntologyEdits.d.ts +12 -9
  152. package/lib/live/mutators/OntologyEdits.d.ts.map +1 -1
  153. package/lib/live/mutators/OntologyEdits.js +57 -74
  154. package/lib/live/mutators/OntologyEdits.js.map +1 -1
  155. package/lib/live/mutators/createMutatorTx.d.ts +7 -5
  156. package/lib/live/mutators/createMutatorTx.d.ts.map +1 -1
  157. package/lib/live/mutators/createMutatorTx.js +53 -69
  158. package/lib/live/mutators/createMutatorTx.js.map +1 -1
  159. package/lib/live/mutators/runOptimisticAction.d.ts +16 -13
  160. package/lib/live/mutators/runOptimisticAction.d.ts.map +1 -1
  161. package/lib/live/mutators/runOptimisticAction.js +26 -26
  162. package/lib/live/mutators/runOptimisticAction.js.map +1 -1
  163. package/lib/live/mutators/types.d.ts +18 -16
  164. package/lib/live/mutators/types.d.ts.map +1 -1
  165. package/lib/live/mutators/types.js +0 -1
  166. package/lib/live/objects/OntologyObject.d.ts +2 -0
  167. package/lib/live/objects/OntologyObject.d.ts.map +1 -1
  168. package/lib/live/objects/OntologyObject.js +0 -1
  169. package/lib/live/objects/createLiveOntologyObjectCollection.d.ts +13 -10
  170. package/lib/live/objects/createLiveOntologyObjectCollection.d.ts.map +1 -1
  171. package/lib/live/objects/createLiveOntologyObjectCollection.js +48 -49
  172. package/lib/live/objects/createLiveOntologyObjectCollection.js.map +1 -1
  173. package/lib/live/objects/ontologyObjectCollectionId.d.ts +2 -0
  174. package/lib/live/objects/ontologyObjectCollectionId.d.ts.map +1 -1
  175. package/lib/live/objects/ontologyObjectCollectionId.js +6 -2
  176. package/lib/live/objects/ontologyObjectCollectionId.js.map +1 -1
  177. package/lib/live/outbox/createOntologyOutbox.d.ts +16 -14
  178. package/lib/live/outbox/createOntologyOutbox.d.ts.map +1 -1
  179. package/lib/live/outbox/createOntologyOutbox.js +275 -326
  180. package/lib/live/outbox/createOntologyOutbox.js.map +1 -1
  181. package/lib/live/outbox/leaderExecutor.d.ts +15 -13
  182. package/lib/live/outbox/leaderExecutor.d.ts.map +1 -1
  183. package/lib/live/outbox/leaderExecutor.js +114 -153
  184. package/lib/live/outbox/leaderExecutor.js.map +1 -1
  185. package/lib/live/outbox/outboxService.d.ts +4 -2
  186. package/lib/live/outbox/outboxService.d.ts.map +1 -1
  187. package/lib/live/outbox/outboxService.js +66 -71
  188. package/lib/live/outbox/outboxService.js.map +1 -1
  189. package/lib/live/outbox/projectionManager.d.ts +26 -24
  190. package/lib/live/outbox/projectionManager.d.ts.map +1 -1
  191. package/lib/live/outbox/projectionManager.js +121 -147
  192. package/lib/live/outbox/projectionManager.js.map +1 -1
  193. package/lib/live/outbox/repository.d.ts +27 -25
  194. package/lib/live/outbox/repository.d.ts.map +1 -1
  195. package/lib/live/outbox/repository.js +192 -241
  196. package/lib/live/outbox/repository.js.map +1 -1
  197. package/lib/live/outbox/service.d.ts +52 -50
  198. package/lib/live/outbox/service.d.ts.map +1 -1
  199. package/lib/live/outbox/service.js +5 -1
  200. package/lib/live/outbox/service.js.map +1 -1
  201. package/lib/live/outbox/types.d.ts +35 -33
  202. package/lib/live/outbox/types.d.ts.map +1 -1
  203. package/lib/live/outbox/types.js +10 -6
  204. package/lib/live/outbox/types.js.map +1 -1
  205. package/lib/live/waitForCollectionReady.d.ts +3 -1
  206. package/lib/live/waitForCollectionReady.d.ts.map +1 -1
  207. package/lib/live/waitForCollectionReady.js +44 -65
  208. package/lib/live/waitForCollectionReady.js.map +1 -1
  209. package/lib/meta/createLocalMetaOntologyBackendAdapter.d.ts +5 -2
  210. package/lib/meta/createLocalMetaOntologyBackendAdapter.d.ts.map +1 -1
  211. package/lib/meta/createLocalMetaOntologyBackendAdapter.js +37 -39
  212. package/lib/meta/createLocalMetaOntologyBackendAdapter.js.map +1 -1
  213. package/lib/meta/generated/constants.d.ts +137 -135
  214. package/lib/meta/generated/constants.d.ts.map +1 -1
  215. package/lib/meta/generated/constants.js +162 -129
  216. package/lib/meta/generated/constants.js.map +1 -1
  217. package/lib/meta/generated/live.d.ts +5 -2
  218. package/lib/meta/generated/live.d.ts.map +1 -1
  219. package/lib/meta/generated/live.js +12 -8
  220. package/lib/meta/generated/live.js.map +1 -1
  221. package/lib/meta/generated/types.d.ts +233 -231
  222. package/lib/meta/generated/types.d.ts.map +1 -1
  223. package/lib/meta/generated/types.js +0 -2
  224. package/lib/meta/ontology.d.ts +23 -21
  225. package/lib/meta/ontology.d.ts.map +1 -1
  226. package/lib/meta/ontology.js +100 -104
  227. package/lib/meta/ontology.js.map +1 -1
  228. package/lib/meta/pull.d.ts +8 -6
  229. package/lib/meta/pull.d.ts.map +1 -1
  230. package/lib/meta/pull.js +39 -52
  231. package/lib/meta/pull.js.map +1 -1
  232. package/lib/utils/index.d.ts +8 -8
  233. package/lib/utils/index.js +5 -6
  234. package/lib/utils/links.d.ts +34 -32
  235. package/lib/utils/links.d.ts.map +1 -1
  236. package/lib/utils/links.js +10 -17
  237. package/lib/utils/links.js.map +1 -1
  238. package/lib/utils/paths.d.ts +2 -0
  239. package/lib/utils/paths.d.ts.map +1 -1
  240. package/lib/utils/paths.js +32 -44
  241. package/lib/utils/paths.js.map +1 -1
  242. package/lib/utils/provide.d.ts +2 -0
  243. package/lib/utils/provide.d.ts.map +1 -1
  244. package/lib/utils/provide.js +7 -9
  245. package/lib/utils/provide.js.map +1 -1
  246. package/lib/utils/targets.d.ts +20 -18
  247. package/lib/utils/targets.d.ts.map +1 -1
  248. package/lib/utils/targets.js +0 -1
  249. package/lib/utils/typeNames.d.ts +10 -8
  250. package/lib/utils/typeNames.d.ts.map +1 -1
  251. package/lib/utils/typeNames.js +0 -1
  252. package/lib/utils/types.d.ts +6 -4
  253. package/lib/utils/types.d.ts.map +1 -1
  254. package/lib/utils/types.js +38 -38
  255. package/lib/utils/types.js.map +1 -1
  256. package/lib/utils/uncertain.d.ts +5 -3
  257. package/lib/utils/uncertain.d.ts.map +1 -1
  258. package/lib/utils/uncertain.js +11 -9
  259. package/lib/utils/uncertain.js.map +1 -1
  260. package/lib/utils/validation.d.ts +4 -2
  261. package/lib/utils/validation.d.ts.map +1 -1
  262. package/lib/utils/validation.js +0 -1
  263. package/lib/utils/values.d.ts +21 -18
  264. package/lib/utils/values.d.ts.map +1 -1
  265. package/lib/utils/values.js +0 -1
  266. package/package.json +19 -23
  267. package/lib/OntologyPullConfig.js.map +0 -1
  268. package/lib/cli/index.d.ts.map +0 -1
  269. package/lib/cli/index.test.d.ts +0 -2
  270. package/lib/cli/index.test.d.ts.map +0 -1
  271. package/lib/cli/index.test.js +0 -34
  272. package/lib/cli/index.test.js.map +0 -1
  273. package/lib/cli/pull.test.d.ts +0 -2
  274. package/lib/cli/pull.test.d.ts.map +0 -1
  275. package/lib/cli/pull.test.js +0 -125
  276. package/lib/cli/pull.test.js.map +0 -1
  277. package/lib/examples/generated/constants.d.ts.map +0 -1
  278. package/lib/examples/generated/constants.js.map +0 -1
  279. package/lib/examples/generated/types.js.map +0 -1
  280. package/lib/generate/builders.test.d.ts +0 -2
  281. package/lib/generate/builders.test.d.ts.map +0 -1
  282. package/lib/generate/builders.test.js +0 -49
  283. package/lib/generate/builders.test.js.map +0 -1
  284. package/lib/generate/index.d.ts.map +0 -1
  285. package/lib/generate/index.js.map +0 -1
  286. package/lib/generate/live.test.d.ts +0 -2
  287. package/lib/generate/live.test.d.ts.map +0 -1
  288. package/lib/generate/live.test.js +0 -22
  289. package/lib/generate/live.test.js.map +0 -1
  290. package/lib/generate/ontology.test.d.ts +0 -2
  291. package/lib/generate/ontology.test.d.ts.map +0 -1
  292. package/lib/generate/ontology.test.js +0 -157
  293. package/lib/generate/ontology.test.js.map +0 -1
  294. package/lib/generate/types.test.d.ts +0 -2
  295. package/lib/generate/types.test.d.ts.map +0 -1
  296. package/lib/generate/types.test.js +0 -304
  297. package/lib/generate/types.test.js.map +0 -1
  298. package/lib/index.d.ts.map +0 -1
  299. package/lib/index.js.map +0 -1
  300. package/lib/infer.test.d.ts +0 -2
  301. package/lib/infer.test.d.ts.map +0 -1
  302. package/lib/infer.test.js +0 -125
  303. package/lib/infer.test.js.map +0 -1
  304. package/lib/installation/createMetaOntologyConfiguration.test.d.ts +0 -2
  305. package/lib/installation/createMetaOntologyConfiguration.test.d.ts.map +0 -1
  306. package/lib/installation/createMetaOntologyConfiguration.test.js +0 -20
  307. package/lib/installation/createMetaOntologyConfiguration.test.js.map +0 -1
  308. package/lib/installation/createOntologyBackendInstallation.test.d.ts +0 -2
  309. package/lib/installation/createOntologyBackendInstallation.test.d.ts.map +0 -1
  310. package/lib/installation/createOntologyBackendInstallation.test.js +0 -320
  311. package/lib/installation/createOntologyBackendInstallation.test.js.map +0 -1
  312. package/lib/installation/index.d.ts.map +0 -1
  313. package/lib/installation/index.js.map +0 -1
  314. package/lib/installation/types.js.map +0 -1
  315. package/lib/ir/generated/types.js.map +0 -1
  316. package/lib/ir/index.d.ts.map +0 -1
  317. package/lib/ir/index.js.map +0 -1
  318. package/lib/ir/validate.test.d.ts +0 -2
  319. package/lib/ir/validate.test.d.ts.map +0 -1
  320. package/lib/ir/validate.test.js +0 -1061
  321. package/lib/ir/validate.test.js.map +0 -1
  322. package/lib/json/index.test.d.ts +0 -2
  323. package/lib/json/index.test.d.ts.map +0 -1
  324. package/lib/json/index.test.js +0 -142
  325. package/lib/json/index.test.js.map +0 -1
  326. package/lib/lenses.test.d.ts +0 -2
  327. package/lib/lenses.test.d.ts.map +0 -1
  328. package/lib/lenses.test.js +0 -80
  329. package/lib/lenses.test.js.map +0 -1
  330. package/lib/live/LiveOntology.test.d.ts +0 -2
  331. package/lib/live/LiveOntology.test.d.ts.map +0 -1
  332. package/lib/live/LiveOntology.test.js +0 -507
  333. package/lib/live/LiveOntology.test.js.map +0 -1
  334. package/lib/live/OntologyBackendAdapter.js.map +0 -1
  335. package/lib/live/actions/createLiveOntologyAction.test.d.ts +0 -2
  336. package/lib/live/actions/createLiveOntologyAction.test.d.ts.map +0 -1
  337. package/lib/live/actions/createLiveOntologyAction.test.js +0 -232
  338. package/lib/live/actions/createLiveOntologyAction.test.js.map +0 -1
  339. package/lib/live/actions/prepareActionParameters.test.d.ts +0 -2
  340. package/lib/live/actions/prepareActionParameters.test.d.ts.map +0 -1
  341. package/lib/live/actions/prepareActionParameters.test.js +0 -165
  342. package/lib/live/actions/prepareActionParameters.test.js.map +0 -1
  343. package/lib/live/attachments/attachmentMetadata.test.d.ts +0 -2
  344. package/lib/live/attachments/attachmentMetadata.test.d.ts.map +0 -1
  345. package/lib/live/attachments/attachmentMetadata.test.js +0 -73
  346. package/lib/live/attachments/attachmentMetadata.test.js.map +0 -1
  347. package/lib/live/attachments/createLiveOntologyAttachments.test.d.ts +0 -2
  348. package/lib/live/attachments/createLiveOntologyAttachments.test.d.ts.map +0 -1
  349. package/lib/live/attachments/createLiveOntologyAttachments.test.js +0 -363
  350. package/lib/live/attachments/createLiveOntologyAttachments.test.js.map +0 -1
  351. package/lib/live/attachments/types.js.map +0 -1
  352. package/lib/live/expression.test.d.ts +0 -2
  353. package/lib/live/expression.test.d.ts.map +0 -1
  354. package/lib/live/expression.test.js +0 -311
  355. package/lib/live/expression.test.js.map +0 -1
  356. package/lib/live/index.d.ts.map +0 -1
  357. package/lib/live/index.js.map +0 -1
  358. package/lib/live/mutators/OntologyEdits.test.d.ts +0 -2
  359. package/lib/live/mutators/OntologyEdits.test.d.ts.map +0 -1
  360. package/lib/live/mutators/OntologyEdits.test.js +0 -85
  361. package/lib/live/mutators/OntologyEdits.test.js.map +0 -1
  362. package/lib/live/mutators/createMutatorTx.test.d.ts +0 -2
  363. package/lib/live/mutators/createMutatorTx.test.d.ts.map +0 -1
  364. package/lib/live/mutators/createMutatorTx.test.js +0 -180
  365. package/lib/live/mutators/createMutatorTx.test.js.map +0 -1
  366. package/lib/live/mutators/types.js.map +0 -1
  367. package/lib/live/objects/OntologyObject.js.map +0 -1
  368. package/lib/live/objects/createLiveOntologyObjectCollection.test.d.ts +0 -2
  369. package/lib/live/objects/createLiveOntologyObjectCollection.test.d.ts.map +0 -1
  370. package/lib/live/objects/createLiveOntologyObjectCollection.test.js +0 -310
  371. package/lib/live/objects/createLiveOntologyObjectCollection.test.js.map +0 -1
  372. package/lib/live/outbox/createOntologyOutbox.test.d.ts +0 -2
  373. package/lib/live/outbox/createOntologyOutbox.test.d.ts.map +0 -1
  374. package/lib/live/outbox/createOntologyOutbox.test.js +0 -1030
  375. package/lib/live/outbox/createOntologyOutbox.test.js.map +0 -1
  376. package/lib/meta/generated/types.js.map +0 -1
  377. package/lib/meta/ontology.test.d.ts +0 -2
  378. package/lib/meta/ontology.test.d.ts.map +0 -1
  379. package/lib/meta/ontology.test.js +0 -84
  380. package/lib/meta/ontology.test.js.map +0 -1
  381. package/lib/utils/index.d.ts.map +0 -1
  382. package/lib/utils/index.js.map +0 -1
  383. package/lib/utils/links.test.d.ts +0 -2
  384. package/lib/utils/links.test.d.ts.map +0 -1
  385. package/lib/utils/links.test.js +0 -109
  386. package/lib/utils/links.test.js.map +0 -1
  387. package/lib/utils/paths.test.d.ts +0 -2
  388. package/lib/utils/paths.test.d.ts.map +0 -1
  389. package/lib/utils/paths.test.js +0 -33
  390. package/lib/utils/paths.test.js.map +0 -1
  391. package/lib/utils/targets.js.map +0 -1
  392. package/lib/utils/typeNames.js.map +0 -1
  393. package/lib/utils/types.test.d.ts +0 -2
  394. package/lib/utils/types.test.d.ts.map +0 -1
  395. package/lib/utils/types.test.js +0 -157
  396. package/lib/utils/types.test.js.map +0 -1
  397. package/lib/utils/uncertain.test.d.ts +0 -2
  398. package/lib/utils/uncertain.test.d.ts.map +0 -1
  399. package/lib/utils/uncertain.test.js +0 -14
  400. package/lib/utils/uncertain.test.js.map +0 -1
  401. package/lib/utils/validation.js.map +0 -1
  402. package/lib/utils/values.js.map +0 -1
@@ -1,241 +1,160 @@
1
+ import { isLinkHopFromForeignKeySource, resolveLinkHop } from "../utils/links.js";
2
+ import { resolveType, unwrapType } from "../utils/types.js";
3
+ import { getAtPath } from "../utils/paths.js";
1
4
  import { eq } from "@tanstack/db";
2
5
  import { Temporal } from "temporal-polyfill";
3
- import { isLinkHopFromForeignKeySource, resolveLinkHop, } from "../utils/links.js";
4
- import { getAtPath } from "../utils/paths.js";
5
- import { resolveType, unwrapType } from "../utils/types.js";
6
+ //#region src/live/expression.ts
6
7
  function getActionType(ir, actionTypeName) {
7
- return ir.actionTypes.find((actionType) => actionType.name === actionTypeName);
8
+ return ir.actionTypes.find((actionType) => actionType.name === actionTypeName);
8
9
  }
9
10
  const ontologyReference = Symbol("ontologyReference");
10
11
  const ontologyObject = Symbol("ontologyObject");
11
12
  function isEvaluatedObjectReference(value) {
12
- return (typeof value === "object" &&
13
- value !== null &&
14
- ontologyReference in value);
13
+ return typeof value === "object" && value !== null && ontologyReference in value;
15
14
  }
16
15
  function isEvaluatedOntologyObject(value) {
17
- return (typeof value === "object" &&
18
- value !== null &&
19
- ontologyObject in value);
16
+ return typeof value === "object" && value !== null && ontologyObject in value;
20
17
  }
21
18
  function unwrapEvaluatedValue(value) {
22
- if (isEvaluatedObjectReference(value))
23
- return value.key;
24
- if (isEvaluatedOntologyObject(value))
25
- return value.value;
26
- if (Array.isArray(value))
27
- return value.map(unwrapEvaluatedValue);
28
- if (value !== null &&
29
- typeof value === "object" &&
30
- Object.getPrototypeOf(value) === Object.prototype) {
31
- return Object.fromEntries(Object.entries(value).map(([key, entry]) => [
32
- key,
33
- unwrapEvaluatedValue(entry),
34
- ]));
35
- }
36
- return value;
19
+ if (isEvaluatedObjectReference(value)) return value.key;
20
+ if (isEvaluatedOntologyObject(value)) return value.value;
21
+ if (Array.isArray(value)) return value.map(unwrapEvaluatedValue);
22
+ if (value !== null && typeof value === "object" && Object.getPrototypeOf(value) === Object.prototype) return Object.fromEntries(Object.entries(value).map(([key, entry]) => [key, unwrapEvaluatedValue(entry)]));
23
+ return value;
37
24
  }
38
- export async function evaluateExpression(options) {
39
- return unwrapEvaluatedValue(await evaluateExpressionWithLocals(options, new Map()));
25
+ async function evaluateExpression(options) {
26
+ return unwrapEvaluatedValue(await evaluateExpressionWithLocals(options, /* @__PURE__ */ new Map()));
40
27
  }
41
28
  async function evaluateExpressionWithLocals(options, locals) {
42
- const { ir, actionTypeName, expression, resolveParameter, context, tx } = options;
43
- switch (expression.kind) {
44
- case "inputReference": {
45
- const parameterValue = await resolveParameter(expression.value.name);
46
- const actionType = getActionType(ir, actionTypeName);
47
- const parameter = actionType.parameters.find((candidate) => candidate.name === expression.value.name);
48
- const { type: parameterType, isOptional } = unwrapType(resolveType(ir, parameter.type));
49
- if (parameterType.kind === "objectReference") {
50
- return {
51
- [ontologyReference]: true,
52
- objectType: parameterType.value.objectType,
53
- key: parameterValue,
54
- optional: isOptional,
55
- };
56
- }
57
- return parameterValue;
58
- }
59
- case "localReference": {
60
- const { name } = expression.value;
61
- if (!locals.has(name)) {
62
- throw new Error(`Unknown expression binding "${name}".`);
63
- }
64
- return locals.get(name);
65
- }
66
- case "contextReference":
67
- return context[expression.value.name];
68
- case "getAt": {
69
- const source = await evaluateExpressionWithLocals({
70
- ...options,
71
- expression: expression.value.source,
72
- }, locals);
73
- if (isEvaluatedObjectReference(source)) {
74
- throw new Error(`Cannot access field "${expression.value.path.join(".")}" on an object reference without an object lookup.`);
75
- }
76
- return getAtPath(isEvaluatedOntologyObject(source)
77
- ? source.value
78
- : source, expression.value.path);
79
- }
80
- case "objectLookup": {
81
- const reference = await evaluateExpressionWithLocals({
82
- ...options,
83
- expression: expression.value.reference,
84
- }, locals);
85
- if (!isEvaluatedObjectReference(reference)) {
86
- throw new Error("Object lookup source must resolve to an object reference.");
87
- }
88
- if (reference.key === undefined || reference.key === null) {
89
- return undefined;
90
- }
91
- const referencedType = ir.objectTypes.find((candidate) => candidate.name === reference.objectType);
92
- const referencedObject = await tx.query((query, objects) => query
93
- .from({
94
- object: objects[referencedType.name],
95
- })
96
- .where(({ object }) => eq(object[referencedType.primaryKey], reference.key))
97
- .select(({ object }) => object)
98
- .findOne());
99
- if (!referencedObject && !reference.optional) {
100
- throw new Error(`Missing loaded "${referencedType.name}" object.`);
101
- }
102
- return referencedObject
103
- ? {
104
- [ontologyObject]: true,
105
- objectType: referencedType.name,
106
- value: referencedObject,
107
- }
108
- : undefined;
109
- }
110
- case "linkHop": {
111
- const source = await evaluateExpressionWithLocals({
112
- ...options,
113
- expression: expression.value.source,
114
- }, locals);
115
- if (!isEvaluatedOntologyObject(source)) {
116
- throw new Error("Link hop source must resolve to an ontology object.");
117
- }
118
- const link = resolveLinkHop(ir, source.objectType, expression.value.link);
119
- if (!link) {
120
- throw new Error(`Unknown link "${expression.value.link}" on object type "${source.objectType}".`);
121
- }
122
- const foreignKeyOnSource = isLinkHopFromForeignKeySource(link, source.objectType, expression.value.link);
123
- const cardinality = foreignKeyOnSource
124
- ? "one"
125
- : link.cardinality;
126
- if (cardinality === "many") {
127
- throw new Error(`Link "${expression.value.link}" on object type "${source.objectType}" is to-many.`);
128
- }
129
- const sourceType = ir.objectTypes.find((candidate) => candidate.name === source.objectType);
130
- const targetType = ir.objectTypes.find((candidate) => candidate.name ===
131
- (foreignKeyOnSource
132
- ? link.target.objectType
133
- : link.source.objectType));
134
- const foreignKeyPath = link.foreignKey.split(".");
135
- const sourceKey = foreignKeyOnSource
136
- ? getAtPath(source.value, foreignKeyPath)
137
- : source.value[sourceType.primaryKey];
138
- if (sourceKey === undefined || sourceKey === null) {
139
- return undefined;
140
- }
141
- const targetProperty = foreignKeyOnSource
142
- ? targetType.primaryKey
143
- : link.foreignKey;
144
- const linkedObject = await tx.query((query, objects) => query
145
- .from({
146
- object: objects[targetType.name],
147
- })
148
- .where(({ object }) => eq(object[targetProperty], sourceKey))
149
- .select(({ object }) => object)
150
- .findOne());
151
- return linkedObject
152
- ? {
153
- [ontologyObject]: true,
154
- objectType: targetType.name,
155
- value: linkedObject,
156
- }
157
- : undefined;
158
- }
159
- case "struct": {
160
- const fields = await Promise.all(expression.value.fields.map(async (field) => [
161
- field.name,
162
- await evaluateExpressionWithLocals({
163
- ...options,
164
- expression: field.value,
165
- }, locals),
166
- ]));
167
- return Object.fromEntries(fields);
168
- }
169
- case "map": {
170
- const source = await evaluateExpressionWithLocals({
171
- ...options,
172
- expression: expression.value.source,
173
- }, locals);
174
- if (source === undefined) {
175
- return undefined;
176
- }
177
- if (!Array.isArray(source)) {
178
- throw new Error("Map expression source must resolve to a list.");
179
- }
180
- return Promise.all(source.map((item) => {
181
- const itemLocals = new Map(locals);
182
- itemLocals.set(expression.value.binding, item);
183
- return evaluateExpressionWithLocals({
184
- ...options,
185
- expression: expression.value.body,
186
- }, itemLocals);
187
- }));
188
- }
189
- case "literal":
190
- return expression.value.value;
191
- case "uuid":
192
- return globalThis.crypto.randomUUID();
193
- case "now":
194
- return Temporal.Now.instant();
195
- }
29
+ const { ir, actionTypeName, expression, resolveParameter, context, tx } = options;
30
+ switch (expression.kind) {
31
+ case "inputReference": {
32
+ const parameterValue = await resolveParameter(expression.value.name);
33
+ const parameter = getActionType(ir, actionTypeName).parameters.find((candidate) => candidate.name === expression.value.name);
34
+ const { type: parameterType, isOptional } = unwrapType(resolveType(ir, parameter.type));
35
+ if (parameterType.kind === "objectReference") return {
36
+ [ontologyReference]: true,
37
+ objectType: parameterType.value.objectType,
38
+ key: parameterValue,
39
+ optional: isOptional
40
+ };
41
+ return parameterValue;
42
+ }
43
+ case "localReference": {
44
+ const { name } = expression.value;
45
+ if (!locals.has(name)) throw new Error(`Unknown expression binding "${name}".`);
46
+ return locals.get(name);
47
+ }
48
+ case "contextReference": return context[expression.value.name];
49
+ case "getAt": {
50
+ const source = await evaluateExpressionWithLocals({
51
+ ...options,
52
+ expression: expression.value.source
53
+ }, locals);
54
+ if (isEvaluatedObjectReference(source)) throw new Error(`Cannot access field "${expression.value.path.join(".")}" on an object reference without an object lookup.`);
55
+ return getAtPath(isEvaluatedOntologyObject(source) ? source.value : source, expression.value.path);
56
+ }
57
+ case "objectLookup": {
58
+ const reference = await evaluateExpressionWithLocals({
59
+ ...options,
60
+ expression: expression.value.reference
61
+ }, locals);
62
+ if (!isEvaluatedObjectReference(reference)) throw new Error("Object lookup source must resolve to an object reference.");
63
+ if (reference.key === void 0 || reference.key === null) return;
64
+ const referencedType = ir.objectTypes.find((candidate) => candidate.name === reference.objectType);
65
+ const referencedObject = await tx.query((query, objects) => query.from({ object: objects[referencedType.name] }).where(({ object }) => eq(object[referencedType.primaryKey], reference.key)).select(({ object }) => object).findOne());
66
+ if (!referencedObject && !reference.optional) throw new Error(`Missing loaded "${referencedType.name}" object.`);
67
+ return referencedObject ? {
68
+ [ontologyObject]: true,
69
+ objectType: referencedType.name,
70
+ value: referencedObject
71
+ } : void 0;
72
+ }
73
+ case "linkHop": {
74
+ const source = await evaluateExpressionWithLocals({
75
+ ...options,
76
+ expression: expression.value.source
77
+ }, locals);
78
+ if (!isEvaluatedOntologyObject(source)) throw new Error("Link hop source must resolve to an ontology object.");
79
+ const link = resolveLinkHop(ir, source.objectType, expression.value.link);
80
+ if (!link) throw new Error(`Unknown link "${expression.value.link}" on object type "${source.objectType}".`);
81
+ const foreignKeyOnSource = isLinkHopFromForeignKeySource(link, source.objectType, expression.value.link);
82
+ if ((foreignKeyOnSource ? "one" : link.cardinality) === "many") throw new Error(`Link "${expression.value.link}" on object type "${source.objectType}" is to-many.`);
83
+ const sourceType = ir.objectTypes.find((candidate) => candidate.name === source.objectType);
84
+ const targetType = ir.objectTypes.find((candidate) => candidate.name === (foreignKeyOnSource ? link.target.objectType : link.source.objectType));
85
+ const foreignKeyPath = link.foreignKey.split(".");
86
+ const sourceKey = foreignKeyOnSource ? getAtPath(source.value, foreignKeyPath) : source.value[sourceType.primaryKey];
87
+ if (sourceKey === void 0 || sourceKey === null) return;
88
+ const targetProperty = foreignKeyOnSource ? targetType.primaryKey : link.foreignKey;
89
+ const linkedObject = await tx.query((query, objects) => query.from({ object: objects[targetType.name] }).where(({ object }) => eq(object[targetProperty], sourceKey)).select(({ object }) => object).findOne());
90
+ return linkedObject ? {
91
+ [ontologyObject]: true,
92
+ objectType: targetType.name,
93
+ value: linkedObject
94
+ } : void 0;
95
+ }
96
+ case "struct": {
97
+ const fields = await Promise.all(expression.value.fields.map(async (field) => [field.name, await evaluateExpressionWithLocals({
98
+ ...options,
99
+ expression: field.value
100
+ }, locals)]));
101
+ return Object.fromEntries(fields);
102
+ }
103
+ case "map": {
104
+ const source = await evaluateExpressionWithLocals({
105
+ ...options,
106
+ expression: expression.value.source
107
+ }, locals);
108
+ if (source === void 0) return;
109
+ if (!Array.isArray(source)) throw new Error("Map expression source must resolve to a list.");
110
+ return Promise.all(source.map((item) => {
111
+ const itemLocals = new Map(locals);
112
+ itemLocals.set(expression.value.binding, item);
113
+ return evaluateExpressionWithLocals({
114
+ ...options,
115
+ expression: expression.value.body
116
+ }, itemLocals);
117
+ }));
118
+ }
119
+ case "literal": return expression.value.value;
120
+ case "uuid": return globalThis.crypto.randomUUID();
121
+ case "now": return Temporal.Now.instant();
122
+ }
196
123
  }
197
- export async function resolveActionParameters(options) {
198
- const action = getActionType(options.ir, options.actionTypeName);
199
- const resolvedParameters = {
200
- ...options.initialParameters,
201
- };
202
- const parametersByName = new Map(action.parameters.map((parameter) => [parameter.name, parameter]));
203
- const resolving = new Set();
204
- const resolveParameter = async (parameterName) => {
205
- if (resolvedParameters[parameterName] !== undefined) {
206
- return resolvedParameters[parameterName];
207
- }
208
- const parameter = parametersByName.get(parameterName);
209
- if (!parameter?.defaultValue)
210
- return undefined;
211
- if (resolving.has(parameterName)) {
212
- throw new Error(`Circular action parameter default for "${parameterName}".`);
213
- }
214
- resolving.add(parameterName);
215
- try {
216
- resolvedParameters[parameterName] = await evaluateExpression({
217
- ir: options.ir,
218
- actionTypeName: options.actionTypeName,
219
- expression: parameter.defaultValue,
220
- resolveParameter,
221
- context: options.context,
222
- tx: options.tx,
223
- });
224
- return resolvedParameters[parameterName];
225
- }
226
- finally {
227
- resolving.delete(parameterName);
228
- }
229
- };
230
- for (const parameter of action.parameters) {
231
- await resolveParameter(parameter.name);
232
- }
233
- return resolvedParameters;
124
+ async function resolveActionParameters(options) {
125
+ const action = getActionType(options.ir, options.actionTypeName);
126
+ const resolvedParameters = { ...options.initialParameters };
127
+ const parametersByName = new Map(action.parameters.map((parameter) => [parameter.name, parameter]));
128
+ const resolving = /* @__PURE__ */ new Set();
129
+ const resolveParameter = async (parameterName) => {
130
+ if (resolvedParameters[parameterName] !== void 0) return resolvedParameters[parameterName];
131
+ const parameter = parametersByName.get(parameterName);
132
+ if (!parameter?.defaultValue) return void 0;
133
+ if (resolving.has(parameterName)) throw new Error(`Circular action parameter default for "${parameterName}".`);
134
+ resolving.add(parameterName);
135
+ try {
136
+ resolvedParameters[parameterName] = await evaluateExpression({
137
+ ir: options.ir,
138
+ actionTypeName: options.actionTypeName,
139
+ expression: parameter.defaultValue,
140
+ resolveParameter,
141
+ context: options.context,
142
+ tx: options.tx
143
+ });
144
+ return resolvedParameters[parameterName];
145
+ } finally {
146
+ resolving.delete(parameterName);
147
+ }
148
+ };
149
+ for (const parameter of action.parameters) await resolveParameter(parameter.name);
150
+ return resolvedParameters;
234
151
  }
235
- export function getObjectReferenceObjectType(ir, actionTypeName, reference) {
236
- const actionType = getActionType(ir, actionTypeName);
237
- const parameter = actionType.parameters.find((candidate) => candidate.name === reference.name);
238
- const resolvedType = unwrapType(resolveType(ir, parameter.type)).type;
239
- return ir.objectTypes.find((candidate) => candidate.name === resolvedType.value.objectType);
152
+ function getObjectReferenceObjectType(ir, actionTypeName, reference) {
153
+ const parameter = getActionType(ir, actionTypeName).parameters.find((candidate) => candidate.name === reference.name);
154
+ const resolvedType = unwrapType(resolveType(ir, parameter.type)).type;
155
+ return ir.objectTypes.find((candidate) => candidate.name === resolvedType.value.objectType);
240
156
  }
157
+ //#endregion
158
+ export { evaluateExpression, getObjectReferenceObjectType, resolveActionParameters };
159
+
241
160
  //# sourceMappingURL=expression.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../src/live/expression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression.js","names":[],"sources":["../../src/live/expression.ts"],"sourcesContent":["import { eq } from \"@tanstack/db\";\nimport { Temporal } from \"temporal-polyfill\";\nimport { isLinkHopFromForeignKeySource, resolveLinkHop } from \"../utils/links.js\";\nimport { getAtPath } from \"../utils/paths.js\";\nimport { resolveType, unwrapType } from \"../utils/types.js\";\nimport type {\n Expression,\n ObjectTypeDef,\n OntologyIR,\n TypeDef,\n InputReferenceExpression,\n} from \"../ir/index.js\";\nimport type { OntologyReadTx } from \"./mutators/types.js\";\nimport type { OntologyObject } from \"./objects/OntologyObject.js\";\n\nfunction getActionType(ir: OntologyIR, actionTypeName: string) {\n return ir.actionTypes.find((actionType) => actionType.name === actionTypeName)!;\n}\n\ninterface EvaluateExpressionOptions {\n ir: OntologyIR;\n actionTypeName: string;\n expression: Expression;\n resolveParameter: (parameterName: string) => Promise<unknown>;\n context: Record<string, unknown>;\n tx: OntologyReadTx;\n}\n\nconst ontologyReference = Symbol(\"ontologyReference\");\nconst ontologyObject = Symbol(\"ontologyObject\");\n\ninterface EvaluatedObjectReference {\n [ontologyReference]: true;\n objectType: string;\n key: unknown;\n optional: boolean;\n}\n\ninterface EvaluatedOntologyObject {\n [ontologyObject]: true;\n objectType: string;\n value: OntologyObject;\n}\n\nfunction isEvaluatedObjectReference(value: unknown): value is EvaluatedObjectReference {\n return typeof value === \"object\" && value !== null && ontologyReference in value;\n}\n\nfunction isEvaluatedOntologyObject(value: unknown): value is EvaluatedOntologyObject {\n return typeof value === \"object\" && value !== null && ontologyObject in value;\n}\n\nfunction unwrapEvaluatedValue(value: unknown): unknown {\n if (isEvaluatedObjectReference(value)) return value.key;\n if (isEvaluatedOntologyObject(value)) return value.value;\n if (Array.isArray(value)) return value.map(unwrapEvaluatedValue);\n if (value !== null && typeof value === \"object\" && Object.getPrototypeOf(value) === Object.prototype) {\n return Object.fromEntries(\n Object.entries(value).map(([key, entry]) => [key, unwrapEvaluatedValue(entry)])\n );\n }\n return value;\n}\n\nexport async function evaluateExpression(options: EvaluateExpressionOptions): Promise<unknown> {\n return unwrapEvaluatedValue(await evaluateExpressionWithLocals(options, new Map()));\n}\n\nasync function evaluateExpressionWithLocals(\n options: EvaluateExpressionOptions,\n locals: ReadonlyMap<string, unknown>\n): Promise<unknown> {\n const { ir, actionTypeName, expression, resolveParameter, context, tx } = options;\n\n switch (expression.kind) {\n case \"inputReference\": {\n const parameterValue = await resolveParameter(expression.value.name);\n const actionType = getActionType(ir, actionTypeName);\n const parameter = actionType.parameters.find(\n (candidate) => candidate.name === expression.value.name\n )!;\n const { type: parameterType, isOptional } = unwrapType(resolveType(ir, parameter.type));\n if (parameterType.kind === \"objectReference\") {\n return {\n [ontologyReference]: true,\n objectType: parameterType.value.objectType,\n key: parameterValue,\n optional: isOptional,\n };\n }\n return parameterValue;\n }\n case \"localReference\": {\n const { name } = expression.value;\n if (!locals.has(name)) {\n throw new Error(`Unknown expression binding \"${name}\".`);\n }\n return locals.get(name);\n }\n case \"contextReference\":\n return context[expression.value.name];\n case \"getAt\": {\n const source = await evaluateExpressionWithLocals(\n {\n ...options,\n expression: expression.value.source,\n },\n locals\n );\n if (isEvaluatedObjectReference(source)) {\n throw new Error(\n `Cannot access field \"${expression.value.path.join(\".\")}\" on an object reference without an object lookup.`\n );\n }\n return getAtPath(\n isEvaluatedOntologyObject(source) ? source.value : source,\n expression.value.path\n );\n }\n case \"objectLookup\": {\n const reference = await evaluateExpressionWithLocals(\n {\n ...options,\n expression: expression.value.reference,\n },\n locals\n );\n if (!isEvaluatedObjectReference(reference)) {\n throw new Error(\"Object lookup source must resolve to an object reference.\");\n }\n if (reference.key === undefined || reference.key === null) {\n return undefined;\n }\n const referencedType = ir.objectTypes.find(\n (candidate) => candidate.name === reference.objectType\n )!;\n const referencedObject = await tx.query<OntologyObject | undefined>((query, objects) =>\n query\n .from({\n object: objects[referencedType.name]!,\n })\n .where(({ object }) => eq(object[referencedType.primaryKey], reference.key))\n .select(({ object }) => object)\n .findOne()\n );\n if (!referencedObject && !reference.optional) {\n throw new Error(`Missing loaded \"${referencedType.name}\" object.`);\n }\n return referencedObject\n ? {\n [ontologyObject]: true,\n objectType: referencedType.name,\n value: referencedObject,\n }\n : undefined;\n }\n case \"linkHop\": {\n const source = await evaluateExpressionWithLocals(\n {\n ...options,\n expression: expression.value.source,\n },\n locals\n );\n if (!isEvaluatedOntologyObject(source)) {\n throw new Error(\"Link hop source must resolve to an ontology object.\");\n }\n const link = resolveLinkHop(ir, source.objectType, expression.value.link);\n if (!link) {\n throw new Error(\n `Unknown link \"${expression.value.link}\" on object type \"${source.objectType}\".`\n );\n }\n const foreignKeyOnSource = isLinkHopFromForeignKeySource(\n link,\n source.objectType,\n expression.value.link\n );\n const cardinality = foreignKeyOnSource ? \"one\" : link.cardinality;\n if (cardinality === \"many\") {\n throw new Error(\n `Link \"${expression.value.link}\" on object type \"${source.objectType}\" is to-many.`\n );\n }\n const sourceType = ir.objectTypes.find((candidate) => candidate.name === source.objectType)!;\n const targetType = ir.objectTypes.find(\n (candidate) =>\n candidate.name === (foreignKeyOnSource ? link.target.objectType : link.source.objectType)\n )!;\n const foreignKeyPath = link.foreignKey.split(\".\");\n const sourceKey = foreignKeyOnSource\n ? getAtPath(source.value, foreignKeyPath)\n : source.value[sourceType.primaryKey];\n if (sourceKey === undefined || sourceKey === null) {\n return undefined;\n }\n const targetProperty = foreignKeyOnSource ? targetType.primaryKey : link.foreignKey;\n const linkedObject = await tx.query<OntologyObject | undefined>((query, objects) =>\n query\n .from({\n object: objects[targetType.name]!,\n })\n .where(({ object }) => eq(object[targetProperty], sourceKey))\n .select(({ object }) => object)\n .findOne()\n );\n return linkedObject\n ? {\n [ontologyObject]: true,\n objectType: targetType.name,\n value: linkedObject,\n }\n : undefined;\n }\n case \"struct\": {\n const fields = await Promise.all(\n expression.value.fields.map(\n async (field) =>\n [\n field.name,\n await evaluateExpressionWithLocals(\n {\n ...options,\n expression: field.value,\n },\n locals\n ),\n ] as const\n )\n );\n return Object.fromEntries(fields);\n }\n case \"map\": {\n const source = await evaluateExpressionWithLocals(\n {\n ...options,\n expression: expression.value.source,\n },\n locals\n );\n if (source === undefined) {\n return undefined;\n }\n if (!Array.isArray(source)) {\n throw new Error(\"Map expression source must resolve to a list.\");\n }\n return Promise.all(\n source.map((item) => {\n const itemLocals = new Map(locals);\n itemLocals.set(expression.value.binding, item);\n return evaluateExpressionWithLocals(\n {\n ...options,\n expression: expression.value.body,\n },\n itemLocals\n );\n })\n );\n }\n case \"literal\":\n return expression.value.value;\n case \"uuid\":\n return globalThis.crypto.randomUUID();\n case \"now\":\n return Temporal.Now.instant();\n }\n}\n\nexport async function resolveActionParameters(options: {\n ir: OntologyIR;\n actionTypeName: string;\n initialParameters: Record<string, unknown>;\n context: Record<string, unknown>;\n tx: OntologyReadTx;\n}): Promise<Record<string, unknown>> {\n const action = getActionType(options.ir, options.actionTypeName);\n const resolvedParameters = {\n ...options.initialParameters,\n };\n const parametersByName = new Map(action.parameters.map((parameter) => [parameter.name, parameter]));\n const resolving = new Set<string>();\n\n const resolveParameter = async (parameterName: string): Promise<unknown> => {\n if (resolvedParameters[parameterName] !== undefined) {\n return resolvedParameters[parameterName];\n }\n const parameter = parametersByName.get(parameterName);\n if (!parameter?.defaultValue) return undefined;\n if (resolving.has(parameterName)) {\n throw new Error(`Circular action parameter default for \"${parameterName}\".`);\n }\n\n resolving.add(parameterName);\n try {\n resolvedParameters[parameterName] = await evaluateExpression({\n ir: options.ir,\n actionTypeName: options.actionTypeName,\n expression: parameter.defaultValue,\n resolveParameter,\n context: options.context,\n tx: options.tx,\n });\n return resolvedParameters[parameterName];\n } finally {\n resolving.delete(parameterName);\n }\n };\n\n for (const parameter of action.parameters) {\n await resolveParameter(parameter.name);\n }\n return resolvedParameters;\n}\n\nexport function getObjectReferenceObjectType(\n ir: OntologyIR,\n actionTypeName: string,\n reference: InputReferenceExpression\n): ObjectTypeDef {\n const actionType = getActionType(ir, actionTypeName);\n const parameter = actionType.parameters.find((candidate) => candidate.name === reference.name)!;\n const resolvedType = unwrapType(resolveType(ir, parameter.type)).type as Extract<\n TypeDef,\n { kind: \"objectReference\" }\n >;\n return ir.objectTypes.find((candidate) => candidate.name === resolvedType.value.objectType)!;\n}\n"],"mappings":"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"}
@@ -1,9 +1,12 @@
1
- export * from "./OntologyBackendAdapter.js";
2
- export * from "./LiveOntology.js";
3
- export type { AttachmentMetadata, PartialAttachmentMetadata, } from "./attachments/types.js";
4
- export * from "./mutators/types.js";
5
- export { createReadTx, } from "./mutators/createMutatorTx.js";
6
- export { resolveActionParameters } from "./expression.js";
7
- export * from "./mutators/runOptimisticAction.js";
8
- export * from "./outbox/types.js";
9
- //# sourceMappingURL=index.d.ts.map
1
+ import { AttachmentMetadata, PartialAttachmentMetadata } from "./attachments/types.js";
2
+ import { ApplyActionLiveOpts, OntologyApplyActionResult, OntologyAttachmentIdMapping, OntologyAttachmentUpload, OntologyAttachmentsAdapter, OntologyBackendAdapter, OntologyBackendAdapterProvider, OntologyCollectionOptions, RunQueryLiveOpts, ValidateActionDraftLiveOpts, ValidateActionLiveOpts } from "./OntologyBackendAdapter.js";
3
+ import { LiveOntologyAttachments } from "./attachments/createLiveOntologyAttachments.js";
4
+ import { OntologyCollection } from "./objects/createLiveOntologyObjectCollection.js";
5
+ import { EnqueuedOntologyAction, NonRetryableError, OntologyActionRequest, OntologyOutbox, OntologyOutboxEntry, OntologyOutboxStatus } from "./outbox/types.js";
6
+ import { LiveOntologyAction, LiveOntologyActionOptions } from "./actions/createLiveOntologyAction.js";
7
+ import { OntologyMutator, OntologyMutatorObjects, OntologyMutatorRegistry, OntologyMutatorTx, OntologyPropertyChange, OntologyQueryFunctionHandler, OntologyQueryFunctionRegistry, OntologyReadTx } from "./mutators/types.js";
8
+ import { CreateLiveOntologyOpts, LiveOntology, LiveOntologyActions, LiveOntologyObjects, LiveOntologyOutboxFailureStrategy, LiveOntologyOutboxOptions, LiveOntologyQueryFunction, LiveOntologyQueryFunctions, LiveOntologyWriteMode, LiveOntologyWriteVisibility, LiveOntologyWrites, OntologyDefinition, createLiveOntology, waitForLiveOntologyReady } from "./LiveOntology.js";
9
+ import { createReadTx } from "./mutators/createMutatorTx.js";
10
+ import { resolveActionParameters } from "./expression.js";
11
+ import { runOptimisticAction } from "./mutators/runOptimisticAction.js";
12
+ export { ApplyActionLiveOpts, type AttachmentMetadata, CreateLiveOntologyOpts, EnqueuedOntologyAction, LiveOntology, type LiveOntologyAction, type LiveOntologyActionOptions, LiveOntologyActions, type LiveOntologyAttachments, LiveOntologyObjects, LiveOntologyOutboxFailureStrategy, LiveOntologyOutboxOptions, LiveOntologyQueryFunction, LiveOntologyQueryFunctions, LiveOntologyWriteMode, LiveOntologyWriteVisibility, LiveOntologyWrites, NonRetryableError, OntologyActionRequest, OntologyApplyActionResult, OntologyAttachmentIdMapping, OntologyAttachmentUpload, OntologyAttachmentsAdapter, OntologyBackendAdapter, OntologyBackendAdapterProvider, type OntologyCollection, OntologyCollectionOptions, OntologyDefinition, OntologyMutator, OntologyMutatorObjects, OntologyMutatorRegistry, OntologyMutatorTx, OntologyOutbox, OntologyOutboxEntry, OntologyOutboxStatus, OntologyPropertyChange, OntologyQueryFunctionHandler, OntologyQueryFunctionRegistry, OntologyReadTx, type PartialAttachmentMetadata, RunQueryLiveOpts, ValidateActionDraftLiveOpts, ValidateActionLiveOpts, createLiveOntology, createReadTx, resolveActionParameters, runOptimisticAction, waitForLiveOntologyReady };
package/lib/live/index.js CHANGED
@@ -1,8 +1,6 @@
1
- export * from "./OntologyBackendAdapter.js";
2
- export * from "./LiveOntology.js";
3
- export * from "./mutators/types.js";
4
- export { createReadTx, } from "./mutators/createMutatorTx.js";
5
- export { resolveActionParameters } from "./expression.js";
6
- export * from "./mutators/runOptimisticAction.js";
7
- export * from "./outbox/types.js";
8
- //# sourceMappingURL=index.js.map
1
+ import { resolveActionParameters } from "./expression.js";
2
+ import { createReadTx } from "./mutators/createMutatorTx.js";
3
+ import { runOptimisticAction } from "./mutators/runOptimisticAction.js";
4
+ import { NonRetryableError } from "./outbox/types.js";
5
+ import { createLiveOntology, waitForLiveOntologyReady } from "./LiveOntology.js";
6
+ export { NonRetryableError, createLiveOntology, createReadTx, resolveActionParameters, runOptimisticAction, waitForLiveOntologyReady };
@@ -1,12 +1,15 @@
1
- import type { OntologyMutatorObjects, OntologyMutatorTx } from "./types.js";
2
- import type { OntologyIR } from "../../ir/index.js";
1
+ import { OntologyIR } from "../../ir/generated/types.js";
2
+ import "../../ir/index.js";
3
+ import { OntologyMutatorObjects, OntologyMutatorTx } from "./types.js";
4
+ //#region src/live/mutators/OntologyEdits.d.ts
3
5
  export declare function applyActionLogicToMutatorTx(options: {
4
- ir: OntologyIR;
5
- actionTypeName: string;
6
- parameters: Record<string, unknown>;
7
- context: Record<string, unknown>;
8
- idempotencyKey?: string;
9
- objects: OntologyMutatorObjects;
10
- tx: OntologyMutatorTx;
6
+ ir: OntologyIR;
7
+ actionTypeName: string;
8
+ parameters: Record<string, unknown>;
9
+ context: Record<string, unknown>;
10
+ idempotencyKey?: string;
11
+ objects: OntologyMutatorObjects;
12
+ tx: OntologyMutatorTx;
11
13
  }): Promise<void>;
14
+ //#endregion
12
15
  //# sourceMappingURL=OntologyEdits.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OntologyEdits.d.ts","sourceRoot":"","sources":["../../../src/live/mutators/OntologyEdits.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,sBAAsB,EACtB,iBAAiB,EAGpB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAiB,UAAU,EAAsB,MAAM,mBAAmB,CAAC;AAoCvF,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IACvD,EAAE,EAAE,UAAU,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,sBAAsB,CAAC;IAChC,EAAE,EAAE,iBAAiB,CAAC;CACzB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsEhB"}
1
+ {"version":3,"file":"OntologyEdits.d.ts","names":[],"sources":["../../../src/live/mutators/OntologyEdits.ts"],"mappings":";;;;wBA8CsB,4BAA4B;EAC9C,IAAI;EACJ;EACA,YAAY;EACZ,SAAS;EACT;EACA,SAAS;EACT,IAAI;IACJ"}