@party-stack/ontology 0.19.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) 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/cli/format.d.ts +4 -0
  5. package/lib/cli/format.d.ts.map +1 -0
  6. package/lib/cli/format.js +19 -0
  7. package/lib/cli/format.js.map +1 -0
  8. package/lib/cli/generate.d.ts +6 -5
  9. package/lib/cli/generate.d.ts.map +1 -1
  10. package/lib/cli/generate.js +86 -110
  11. package/lib/cli/generate.js.map +1 -1
  12. package/lib/cli/index.d.ts +1 -3
  13. package/lib/cli/index.js +42 -59
  14. package/lib/cli/index.js.map +1 -1
  15. package/lib/cli/pull.d.ts +3 -1
  16. package/lib/cli/pull.d.ts.map +1 -1
  17. package/lib/cli/pull.js +42 -60
  18. package/lib/cli/pull.js.map +1 -1
  19. package/lib/examples/blog.d.ts +347 -345
  20. package/lib/examples/blog.d.ts.map +1 -1
  21. package/lib/examples/blog.js +350 -337
  22. package/lib/examples/blog.js.map +1 -1
  23. package/lib/examples/blog.live-queries.d.ts +8 -3
  24. package/lib/examples/blog.live-queries.d.ts.map +1 -1
  25. package/lib/examples/blog.live-queries.js +28 -44
  26. package/lib/examples/blog.live-queries.js.map +1 -1
  27. package/lib/examples/generated/constants.d.ts +1 -2
  28. package/lib/examples/generated/constants.js +0 -2
  29. package/lib/examples/generated/live.d.ts +5 -3
  30. package/lib/examples/generated/live.d.ts.map +1 -1
  31. package/lib/examples/generated/live.js +12 -8
  32. package/lib/examples/generated/live.js.map +1 -1
  33. package/lib/examples/generated/types.d.ts +52 -50
  34. package/lib/examples/generated/types.d.ts.map +1 -1
  35. package/lib/examples/generated/types.js +0 -2
  36. package/lib/generate/builders.d.ts +8 -5
  37. package/lib/generate/builders.d.ts.map +1 -1
  38. package/lib/generate/builders.js +53 -55
  39. package/lib/generate/builders.js.map +1 -1
  40. package/lib/generate/constants.d.ts +3 -1
  41. package/lib/generate/constants.d.ts.map +1 -1
  42. package/lib/generate/constants.js +23 -26
  43. package/lib/generate/constants.js.map +1 -1
  44. package/lib/generate/index.d.ts +6 -6
  45. package/lib/generate/index.js +6 -6
  46. package/lib/generate/live.d.ts +8 -6
  47. package/lib/generate/live.d.ts.map +1 -1
  48. package/lib/generate/live.js +43 -42
  49. package/lib/generate/live.js.map +1 -1
  50. package/lib/generate/ontology.d.ts +4 -2
  51. package/lib/generate/ontology.d.ts.map +1 -1
  52. package/lib/generate/ontology.js +453 -354
  53. package/lib/generate/ontology.js.map +1 -1
  54. package/lib/generate/types.d.ts +7 -5
  55. package/lib/generate/types.d.ts.map +1 -1
  56. package/lib/generate/types.js +190 -262
  57. package/lib/generate/types.js.map +1 -1
  58. package/lib/generate/utils/buildJsDocs.d.ts +7 -4
  59. package/lib/generate/utils/buildJsDocs.d.ts.map +1 -1
  60. package/lib/generate/utils/buildJsDocs.js +14 -10
  61. package/lib/generate/utils/buildJsDocs.js.map +1 -1
  62. package/lib/index.d.ts +30 -13
  63. package/lib/index.js +18 -10
  64. package/lib/infer.d.ts +129 -151
  65. package/lib/infer.d.ts.map +1 -1
  66. package/lib/infer.js +10 -6
  67. package/lib/infer.js.map +1 -1
  68. package/lib/installation/createMetaOntologyConfiguration.d.ts +6 -3
  69. package/lib/installation/createMetaOntologyConfiguration.d.ts.map +1 -1
  70. package/lib/installation/createMetaOntologyConfiguration.js +13 -11
  71. package/lib/installation/createMetaOntologyConfiguration.js.map +1 -1
  72. package/lib/installation/createOntologyBackendInstallation.d.ts +3 -1
  73. package/lib/installation/createOntologyBackendInstallation.d.ts.map +1 -1
  74. package/lib/installation/createOntologyBackendInstallation.js +205 -268
  75. package/lib/installation/createOntologyBackendInstallation.js.map +1 -1
  76. package/lib/installation/index.d.ts +4 -4
  77. package/lib/installation/index.js +3 -3
  78. package/lib/installation/types.d.ts +83 -80
  79. package/lib/installation/types.d.ts.map +1 -1
  80. package/lib/installation/types.js +0 -1
  81. package/lib/ir/generated/builders.d.ts +294 -382
  82. package/lib/ir/generated/builders.d.ts.map +1 -1
  83. package/lib/ir/generated/builders.js +180 -119
  84. package/lib/ir/generated/builders.js.map +1 -1
  85. package/lib/ir/generated/constants.d.ts +137 -135
  86. package/lib/ir/generated/constants.d.ts.map +1 -1
  87. package/lib/ir/generated/constants.js +162 -129
  88. package/lib/ir/generated/constants.js.map +1 -1
  89. package/lib/ir/generated/types.d.ts +236 -234
  90. package/lib/ir/generated/types.d.ts.map +1 -1
  91. package/lib/ir/generated/types.js +0 -2
  92. package/lib/ir/index.d.ts +4 -4
  93. package/lib/ir/index.js +3 -4
  94. package/lib/ir/schema.d.ts +2174 -2172
  95. package/lib/ir/schema.d.ts.map +1 -1
  96. package/lib/ir/schema.js +1184 -1343
  97. package/lib/ir/schema.js.map +1 -1
  98. package/lib/ir/validate.d.ts +5 -3
  99. package/lib/ir/validate.d.ts.map +1 -1
  100. package/lib/ir/validate.js +589 -707
  101. package/lib/ir/validate.js.map +1 -1
  102. package/lib/json/index.d.ts +10 -8
  103. package/lib/json/index.d.ts.map +1 -1
  104. package/lib/json/index.js +101 -135
  105. package/lib/json/index.js.map +1 -1
  106. package/lib/lenses.d.ts +7 -4
  107. package/lib/lenses.d.ts.map +1 -1
  108. package/lib/lenses.js +96 -132
  109. package/lib/lenses.js.map +1 -1
  110. package/lib/live/LiveOntology.d.ts +55 -60
  111. package/lib/live/LiveOntology.d.ts.map +1 -1
  112. package/lib/live/LiveOntology.js +98 -124
  113. package/lib/live/LiveOntology.js.map +1 -1
  114. package/lib/live/OntologyBackendAdapter.d.ts +84 -77
  115. package/lib/live/OntologyBackendAdapter.d.ts.map +1 -1
  116. package/lib/live/OntologyBackendAdapter.js +0 -1
  117. package/lib/live/actions/createLiveOntologyAction.d.ts +27 -24
  118. package/lib/live/actions/createLiveOntologyAction.d.ts.map +1 -1
  119. package/lib/live/actions/createLiveOntologyAction.js +24 -21
  120. package/lib/live/actions/createLiveOntologyAction.js.map +1 -1
  121. package/lib/live/actions/createLiveOntologyActions.d.ts +23 -20
  122. package/lib/live/actions/createLiveOntologyActions.d.ts.map +1 -1
  123. package/lib/live/actions/createLiveOntologyActions.js +131 -161
  124. package/lib/live/actions/createLiveOntologyActions.js.map +1 -1
  125. package/lib/live/actions/prepareActionParameters.d.ts +14 -11
  126. package/lib/live/actions/prepareActionParameters.d.ts.map +1 -1
  127. package/lib/live/actions/prepareActionParameters.js +190 -228
  128. package/lib/live/actions/prepareActionParameters.js.map +1 -1
  129. package/lib/live/attachments/attachmentSources.d.ts +7 -4
  130. package/lib/live/attachments/attachmentSources.d.ts.map +1 -1
  131. package/lib/live/attachments/attachmentSources.js +55 -71
  132. package/lib/live/attachments/attachmentSources.js.map +1 -1
  133. package/lib/live/attachments/createLiveOntologyAttachments.d.ts +47 -44
  134. package/lib/live/attachments/createLiveOntologyAttachments.d.ts.map +1 -1
  135. package/lib/live/attachments/createLiveOntologyAttachments.js +65 -83
  136. package/lib/live/attachments/createLiveOntologyAttachments.js.map +1 -1
  137. package/lib/live/attachments/types.d.ts +10 -8
  138. package/lib/live/attachments/types.d.ts.map +1 -1
  139. package/lib/live/attachments/types.js +0 -1
  140. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.d.ts +3 -1
  141. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.d.ts.map +1 -1
  142. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.js +5 -3
  143. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.js.map +1 -1
  144. package/lib/live/expression.d.ts +16 -13
  145. package/lib/live/expression.d.ts.map +1 -1
  146. package/lib/live/expression.js +142 -223
  147. package/lib/live/expression.js.map +1 -1
  148. package/lib/live/index.d.ts +12 -9
  149. package/lib/live/index.js +6 -8
  150. package/lib/live/mutators/OntologyEdits.d.ts +12 -9
  151. package/lib/live/mutators/OntologyEdits.d.ts.map +1 -1
  152. package/lib/live/mutators/OntologyEdits.js +57 -74
  153. package/lib/live/mutators/OntologyEdits.js.map +1 -1
  154. package/lib/live/mutators/createMutatorTx.d.ts +7 -5
  155. package/lib/live/mutators/createMutatorTx.d.ts.map +1 -1
  156. package/lib/live/mutators/createMutatorTx.js +53 -69
  157. package/lib/live/mutators/createMutatorTx.js.map +1 -1
  158. package/lib/live/mutators/runOptimisticAction.d.ts +16 -13
  159. package/lib/live/mutators/runOptimisticAction.d.ts.map +1 -1
  160. package/lib/live/mutators/runOptimisticAction.js +26 -26
  161. package/lib/live/mutators/runOptimisticAction.js.map +1 -1
  162. package/lib/live/mutators/types.d.ts +18 -16
  163. package/lib/live/mutators/types.d.ts.map +1 -1
  164. package/lib/live/mutators/types.js +0 -1
  165. package/lib/live/objects/OntologyObject.d.ts +2 -0
  166. package/lib/live/objects/OntologyObject.d.ts.map +1 -1
  167. package/lib/live/objects/OntologyObject.js +0 -1
  168. package/lib/live/objects/createLiveOntologyObjectCollection.d.ts +14 -11
  169. package/lib/live/objects/createLiveOntologyObjectCollection.d.ts.map +1 -1
  170. package/lib/live/objects/createLiveOntologyObjectCollection.js +62 -49
  171. package/lib/live/objects/createLiveOntologyObjectCollection.js.map +1 -1
  172. package/lib/live/objects/ontologyObjectCollectionId.d.ts +2 -0
  173. package/lib/live/objects/ontologyObjectCollectionId.d.ts.map +1 -1
  174. package/lib/live/objects/ontologyObjectCollectionId.js +6 -2
  175. package/lib/live/objects/ontologyObjectCollectionId.js.map +1 -1
  176. package/lib/live/outbox/createOntologyOutbox.d.ts +16 -14
  177. package/lib/live/outbox/createOntologyOutbox.d.ts.map +1 -1
  178. package/lib/live/outbox/createOntologyOutbox.js +275 -326
  179. package/lib/live/outbox/createOntologyOutbox.js.map +1 -1
  180. package/lib/live/outbox/leaderExecutor.d.ts +15 -13
  181. package/lib/live/outbox/leaderExecutor.d.ts.map +1 -1
  182. package/lib/live/outbox/leaderExecutor.js +114 -153
  183. package/lib/live/outbox/leaderExecutor.js.map +1 -1
  184. package/lib/live/outbox/outboxService.d.ts +4 -2
  185. package/lib/live/outbox/outboxService.d.ts.map +1 -1
  186. package/lib/live/outbox/outboxService.js +66 -71
  187. package/lib/live/outbox/outboxService.js.map +1 -1
  188. package/lib/live/outbox/projectionManager.d.ts +26 -24
  189. package/lib/live/outbox/projectionManager.d.ts.map +1 -1
  190. package/lib/live/outbox/projectionManager.js +121 -147
  191. package/lib/live/outbox/projectionManager.js.map +1 -1
  192. package/lib/live/outbox/repository.d.ts +27 -25
  193. package/lib/live/outbox/repository.d.ts.map +1 -1
  194. package/lib/live/outbox/repository.js +192 -241
  195. package/lib/live/outbox/repository.js.map +1 -1
  196. package/lib/live/outbox/service.d.ts +52 -50
  197. package/lib/live/outbox/service.d.ts.map +1 -1
  198. package/lib/live/outbox/service.js +5 -1
  199. package/lib/live/outbox/service.js.map +1 -1
  200. package/lib/live/outbox/types.d.ts +35 -33
  201. package/lib/live/outbox/types.d.ts.map +1 -1
  202. package/lib/live/outbox/types.js +10 -6
  203. package/lib/live/outbox/types.js.map +1 -1
  204. package/lib/live/waitForCollectionReady.d.ts +3 -1
  205. package/lib/live/waitForCollectionReady.d.ts.map +1 -1
  206. package/lib/live/waitForCollectionReady.js +44 -65
  207. package/lib/live/waitForCollectionReady.js.map +1 -1
  208. package/lib/meta/createLocalMetaOntologyBackendAdapter.d.ts +5 -2
  209. package/lib/meta/createLocalMetaOntologyBackendAdapter.d.ts.map +1 -1
  210. package/lib/meta/createLocalMetaOntologyBackendAdapter.js +37 -39
  211. package/lib/meta/createLocalMetaOntologyBackendAdapter.js.map +1 -1
  212. package/lib/meta/generated/constants.d.ts +137 -135
  213. package/lib/meta/generated/constants.d.ts.map +1 -1
  214. package/lib/meta/generated/constants.js +162 -129
  215. package/lib/meta/generated/constants.js.map +1 -1
  216. package/lib/meta/generated/live.d.ts +5 -2
  217. package/lib/meta/generated/live.d.ts.map +1 -1
  218. package/lib/meta/generated/live.js +12 -8
  219. package/lib/meta/generated/live.js.map +1 -1
  220. package/lib/meta/generated/types.d.ts +233 -231
  221. package/lib/meta/generated/types.d.ts.map +1 -1
  222. package/lib/meta/generated/types.js +0 -2
  223. package/lib/meta/ontology.d.ts +23 -21
  224. package/lib/meta/ontology.d.ts.map +1 -1
  225. package/lib/meta/ontology.js +100 -104
  226. package/lib/meta/ontology.js.map +1 -1
  227. package/lib/meta/pull.d.ts +8 -6
  228. package/lib/meta/pull.d.ts.map +1 -1
  229. package/lib/meta/pull.js +39 -52
  230. package/lib/meta/pull.js.map +1 -1
  231. package/lib/utils/index.d.ts +8 -8
  232. package/lib/utils/index.js +5 -6
  233. package/lib/utils/links.d.ts +34 -31
  234. package/lib/utils/links.d.ts.map +1 -1
  235. package/lib/utils/links.js +10 -17
  236. package/lib/utils/links.js.map +1 -1
  237. package/lib/utils/paths.d.ts +2 -0
  238. package/lib/utils/paths.d.ts.map +1 -1
  239. package/lib/utils/paths.js +32 -44
  240. package/lib/utils/paths.js.map +1 -1
  241. package/lib/utils/provide.d.ts +2 -0
  242. package/lib/utils/provide.d.ts.map +1 -1
  243. package/lib/utils/provide.js +7 -9
  244. package/lib/utils/provide.js.map +1 -1
  245. package/lib/utils/targets.d.ts +20 -18
  246. package/lib/utils/targets.d.ts.map +1 -1
  247. package/lib/utils/targets.js +0 -1
  248. package/lib/utils/typeNames.d.ts +10 -8
  249. package/lib/utils/typeNames.d.ts.map +1 -1
  250. package/lib/utils/typeNames.js +0 -1
  251. package/lib/utils/types.d.ts +6 -4
  252. package/lib/utils/types.d.ts.map +1 -1
  253. package/lib/utils/types.js +38 -38
  254. package/lib/utils/types.js.map +1 -1
  255. package/lib/utils/uncertain.d.ts +5 -3
  256. package/lib/utils/uncertain.d.ts.map +1 -1
  257. package/lib/utils/uncertain.js +11 -9
  258. package/lib/utils/uncertain.js.map +1 -1
  259. package/lib/utils/validation.d.ts +4 -2
  260. package/lib/utils/validation.d.ts.map +1 -1
  261. package/lib/utils/validation.js +0 -1
  262. package/lib/utils/values.d.ts +18 -18
  263. package/lib/utils/values.d.ts.map +1 -1
  264. package/lib/utils/values.js +0 -1
  265. package/package.json +22 -26
  266. package/lib/OntologyPullConfig.js.map +0 -1
  267. package/lib/cli/index.d.ts.map +0 -1
  268. package/lib/cli/index.test.d.ts +0 -2
  269. package/lib/cli/index.test.d.ts.map +0 -1
  270. package/lib/cli/index.test.js +0 -34
  271. package/lib/cli/index.test.js.map +0 -1
  272. package/lib/cli/pull.test.d.ts +0 -2
  273. package/lib/cli/pull.test.d.ts.map +0 -1
  274. package/lib/cli/pull.test.js +0 -125
  275. package/lib/cli/pull.test.js.map +0 -1
  276. package/lib/examples/generated/constants.d.ts.map +0 -1
  277. package/lib/examples/generated/constants.js.map +0 -1
  278. package/lib/examples/generated/types.js.map +0 -1
  279. package/lib/generate/builders.test.d.ts +0 -2
  280. package/lib/generate/builders.test.d.ts.map +0 -1
  281. package/lib/generate/builders.test.js +0 -49
  282. package/lib/generate/builders.test.js.map +0 -1
  283. package/lib/generate/index.d.ts.map +0 -1
  284. package/lib/generate/index.js.map +0 -1
  285. package/lib/generate/live.test.d.ts +0 -2
  286. package/lib/generate/live.test.d.ts.map +0 -1
  287. package/lib/generate/live.test.js +0 -22
  288. package/lib/generate/live.test.js.map +0 -1
  289. package/lib/generate/ontology.test.d.ts +0 -2
  290. package/lib/generate/ontology.test.d.ts.map +0 -1
  291. package/lib/generate/ontology.test.js +0 -157
  292. package/lib/generate/ontology.test.js.map +0 -1
  293. package/lib/generate/types.test.d.ts +0 -2
  294. package/lib/generate/types.test.d.ts.map +0 -1
  295. package/lib/generate/types.test.js +0 -304
  296. package/lib/generate/types.test.js.map +0 -1
  297. package/lib/index.d.ts.map +0 -1
  298. package/lib/index.js.map +0 -1
  299. package/lib/infer.test.d.ts +0 -2
  300. package/lib/infer.test.d.ts.map +0 -1
  301. package/lib/infer.test.js +0 -125
  302. package/lib/infer.test.js.map +0 -1
  303. package/lib/installation/createMetaOntologyConfiguration.test.d.ts +0 -2
  304. package/lib/installation/createMetaOntologyConfiguration.test.d.ts.map +0 -1
  305. package/lib/installation/createMetaOntologyConfiguration.test.js +0 -20
  306. package/lib/installation/createMetaOntologyConfiguration.test.js.map +0 -1
  307. package/lib/installation/createOntologyBackendInstallation.test.d.ts +0 -2
  308. package/lib/installation/createOntologyBackendInstallation.test.d.ts.map +0 -1
  309. package/lib/installation/createOntologyBackendInstallation.test.js +0 -320
  310. package/lib/installation/createOntologyBackendInstallation.test.js.map +0 -1
  311. package/lib/installation/index.d.ts.map +0 -1
  312. package/lib/installation/index.js.map +0 -1
  313. package/lib/installation/types.js.map +0 -1
  314. package/lib/ir/generated/types.js.map +0 -1
  315. package/lib/ir/index.d.ts.map +0 -1
  316. package/lib/ir/index.js.map +0 -1
  317. package/lib/ir/validate.test.d.ts +0 -2
  318. package/lib/ir/validate.test.d.ts.map +0 -1
  319. package/lib/ir/validate.test.js +0 -1061
  320. package/lib/ir/validate.test.js.map +0 -1
  321. package/lib/json/index.test.d.ts +0 -2
  322. package/lib/json/index.test.d.ts.map +0 -1
  323. package/lib/json/index.test.js +0 -142
  324. package/lib/json/index.test.js.map +0 -1
  325. package/lib/lenses.test.d.ts +0 -2
  326. package/lib/lenses.test.d.ts.map +0 -1
  327. package/lib/lenses.test.js +0 -80
  328. package/lib/lenses.test.js.map +0 -1
  329. package/lib/live/LiveOntology.test.d.ts +0 -2
  330. package/lib/live/LiveOntology.test.d.ts.map +0 -1
  331. package/lib/live/LiveOntology.test.js +0 -507
  332. package/lib/live/LiveOntology.test.js.map +0 -1
  333. package/lib/live/OntologyBackendAdapter.js.map +0 -1
  334. package/lib/live/actions/createLiveOntologyAction.test.d.ts +0 -2
  335. package/lib/live/actions/createLiveOntologyAction.test.d.ts.map +0 -1
  336. package/lib/live/actions/createLiveOntologyAction.test.js +0 -232
  337. package/lib/live/actions/createLiveOntologyAction.test.js.map +0 -1
  338. package/lib/live/actions/prepareActionParameters.test.d.ts +0 -2
  339. package/lib/live/actions/prepareActionParameters.test.d.ts.map +0 -1
  340. package/lib/live/actions/prepareActionParameters.test.js +0 -165
  341. package/lib/live/actions/prepareActionParameters.test.js.map +0 -1
  342. package/lib/live/attachments/attachmentMetadata.test.d.ts +0 -2
  343. package/lib/live/attachments/attachmentMetadata.test.d.ts.map +0 -1
  344. package/lib/live/attachments/attachmentMetadata.test.js +0 -73
  345. package/lib/live/attachments/attachmentMetadata.test.js.map +0 -1
  346. package/lib/live/attachments/createLiveOntologyAttachments.test.d.ts +0 -2
  347. package/lib/live/attachments/createLiveOntologyAttachments.test.d.ts.map +0 -1
  348. package/lib/live/attachments/createLiveOntologyAttachments.test.js +0 -363
  349. package/lib/live/attachments/createLiveOntologyAttachments.test.js.map +0 -1
  350. package/lib/live/attachments/types.js.map +0 -1
  351. package/lib/live/expression.test.d.ts +0 -2
  352. package/lib/live/expression.test.d.ts.map +0 -1
  353. package/lib/live/expression.test.js +0 -311
  354. package/lib/live/expression.test.js.map +0 -1
  355. package/lib/live/index.d.ts.map +0 -1
  356. package/lib/live/index.js.map +0 -1
  357. package/lib/live/mutators/OntologyEdits.test.d.ts +0 -2
  358. package/lib/live/mutators/OntologyEdits.test.d.ts.map +0 -1
  359. package/lib/live/mutators/OntologyEdits.test.js +0 -85
  360. package/lib/live/mutators/OntologyEdits.test.js.map +0 -1
  361. package/lib/live/mutators/createMutatorTx.test.d.ts +0 -2
  362. package/lib/live/mutators/createMutatorTx.test.d.ts.map +0 -1
  363. package/lib/live/mutators/createMutatorTx.test.js +0 -180
  364. package/lib/live/mutators/createMutatorTx.test.js.map +0 -1
  365. package/lib/live/mutators/types.js.map +0 -1
  366. package/lib/live/objects/OntologyObject.js.map +0 -1
  367. package/lib/live/objects/createLiveOntologyObjectCollection.test.d.ts +0 -2
  368. package/lib/live/objects/createLiveOntologyObjectCollection.test.d.ts.map +0 -1
  369. package/lib/live/objects/createLiveOntologyObjectCollection.test.js +0 -310
  370. package/lib/live/objects/createLiveOntologyObjectCollection.test.js.map +0 -1
  371. package/lib/live/outbox/createOntologyOutbox.test.d.ts +0 -2
  372. package/lib/live/outbox/createOntologyOutbox.test.d.ts.map +0 -1
  373. package/lib/live/outbox/createOntologyOutbox.test.js +0 -1030
  374. package/lib/live/outbox/createOntologyOutbox.test.js.map +0 -1
  375. package/lib/meta/generated/types.js.map +0 -1
  376. package/lib/meta/ontology.test.d.ts +0 -2
  377. package/lib/meta/ontology.test.d.ts.map +0 -1
  378. package/lib/meta/ontology.test.js +0 -84
  379. package/lib/meta/ontology.test.js.map +0 -1
  380. package/lib/utils/index.d.ts.map +0 -1
  381. package/lib/utils/index.js.map +0 -1
  382. package/lib/utils/links.test.d.ts +0 -2
  383. package/lib/utils/links.test.d.ts.map +0 -1
  384. package/lib/utils/links.test.js +0 -109
  385. package/lib/utils/links.test.js.map +0 -1
  386. package/lib/utils/paths.test.d.ts +0 -2
  387. package/lib/utils/paths.test.d.ts.map +0 -1
  388. package/lib/utils/paths.test.js +0 -33
  389. package/lib/utils/paths.test.js.map +0 -1
  390. package/lib/utils/targets.js.map +0 -1
  391. package/lib/utils/typeNames.js.map +0 -1
  392. package/lib/utils/types.test.d.ts +0 -2
  393. package/lib/utils/types.test.d.ts.map +0 -1
  394. package/lib/utils/types.test.js +0 -157
  395. package/lib/utils/types.test.js.map +0 -1
  396. package/lib/utils/uncertain.test.d.ts +0 -2
  397. package/lib/utils/uncertain.test.d.ts.map +0 -1
  398. package/lib/utils/uncertain.test.js +0 -14
  399. package/lib/utils/uncertain.test.js.map +0 -1
  400. package/lib/utils/validation.js.map +0 -1
  401. package/lib/utils/values.js.map +0 -1
@@ -1,135 +1,109 @@
1
- import { createBlobManager } from "@party-stack/blobs";
2
- import { createDefaultRuntime } from "@party-stack/runtime";
3
1
  import { provide } from "../utils/provide.js";
4
2
  import { createLiveOntologyActions } from "./actions/createLiveOntologyActions.js";
5
- import { createLiveOntologyAttachments, } from "./attachments/createLiveOntologyAttachments.js";
3
+ import { createLiveOntologyAttachments } from "./attachments/createLiveOntologyAttachments.js";
6
4
  import { unsupportedOntologyAttachmentsAdapter } from "./attachments/unsupportedOntologyAttachmentsAdapter.js";
7
5
  import { createLiveOntologyObjectCollection } from "./objects/createLiveOntologyObjectCollection.js";
8
6
  import { waitForCollectionsReady } from "./waitForCollectionReady.js";
7
+ import { createBlobManager } from "@party-stack/blobs";
8
+ import { createDefaultRuntime } from "@party-stack/runtime";
9
+ //#region src/live/LiveOntology.ts
9
10
  function getContextUserId(context) {
10
- return typeof context.user === "string" ? context.user : undefined;
11
+ return typeof context.user === "string" ? context.user : void 0;
11
12
  }
12
13
  /**
13
- * Waits for LiveOntology subsystems required before safe use.
14
- * Starts on-demand object collection sync without loading subsets.
15
- */
16
- export async function waitForLiveOntologyReady(ontology) {
17
- await ontology.ready;
18
- await waitForCollectionsReady(Object.values(ontology.objects));
14
+ * Waits for LiveOntology subsystems required before safe use.
15
+ * Starts on-demand object collection sync without loading subsets.
16
+ */
17
+ async function waitForLiveOntologyReady(ontology) {
18
+ await ontology.ready;
19
+ await waitForCollectionsReady(Object.values(ontology.objects));
19
20
  }
20
- export async function createLiveOntology(opts) {
21
- const ontologyId = opts.id ?? "default";
22
- const context = (opts.context ?? {});
23
- const owner = getContextUserId(context) ??
24
- "anonymous";
25
- // TODO(errors): Decorate backend operations and collection options so
26
- // normalized errors (especially UnauthenticatedError) are reported through
27
- // the ConnectionMonitor. Promise-based calls can be wrapped directly;
28
- // long-running sync handlers need a lifecycle-aware supervisor that pauses
29
- // on needs-auth and restarts from a checkpoint after reconnection.
30
- const backendAdapter = await provide(opts.backend, opts.ir, context);
31
- const runtime = await provide(opts.runtime ?? createDefaultRuntime, owner, ontologyId);
32
- const attachmentsAdapter = backendAdapter.attachments ?? unsupportedOntologyAttachmentsAdapter;
33
- const blobManager = createBlobManager({
34
- runtime,
35
- remote: {
36
- read: (id, readOptions) => {
37
- const attachmentValue = readOptions?.meta?.attachment;
38
- return attachmentsAdapter.getAttachmentContent(attachmentValue ?? { id });
39
- },
40
- metadata: attachmentsAdapter.getAttachmentMetadata
41
- ? (id, readOptions) => attachmentsAdapter.getAttachmentMetadata(readOptions?.meta?.attachment ?? { id }, readOptions?.select ?? ["size", "type", "name"])
42
- : undefined,
43
- },
44
- });
45
- const attachments = createLiveOntologyAttachments({
46
- ir: opts.ir,
47
- attachmentsAdapter,
48
- blobManager,
49
- });
50
- const objects = Object.fromEntries(opts.ir.objectTypes.map((objectType) => [
51
- objectType.name,
52
- createLiveOntologyObjectCollection({
53
- ir: opts.ir,
54
- objectType,
55
- backendAdapter,
56
- runtime,
57
- persistObjects: opts.persistObjects ?? false,
58
- }),
59
- ]));
60
- const actionsSubsystem = createLiveOntologyActions({
61
- ir: opts.ir,
62
- backendAdapter,
63
- runtime,
64
- context,
65
- objects,
66
- blobManager,
67
- writes: opts.writes,
68
- connection: opts.connection,
69
- });
70
- const queryFunctions = Object.fromEntries(opts.ir.queryFunctionTypes.map((queryFunctionType) => [
71
- queryFunctionType.name,
72
- (parameters) => backendAdapter.runQueryFunction(queryFunctionType.name, parameters, {
73
- objects: objects,
74
- context,
75
- }),
76
- ]));
77
- const ready = Promise.all([actionsSubsystem.outbox.ready, blobManager.ready]).then(() => undefined);
78
- void ready.catch(() => undefined);
79
- let cleanupPromise;
80
- const cleanup = () => {
81
- cleanupPromise ??= (async () => {
82
- // Settle subsystem startups before tearing down persistence.
83
- await Promise.allSettled([
84
- ready,
85
- ]);
86
- await actionsSubsystem.outbox.cleanup();
87
- await Promise.all(Object.values(objects).map(async (collection) => {
88
- const status = collection.status;
89
- if (status ===
90
- "cleaned-up") {
91
- return;
92
- }
93
- // Settle in-flight startup only; ready/idle need no preload.
94
- if (status ===
95
- "loading") {
96
- await Promise.allSettled([
97
- collection.preload(),
98
- ]);
99
- }
100
- try {
101
- await collection.cleanup();
102
- }
103
- catch {
104
- // Idempotent: already cleaned up during preload race.
105
- }
106
- }));
107
- await Promise.all([
108
- blobManager.cleanup(),
109
- backendAdapter.cleanup?.(),
110
- ]);
111
- await runtime.cleanup?.();
112
- })();
113
- return cleanupPromise;
114
- };
115
- let destroyPromise;
116
- const destroy = () => {
117
- destroyPromise ??= cleanup()
118
- .then(() => runtime.destroy?.())
119
- .then(() => undefined);
120
- return destroyPromise;
121
- };
122
- return {
123
- ir: opts.ir,
124
- context: context,
125
- ready,
126
- objects: objects,
127
- actions: actionsSubsystem.actions,
128
- queryFunctions: queryFunctions,
129
- attachments,
130
- outbox: actionsSubsystem.outbox,
131
- destroy,
132
- cleanup,
133
- };
21
+ async function createLiveOntology(opts) {
22
+ const ontologyId = opts.id ?? "default";
23
+ const context = opts.context ?? {};
24
+ const owner = getContextUserId(context) ?? "anonymous";
25
+ const backendAdapter = await provide(opts.backend, opts.ir, context);
26
+ const runtime = await provide(opts.runtime ?? createDefaultRuntime, owner, ontologyId);
27
+ const attachmentsAdapter = backendAdapter.attachments ?? unsupportedOntologyAttachmentsAdapter;
28
+ const blobManager = createBlobManager({
29
+ runtime,
30
+ remote: {
31
+ read: (id, readOptions) => {
32
+ const attachmentValue = readOptions?.meta?.attachment;
33
+ return attachmentsAdapter.getAttachmentContent(attachmentValue ?? { id });
34
+ },
35
+ metadata: attachmentsAdapter.getAttachmentMetadata ? (id, readOptions) => attachmentsAdapter.getAttachmentMetadata(readOptions?.meta?.attachment ?? { id }, readOptions?.select ?? [
36
+ "size",
37
+ "type",
38
+ "name"
39
+ ]) : void 0
40
+ }
41
+ });
42
+ const attachments = createLiveOntologyAttachments({
43
+ ir: opts.ir,
44
+ attachmentsAdapter,
45
+ blobManager
46
+ });
47
+ const objects = Object.fromEntries(opts.ir.objectTypes.map((objectType) => [objectType.name, createLiveOntologyObjectCollection({
48
+ ir: opts.ir,
49
+ objectType,
50
+ backendAdapter,
51
+ runtime,
52
+ persistObjects: opts.persistObjects ?? false
53
+ })]));
54
+ const actionsSubsystem = createLiveOntologyActions({
55
+ ir: opts.ir,
56
+ backendAdapter,
57
+ runtime,
58
+ context,
59
+ objects,
60
+ blobManager,
61
+ writes: opts.writes,
62
+ connection: opts.connection
63
+ });
64
+ const queryFunctions = Object.fromEntries(opts.ir.queryFunctionTypes.map((queryFunctionType) => [queryFunctionType.name, (parameters) => backendAdapter.runQueryFunction(queryFunctionType.name, parameters, {
65
+ objects,
66
+ context
67
+ })]));
68
+ const ready = Promise.all([actionsSubsystem.outbox.ready, blobManager.ready]).then(() => void 0);
69
+ ready.catch(() => void 0);
70
+ let cleanupPromise;
71
+ const cleanup = () => {
72
+ cleanupPromise ??= (async () => {
73
+ await Promise.allSettled([ready]);
74
+ await actionsSubsystem.outbox.cleanup();
75
+ await Promise.all(Object.values(objects).map(async (collection) => {
76
+ const status = collection.status;
77
+ if (status === "cleaned-up") return;
78
+ if (status === "loading") await Promise.allSettled([collection.preload()]);
79
+ try {
80
+ await collection.cleanup();
81
+ } catch {}
82
+ }));
83
+ await Promise.all([blobManager.cleanup(), backendAdapter.cleanup?.()]);
84
+ await runtime.cleanup?.();
85
+ })();
86
+ return cleanupPromise;
87
+ };
88
+ let destroyPromise;
89
+ const destroy = () => {
90
+ destroyPromise ??= cleanup().then(() => runtime.destroy?.()).then(() => void 0);
91
+ return destroyPromise;
92
+ };
93
+ return {
94
+ ir: opts.ir,
95
+ context,
96
+ ready,
97
+ objects,
98
+ actions: actionsSubsystem.actions,
99
+ queryFunctions,
100
+ attachments,
101
+ outbox: actionsSubsystem.outbox,
102
+ destroy,
103
+ cleanup
104
+ };
134
105
  }
106
+ //#endregion
107
+ export { createLiveOntology, waitForLiveOntologyReady };
108
+
135
109
  //# sourceMappingURL=LiveOntology.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiveOntology.js","sourceRoot":"","sources":["../../src/live/LiveOntology.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiveOntology.js","names":[],"sources":["../../src/live/LiveOntology.ts"],"sourcesContent":["import { createBlobManager, type BlobManager } from \"@party-stack/blobs\";\nimport { createDefaultRuntime, type RuntimeAdapterProvider } from \"@party-stack/runtime\";\nimport { type Collection } from \"@tanstack/db\";\nimport { provide } from \"../utils/provide.js\";\nimport { createLiveOntologyActions } from \"./actions/createLiveOntologyActions.js\";\nimport {\n createLiveOntologyAttachments,\n type LiveOntologyAttachments,\n} from \"./attachments/createLiveOntologyAttachments.js\";\nimport { unsupportedOntologyAttachmentsAdapter } from \"./attachments/unsupportedOntologyAttachmentsAdapter.js\";\nimport { createLiveOntologyObjectCollection } from \"./objects/createLiveOntologyObjectCollection.js\";\nimport { waitForCollectionsReady } from \"./waitForCollectionReady.js\";\nimport type { OntologyIR } from \"../ir/index.js\";\nimport type { attachment } from \"../utils/values.js\";\nimport type { LiveOntologyAction } from \"./actions/createLiveOntologyAction.js\";\nimport type { OntologyMutatorRegistry } from \"./mutators/types.js\";\nimport type { OntologyCollection } from \"./objects/createLiveOntologyObjectCollection.js\";\nimport type { OntologyObject } from \"./objects/OntologyObject.js\";\nimport type { OntologyBackendAdapter, OntologyBackendAdapterProvider } from \"./OntologyBackendAdapter.js\";\nimport type { OntologyOutbox } from \"./outbox/types.js\";\nimport type { ConnectionMonitor } from \"@party-stack/connections\";\n\nexport type { LiveOntologyAction, LiveOntologyActionOptions } from \"./actions/createLiveOntologyAction.js\";\nexport type { LiveOntologyAttachments } from \"./attachments/createLiveOntologyAttachments.js\";\nexport type { OntologyCollection } from \"./objects/createLiveOntologyObjectCollection.js\";\n\nexport type LiveOntologyWriteMode = \"direct\" | \"outbox\";\n\nexport type LiveOntologyWriteVisibility = \"confirmed\" | \"optimistic\";\n\nexport type LiveOntologyOutboxFailureStrategy = \"pause\" | \"discard-all\";\n\nexport interface LiveOntologyOutboxOptions {\n failureStrategy?: LiveOntologyOutboxFailureStrategy;\n maxRetries?: number;\n}\n\nexport interface LiveOntologyWrites {\n defaultMode?: LiveOntologyWriteMode;\n defaultVisibility?: LiveOntologyWriteVisibility;\n mutators?: OntologyMutatorRegistry;\n outbox?: LiveOntologyOutboxOptions;\n}\n\nexport interface OntologyDefinition {\n context?: Record<string, unknown>;\n objectTypes: Record<string, OntologyObject>;\n actionTypes: Record<\n string,\n {\n parameters: Record<string, unknown>;\n }\n >;\n queryFunctionTypes: Record<\n string,\n {\n parameters: Record<string, unknown>;\n returnType: unknown;\n }\n >;\n}\n\ntype OntologyContext<Ontology extends OntologyDefinition> = Ontology extends {\n context: infer Context extends Record<string, unknown>;\n}\n ? Context\n : Record<string, unknown>;\n\nexport type LiveOntologyQueryFunction<\n Parameters extends Record<string, unknown> = Record<string, unknown>,\n Return = unknown,\n> = (parameters: Parameters) => Promise<Return>;\n\nexport type LiveOntologyObjects<\n ObjectTypes extends OntologyDefinition[\"objectTypes\"] = OntologyDefinition[\"objectTypes\"],\n> = {\n [ObjectTypeName in keyof ObjectTypes]: OntologyCollection<ObjectTypes[ObjectTypeName]>;\n};\n\nexport type LiveOntologyActions<ActionTypes extends OntologyDefinition[\"actionTypes\"]> = {\n [ActionTypeName in keyof ActionTypes]: LiveOntologyAction<ActionTypes[ActionTypeName][\"parameters\"]>;\n};\n\nexport type LiveOntologyQueryFunctions<QueryFunctionTypes extends OntologyDefinition[\"queryFunctionTypes\"]> =\n {\n [QueryFunctionTypeName in keyof QueryFunctionTypes]: LiveOntologyQueryFunction<\n QueryFunctionTypes[QueryFunctionTypeName][\"parameters\"],\n QueryFunctionTypes[QueryFunctionTypeName][\"returnType\"]\n >;\n };\n\nexport interface LiveOntology<Ontology extends OntologyDefinition = OntologyDefinition> {\n readonly ir: OntologyIR;\n readonly context: OntologyContext<Ontology>;\n /**\n * Resolves once outbox and blob metadata subsystems have finished starting.\n * Object collections remain on-demand unless explicitly preloaded.\n */\n readonly ready: Promise<void>;\n objects: LiveOntologyObjects<Ontology[\"objectTypes\"]>;\n actions: LiveOntologyActions<Ontology[\"actionTypes\"]>;\n queryFunctions: LiveOntologyQueryFunctions<Ontology[\"queryFunctionTypes\"]>;\n attachments: LiveOntologyAttachments<Ontology>;\n outbox: OntologyOutbox;\n cleanup: () => Promise<void>;\n destroy: () => Promise<void>;\n}\n\nexport interface CreateLiveOntologyOpts<Context extends Record<string, unknown> = Record<string, unknown>> {\n id?: string;\n ir: OntologyIR;\n backend: OntologyBackendAdapterProvider<NoInfer<Context>>;\n runtime?: RuntimeAdapterProvider;\n persistObjects?: boolean;\n writes?: LiveOntologyWrites;\n context?: Context;\n connection?: ConnectionMonitor;\n}\n\nfunction getContextUserId(context: Record<string, unknown>): string | undefined {\n return typeof context.user === \"string\" ? context.user : undefined;\n}\n\n/**\n * Waits for LiveOntology subsystems required before safe use.\n * Starts on-demand object collection sync without loading subsets.\n */\nexport async function waitForLiveOntologyReady(ontology: LiveOntology): Promise<void> {\n await ontology.ready;\n await waitForCollectionsReady(\n Object.values(ontology.objects) as Collection<Record<string, unknown>, string | number>[]\n );\n}\n\nexport async function createLiveOntology<\n Ontology extends OntologyDefinition = OntologyDefinition,\n Context extends Record<string, unknown> = Record<string, unknown>,\n>(opts: CreateLiveOntologyOpts<Context>): Promise<LiveOntology<Ontology>> {\n const ontologyId = opts.id ?? \"default\";\n const context = (opts.context ?? {}) as Context;\n const owner = getContextUserId(context) ?? \"anonymous\";\n // TODO(errors): Decorate backend operations and collection options so\n // normalized errors (especially UnauthenticatedError) are reported through\n // the ConnectionMonitor. Promise-based calls can be wrapped directly;\n // long-running sync handlers need a lifecycle-aware supervisor that pauses\n // on needs-auth and restarts from a checkpoint after reconnection.\n const backendAdapter: OntologyBackendAdapter = await provide(opts.backend, opts.ir, context);\n const runtime = await provide(opts.runtime ?? createDefaultRuntime, owner, ontologyId);\n const attachmentsAdapter = backendAdapter.attachments ?? unsupportedOntologyAttachmentsAdapter;\n const blobManager: BlobManager = createBlobManager({\n runtime,\n remote: {\n read: (id, readOptions) => {\n const attachmentValue = readOptions?.meta?.attachment as attachment | undefined;\n return attachmentsAdapter.getAttachmentContent(attachmentValue ?? { id });\n },\n metadata: attachmentsAdapter.getAttachmentMetadata\n ? (id, readOptions) =>\n attachmentsAdapter.getAttachmentMetadata!(\n (readOptions?.meta?.attachment as attachment | undefined) ?? { id },\n readOptions?.select ?? [\"size\", \"type\", \"name\"]\n )\n : undefined,\n },\n });\n const attachments = createLiveOntologyAttachments<Ontology>({\n ir: opts.ir,\n attachmentsAdapter,\n blobManager,\n });\n const objects = Object.fromEntries(\n opts.ir.objectTypes.map((objectType) => [\n objectType.name,\n createLiveOntologyObjectCollection({\n ir: opts.ir,\n objectType,\n backendAdapter,\n runtime,\n persistObjects: opts.persistObjects ?? false,\n }),\n ])\n ) as Record<string, OntologyCollection<OntologyObject>>;\n const actionsSubsystem = createLiveOntologyActions({\n ir: opts.ir,\n backendAdapter,\n runtime,\n context,\n objects,\n blobManager,\n writes: opts.writes,\n connection: opts.connection,\n });\n const queryFunctions = Object.fromEntries(\n opts.ir.queryFunctionTypes.map((queryFunctionType) => [\n queryFunctionType.name,\n (parameters: Record<string, unknown>) =>\n backendAdapter.runQueryFunction(queryFunctionType.name, parameters, {\n objects: objects,\n context,\n }),\n ])\n );\n const ready = Promise.all([actionsSubsystem.outbox.ready, blobManager.ready]).then(() => undefined);\n void ready.catch(() => undefined);\n\n let cleanupPromise: Promise<void> | undefined;\n const cleanup = (): Promise<void> => {\n cleanupPromise ??= (async () => {\n // Settle subsystem startups before tearing down persistence.\n await Promise.allSettled([ready]);\n await actionsSubsystem.outbox.cleanup();\n await Promise.all(\n Object.values(objects).map(async (collection) => {\n const status = collection.status;\n if (status === \"cleaned-up\") {\n return;\n }\n // Settle in-flight startup only; ready/idle need no preload.\n if (status === \"loading\") {\n await Promise.allSettled([collection.preload()]);\n }\n try {\n await collection.cleanup();\n } catch {\n // Idempotent: already cleaned up during preload race.\n }\n })\n );\n await Promise.all([blobManager.cleanup(), backendAdapter.cleanup?.()]);\n await runtime.cleanup?.();\n })();\n return cleanupPromise;\n };\n let destroyPromise: Promise<void> | undefined;\n const destroy = (): Promise<void> => {\n destroyPromise ??= cleanup()\n .then(() => runtime.destroy?.())\n .then(() => undefined);\n return destroyPromise;\n };\n\n return {\n ir: opts.ir,\n context: context as unknown as OntologyContext<Ontology>,\n ready,\n objects: objects as unknown as LiveOntologyObjects<Ontology[\"objectTypes\"]>,\n actions: actionsSubsystem.actions as unknown as LiveOntologyActions<Ontology[\"actionTypes\"]>,\n queryFunctions: queryFunctions as unknown as LiveOntologyQueryFunctions<\n Ontology[\"queryFunctionTypes\"]\n >,\n attachments,\n outbox: actionsSubsystem.outbox,\n destroy,\n cleanup,\n };\n}\n"],"mappings":";;;;;;;;;AAuHA,SAAS,iBAAiB,SAAsD;CAC5E,OAAO,OAAO,QAAQ,SAAS,WAAW,QAAQ,OAAO,KAAA;AAC7D;;;;;AAMA,eAAsB,yBAAyB,UAAuC;CAClF,MAAM,SAAS;CACf,MAAM,wBACF,OAAO,OAAO,SAAS,OAAO,CAClC;AACJ;AAEA,eAAsB,mBAGpB,MAAwE;CACtE,MAAM,aAAa,KAAK,MAAM;CAC9B,MAAM,UAAW,KAAK,WAAW,CAAC;CAClC,MAAM,QAAQ,iBAAiB,OAAO,KAAK;CAM3C,MAAM,iBAAyC,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,OAAO;CAC3F,MAAM,UAAU,MAAM,QAAQ,KAAK,WAAW,sBAAsB,OAAO,UAAU;CACrF,MAAM,qBAAqB,eAAe,eAAe;CACzD,MAAM,cAA2B,kBAAkB;EAC/C;EACA,QAAQ;GACJ,OAAO,IAAI,gBAAgB;IACvB,MAAM,kBAAkB,aAAa,MAAM;IAC3C,OAAO,mBAAmB,qBAAqB,mBAAmB,EAAE,GAAG,CAAC;GAC5E;GACA,UAAU,mBAAmB,yBACtB,IAAI,gBACD,mBAAmB,sBACd,aAAa,MAAM,cAAyC,EAAE,GAAG,GAClE,aAAa,UAAU;IAAC;IAAQ;IAAQ;GAAM,CAClD,IACJ,KAAA;EACV;CACJ,CAAC;CACD,MAAM,cAAc,8BAAwC;EACxD,IAAI,KAAK;EACT;EACA;CACJ,CAAC;CACD,MAAM,UAAU,OAAO,YACnB,KAAK,GAAG,YAAY,KAAK,eAAe,CACpC,WAAW,MACX,mCAAmC;EAC/B,IAAI,KAAK;EACT;EACA;EACA;EACA,gBAAgB,KAAK,kBAAkB;CAC3C,CAAC,CACL,CAAC,CACL;CACA,MAAM,mBAAmB,0BAA0B;EAC/C,IAAI,KAAK;EACT;EACA;EACA;EACA;EACA;EACA,QAAQ,KAAK;EACb,YAAY,KAAK;CACrB,CAAC;CACD,MAAM,iBAAiB,OAAO,YAC1B,KAAK,GAAG,mBAAmB,KAAK,sBAAsB,CAClD,kBAAkB,OACjB,eACG,eAAe,iBAAiB,kBAAkB,MAAM,YAAY;EACvD;EACT;CACJ,CAAC,CACT,CAAC,CACL;CACA,MAAM,QAAQ,QAAQ,IAAI,CAAC,iBAAiB,OAAO,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,KAAA,CAAS;CAClG,MAAW,YAAY,KAAA,CAAS;CAEhC,IAAI;CACJ,MAAM,gBAA+B;EACjC,oBAAoB,YAAY;GAE5B,MAAM,QAAQ,WAAW,CAAC,KAAK,CAAC;GAChC,MAAM,iBAAiB,OAAO,QAAQ;GACtC,MAAM,QAAQ,IACV,OAAO,OAAO,OAAO,CAAC,CAAC,IAAI,OAAO,eAAe;IAC7C,MAAM,SAAS,WAAW;IAC1B,IAAI,WAAW,cACX;IAGJ,IAAI,WAAW,WACX,MAAM,QAAQ,WAAW,CAAC,WAAW,QAAQ,CAAC,CAAC;IAEnD,IAAI;KACA,MAAM,WAAW,QAAQ;IAC7B,QAAQ,CAER;GACJ,CAAC,CACL;GACA,MAAM,QAAQ,IAAI,CAAC,YAAY,QAAQ,GAAG,eAAe,UAAU,CAAC,CAAC;GACrE,MAAM,QAAQ,UAAU;EAC5B,EAAA,CAAG;EACH,OAAO;CACX;CACA,IAAI;CACJ,MAAM,gBAA+B;EACjC,mBAAmB,QAAQ,CAAC,CACvB,WAAW,QAAQ,UAAU,CAAC,CAAC,CAC/B,WAAW,KAAA,CAAS;EACzB,OAAO;CACX;CAEA,OAAO;EACH,IAAI,KAAK;EACA;EACT;EACS;EACT,SAAS,iBAAiB;EACV;EAGhB;EACA,QAAQ,iBAAiB;EACzB;EACA;CACJ;AACJ"}
@@ -1,97 +1,104 @@
1
- import * as v from "../utils/values.js";
2
- import type { AttachmentTypeDef, OntologyIR } from "../ir/index.js";
3
- import type { Uncertain } from "../utils/uncertain.js";
4
- import type { ValidationIssue } from "../utils/validation.js";
5
- import type { PartialAttachmentMetadata } from "./attachments/types.js";
6
- import type { Collection, CollectionConfig } from "@tanstack/db";
7
- export type OntologyCollectionOptions = Omit<CollectionConfig<Record<string, unknown>, string | number>, "getKey">;
1
+ import { Result, attachment } from "../utils/values.js";
2
+ import { AttachmentTypeDef, OntologyIR } from "../ir/generated/types.js";
3
+ import { ValidationIssue } from "../utils/validation.js";
4
+ import "../ir/index.js";
5
+ import { Uncertain } from "../utils/uncertain.js";
6
+ import { PartialAttachmentMetadata } from "./attachments/types.js";
7
+ import { Collection, CollectionConfig, UtilsRecord } from "@tanstack/db";
8
+ //#region src/live/OntologyBackendAdapter.d.ts
9
+ export interface OntologyCollectionUtils extends UtilsRecord {
10
+ /** Fetch and atomically replace the source snapshot, when supported by the adapter. */
11
+ refresh?: () => Promise<void>;
12
+ }
13
+ export type OntologyCollectionOptions = Omit<CollectionConfig<Record<string, unknown>, string | number, never, OntologyCollectionUtils>, "getKey">;
8
14
  export interface OntologyAttachmentUpload {
9
- /**
10
- * The attachment referenced by the prepared action parameters. Its ID is an
11
- * opaque local handle and is not guaranteed to be valid for the backend.
12
- */
13
- attachment: v.attachment;
14
- blob: Blob;
15
- target?: AttachmentTypeDef;
15
+ /**
16
+ * The attachment referenced by the prepared action parameters. Its ID is an
17
+ * opaque local handle and is not guaranteed to be valid for the backend.
18
+ */
19
+ attachment: attachment;
20
+ blob: Blob;
21
+ target?: AttachmentTypeDef;
16
22
  }
17
23
  export interface OntologyAttachmentIdMapping {
18
- /** The opaque attachment ID used before the backend canonicalized it. */
19
- localId: string;
20
- /** The canonical attachment ID returned by the backend. */
21
- remoteId: string;
24
+ /** The opaque attachment ID used before the backend canonicalized it. */
25
+ localId: string;
26
+ /** The canonical attachment ID returned by the backend. */
27
+ remoteId: string;
22
28
  }
23
29
  export interface OntologyApplyActionResult {
24
- /**
25
- * Mappings for uploaded attachments whose canonical backend IDs differ from
26
- * the local IDs supplied in `ApplyActionLiveOpts.attachmentUploads`.
27
- */
28
- attachmentIdMappings?: OntologyAttachmentIdMapping[];
30
+ /**
31
+ * Mappings for uploaded attachments whose canonical backend IDs differ from
32
+ * the local IDs supplied in `ApplyActionLiveOpts.attachmentUploads`.
33
+ */
34
+ attachmentIdMappings?: OntologyAttachmentIdMapping[];
29
35
  }
30
36
  export interface ApplyActionLiveOpts {
31
- objects: Record<string, Collection<Record<string, unknown>>>;
32
- context?: Record<string, unknown>;
33
- /**
34
- * Attachments that must be uploaded as part of action execution. Adapters
35
- * must treat their IDs as opaque local handles, substitute any backend IDs or
36
- * references required by the action invocation, and return an ID mapping for
37
- * every upload whose canonical backend ID differs.
38
- */
39
- attachmentUploads?: OntologyAttachmentUpload[];
40
- idempotencyKey?: string;
37
+ objects: Record<string, Collection<Record<string, unknown>>>;
38
+ context?: Record<string, unknown>;
39
+ /**
40
+ * Attachments that must be uploaded as part of action execution. Adapters
41
+ * must treat their IDs as opaque local handles, substitute any backend IDs or
42
+ * references required by the action invocation, and return an ID mapping for
43
+ * every upload whose canonical backend ID differs.
44
+ */
45
+ attachmentUploads?: OntologyAttachmentUpload[];
46
+ idempotencyKey?: string;
41
47
  }
42
48
  export interface ValidateActionLiveOpts {
43
- objects: Record<string, Collection<Record<string, unknown>>>;
44
- context?: Record<string, unknown>;
49
+ objects: Record<string, Collection<Record<string, unknown>>>;
50
+ context?: Record<string, unknown>;
45
51
  }
46
52
  export interface ValidateActionDraftLiveOpts extends ValidateActionLiveOpts {
47
- knownParameters: readonly string[];
53
+ knownParameters: readonly string[];
48
54
  }
49
55
  export interface RunQueryLiveOpts {
50
- objects: Record<string, Collection<Record<string, unknown>>>;
51
- context?: Record<string, unknown>;
56
+ objects: Record<string, Collection<Record<string, unknown>>>;
57
+ context?: Record<string, unknown>;
52
58
  }
53
59
  export interface OntologyAttachmentsAdapter {
54
- /**
55
- * Generates a preferred ID for an attachment created directly against this adapter.
56
- *
57
- * This is a hint, not an invariant. Attachments can arrive with IDs generated elsewhere,
58
- * so adapters must accept IDs downstream that were not produced by this function.
59
- */
60
- generateAttachmentId?: (blob: Blob, opts: {
61
- target?: AttachmentTypeDef;
62
- }) => Promise<string> | string;
63
- canMaterializeAttachment?: (attachment: v.attachment, opts: {
64
- target?: AttachmentTypeDef;
65
- }) => boolean;
66
- /**
67
- * Materializes an attachment in the backend.
68
- *
69
- * The incoming attachment ID is opaque and may not be valid for this backend. When
70
- * the backend assigns or requires another ID, return an attachment containing that
71
- * canonical ID so the caller can rewrite parameters and bind the resulting mapping.
72
- */
73
- materializeAttachment?: (attachment: v.attachment, blob: Blob, opts: {
74
- target?: AttachmentTypeDef;
75
- }) => Promise<v.attachment | void>;
76
- getAttachmentContent: (attachment: v.attachment) => Promise<Blob>;
77
- getAttachmentMetadata?: (attachment: v.attachment, selection: readonly (keyof PartialAttachmentMetadata)[]) => Promise<PartialAttachmentMetadata>;
60
+ /**
61
+ * Generates a preferred ID for an attachment created directly against this adapter.
62
+ *
63
+ * This is a hint, not an invariant. Attachments can arrive with IDs generated elsewhere,
64
+ * so adapters must accept IDs downstream that were not produced by this function.
65
+ */
66
+ generateAttachmentId?: (blob: Blob, opts: {
67
+ target?: AttachmentTypeDef;
68
+ }) => Promise<string> | string;
69
+ canMaterializeAttachment?: (attachment: attachment, opts: {
70
+ target?: AttachmentTypeDef;
71
+ }) => boolean;
72
+ /**
73
+ * Materializes an attachment in the backend.
74
+ *
75
+ * The incoming attachment ID is opaque and may not be valid for this backend. When
76
+ * the backend assigns or requires another ID, return an attachment containing that
77
+ * canonical ID so the caller can rewrite parameters and bind the resulting mapping.
78
+ */
79
+ materializeAttachment?: (attachment: attachment, blob: Blob, opts: {
80
+ target?: AttachmentTypeDef;
81
+ }) => Promise<attachment | void>;
82
+ getAttachmentContent: (attachment: attachment) => Promise<Blob>;
83
+ getAttachmentMetadata?: (attachment: attachment, selection: readonly (keyof PartialAttachmentMetadata)[]) => Promise<PartialAttachmentMetadata>;
78
84
  }
79
85
  export interface OntologyBackendAdapter {
80
- name: string;
81
- /**
82
- * Whether this adapter participates in long-lived synchronization.
83
- *
84
- * Defaults to true. Non-live adapters support confirmed request/response
85
- * operations but cannot safely back optimistic actions.
86
- */
87
- live?: boolean;
88
- getCollectionOptions: (objectType: string) => OntologyCollectionOptions;
89
- applyAction: (name: string, parameters: Record<string, unknown>, live: ApplyActionLiveOpts) => Promise<OntologyApplyActionResult | void>;
90
- validateAction?: (name: string, parameters: Record<string, unknown>, live: ValidateActionLiveOpts) => Promise<Uncertain<v.Result<void, readonly ValidationIssue[]>>>;
91
- validateActionDraft?: (name: string, parameters: Record<string, unknown>, live: ValidateActionDraftLiveOpts) => Promise<Uncertain<v.Result<void, readonly ValidationIssue[]>>>;
92
- runQueryFunction: (name: string, parameters: Record<string, unknown>, live: RunQueryLiveOpts) => Promise<unknown>;
93
- attachments?: OntologyAttachmentsAdapter;
94
- cleanup?: () => void | Promise<void>;
86
+ name: string;
87
+ /**
88
+ * Whether this adapter participates in long-lived synchronization.
89
+ *
90
+ * Defaults to true. Non-live adapters support confirmed request/response
91
+ * operations but cannot safely back optimistic actions.
92
+ */
93
+ live?: boolean;
94
+ getCollectionOptions: (objectType: string) => OntologyCollectionOptions;
95
+ applyAction: (name: string, parameters: Record<string, unknown>, live: ApplyActionLiveOpts) => Promise<OntologyApplyActionResult | void>;
96
+ validateAction?: (name: string, parameters: Record<string, unknown>, live: ValidateActionLiveOpts) => Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
97
+ validateActionDraft?: (name: string, parameters: Record<string, unknown>, live: ValidateActionDraftLiveOpts) => Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
98
+ runQueryFunction: (name: string, parameters: Record<string, unknown>, live: RunQueryLiveOpts) => Promise<unknown>;
99
+ attachments?: OntologyAttachmentsAdapter;
100
+ cleanup?: () => void | Promise<void>;
95
101
  }
96
102
  export type OntologyBackendAdapterProvider<Context extends Record<string, unknown> = Record<string, unknown>> = (ir: OntologyIR, context: Context) => OntologyBackendAdapter | Promise<OntologyBackendAdapter>;
103
+ //#endregion
97
104
  //# sourceMappingURL=OntologyBackendAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OntologyBackendAdapter.d.ts","sourceRoot":"","sources":["../../src/live/OntologyBackendAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OntologyBackendAdapter.d.ts","names":["v.attachment","v.Result"],"sources":["../../src/live/OntologyBackendAdapter.ts"],"mappings":";;;;;;;;iBAOiB,gCAAgC;;EAE7C,gBAAgB;;YAGR,4BAA4B,KACpC,iBAAiB,iDAAiD;iBAIrD;;;;;EAKb,YAAYA;EACZ,MAAM;EACN,SAAS;;iBAGI;;EAEb;;EAEA;;iBAGa;;;;;EAKb,uBAAuB;;iBAGV;EACb,SAAS,eAAe,WAAW;EACnC,UAAU;;;;;;;EAOV,oBAAoB;EACpB;;iBAGa;EACb,SAAS,eAAe,WAAW;EACnC,UAAU;;iBAGG,oCAAoC;EACjD;;iBAGa;EACb,SAAS,eAAe,WAAW;EACnC,UAAU;;iBAGG;;;;;;;EAOb,wBACI,MAAM,MACN;IACI,SAAS;QAEZ;EACL,4BACI,YAAYA,YACZ;IACI,SAAS;;;;;;;;;EAUjB,yBACI,YAAYA,YACZ,MAAM,MACN;IACI,SAAS;QAEZ,QAAQA;EACb,uBAAuB,YAAYA,eAAiB,QAAQ;EAC5D,yBACI,YAAYA,YACZ,2BAA2B,iCAC1B,QAAQ;;iBAGA;EACb;;;;;;;EAOA;EACA,uBAAuB,uBAAuB;EAC9C,cACI,cACA,YAAY,yBACZ,MAAM,wBACL,QAAQ;EACb,kBACI,cACA,YAAY,yBACZ,MAAM,2BACL,QAAQ,UAAUC,sBAAwB;EAC/C,uBACI,cACA,YAAY,yBACZ,MAAM,gCACL,QAAQ,UAAUA,sBAAwB;EAC/C,mBACI,cACA,YAAY,yBACZ,MAAM,qBACL;EACL,cAAc;EACd,uBAAuB;;YAIf,+BACR,gBAAgB,0BAA0B,4BACzC,IAAI,YAAY,SAAS,YAAY,yBAAyB,QAAQ"}
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=OntologyBackendAdapter.js.map
@@ -1,33 +1,36 @@
1
- import type { OntologyIR } from "../../ir/index.js";
2
- import type { Uncertain } from "../../utils/uncertain.js";
3
- import type { ValidationIssue } from "../../utils/validation.js";
4
- import type { Result } from "../../utils/values.js";
5
- import type { LiveOntologyWriteMode, LiveOntologyWriteVisibility } from "../LiveOntology.js";
6
- import type { OntologyCollection } from "../objects/createLiveOntologyObjectCollection.js";
7
- import type { OntologyObject } from "../objects/OntologyObject.js";
8
- import type { OntologyApplyActionResult } from "../OntologyBackendAdapter.js";
9
- import type { OntologyActionRequest } from "../outbox/types.js";
1
+ import { Result } from "../../utils/values.js";
2
+ import { OntologyIR } from "../../ir/generated/types.js";
3
+ import { ValidationIssue } from "../../utils/validation.js";
4
+ import "../../ir/index.js";
5
+ import { Uncertain } from "../../utils/uncertain.js";
6
+ import { OntologyApplyActionResult } from "../OntologyBackendAdapter.js";
7
+ import { OntologyObject } from "../objects/OntologyObject.js";
8
+ import { OntologyCollection } from "../objects/createLiveOntologyObjectCollection.js";
9
+ import { OntologyActionRequest } from "../outbox/types.js";
10
+ import { LiveOntologyWriteMode, LiveOntologyWriteVisibility } from "../LiveOntology.js";
11
+ //#region src/live/actions/createLiveOntologyAction.d.ts
10
12
  export interface LiveOntologyActionOptions {
11
- idempotencyKey?: string;
12
- mode?: LiveOntologyWriteMode;
13
- visibility?: LiveOntologyWriteVisibility;
13
+ idempotencyKey?: string;
14
+ mode?: LiveOntologyWriteMode;
15
+ visibility?: LiveOntologyWriteVisibility;
14
16
  }
15
17
  export interface LiveOntologyActionDraftValidationOptions<Parameters extends Record<string, unknown>> {
16
- knownParameters?: readonly (keyof Parameters)[];
18
+ knownParameters?: readonly (keyof Parameters)[];
17
19
  }
18
20
  export type LiveOntologyAction<Parameters extends Record<string, unknown> = Record<string, unknown>> = {
19
- (parameters: Parameters, options?: LiveOntologyActionOptions): Promise<OntologyApplyActionResult | void>;
20
- resolveParameters(parameters: Partial<Parameters>): Promise<Partial<Parameters>>;
21
- validate(parameters: Parameters): Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
22
- validateDraft(parameters: Partial<Parameters>, options?: LiveOntologyActionDraftValidationOptions<Parameters>): Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
21
+ (parameters: Parameters, options?: LiveOntologyActionOptions): Promise<OntologyApplyActionResult | void>;
22
+ resolveParameters(parameters: Partial<Parameters>): Promise<Partial<Parameters>>;
23
+ validate(parameters: Parameters): Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
24
+ validateDraft(parameters: Partial<Parameters>, options?: LiveOntologyActionDraftValidationOptions<Parameters>): Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
23
25
  };
24
26
  export declare function createLiveOntologyAction(options: {
25
- ir: OntologyIR;
26
- action: OntologyIR["actionTypes"][number];
27
- context?: Record<string, unknown>;
28
- objects: Record<string, OntologyCollection<OntologyObject>>;
29
- submit(request: OntologyActionRequest, options?: LiveOntologyActionOptions): Promise<OntologyApplyActionResult | void>;
30
- validate(actionTypeName: string, parameters: Record<string, unknown>): Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
31
- validateDraft(actionTypeName: string, parameters: Record<string, unknown>, validationOptions?: LiveOntologyActionDraftValidationOptions<Record<string, unknown>>): Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
27
+ ir: OntologyIR;
28
+ action: OntologyIR["actionTypes"][number];
29
+ context?: Record<string, unknown>;
30
+ objects: Record<string, OntologyCollection<OntologyObject>>;
31
+ submit(request: OntologyActionRequest, options?: LiveOntologyActionOptions): Promise<OntologyApplyActionResult | void>;
32
+ validate(actionTypeName: string, parameters: Record<string, unknown>): Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
33
+ validateDraft(actionTypeName: string, parameters: Record<string, unknown>, validationOptions?: LiveOntologyActionDraftValidationOptions<Record<string, unknown>>): Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
32
34
  }): LiveOntologyAction;
35
+ //#endregion
33
36
  //# sourceMappingURL=createLiveOntologyAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createLiveOntologyAction.d.ts","sourceRoot":"","sources":["../../../src/live/actions/createLiveOntologyAction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createLiveOntologyAction.d.ts","names":[],"sources":["../../../src/live/actions/createLiveOntologyAction.ts"],"mappings":";;;;;;;;;;;iBAYiB;EACb;EACA,OAAO;EACP,aAAa;;iBAGA,yCAAyC,mBAAmB;EACzE,kCAAkC;;YAG1B,mBAAmB,mBAAmB,0BAA0B;GACvE,YAAY,YAAY,UAAU,4BAA4B,QAAQ;EACvE,kBAAkB,YAAY,QAAQ,cAAc,QAAQ,QAAQ;EACpE,SAAS,YAAY,aAAa,QAAQ,UAAU,sBAAsB;EAC1E,cACI,YAAY,QAAQ,aACpB,UAAU,yCAAyC,cACpD,QAAQ,UAAU,sBAAsB;;wBAG/B,yBAAyB;EACrC,IAAI;EACJ,QAAQ;EACR,UAAU;EACV,SAAS,eAAe,mBAAmB;EAC3C,OACI,SAAS,uBACT,UAAU,4BACX,QAAQ;EACX,SACI,wBACA,YAAY,0BACb,QAAQ,UAAU,sBAAsB;EAC3C,cACI,wBACA,YAAY,yBACZ,oBAAoB,yCAAyC,2BAC9D,QAAQ,UAAU,sBAAsB;IAC3C"}
@@ -1,25 +1,28 @@
1
1
  import { resolveActionParameters } from "../expression.js";
2
2
  import { createReadTx } from "../mutators/createMutatorTx.js";
3
- export function createLiveOntologyAction(options) {
4
- const resolveParameters = (providedParameters) => resolveActionParameters({
5
- ir: options.ir,
6
- actionTypeName: options.action.name,
7
- initialParameters: providedParameters,
8
- context: options.context ?? {},
9
- tx: createReadTx(options.objects),
10
- });
11
- const apply = async (providedParameters, executionOptions) => {
12
- const idempotencyKey = executionOptions?.idempotencyKey ??
13
- crypto.randomUUID();
14
- return options.submit({
15
- actionTypeName: options.action.name,
16
- parameters: providedParameters,
17
- idempotencyKey,
18
- }, executionOptions);
19
- };
20
- apply.validate = async (providedParameters) => options.validate(options.action.name, providedParameters);
21
- apply.resolveParameters = resolveParameters;
22
- apply.validateDraft = async (parameters, validationOptions) => options.validateDraft(options.action.name, parameters, validationOptions);
23
- return apply;
3
+ //#region src/live/actions/createLiveOntologyAction.ts
4
+ function createLiveOntologyAction(options) {
5
+ const resolveParameters = (providedParameters) => resolveActionParameters({
6
+ ir: options.ir,
7
+ actionTypeName: options.action.name,
8
+ initialParameters: providedParameters,
9
+ context: options.context ?? {},
10
+ tx: createReadTx(options.objects)
11
+ });
12
+ const apply = async (providedParameters, executionOptions) => {
13
+ const idempotencyKey = executionOptions?.idempotencyKey ?? crypto.randomUUID();
14
+ return options.submit({
15
+ actionTypeName: options.action.name,
16
+ parameters: providedParameters,
17
+ idempotencyKey
18
+ }, executionOptions);
19
+ };
20
+ apply.validate = async (providedParameters) => options.validate(options.action.name, providedParameters);
21
+ apply.resolveParameters = resolveParameters;
22
+ apply.validateDraft = async (parameters, validationOptions) => options.validateDraft(options.action.name, parameters, validationOptions);
23
+ return apply;
24
24
  }
25
+ //#endregion
26
+ export { createLiveOntologyAction };
27
+
25
28
  //# sourceMappingURL=createLiveOntologyAction.js.map