@party-stack/ontology 0.2.0 → 0.4.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 (278) hide show
  1. package/lib/OntologyConfig.d.ts +3 -2
  2. package/lib/OntologyConfig.d.ts.map +1 -1
  3. package/lib/cli/generate.d.ts.map +1 -1
  4. package/lib/cli/generate.js +65 -47
  5. package/lib/cli/generate.js.map +1 -1
  6. package/lib/cli/index.js +7 -4
  7. package/lib/cli/index.js.map +1 -1
  8. package/lib/cli/pull.d.ts.map +1 -1
  9. package/lib/cli/pull.js +10 -4
  10. package/lib/cli/pull.js.map +1 -1
  11. package/lib/examples/blog.d.ts +214 -17
  12. package/lib/examples/blog.d.ts.map +1 -1
  13. package/lib/examples/blog.js +20 -0
  14. package/lib/examples/blog.js.map +1 -1
  15. package/lib/examples/blog.live-queries.d.ts.map +1 -1
  16. package/lib/examples/blog.live-queries.js +4 -2
  17. package/lib/examples/blog.live-queries.js.map +1 -1
  18. package/lib/examples/generated/live.d.ts +2 -2
  19. package/lib/examples/generated/live.d.ts.map +1 -1
  20. package/lib/examples/generated/live.js +2 -3
  21. package/lib/examples/generated/live.js.map +1 -1
  22. package/lib/examples/generated/types.d.ts +13 -2
  23. package/lib/examples/generated/types.d.ts.map +1 -1
  24. package/lib/generate/builders.d.ts +9 -0
  25. package/lib/generate/builders.d.ts.map +1 -0
  26. package/lib/generate/builders.js +60 -0
  27. package/lib/generate/builders.js.map +1 -0
  28. package/lib/generate/builders.test.d.ts +2 -0
  29. package/lib/generate/builders.test.d.ts.map +1 -0
  30. package/lib/generate/builders.test.js +49 -0
  31. package/lib/generate/builders.test.js.map +1 -0
  32. package/lib/generate/index.d.ts +5 -0
  33. package/lib/generate/index.d.ts.map +1 -0
  34. package/lib/generate/index.js +5 -0
  35. package/lib/generate/index.js.map +1 -0
  36. package/lib/generate/live.d.ts.map +1 -1
  37. package/lib/generate/live.js +13 -8
  38. package/lib/generate/live.js.map +1 -1
  39. package/lib/generate/ontology.d.ts.map +1 -1
  40. package/lib/generate/ontology.js +29 -8
  41. package/lib/generate/ontology.js.map +1 -1
  42. package/lib/generate/types.d.ts +11 -1
  43. package/lib/generate/types.d.ts.map +1 -1
  44. package/lib/generate/types.js +178 -99
  45. package/lib/generate/types.js.map +1 -1
  46. package/lib/generate/types.test.js +118 -8
  47. package/lib/generate/types.test.js.map +1 -1
  48. package/lib/generate/utils/buildJsDocs.d.ts +7 -0
  49. package/lib/generate/utils/buildJsDocs.d.ts.map +1 -0
  50. package/lib/generate/utils/buildJsDocs.js +12 -0
  51. package/lib/generate/utils/buildJsDocs.js.map +1 -0
  52. package/lib/index.d.ts +4 -2
  53. package/lib/index.d.ts.map +1 -1
  54. package/lib/index.js +2 -1
  55. package/lib/index.js.map +1 -1
  56. package/lib/infer.d.ts +231 -0
  57. package/lib/infer.d.ts.map +1 -0
  58. package/lib/infer.js +10 -0
  59. package/lib/infer.js.map +1 -0
  60. package/lib/infer.test.d.ts +2 -0
  61. package/lib/infer.test.d.ts.map +1 -0
  62. package/lib/infer.test.js +116 -0
  63. package/lib/infer.test.js.map +1 -0
  64. package/lib/ir/generated/builders.d.ts +184 -184
  65. package/lib/ir/generated/builders.d.ts.map +1 -1
  66. package/lib/ir/generated/builders.js +25 -76
  67. package/lib/ir/generated/builders.js.map +1 -1
  68. package/lib/ir/generated/types.d.ts +37 -8
  69. package/lib/ir/generated/types.d.ts.map +1 -1
  70. package/lib/ir/schema.d.ts +1498 -5
  71. package/lib/ir/schema.d.ts.map +1 -1
  72. package/lib/ir/schema.js +521 -90
  73. package/lib/ir/schema.js.map +1 -1
  74. package/lib/ir/validate.d.ts.map +1 -1
  75. package/lib/ir/validate.js +31 -0
  76. package/lib/ir/validate.js.map +1 -1
  77. package/lib/ir/validate.test.js +53 -3
  78. package/lib/ir/validate.test.js.map +1 -1
  79. package/lib/json/index.d.ts +14 -0
  80. package/lib/json/index.d.ts.map +1 -0
  81. package/lib/json/index.js +158 -0
  82. package/lib/json/index.js.map +1 -0
  83. package/lib/json/index.test.d.ts +2 -0
  84. package/lib/json/index.test.d.ts.map +1 -0
  85. package/lib/json/index.test.js +123 -0
  86. package/lib/json/index.test.js.map +1 -0
  87. package/lib/live/LiveOntology.d.ts +44 -13
  88. package/lib/live/LiveOntology.d.ts.map +1 -1
  89. package/lib/live/LiveOntology.js +64 -37
  90. package/lib/live/LiveOntology.js.map +1 -1
  91. package/lib/live/LiveOntology.test.d.ts +2 -0
  92. package/lib/live/LiveOntology.test.d.ts.map +1 -0
  93. package/lib/live/LiveOntology.test.js +154 -0
  94. package/lib/live/LiveOntology.test.js.map +1 -0
  95. package/lib/live/OntologyBackendAdapter.d.ts +53 -0
  96. package/lib/live/OntologyBackendAdapter.d.ts.map +1 -0
  97. package/lib/live/OntologyBackendAdapter.js +2 -0
  98. package/lib/live/OntologyBackendAdapter.js.map +1 -0
  99. package/lib/live/actions/createLiveOntologyAction.d.ts +20 -0
  100. package/lib/live/actions/createLiveOntologyAction.d.ts.map +1 -0
  101. package/lib/live/actions/createLiveOntologyAction.js +22 -0
  102. package/lib/live/actions/createLiveOntologyAction.js.map +1 -0
  103. package/lib/live/actions/createLiveOntologyActions.d.ts +23 -0
  104. package/lib/live/actions/createLiveOntologyActions.d.ts.map +1 -0
  105. package/lib/live/actions/createLiveOntologyActions.js +129 -0
  106. package/lib/live/actions/createLiveOntologyActions.js.map +1 -0
  107. package/lib/live/actions/prepareActionParameters.d.ts +16 -0
  108. package/lib/live/actions/prepareActionParameters.d.ts.map +1 -0
  109. package/lib/live/actions/prepareActionParameters.js +251 -0
  110. package/lib/live/actions/prepareActionParameters.js.map +1 -0
  111. package/lib/live/actions/prepareActionParameters.test.d.ts +2 -0
  112. package/lib/live/actions/prepareActionParameters.test.d.ts.map +1 -0
  113. package/lib/live/actions/prepareActionParameters.test.js +165 -0
  114. package/lib/live/actions/prepareActionParameters.test.js.map +1 -0
  115. package/lib/live/attachments/attachmentSources.d.ts +7 -0
  116. package/lib/live/attachments/attachmentSources.d.ts.map +1 -0
  117. package/lib/live/attachments/attachmentSources.js +80 -0
  118. package/lib/live/attachments/attachmentSources.js.map +1 -0
  119. package/lib/live/attachments/createLiveOntologyAttachments.d.ts +38 -0
  120. package/lib/live/attachments/createLiveOntologyAttachments.d.ts.map +1 -0
  121. package/lib/live/attachments/createLiveOntologyAttachments.js +59 -0
  122. package/lib/live/attachments/createLiveOntologyAttachments.js.map +1 -0
  123. package/lib/live/attachments/createLiveOntologyAttachments.test.d.ts +2 -0
  124. package/lib/live/attachments/createLiveOntologyAttachments.test.d.ts.map +1 -0
  125. package/lib/live/attachments/createLiveOntologyAttachments.test.js +244 -0
  126. package/lib/live/attachments/createLiveOntologyAttachments.test.js.map +1 -0
  127. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.d.ts +3 -0
  128. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.d.ts.map +1 -0
  129. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.js +5 -0
  130. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.js.map +1 -0
  131. package/lib/live/expression.d.ts +16 -3
  132. package/lib/live/expression.d.ts.map +1 -1
  133. package/lib/live/expression.js +55 -47
  134. package/lib/live/expression.js.map +1 -1
  135. package/lib/live/expression.test.d.ts +2 -0
  136. package/lib/live/expression.test.d.ts.map +1 -0
  137. package/lib/live/expression.test.js +76 -0
  138. package/lib/live/expression.test.js.map +1 -0
  139. package/lib/live/index.d.ts +4 -1
  140. package/lib/live/index.d.ts.map +1 -1
  141. package/lib/live/index.js +4 -1
  142. package/lib/live/index.js.map +1 -1
  143. package/lib/live/mutators/OntologyEdits.d.ts +11 -0
  144. package/lib/live/mutators/OntologyEdits.d.ts.map +1 -0
  145. package/lib/live/mutators/OntologyEdits.js +66 -0
  146. package/lib/live/mutators/OntologyEdits.js.map +1 -0
  147. package/lib/live/mutators/createMutatorTx.d.ts +9 -0
  148. package/lib/live/mutators/createMutatorTx.d.ts.map +1 -0
  149. package/lib/live/mutators/createMutatorTx.js +67 -0
  150. package/lib/live/mutators/createMutatorTx.js.map +1 -0
  151. package/lib/live/mutators/createMutatorTx.test.d.ts +2 -0
  152. package/lib/live/mutators/createMutatorTx.test.d.ts.map +1 -0
  153. package/lib/live/mutators/createMutatorTx.test.js +90 -0
  154. package/lib/live/mutators/createMutatorTx.test.js.map +1 -0
  155. package/lib/live/mutators/runOptimisticAction.d.ts +15 -0
  156. package/lib/live/mutators/runOptimisticAction.d.ts.map +1 -0
  157. package/lib/live/mutators/runOptimisticAction.js +29 -0
  158. package/lib/live/mutators/runOptimisticAction.js.map +1 -0
  159. package/lib/live/mutators/types.d.ts +24 -0
  160. package/lib/live/mutators/types.d.ts.map +1 -0
  161. package/lib/live/mutators/types.js +2 -0
  162. package/lib/live/mutators/types.js.map +1 -0
  163. package/lib/live/objects/OntologyObject.d.ts +2 -0
  164. package/lib/live/objects/OntologyObject.d.ts.map +1 -0
  165. package/lib/live/objects/OntologyObject.js +2 -0
  166. package/lib/live/objects/OntologyObject.js.map +1 -0
  167. package/lib/live/objects/createLiveOntologyObjectCollection.d.ts +14 -0
  168. package/lib/live/objects/createLiveOntologyObjectCollection.d.ts.map +1 -0
  169. package/lib/live/objects/createLiveOntologyObjectCollection.js +59 -0
  170. package/lib/live/objects/createLiveOntologyObjectCollection.js.map +1 -0
  171. package/lib/live/objects/createLiveOntologyObjectCollection.test.d.ts +2 -0
  172. package/lib/live/objects/createLiveOntologyObjectCollection.test.d.ts.map +1 -0
  173. package/lib/live/objects/createLiveOntologyObjectCollection.test.js +176 -0
  174. package/lib/live/objects/createLiveOntologyObjectCollection.test.js.map +1 -0
  175. package/lib/live/objects/ontologyObjectCollectionId.d.ts +2 -0
  176. package/lib/live/objects/ontologyObjectCollectionId.d.ts.map +1 -0
  177. package/lib/live/objects/ontologyObjectCollectionId.js +4 -0
  178. package/lib/live/objects/ontologyObjectCollectionId.js.map +1 -0
  179. package/lib/live/outbox/createOntologyOutbox.d.ts +19 -0
  180. package/lib/live/outbox/createOntologyOutbox.d.ts.map +1 -0
  181. package/lib/live/outbox/createOntologyOutbox.js +321 -0
  182. package/lib/live/outbox/createOntologyOutbox.js.map +1 -0
  183. package/lib/live/outbox/createOntologyOutbox.test.d.ts +2 -0
  184. package/lib/live/outbox/createOntologyOutbox.test.d.ts.map +1 -0
  185. package/lib/live/outbox/createOntologyOutbox.test.js +914 -0
  186. package/lib/live/outbox/createOntologyOutbox.test.js.map +1 -0
  187. package/lib/live/outbox/leaderExecutor.d.ts +16 -0
  188. package/lib/live/outbox/leaderExecutor.d.ts.map +1 -0
  189. package/lib/live/outbox/leaderExecutor.js +143 -0
  190. package/lib/live/outbox/leaderExecutor.js.map +1 -0
  191. package/lib/live/outbox/outboxService.d.ts +5 -0
  192. package/lib/live/outbox/outboxService.d.ts.map +1 -0
  193. package/lib/live/outbox/outboxService.js +73 -0
  194. package/lib/live/outbox/outboxService.js.map +1 -0
  195. package/lib/live/outbox/outboxValues.d.ts +7 -0
  196. package/lib/live/outbox/outboxValues.d.ts.map +1 -0
  197. package/lib/live/outbox/outboxValues.js +76 -0
  198. package/lib/live/outbox/outboxValues.js.map +1 -0
  199. package/lib/live/outbox/projectionManager.d.ts +29 -0
  200. package/lib/live/outbox/projectionManager.d.ts.map +1 -0
  201. package/lib/live/outbox/projectionManager.js +155 -0
  202. package/lib/live/outbox/projectionManager.js.map +1 -0
  203. package/lib/live/outbox/repository.d.ts +29 -0
  204. package/lib/live/outbox/repository.d.ts.map +1 -0
  205. package/lib/live/outbox/repository.js +245 -0
  206. package/lib/live/outbox/repository.js.map +1 -0
  207. package/lib/live/outbox/service.d.ts +59 -0
  208. package/lib/live/outbox/service.d.ts.map +1 -0
  209. package/lib/live/outbox/service.js +2 -0
  210. package/lib/live/outbox/service.js.map +1 -0
  211. package/lib/live/outbox/types.d.ts +45 -0
  212. package/lib/live/outbox/types.d.ts.map +1 -0
  213. package/lib/live/outbox/types.js +7 -0
  214. package/lib/live/outbox/types.js.map +1 -0
  215. package/lib/meta/generated/live.d.ts +5 -0
  216. package/lib/meta/generated/live.d.ts.map +1 -0
  217. package/lib/{ontology → meta}/generated/live.js +2 -3
  218. package/lib/meta/generated/live.js.map +1 -0
  219. package/lib/{ontology → meta}/generated/types.d.ts +37 -8
  220. package/lib/meta/generated/types.d.ts.map +1 -0
  221. package/lib/meta/generated/types.js.map +1 -0
  222. package/lib/{ontology → meta}/ontology.d.ts +1 -0
  223. package/lib/meta/ontology.d.ts.map +1 -0
  224. package/lib/{ontology → meta}/ontology.js +7 -0
  225. package/lib/meta/ontology.js.map +1 -0
  226. package/lib/meta/pull.d.ts +2 -1
  227. package/lib/meta/pull.d.ts.map +1 -1
  228. package/lib/meta/pull.js +20 -5
  229. package/lib/meta/pull.js.map +1 -1
  230. package/lib/utils/index.d.ts +3 -0
  231. package/lib/utils/index.d.ts.map +1 -0
  232. package/lib/utils/index.js +2 -0
  233. package/lib/utils/index.js.map +1 -0
  234. package/lib/utils/provide.d.ts +2 -0
  235. package/lib/utils/provide.d.ts.map +1 -0
  236. package/lib/utils/provide.js +11 -0
  237. package/lib/utils/provide.js.map +1 -0
  238. package/lib/utils/targets.d.ts +35 -0
  239. package/lib/utils/targets.d.ts.map +1 -0
  240. package/lib/utils/targets.js +2 -0
  241. package/lib/utils/targets.js.map +1 -0
  242. package/lib/utils/typeNames.d.ts +26 -0
  243. package/lib/utils/typeNames.d.ts.map +1 -0
  244. package/lib/utils/typeNames.js +2 -0
  245. package/lib/utils/typeNames.js.map +1 -0
  246. package/lib/utils/types.d.ts +10 -0
  247. package/lib/utils/types.d.ts.map +1 -0
  248. package/lib/utils/types.js +48 -0
  249. package/lib/utils/types.js.map +1 -0
  250. package/lib/utils/types.test.d.ts +2 -0
  251. package/lib/utils/types.test.d.ts.map +1 -0
  252. package/lib/utils/types.test.js +157 -0
  253. package/lib/utils/types.test.js.map +1 -0
  254. package/lib/utils/values.d.ts +32 -0
  255. package/lib/utils/values.d.ts.map +1 -0
  256. package/lib/utils/values.js +2 -0
  257. package/lib/utils/values.js.map +1 -0
  258. package/package.json +21 -7
  259. package/lib/ir/generated/validators.d.ts +0 -49
  260. package/lib/ir/generated/validators.d.ts.map +0 -1
  261. package/lib/ir/generated/validators.js +0 -171
  262. package/lib/ir/generated/validators.js.map +0 -1
  263. package/lib/live/OntologyAdapter.d.ts +0 -12
  264. package/lib/live/OntologyAdapter.d.ts.map +0 -1
  265. package/lib/live/OntologyAdapter.js +0 -2
  266. package/lib/live/OntologyAdapter.js.map +0 -1
  267. package/lib/live/applyActionLogic.d.ts +0 -10
  268. package/lib/live/applyActionLogic.d.ts.map +0 -1
  269. package/lib/live/applyActionLogic.js +0 -59
  270. package/lib/live/applyActionLogic.js.map +0 -1
  271. package/lib/ontology/generated/live.d.ts +0 -5
  272. package/lib/ontology/generated/live.d.ts.map +0 -1
  273. package/lib/ontology/generated/live.js.map +0 -1
  274. package/lib/ontology/generated/types.d.ts.map +0 -1
  275. package/lib/ontology/generated/types.js.map +0 -1
  276. package/lib/ontology/ontology.d.ts.map +0 -1
  277. package/lib/ontology/ontology.js.map +0 -1
  278. /package/lib/{ontology → meta}/generated/types.js +0 -0
@@ -0,0 +1,24 @@
1
+ import type { OntologyObject } from "../objects/OntologyObject.js";
2
+ import type { Collection, InitialQueryBuilder } from "@tanstack/db";
3
+ export interface OntologyPropertyChange {
4
+ path: string[];
5
+ value: unknown;
6
+ }
7
+ export type OntologyMutatorObjects = Record<string, Collection<OntologyObject>>;
8
+ export interface OntologyReadTx {
9
+ query<T>(build: (query: InitialQueryBuilder, objects: OntologyMutatorObjects) => unknown): Promise<T>;
10
+ }
11
+ export interface OntologyMutatorTx extends OntologyReadTx {
12
+ mutate: Record<string, {
13
+ create(object: Record<string, unknown>): Promise<void>;
14
+ update(key: string | number, changes: Record<string, unknown> | OntologyPropertyChange[]): Promise<void>;
15
+ delete(key: string | number): Promise<void>;
16
+ }>;
17
+ }
18
+ export type OntologyMutator = (options: {
19
+ tx: OntologyMutatorTx;
20
+ args: Record<string, unknown>;
21
+ context: Record<string, unknown>;
22
+ }) => void | Promise<void>;
23
+ export type OntologyMutatorRegistry = Record<string, OntologyMutator>;
24
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/live/mutators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EACR,UAAU,EACV,mBAAmB,EACtB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,CACvC,MAAM,EACN,UAAU,CAAC,cAAc,CAAC,CAC7B,CAAC;AAEF,MAAM,WAAW,cAAc;IAC3B,KAAK,CAAC,CAAC,EACH,KAAK,EAAE,CACH,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,sBAAsB,KAC9B,OAAO,GACb,OAAO,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACrD,MAAM,EAAE,MAAM,CACV,MAAM,EACN;QACI,MAAM,CACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,CACF,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,OAAO,EACD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,sBAAsB,EAAE,GAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC/C,CACJ,CAAC;CACL;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE;IACpC,EAAE,EAAE,iBAAiB,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3B,MAAM,MAAM,uBAAuB,GAAG,MAAM,CACxC,MAAM,EACN,eAAe,CAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/live/mutators/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export type OntologyObject = Record<string, unknown>;
2
+ //# sourceMappingURL=OntologyObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OntologyObject.d.ts","sourceRoot":"","sources":["../../../src/live/objects/OntologyObject.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=OntologyObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OntologyObject.js","sourceRoot":"","sources":["../../../src/live/objects/OntologyObject.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { type RuntimeAdapter } from "@party-stack/runtime";
2
+ import { type Collection } from "@tanstack/db";
3
+ import type { OntologyIR } from "../../ir/index.js";
4
+ import type { OntologyBackendAdapter } from "../OntologyBackendAdapter.js";
5
+ import type { OntologyObject } from "./OntologyObject.js";
6
+ export type OntologyCollection<T extends OntologyObject> = Collection<T>;
7
+ export declare function createLiveOntologyObjectCollection(opts: {
8
+ ir: OntologyIR;
9
+ objectType: OntologyIR["objectTypes"][number];
10
+ backendAdapter: OntologyBackendAdapter;
11
+ runtime: RuntimeAdapter;
12
+ persistObjects: boolean;
13
+ }): OntologyCollection<OntologyObject>;
14
+ //# sourceMappingURL=createLiveOntologyObjectCollection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLiveOntologyObjectCollection.d.ts","sourceRoot":"","sources":["../../../src/live/objects/createLiveOntologyObjectCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,cAAc,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAgC,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAI7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,cAAc,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAiCzE,wBAAgB,kCAAkC,CAAC,IAAI,EAAE;IACrD,EAAE,EAAE,UAAU,CAAC;IACf,UAAU,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9C,cAAc,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CAC3B,GAAG,kBAAkB,CAAC,cAAc,CAAC,CA4CrC"}
@@ -0,0 +1,59 @@
1
+ import { createPersistedCollectionCoordinator, } from "@party-stack/runtime";
2
+ import { BasicIndex, createCollection } from "@tanstack/db";
3
+ import { persistedCollectionOptions } from "@tanstack/db-sqlite-persistence-core";
4
+ import { decorateObjectAttachmentSources } from "../attachments/attachmentSources.js";
5
+ import { ontologyObjectCollectionId } from "./ontologyObjectCollectionId.js";
6
+ function decorateCollectionSync(opts) {
7
+ return {
8
+ ...opts.collectionOptions,
9
+ sync: {
10
+ ...opts.collectionOptions.sync,
11
+ sync: (syncParams) => opts.collectionOptions.sync.sync({
12
+ ...syncParams,
13
+ write: (message) => {
14
+ if (message.type === "delete") {
15
+ syncParams.write(message);
16
+ return;
17
+ }
18
+ syncParams.write({
19
+ ...message,
20
+ value: decorateObjectAttachmentSources({
21
+ ir: opts.ir,
22
+ objectType: opts.objectType,
23
+ object: message.value,
24
+ }),
25
+ });
26
+ },
27
+ }),
28
+ },
29
+ };
30
+ }
31
+ export function createLiveOntologyObjectCollection(opts) {
32
+ const collectionOptions = decorateCollectionSync({
33
+ ir: opts.ir,
34
+ objectType: opts.objectType,
35
+ collectionOptions: opts.backendAdapter.getCollectionOptions(opts.objectType.name),
36
+ });
37
+ const options = {
38
+ ...collectionOptions,
39
+ id: ontologyObjectCollectionId(opts.runtime.owner, opts.runtime.namespace, opts.objectType.name),
40
+ defaultIndexType: BasicIndex,
41
+ autoIndex: "eager",
42
+ getKey: (object) => object[opts.objectType.primaryKey],
43
+ };
44
+ if (!opts.persistObjects) {
45
+ return createCollection(options);
46
+ }
47
+ if (!opts.runtime.persistence) {
48
+ throw new Error(`Live ontology object persistence requires a runtime persistence adapter (${opts.objectType.name}).`);
49
+ }
50
+ return createCollection(persistedCollectionOptions({
51
+ ...options,
52
+ schemaVersion: 1,
53
+ persistence: {
54
+ adapter: opts.runtime.persistence,
55
+ coordinator: createPersistedCollectionCoordinator(opts.runtime.coordination, opts.runtime.persistence),
56
+ },
57
+ }));
58
+ }
59
+ //# sourceMappingURL=createLiveOntologyObjectCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLiveOntologyObjectCollection.js","sourceRoot":"","sources":["../../../src/live/objects/createLiveOntologyObjectCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oCAAoC,GAEvC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAO7E,SAAS,sBAAsB,CAAC,IAI/B;IACG,OAAO;QACH,GAAG,IAAI,CAAC,iBAAiB;QACzB,IAAI,EAAE;YACF,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI;YAC9B,IAAI,EAAE,CAAC,UAAU,EAAE,EAAE,CACjB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC7B,GAAG,UAAU;gBACb,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;oBACf,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC5B,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAC1B,OAAO;oBACX,CAAC;oBACD,UAAU,CAAC,KAAK,CAAC;wBACb,GAAG,OAAO;wBACV,KAAK,EAAE,+BAA+B,CAAC;4BACnC,EAAE,EAAE,IAAI,CAAC,EAAE;4BACX,UAAU,EAAE,IAAI,CAAC,UAAU;4BAC3B,MAAM,EAAE,OAAO,CAAC,KAAK;yBACxB,CAAC;qBACL,CAAC,CAAC;gBACP,CAAC;aACJ,CAAC;SACT;KACJ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,IAMlD;IACG,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;QAC7C,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;KACpF,CAAC,CAAC;IACH,MAAM,OAAO,GAAG;QACZ,GAAG,iBAAiB;QACpB,EAAE,EAAE,0BAA0B,CAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,IAAI,CAAC,OAAO,CAAC,SAAS,EACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CACvB;QACD,gBAAgB,EAAE,UAAU;QAC5B,SAAS,EAAE,OAAgB;QAC3B,MAAM,EAAE,CAAC,MAAsB,EAAE,EAAE,CAC9B,MAA0C,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAoB;KACjG,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,OAAO,gBAAgB,CAAC,OAAO,CAAuC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACX,4EAA4E,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CACvG,CAAC;IACN,CAAC;IAED,OAAO,gBAAgB,CACnB,0BAA0B,CAGxB;QACE,GAAG,OAAO;QACV,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE;YACT,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YACjC,WAAW,EACP,oCAAoC,CAChC,IAAI,CAAC,OAAO,CAAC,YAAY,EACzB,IAAI,CAAC,OAAO,CAAC,WAAW,CAC3B;SACR;KACJ,CAAC,CACiC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=createLiveOntologyObjectCollection.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLiveOntologyObjectCollection.test.d.ts","sourceRoot":"","sources":["../../../src/live/objects/createLiveOntologyObjectCollection.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,176 @@
1
+ import { MemoryBlobBytesStore, SingleProcessCoordination } from "@party-stack/runtime";
2
+ import { describe, expect, it, vi } from "vitest";
3
+ import { o } from "../../ir/index.js";
4
+ import { createLiveOntologyObjectCollection } from "./createLiveOntologyObjectCollection.js";
5
+ const ir = {
6
+ types: [],
7
+ objectTypes: [
8
+ {
9
+ name: "Task",
10
+ displayName: "Task",
11
+ pluralDisplayName: "Tasks",
12
+ primaryKey: "id",
13
+ properties: [
14
+ {
15
+ name: "id",
16
+ displayName: "ID",
17
+ type: o.string({}),
18
+ },
19
+ {
20
+ name: "title",
21
+ displayName: "Title",
22
+ type: o.string({}),
23
+ },
24
+ ],
25
+ },
26
+ ],
27
+ linkTypes: [],
28
+ actionTypes: [],
29
+ queryFunctionTypes: [],
30
+ };
31
+ function backend(sync) {
32
+ return {
33
+ name: "test",
34
+ getCollectionOptions: () => ({
35
+ syncMode: "eager",
36
+ sync: { sync },
37
+ }),
38
+ applyAction: () => Promise.resolve(),
39
+ runQueryFunction: () => Promise.resolve(undefined),
40
+ };
41
+ }
42
+ function memoryPersistence(initial = []) {
43
+ const rows = new Map(initial.map(({ key, value }) => [key, value]));
44
+ const positions = new Map();
45
+ const applyCommittedTx = vi.fn((collectionId, transaction) => {
46
+ if (transaction.truncate)
47
+ rows.clear();
48
+ for (const mutation of transaction.mutations) {
49
+ if (mutation.type === "delete") {
50
+ rows.delete(String(mutation.key));
51
+ }
52
+ else {
53
+ rows.set(String(mutation.key), mutation.value);
54
+ }
55
+ }
56
+ positions.set(collectionId, {
57
+ latestTerm: transaction.term,
58
+ latestSeq: transaction.seq,
59
+ latestRowVersion: transaction.rowVersion,
60
+ });
61
+ return Promise.resolve();
62
+ });
63
+ return {
64
+ adapter: {
65
+ loadSubset: () => Promise.resolve([...rows].map(([key, value]) => ({
66
+ key,
67
+ value,
68
+ }))),
69
+ applyCommittedTx,
70
+ ensureIndex: () => Promise.resolve(),
71
+ getStreamPosition: (collectionId) => Promise.resolve(positions.get(collectionId) ?? {
72
+ latestTerm: 0,
73
+ latestSeq: 0,
74
+ latestRowVersion: 0,
75
+ }),
76
+ },
77
+ applyCommittedTx,
78
+ };
79
+ }
80
+ function createOptions() {
81
+ const coordination = new SingleProcessCoordination({
82
+ scope: "object-persistence-test",
83
+ });
84
+ return {
85
+ owner: "user-1",
86
+ ontologyId: "ontology-1",
87
+ ir,
88
+ objectType: ir.objectTypes[0],
89
+ coordination,
90
+ };
91
+ }
92
+ describe("createLiveOntologyObjectCollection", () => {
93
+ it("fails fast when object persistence has no adapter", async () => {
94
+ const options = createOptions();
95
+ expect(() => createLiveOntologyObjectCollection({
96
+ ...options,
97
+ backendAdapter: backend(({ markReady }) => markReady()),
98
+ runtime: {
99
+ owner: options.owner,
100
+ namespace: options.ontologyId,
101
+ blobBytes: new MemoryBlobBytesStore(),
102
+ coordination: options.coordination,
103
+ },
104
+ persistObjects: true,
105
+ })).toThrow("Live ontology object persistence requires a runtime persistence adapter");
106
+ await options.coordination.close();
107
+ });
108
+ it("hydrates persisted objects before marking the collection ready", async () => {
109
+ const options = createOptions();
110
+ const persistence = memoryPersistence([
111
+ {
112
+ key: "persisted",
113
+ value: {
114
+ id: "persisted",
115
+ title: "From persistence",
116
+ },
117
+ },
118
+ ]);
119
+ const collection = createLiveOntologyObjectCollection({
120
+ ...options,
121
+ backendAdapter: backend(({ markReady }) => markReady()),
122
+ runtime: {
123
+ owner: options.owner,
124
+ namespace: options.ontologyId,
125
+ blobBytes: new MemoryBlobBytesStore(),
126
+ coordination: options.coordination,
127
+ persistence: persistence.adapter,
128
+ },
129
+ persistObjects: true,
130
+ });
131
+ await collection.preload();
132
+ expect(collection.id).toBe("party-stack:user-1:ontology-1:objects:Task");
133
+ expect(collection.get("persisted")).toMatchObject({
134
+ title: "From persistence",
135
+ });
136
+ await collection.cleanup();
137
+ await options.coordination.close();
138
+ });
139
+ it("persists authoritative backend sync transactions", async () => {
140
+ const options = createOptions();
141
+ const persistence = memoryPersistence();
142
+ const collection = createLiveOntologyObjectCollection({
143
+ ...options,
144
+ backendAdapter: backend(({ begin, write, commit, markReady }) => {
145
+ begin({ immediate: true });
146
+ write({
147
+ type: "insert",
148
+ value: {
149
+ id: "remote",
150
+ title: "From backend",
151
+ },
152
+ });
153
+ commit();
154
+ markReady();
155
+ }),
156
+ runtime: {
157
+ owner: options.owner,
158
+ namespace: options.ontologyId,
159
+ blobBytes: new MemoryBlobBytesStore(),
160
+ coordination: options.coordination,
161
+ persistence: persistence.adapter,
162
+ },
163
+ persistObjects: true,
164
+ });
165
+ await collection.preload();
166
+ await vi.waitFor(() => {
167
+ expect(persistence.applyCommittedTx).toHaveBeenCalled();
168
+ });
169
+ expect(collection.get("remote")).toMatchObject({
170
+ title: "From backend",
171
+ });
172
+ await collection.cleanup();
173
+ await options.coordination.close();
174
+ });
175
+ });
176
+ //# sourceMappingURL=createLiveOntologyObjectCollection.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLiveOntologyObjectCollection.test.js","sourceRoot":"","sources":["../../../src/live/objects/createLiveOntologyObjectCollection.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function ontologyObjectCollectionId(owner: string, ontologyId: string, objectType: string): string;
2
+ //# sourceMappingURL=ontologyObjectCollectionId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ontologyObjectCollectionId.d.ts","sourceRoot":"","sources":["../../../src/live/objects/ontologyObjectCollectionId.ts"],"names":[],"mappings":"AAAA,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAExG"}
@@ -0,0 +1,4 @@
1
+ export function ontologyObjectCollectionId(owner, ontologyId, objectType) {
2
+ return `party-stack:${owner}:${ontologyId}:objects:${objectType}`;
3
+ }
4
+ //# sourceMappingURL=ontologyObjectCollectionId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ontologyObjectCollectionId.js","sourceRoot":"","sources":["../../../src/live/objects/ontologyObjectCollectionId.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,0BAA0B,CAAC,KAAa,EAAE,UAAkB,EAAE,UAAkB;IAC5F,OAAO,eAAe,KAAK,IAAI,UAAU,YAAY,UAAU,EAAE,CAAC;AACtE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type RuntimeAdapter } from "@party-stack/runtime";
2
+ import { type Operation, type Task } from "effection";
3
+ import { type OutboxProjection } from "./projectionManager.js";
4
+ import type { OntologyOutbox, OntologyOutboxEntry } from "./types.js";
5
+ import type { Collection } from "@tanstack/db";
6
+ export type { OutboxProjection } from "./projectionManager.js";
7
+ export interface CreateOntologyOutboxOptions {
8
+ runtime: RuntimeAdapter;
9
+ execute(entry: OntologyOutboxEntry): Promise<unknown>;
10
+ project?(entry: OntologyOutboxEntry): Promise<OutboxProjection | undefined>;
11
+ failureStrategy?: "pause" | "discard-all";
12
+ maxRetries?: number;
13
+ }
14
+ export declare function useOntologyOutbox(options: CreateOntologyOutboxOptions, collection?: Collection<OntologyOutboxEntry, string>): Operation<OntologyOutbox>;
15
+ export interface StartedOntologyOutbox extends OntologyOutbox {
16
+ readonly task: Task<void>;
17
+ }
18
+ export declare function createOntologyOutbox(options: CreateOntologyOutboxOptions): StartedOntologyOutbox;
19
+ //# sourceMappingURL=createOntologyOutbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createOntologyOutbox.d.ts","sourceRoot":"","sources":["../../../src/live/outbox/createOntologyOutbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,KAAK,cAAc,EACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EASH,KAAK,SAAS,EACd,KAAK,IAAI,EACZ,MAAM,WAAW,CAAC;AAInB,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAOxF,OAAO,KAAK,EAGR,cAAc,EACd,mBAAmB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,MAAM,WAAW,2BAA2B;IACxC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,OAAO,CAAC,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAC5E,eAAe,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AA8DD,wBAAgB,iBAAiB,CAC7B,OAAO,EAAE,2BAA2B,EACpC,UAAU,GAAE,UAAU,CAAC,mBAAmB,EAAE,MAAM,CAAmC,GACtF,SAAS,CAAC,cAAc,CAAC,CA0P3B;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IACzD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,qBAAqB,CAyChG"}