@party-stack/ontology 0.3.0 → 0.5.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 -5
  21. package/lib/examples/generated/live.js.map +1 -1
  22. package/lib/examples/generated/types.d.ts +15 -10
  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 -10
  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 -118
  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 +180 -180
  65. package/lib/ir/generated/builders.d.ts.map +1 -1
  66. package/lib/ir/generated/builders.js +24 -75
  67. package/lib/ir/generated/builders.js.map +1 -1
  68. package/lib/ir/generated/types.d.ts +32 -5
  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 +509 -97
  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 -18
  88. package/lib/live/LiveOntology.d.ts.map +1 -1
  89. package/lib/live/LiveOntology.js +64 -67
  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 +155 -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 +54 -41
  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 -5
  218. package/lib/meta/generated/live.js.map +1 -0
  219. package/lib/{ontology → meta}/generated/types.d.ts +32 -11
  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/provide.d.ts +2 -0
  231. package/lib/utils/provide.d.ts.map +1 -0
  232. package/lib/utils/provide.js +11 -0
  233. package/lib/utils/provide.js.map +1 -0
  234. package/lib/utils/targets.d.ts +35 -0
  235. package/lib/utils/targets.d.ts.map +1 -0
  236. package/lib/utils/targets.js +2 -0
  237. package/lib/utils/targets.js.map +1 -0
  238. package/lib/utils/typeNames.d.ts +26 -0
  239. package/lib/utils/typeNames.d.ts.map +1 -0
  240. package/lib/utils/typeNames.js +2 -0
  241. package/lib/utils/typeNames.js.map +1 -0
  242. package/lib/utils/types.d.ts +6 -5
  243. package/lib/utils/types.d.ts.map +1 -1
  244. package/lib/utils/types.js +22 -1
  245. package/lib/utils/types.js.map +1 -1
  246. package/lib/utils/types.test.js +23 -3
  247. package/lib/utils/types.test.js.map +1 -1
  248. package/lib/utils/values.d.ts +25 -1
  249. package/lib/utils/values.d.ts.map +1 -1
  250. package/package.json +14 -8
  251. package/lib/ir/generated/validators.d.ts +0 -49
  252. package/lib/ir/generated/validators.d.ts.map +0 -1
  253. package/lib/ir/generated/validators.js +0 -173
  254. package/lib/ir/generated/validators.js.map +0 -1
  255. package/lib/live/OntologyAdapter.d.ts +0 -25
  256. package/lib/live/OntologyAdapter.d.ts.map +0 -1
  257. package/lib/live/OntologyAdapter.js +0 -2
  258. package/lib/live/OntologyAdapter.js.map +0 -1
  259. package/lib/live/applyActionLogic.d.ts +0 -10
  260. package/lib/live/applyActionLogic.d.ts.map +0 -1
  261. package/lib/live/applyActionLogic.js +0 -59
  262. package/lib/live/applyActionLogic.js.map +0 -1
  263. package/lib/live/createLiveOntologyAttachments.d.ts +0 -20
  264. package/lib/live/createLiveOntologyAttachments.d.ts.map +0 -1
  265. package/lib/live/createLiveOntologyAttachments.js +0 -30
  266. package/lib/live/createLiveOntologyAttachments.js.map +0 -1
  267. package/lib/live/materializeActionParameters.d.ts +0 -11
  268. package/lib/live/materializeActionParameters.d.ts.map +0 -1
  269. package/lib/live/materializeActionParameters.js +0 -86
  270. package/lib/live/materializeActionParameters.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 @@
1
+ {"version":3,"file":"OntologyBackendAdapter.js","sourceRoot":"","sources":["../../src/live/OntologyBackendAdapter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import type { OntologyIR } from "../../ir/index.js";
2
+ import type { LiveOntologyWriteMode, LiveOntologyWriteVisibility } from "../LiveOntology.js";
3
+ import type { OntologyCollection } from "../objects/createLiveOntologyObjectCollection.js";
4
+ import type { OntologyObject } from "../objects/OntologyObject.js";
5
+ import type { OntologyApplyActionResult } from "../OntologyBackendAdapter.js";
6
+ import type { OntologyActionRequest } from "../outbox/types.js";
7
+ export interface LiveOntologyActionOptions {
8
+ idempotencyKey?: string;
9
+ mode?: LiveOntologyWriteMode;
10
+ visibility?: LiveOntologyWriteVisibility;
11
+ }
12
+ export type LiveOntologyAction<Parameters extends Record<string, unknown> = Record<string, unknown>> = (parameters: Parameters, options?: LiveOntologyActionOptions) => Promise<OntologyApplyActionResult | void>;
13
+ export declare function createLiveOntologyAction(options: {
14
+ ir: OntologyIR;
15
+ action: OntologyIR["actionTypes"][number];
16
+ context?: Record<string, unknown>;
17
+ objects: Record<string, OntologyCollection<OntologyObject>>;
18
+ submit(request: OntologyActionRequest, options?: LiveOntologyActionOptions): Promise<OntologyApplyActionResult | void>;
19
+ }): LiveOntologyAction;
20
+ //# sourceMappingURL=createLiveOntologyAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLiveOntologyAction.d.ts","sourceRoot":"","sources":["../../../src/live/actions/createLiveOntologyAction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EACR,qBAAqB,EACrB,2BAA2B,EAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,yBAAyB;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,UAAU,CAAC,EAAE,2BAA2B,CAAC;CAC5C;AAED,MAAM,MAAM,kBAAkB,CAC1B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAC/C,MAAM,EACN,OAAO,CACV,IACD,CACA,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,yBAAyB,KAClC,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;AAE/C,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAC9C,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,CACX,MAAM,EACN,kBAAkB,CAAC,cAAc,CAAC,CACrC,CAAC;IACF,MAAM,CACF,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,yBAAyB,GACpC,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;CAChD,GAAG,kBAAkB,CAyBrB"}
@@ -0,0 +1,22 @@
1
+ import { resolveActionParameters } from "../expression.js";
2
+ import { createReadTx } from "../mutators/createMutatorTx.js";
3
+ export function createLiveOntologyAction(options) {
4
+ return async (providedParameters, executionOptions) => {
5
+ const context = options.context ?? {};
6
+ const parameters = await resolveActionParameters({
7
+ ir: options.ir,
8
+ actionTypeName: options.action.name,
9
+ initialParameters: providedParameters,
10
+ context,
11
+ tx: createReadTx(options.objects),
12
+ });
13
+ const idempotencyKey = executionOptions?.idempotencyKey ??
14
+ crypto.randomUUID();
15
+ return options.submit({
16
+ actionTypeName: options.action.name,
17
+ parameters,
18
+ idempotencyKey,
19
+ }, executionOptions);
20
+ };
21
+ }
22
+ //# sourceMappingURL=createLiveOntologyAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLiveOntologyAction.js","sourceRoot":"","sources":["../../../src/live/actions/createLiveOntologyAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AA2B9D,MAAM,UAAU,wBAAwB,CAAC,OAYxC;IACG,OAAO,KAAK,EACR,kBAAkB,EAClB,gBAAgB,EAClB,EAAE;QACA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC;YAC7C,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;YACnC,iBAAiB,EAAE,kBAAkB;YACrC,OAAO;YACP,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,cAAc,GAChB,gBAAgB,EAAE,cAAc;YAChC,MAAM,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,MAAM,CACjB;YACI,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;YACnC,UAAU;YACV,cAAc;SACjB,EACD,gBAAgB,CACnB,CAAC;IACN,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { BlobManager } from "@party-stack/blobs";
2
+ import type { RuntimeAdapter } from "@party-stack/runtime";
3
+ import type { LiveOntologyAction } from "./createLiveOntologyAction.js";
4
+ import type { OntologyIR } from "../../ir/index.js";
5
+ import type { LiveOntologyWrites } from "../LiveOntology.js";
6
+ import type { OntologyCollection } from "../objects/createLiveOntologyObjectCollection.js";
7
+ import type { OntologyObject } from "../objects/OntologyObject.js";
8
+ import type { OntologyBackendAdapter } from "../OntologyBackendAdapter.js";
9
+ import type { OntologyOutbox } from "../outbox/types.js";
10
+ export interface LiveOntologyActionsSubsystem {
11
+ actions: Record<string, LiveOntologyAction>;
12
+ outbox: OntologyOutbox;
13
+ }
14
+ export declare function createLiveOntologyActions(options: {
15
+ ir: OntologyIR;
16
+ backendAdapter: OntologyBackendAdapter;
17
+ runtime: RuntimeAdapter;
18
+ context: Record<string, unknown>;
19
+ objects: Record<string, OntologyCollection<OntologyObject>>;
20
+ blobManager: BlobManager;
21
+ writes?: LiveOntologyWrites;
22
+ }): LiveOntologyActionsSubsystem;
23
+ //# sourceMappingURL=createLiveOntologyActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLiveOntologyActions.d.ts","sourceRoot":"","sources":["../../../src/live/actions/createLiveOntologyActions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,OAAO,KAAK,EAAE,kBAAkB,EAA6B,MAAM,+BAA+B,CAAC;AACnG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAA+B,MAAM,oBAAoB,CAAC;AAC1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAA6B,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtG,OAAO,KAAK,EAAyB,cAAc,EAAuB,MAAM,oBAAoB,CAAC;AAErG,MAAM,WAAW,4BAA4B;IACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC5C,MAAM,EAAE,cAAc,CAAC;CAC1B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAC/C,EAAE,EAAE,UAAU,CAAC;IACf,cAAc,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC;IAC5D,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC/B,GAAG,4BAA4B,CAiJ/B"}
@@ -0,0 +1,129 @@
1
+ import { createTransaction } from "@tanstack/db";
2
+ import { runOptimisticAction } from "../mutators/runOptimisticAction.js";
3
+ import { createOntologyOutbox } from "../outbox/createOntologyOutbox.js";
4
+ import { createLiveOntologyAction } from "./createLiveOntologyAction.js";
5
+ import { prepareActionParameters } from "./prepareActionParameters.js";
6
+ export function createLiveOntologyActions(options) {
7
+ const defaultMode = options.writes?.defaultMode ?? "direct";
8
+ const defaultVisibility = options.writes?.defaultVisibility ?? "confirmed";
9
+ const executeRemote = async (request) => {
10
+ const prepared = await prepareActionParameters({
11
+ ir: options.ir,
12
+ actionTypeName: request.actionTypeName,
13
+ parameters: request.parameters,
14
+ backendAdapter: options.backendAdapter,
15
+ blobManager: options.blobManager,
16
+ });
17
+ const result = await options.backendAdapter.applyAction(request.actionTypeName, prepared.parameters, {
18
+ objects: options.objects,
19
+ context: options.context,
20
+ attachmentUploads: prepared.attachmentUploads,
21
+ idempotencyKey: request.idempotencyKey,
22
+ });
23
+ const backendMappings = result?.attachmentIdMappings ?? [];
24
+ const attachmentIdMappings = [...prepared.attachmentIdMappings, ...backendMappings];
25
+ await Promise.all(attachmentIdMappings.map((mapping) => options.blobManager.bindRemoteId(mapping.localId, mapping.remoteId)));
26
+ return attachmentIdMappings.length > 0
27
+ ? {
28
+ ...result,
29
+ attachmentIdMappings,
30
+ }
31
+ : result;
32
+ };
33
+ const applyOptimisticAction = async (transaction, request) => {
34
+ try {
35
+ await runOptimisticAction({
36
+ transaction,
37
+ ir: options.ir,
38
+ actionTypeName: request.actionTypeName,
39
+ parameters: request.parameters,
40
+ context: options.context,
41
+ objects: options.objects,
42
+ mutators: options.writes?.mutators,
43
+ });
44
+ }
45
+ catch (error) {
46
+ if (transaction.state === "pending") {
47
+ transaction.rollback();
48
+ }
49
+ throw error;
50
+ }
51
+ return transaction.mutations.length > 0;
52
+ };
53
+ const project = async (entry) => {
54
+ const visibility = entry.visibility ?? defaultVisibility;
55
+ if (visibility !== "optimistic")
56
+ return;
57
+ let resolve;
58
+ let reject;
59
+ const completion = new Promise((resolvePromise, rejectPromise) => {
60
+ resolve = resolvePromise;
61
+ reject = rejectPromise;
62
+ });
63
+ const transaction = createTransaction({
64
+ autoCommit: false,
65
+ mutationFn: () => completion,
66
+ });
67
+ if (!(await applyOptimisticAction(transaction, entry.request))) {
68
+ return;
69
+ }
70
+ void transaction.commit().catch(() => undefined);
71
+ void transaction.isPersisted.promise.catch(() => undefined);
72
+ return {
73
+ settle(error) {
74
+ if (error)
75
+ reject(error);
76
+ else
77
+ resolve();
78
+ },
79
+ };
80
+ };
81
+ const outbox = createOntologyOutbox({
82
+ runtime: options.runtime,
83
+ execute: (entry) => executeRemote(entry.request),
84
+ project,
85
+ failureStrategy: options.writes?.outbox?.failureStrategy ?? "discard-all",
86
+ maxRetries: options.writes?.outbox?.maxRetries,
87
+ });
88
+ const executeDirect = async (request, visibility) => {
89
+ if (visibility === "confirmed") {
90
+ return executeRemote(request);
91
+ }
92
+ let result = undefined;
93
+ const transaction = createTransaction({
94
+ autoCommit: false,
95
+ mutationFn: async () => {
96
+ result = await executeRemote(request);
97
+ },
98
+ });
99
+ if (!(await applyOptimisticAction(transaction, request))) {
100
+ return executeRemote(request);
101
+ }
102
+ await transaction.commit();
103
+ return result;
104
+ };
105
+ const submit = async (request, actionOptions) => {
106
+ const mode = actionOptions?.mode ?? defaultMode;
107
+ const visibility = actionOptions?.visibility ?? defaultVisibility;
108
+ if (mode === "outbox") {
109
+ const enqueued = await outbox.enqueue(request, { visibility });
110
+ return enqueued.completed;
111
+ }
112
+ return executeDirect(request, visibility);
113
+ };
114
+ const actions = Object.fromEntries(options.ir.actionTypes.map((action) => [
115
+ action.name,
116
+ createLiveOntologyAction({
117
+ ir: options.ir,
118
+ action,
119
+ context: options.context,
120
+ objects: options.objects,
121
+ submit,
122
+ }),
123
+ ]));
124
+ return {
125
+ actions,
126
+ outbox,
127
+ };
128
+ }
129
+ //# sourceMappingURL=createLiveOntologyActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLiveOntologyActions.js","sourceRoot":"","sources":["../../../src/live/actions/createLiveOntologyActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqC,MAAM,cAAc,CAAC;AAGpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAyB,MAAM,mCAAmC,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAcvE,MAAM,UAAU,yBAAyB,CAAC,OAQzC;IACG,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAC;IAC5D,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,iBAAiB,IAAI,WAAW,CAAC;IAE3E,MAAM,aAAa,GAAG,KAAK,EACvB,OAA8B,EACW,EAAE;QAC3C,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC;YAC3C,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,WAAW,EAAE,OAAO,CAAC,WAAW;SACnC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,UAAU,EAAE;YACjG,OAAO,EAAE,OAAO,CAAC,OAA8D;YAC/E,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,cAAc,EAAE,OAAO,CAAC,cAAc;SACzC,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,EAAE,oBAAoB,IAAI,EAAE,CAAC;QAC3D,MAAM,oBAAoB,GAAG,CAAC,GAAG,QAAQ,CAAC,oBAAoB,EAAE,GAAG,eAAe,CAAC,CAAC;QACpF,MAAM,OAAO,CAAC,GAAG,CACb,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACjC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CACtE,CACJ,CAAC;QACF,OAAO,oBAAoB,CAAC,MAAM,GAAG,CAAC;YAClC,CAAC,CAAC;gBACI,GAAG,MAAM;gBACT,oBAAoB;aACvB;YACH,CAAC,CAAC,MAAM,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,KAAK,EAC/B,WAAwB,EACxB,OAA8B,EACd,EAAE;QAClB,IAAI,CAAC;YACD,MAAM,mBAAmB,CAAC;gBACtB,WAAW;gBACX,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ;aACrC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAClC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC3B,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;QACD,OAAO,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,EAAE,KAA0B,EAAyC,EAAE;QACxF,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,iBAAiB,CAAC;QACzD,IAAI,UAAU,KAAK,YAAY;YAAE,OAAO;QAExC,IAAI,OAAoB,CAAC;QACzB,IAAI,MAA+B,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAO,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;YACnE,OAAO,GAAG,cAAc,CAAC;YACzB,MAAM,GAAG,aAAa,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,iBAAiB,CAAC;YAClC,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU;SAC/B,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,MAAM,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC7D,OAAO;QACX,CAAC;QACD,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACjD,KAAK,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5D,OAAO;YACH,MAAM,CAAC,KAAK;gBACR,IAAI,KAAK;oBAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;oBACpB,OAAO,EAAE,CAAC;YACnB,CAAC;SACJ,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,oBAAoB,CAAC;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;QAChD,OAAO;QACP,eAAe,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,IAAI,aAAa;QACzE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU;KACjD,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,KAAK,EACvB,OAA8B,EAC9B,UAAuC,EACE,EAAE;QAC3C,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YAC7B,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,MAAM,GAAqC,SAAS,CAAC;QACzD,MAAM,WAAW,GAAG,iBAAiB,CAAC;YAClC,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,KAAK,IAAI,EAAE;gBACnB,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,MAAM,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,EAChB,OAA8B,EAC9B,aAAyC,EACA,EAAE;QAC3C,MAAM,IAAI,GAAG,aAAa,EAAE,IAAI,IAAI,WAAW,CAAC;QAChD,MAAM,UAAU,GAAG,aAAa,EAAE,UAAU,IAAI,iBAAiB,CAAC;QAClE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAmC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;YACjG,OAAO,QAAQ,CAAC,SAAS,CAAC;QAC9B,CAAC;QACD,OAAO,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAC9B,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI;QACX,wBAAwB,CAAC;YACrB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM;SACT,CAAC;KACL,CAAC,CACL,CAAC;IAEF,OAAO;QACH,OAAO;QACP,MAAM;KACT,CAAC;AACN,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { BlobManager } from "@party-stack/blobs";
2
+ import type { OntologyIR } from "../../ir/index.js";
3
+ import type { OntologyAttachmentIdMapping, OntologyAttachmentUpload, OntologyBackendAdapter } from "../OntologyBackendAdapter.js";
4
+ export interface PreparedActionParameters {
5
+ parameters: Record<string, unknown>;
6
+ attachmentUploads: OntologyAttachmentUpload[];
7
+ attachmentIdMappings: OntologyAttachmentIdMapping[];
8
+ }
9
+ export declare function prepareActionParameters(opts: {
10
+ ir: OntologyIR;
11
+ actionTypeName: string;
12
+ parameters: Record<string, unknown>;
13
+ backendAdapter: OntologyBackendAdapter;
14
+ blobManager?: BlobManager;
15
+ }): Promise<PreparedActionParameters>;
16
+ //# sourceMappingURL=prepareActionParameters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareActionParameters.d.ts","sourceRoot":"","sources":["../../../src/live/actions/prepareActionParameters.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAIR,UAAU,EAGb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EACR,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACzB,MAAM,8BAA8B,CAAC;AAatC,MAAM,WAAW,wBAAwB;IACrC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,iBAAiB,EAAE,wBAAwB,EAAE,CAAC;IAC9C,oBAAoB,EAAE,2BAA2B,EAAE,CAAC;CACvD;AA2RD,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAChD,EAAE,EAAE,UAAU,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,cAAc,EAAE,sBAAsB,CAAC;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA8BpC"}
@@ -0,0 +1,251 @@
1
+ import { invariant } from "@bobbyfidz/panic";
2
+ import { resolveType } from "../../utils/types.js";
3
+ function isAttachment(value) {
4
+ return typeof value === "object" && value !== null && typeof value.id === "string";
5
+ }
6
+ function collectAttachment(opts, type, attachments) {
7
+ if (!isAttachment(opts.value))
8
+ return;
9
+ attachments.push({
10
+ attachment: opts.value,
11
+ target: type,
12
+ });
13
+ }
14
+ function collectList(opts, type, attachments) {
15
+ if (!Array.isArray(opts.value))
16
+ return;
17
+ for (const value of opts.value) {
18
+ collectValue({
19
+ ...opts,
20
+ type: type.elementType,
21
+ value,
22
+ }, attachments);
23
+ }
24
+ }
25
+ function collectMap(opts, type, attachments) {
26
+ if (typeof opts.value !== "object" || opts.value === null)
27
+ return;
28
+ for (const value of Object.values(opts.value)) {
29
+ collectValue({
30
+ ...opts,
31
+ type: type.valueType,
32
+ value,
33
+ }, attachments);
34
+ }
35
+ }
36
+ function collectStruct(opts, type, attachments) {
37
+ if (typeof opts.value !== "object" || opts.value === null)
38
+ return;
39
+ const fieldsByName = new Map(type.fields.map((field) => [field.name, field.type]));
40
+ for (const [key, value] of Object.entries(opts.value)) {
41
+ const fieldType = fieldsByName.get(key);
42
+ if (!fieldType)
43
+ continue;
44
+ collectValue({
45
+ ...opts,
46
+ type: fieldType,
47
+ value,
48
+ }, attachments);
49
+ }
50
+ }
51
+ function collectValue(opts, attachments) {
52
+ if (opts.value === undefined || opts.value === null)
53
+ return;
54
+ const type = resolveType(opts.ir, opts.type);
55
+ switch (type.kind) {
56
+ case "attachment":
57
+ collectAttachment(opts, type.value, attachments);
58
+ return;
59
+ case "optional":
60
+ collectValue({
61
+ ...opts,
62
+ type: type.value.type,
63
+ }, attachments);
64
+ return;
65
+ case "list":
66
+ collectList(opts, type.value, attachments);
67
+ return;
68
+ case "map":
69
+ collectMap(opts, type.value, attachments);
70
+ return;
71
+ case "struct":
72
+ collectStruct(opts, type.value, attachments);
73
+ return;
74
+ default:
75
+ return;
76
+ }
77
+ }
78
+ function collectActionAttachments(opts) {
79
+ const action = opts.ir.actionTypes.find((candidate) => candidate.name === opts.actionTypeName);
80
+ const attachments = [];
81
+ for (const parameter of action.parameters) {
82
+ collectValue({
83
+ ir: opts.ir,
84
+ type: parameter.type,
85
+ value: opts.parameters[parameter.name],
86
+ }, attachments);
87
+ }
88
+ return [...new Map(attachments.map((entry) => [entry.attachment.id, entry])).values()];
89
+ }
90
+ async function collectActionAttachmentUploads(opts) {
91
+ if (opts.attachments.length === 0)
92
+ return [];
93
+ const blobManager = opts.blobManager;
94
+ invariant(blobManager, "Missing required BlobManager for collecting attachment uploads.");
95
+ return Promise.all(opts.attachments.map(async (entry) => ({
96
+ ...entry,
97
+ blob: await blobManager.read(entry.attachment.id),
98
+ })));
99
+ }
100
+ async function materializeValue(opts) {
101
+ if (opts.value === undefined || opts.value === null) {
102
+ return opts.value;
103
+ }
104
+ const materializeAttachment = opts.backendAdapter.attachments?.materializeAttachment;
105
+ invariant(materializeAttachment, "Missing attachment materializer.");
106
+ const type = resolveType(opts.ir, opts.type);
107
+ switch (type.kind) {
108
+ case "attachment": {
109
+ if (!isAttachment(opts.value))
110
+ return opts.value;
111
+ const local = opts.value;
112
+ let pending = opts.materialized.get(local.id);
113
+ if (!pending) {
114
+ const materializeOptions = {
115
+ target: type.value,
116
+ };
117
+ const canMaterialize = opts.backendAdapter.attachments?.canMaterializeAttachment?.(local, materializeOptions) ??
118
+ true;
119
+ pending = opts.blobManager
120
+ .read(local.id)
121
+ .then(async (blob) => {
122
+ if (!canMaterialize) {
123
+ opts.uploads.push({
124
+ attachment: local,
125
+ target: type.value,
126
+ blob,
127
+ });
128
+ return local;
129
+ }
130
+ return (await materializeAttachment(local, blob, materializeOptions)) ?? local;
131
+ })
132
+ .then((result) => {
133
+ const remote = result;
134
+ if (remote.id !== local.id) {
135
+ opts.mappings.push({
136
+ localId: local.id,
137
+ remoteId: remote.id,
138
+ });
139
+ }
140
+ return remote;
141
+ });
142
+ opts.materialized.set(local.id, pending);
143
+ }
144
+ return pending;
145
+ }
146
+ case "optional":
147
+ return materializeValue({
148
+ ...opts,
149
+ type: type.value.type,
150
+ });
151
+ case "list":
152
+ if (!Array.isArray(opts.value))
153
+ return opts.value;
154
+ return Promise.all(opts.value.map((value) => materializeValue({
155
+ ...opts,
156
+ type: type.value.elementType,
157
+ value,
158
+ })));
159
+ case "map":
160
+ if (typeof opts.value !== "object" || opts.value === null || Array.isArray(opts.value)) {
161
+ return opts.value;
162
+ }
163
+ return Object.fromEntries(await Promise.all(Object.entries(opts.value).map(async ([key, value]) => [
164
+ key,
165
+ await materializeValue({
166
+ ...opts,
167
+ type: type.value.valueType,
168
+ value,
169
+ }),
170
+ ])));
171
+ case "struct": {
172
+ if (typeof opts.value !== "object" || opts.value === null || Array.isArray(opts.value)) {
173
+ return opts.value;
174
+ }
175
+ const fields = new Map(type.value.fields.map((field) => [field.name, field.type]));
176
+ return Object.fromEntries(await Promise.all(Object.entries(opts.value).map(async ([key, value]) => {
177
+ const fieldType = fields.get(key);
178
+ return [
179
+ key,
180
+ fieldType
181
+ ? await materializeValue({
182
+ ...opts,
183
+ type: fieldType,
184
+ value,
185
+ })
186
+ : value,
187
+ ];
188
+ })));
189
+ }
190
+ default:
191
+ return opts.value;
192
+ }
193
+ }
194
+ async function materializeActionParameters(opts) {
195
+ const action = opts.ir.actionTypes.find((candidate) => candidate.name === opts.actionTypeName);
196
+ const materialized = new Map();
197
+ const attachmentIdMappings = [];
198
+ const attachmentUploads = [];
199
+ const parameters = {
200
+ ...opts.parameters,
201
+ };
202
+ await Promise.all(action.parameters.map(async (parameter) => {
203
+ parameters[parameter.name] = await materializeValue({
204
+ ir: opts.ir,
205
+ type: parameter.type,
206
+ value: opts.parameters[parameter.name],
207
+ backendAdapter: opts.backendAdapter,
208
+ blobManager: opts.blobManager,
209
+ materialized,
210
+ mappings: attachmentIdMappings,
211
+ uploads: attachmentUploads,
212
+ });
213
+ }));
214
+ return {
215
+ parameters,
216
+ attachmentIdMappings,
217
+ attachmentUploads,
218
+ };
219
+ }
220
+ export async function prepareActionParameters(opts) {
221
+ const attachments = collectActionAttachments({
222
+ ir: opts.ir,
223
+ actionTypeName: opts.actionTypeName,
224
+ parameters: opts.parameters,
225
+ });
226
+ if (opts.backendAdapter.attachments?.materializeAttachment) {
227
+ const blobManager = opts.blobManager;
228
+ invariant(blobManager, "Missing required BlobManager for materializing attachments.");
229
+ const materialized = await materializeActionParameters({
230
+ ir: opts.ir,
231
+ actionTypeName: opts.actionTypeName,
232
+ parameters: opts.parameters,
233
+ backendAdapter: opts.backendAdapter,
234
+ blobManager,
235
+ });
236
+ return {
237
+ parameters: materialized.parameters,
238
+ attachmentUploads: materialized.attachmentUploads,
239
+ attachmentIdMappings: materialized.attachmentIdMappings,
240
+ };
241
+ }
242
+ return {
243
+ parameters: opts.parameters,
244
+ attachmentUploads: await collectActionAttachmentUploads({
245
+ attachments,
246
+ blobManager: opts.blobManager,
247
+ }),
248
+ attachmentIdMappings: [],
249
+ };
250
+ }
251
+ //# sourceMappingURL=prepareActionParameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareActionParameters.js","sourceRoot":"","sources":["../../../src/live/actions/prepareActionParameters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=prepareActionParameters.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareActionParameters.test.d.ts","sourceRoot":"","sources":["../../../src/live/actions/prepareActionParameters.test.ts"],"names":[],"mappings":""}