@party-stack/ontology 0.3.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 -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 +43 -18
  88. package/lib/live/LiveOntology.d.ts.map +1 -1
  89. package/lib/live/LiveOntology.js +63 -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 +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 +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":"createOntologyOutbox.test.js","sourceRoot":"","sources":["../../../src/live/outbox/createOntologyOutbox.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { type CoordinationServiceClient, type RuntimeAdapter } from "@party-stack/runtime";
2
+ import { type Operation, type Stream } from "effection";
3
+ import { type OntologyOutboxEntry } from "./types.js";
4
+ import type { OutboxCoordinationService } from "./service.js";
5
+ export interface OutboxLeaderOptions {
6
+ runtime: RuntimeAdapter;
7
+ service: CoordinationServiceClient<OutboxCoordinationService>;
8
+ wake: Stream<void, never>;
9
+ failureStrategy: "pause" | "discard-all";
10
+ maxRetries: number;
11
+ retryDelayMs: number;
12
+ execute(entry: OntologyOutboxEntry): Promise<unknown>;
13
+ }
14
+ export declare function useOutboxLeader(options: OutboxLeaderOptions): Operation<void>;
15
+ export declare function runOutboxLeader(signal: AbortSignal, options: OutboxLeaderOptions): Promise<void>;
16
+ //# sourceMappingURL=leaderExecutor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leaderExecutor.d.ts","sourceRoot":"","sources":["../../../src/live/outbox/leaderExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,yBAAyB,EAC9B,KAAK,cAAc,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAMH,KAAK,SAAS,EACd,KAAK,MAAM,EAEd,MAAM,WAAW,CAAC;AACnB,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,yBAAyB,CAAC,yBAAyB,CAAC,CAAC;IAC9D,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1B,eAAe,EAAE,OAAO,GAAG,aAAa,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACzD;AA6BD,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAC,IAAI,CAAC,CAmI7E;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBtG"}
@@ -0,0 +1,143 @@
1
+ import { CoordinationTaskRejectedError, } from "@party-stack/runtime";
2
+ import { race, run, sleep, until, useAbortSignal, } from "effection";
3
+ import { NonRetryableError } from "./types.js";
4
+ function normalizeError(error) {
5
+ return error instanceof Error ? error : new Error(String(error));
6
+ }
7
+ function isStaleExecution(error) {
8
+ return error instanceof CoordinationTaskRejectedError && error.code === "STALE_EXECUTION";
9
+ }
10
+ function retryDelay(baseDelayMs, retryIndex) {
11
+ return Math.min(Number.MAX_SAFE_INTEGER, baseDelayMs *
12
+ 2 ** Math.min(retryIndex, 16));
13
+ }
14
+ function isConnected(runtime) {
15
+ return (runtime.connectivity?.isConnected !== false);
16
+ }
17
+ export function useOutboxLeader(options) {
18
+ return (function* () {
19
+ const signal = yield* useAbortSignal();
20
+ yield* until(options.service.methods.recover({
21
+ failureStrategy: options.failureStrategy,
22
+ maxRetries: options.maxRetries,
23
+ }));
24
+ const wakes = yield* options.wake;
25
+ while (true) {
26
+ if (isConnected(options.runtime)) {
27
+ while (true) {
28
+ if (!isConnected(options.runtime)) {
29
+ break;
30
+ }
31
+ const entry = yield* until(options.service.methods.claim({}));
32
+ if (!entry) {
33
+ const retryAt = yield* until(options.service.methods.nextRetryAt({}));
34
+ if (retryAt === undefined) {
35
+ break;
36
+ }
37
+ const delay = Math.max(0, retryAt - Date.now());
38
+ if (delay > 0) {
39
+ yield* race([
40
+ sleep(delay),
41
+ wakes.next(),
42
+ ]);
43
+ }
44
+ continue;
45
+ }
46
+ const executionId = entry.executionId;
47
+ let result;
48
+ try {
49
+ result = yield* until(options.execute(entry));
50
+ }
51
+ catch (error) {
52
+ if (signal.aborted)
53
+ throw error;
54
+ const normalized = normalizeError(error);
55
+ const retryable = !(normalized instanceof NonRetryableError);
56
+ const retryScheduled = retryable &&
57
+ entry.attempts <
58
+ options.maxRetries;
59
+ try {
60
+ const errorDetails = {
61
+ name: normalized.name,
62
+ message: normalized.message,
63
+ };
64
+ if (retryScheduled) {
65
+ yield* until(options.service.methods.fail({
66
+ id: entry.id,
67
+ executionId,
68
+ retryable: true,
69
+ retryAt: Date.now() +
70
+ retryDelay(options.retryDelayMs, entry.attempts),
71
+ error: errorDetails,
72
+ }));
73
+ }
74
+ else if (options.failureStrategy ===
75
+ "discard-all") {
76
+ yield* until(options.service.methods.discardAll({
77
+ id: entry.id,
78
+ executionId,
79
+ error: errorDetails,
80
+ }));
81
+ }
82
+ else {
83
+ yield* until(options.service.methods.fail({
84
+ id: entry.id,
85
+ executionId,
86
+ retryable,
87
+ error: errorDetails,
88
+ }));
89
+ }
90
+ }
91
+ catch (claimError) {
92
+ if (isStaleExecution(claimError)) {
93
+ break;
94
+ }
95
+ throw claimError;
96
+ }
97
+ if (retryScheduled) {
98
+ continue;
99
+ }
100
+ break;
101
+ }
102
+ if (signal.aborted) {
103
+ throw signal.reason;
104
+ }
105
+ try {
106
+ yield* until(options.service.methods.complete({
107
+ id: entry.id,
108
+ executionId,
109
+ result,
110
+ }));
111
+ }
112
+ catch (error) {
113
+ if (isStaleExecution(error))
114
+ break;
115
+ throw error;
116
+ }
117
+ }
118
+ }
119
+ yield* wakes.next();
120
+ }
121
+ })();
122
+ }
123
+ export async function runOutboxLeader(signal, options) {
124
+ const task = run(() => useOutboxLeader(options));
125
+ let halt;
126
+ const haltTask = () => {
127
+ halt ??= Promise.resolve(task.halt()).then(() => undefined);
128
+ };
129
+ signal.addEventListener("abort", haltTask, {
130
+ once: true,
131
+ });
132
+ if (signal.aborted)
133
+ haltTask();
134
+ try {
135
+ await task;
136
+ }
137
+ finally {
138
+ signal.removeEventListener("abort", haltTask);
139
+ haltTask();
140
+ await halt;
141
+ }
142
+ }
143
+ //# sourceMappingURL=leaderExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leaderExecutor.js","sourceRoot":"","sources":["../../../src/live/outbox/leaderExecutor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { CoordinationHost, CoordinationServiceServer } from "@party-stack/runtime";
2
+ import { OntologyOutboxRepository } from "./repository.js";
3
+ import { type OutboxCoordinationService } from "./service.js";
4
+ export declare function serveOntologyOutbox(host: CoordinationHost, repository: OntologyOutboxRepository): CoordinationServiceServer<OutboxCoordinationService>;
5
+ //# sourceMappingURL=outboxService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outboxService.d.ts","sourceRoot":"","sources":["../../../src/live/outbox/outboxService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,gBAAgB,EAEhB,yBAAyB,EAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAEH,KAAK,yBAAyB,EAEjC,MAAM,cAAc,CAAC;AAEtB,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,wBAAwB,GACrC,yBAAyB,CAAC,yBAAyB,CAAC,CAqGtD"}
@@ -0,0 +1,73 @@
1
+ import { OUTBOX_COORDINATION_SERVICE, } from "./service.js";
2
+ export function serveOntologyOutbox(host, repository) {
3
+ let publishResult = () => undefined;
4
+ const handlers = {
5
+ enqueue: ({ entry }) => repository.enqueue(entry),
6
+ edit: ({ id, request }) => repository.edit(id, request),
7
+ remove: async ({ id }) => {
8
+ await repository.remove(id);
9
+ publishResult({
10
+ type: "rejected",
11
+ id,
12
+ error: {
13
+ name: "OutboxEntryRemoved",
14
+ message: "Outbox entry removed.",
15
+ },
16
+ });
17
+ },
18
+ retry: ({ id }) => repository.retry(id),
19
+ recover: async ({ failureStrategy, maxRetries, }) => {
20
+ const discarded = await repository.recover(failureStrategy, maxRetries);
21
+ for (const entry of discarded) {
22
+ publishResult({
23
+ type: "rejected",
24
+ id: entry.id,
25
+ error: {
26
+ name: "InterruptedExecutionDiscarded",
27
+ message: "Discarded because execution was interrupted before its result was recorded.",
28
+ },
29
+ });
30
+ }
31
+ },
32
+ claim: () => repository.claim(),
33
+ nextRetryAt: () => repository.nextRetryAt(),
34
+ complete: async ({ id, executionId, result }) => {
35
+ await repository.complete(id, executionId);
36
+ publishResult({
37
+ type: "completed",
38
+ id,
39
+ result,
40
+ });
41
+ },
42
+ fail: async ({ id, executionId, retryable, retryAt, error, }) => {
43
+ const entry = await repository.fail(id, executionId, retryable, error, retryAt);
44
+ if (!retryable) {
45
+ publishResult({
46
+ type: "rejected",
47
+ id,
48
+ error,
49
+ });
50
+ }
51
+ return entry;
52
+ },
53
+ discardAll: async ({ id, executionId, error, }) => {
54
+ const discarded = await repository.discardAll(id, executionId);
55
+ for (const entry of discarded) {
56
+ publishResult({
57
+ type: "rejected",
58
+ id: entry.id,
59
+ error: entry.id === id
60
+ ? error
61
+ : {
62
+ name: "OutboxDiscardedAfterNonRetryableError",
63
+ message: `Discarded because outbox entry "${id}" failed permanently: ${error.message}`,
64
+ },
65
+ });
66
+ }
67
+ },
68
+ };
69
+ const server = host.serve(OUTBOX_COORDINATION_SERVICE, handlers);
70
+ publishResult = (event) => server.events.publish("result", event);
71
+ return server;
72
+ }
73
+ //# sourceMappingURL=outboxService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outboxService.js","sourceRoot":"","sources":["../../../src/live/outbox/outboxService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { OntologyActionRequest, OntologyOutboxEntry } from "./types.js";
2
+ export declare function encodeOutboxValue(value: unknown): unknown;
3
+ export declare function decodeOutboxValue(value: unknown): unknown;
4
+ export declare function encodeOutboxRequest(request: OntologyActionRequest): OntologyActionRequest;
5
+ export declare function decodeOutboxRequest(request: OntologyActionRequest): OntologyActionRequest;
6
+ export declare function decodeOutboxEntry(entry: OntologyOutboxEntry): OntologyOutboxEntry;
7
+ //# sourceMappingURL=outboxValues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outboxValues.d.ts","sourceRoot":"","sources":["../../../src/live/outbox/outboxValues.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,qBAAqB,EACrB,mBAAmB,EACtB,MAAM,YAAY,CAAC;AA8BpB,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,OAAO,GACf,OAAO,CA6BT;AAED,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,OAAO,GACf,OAAO,CA6BT;AAED,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,qBAAqB,GAC/B,qBAAqB,CAOvB;AAED,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,qBAAqB,GAC/B,qBAAqB,CAOvB;AAED,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,mBAAmB,GAC3B,mBAAmB,CAKrB"}
@@ -0,0 +1,76 @@
1
+ import { Temporal } from "temporal-polyfill";
2
+ const OUTBOX_VALUE_TYPE = "__party_stack_outbox_value_type__";
3
+ function isPlainObject(value) {
4
+ if (typeof value !== "object" ||
5
+ value === null) {
6
+ return false;
7
+ }
8
+ const prototype = Object.getPrototypeOf(value);
9
+ return (prototype === Object.prototype ||
10
+ prototype === null);
11
+ }
12
+ export function encodeOutboxValue(value) {
13
+ if (value instanceof Temporal.Instant) {
14
+ return {
15
+ [OUTBOX_VALUE_TYPE]: "Temporal.Instant",
16
+ value: value.toString(),
17
+ };
18
+ }
19
+ if (value instanceof Temporal.PlainDate) {
20
+ return {
21
+ [OUTBOX_VALUE_TYPE]: "Temporal.PlainDate",
22
+ value: value.toString(),
23
+ };
24
+ }
25
+ if (Array.isArray(value)) {
26
+ return value.map(encodeOutboxValue);
27
+ }
28
+ if (isPlainObject(value)) {
29
+ return Object.fromEntries(Object.entries(value).map(([key, entry]) => [
30
+ key,
31
+ encodeOutboxValue(entry),
32
+ ]));
33
+ }
34
+ return value;
35
+ }
36
+ export function decodeOutboxValue(value) {
37
+ if (Array.isArray(value)) {
38
+ return value.map(decodeOutboxValue);
39
+ }
40
+ if (!isPlainObject(value)) {
41
+ return value;
42
+ }
43
+ if (value[OUTBOX_VALUE_TYPE] ===
44
+ "Temporal.Instant" &&
45
+ typeof value.value === "string") {
46
+ return Temporal.Instant.from(value.value);
47
+ }
48
+ if (value[OUTBOX_VALUE_TYPE] ===
49
+ "Temporal.PlainDate" &&
50
+ typeof value.value === "string") {
51
+ return Temporal.PlainDate.from(value.value);
52
+ }
53
+ return Object.fromEntries(Object.entries(value).map(([key, entry]) => [
54
+ key,
55
+ decodeOutboxValue(entry),
56
+ ]));
57
+ }
58
+ export function encodeOutboxRequest(request) {
59
+ return {
60
+ ...request,
61
+ parameters: encodeOutboxValue(request.parameters),
62
+ };
63
+ }
64
+ export function decodeOutboxRequest(request) {
65
+ return {
66
+ ...request,
67
+ parameters: decodeOutboxValue(request.parameters),
68
+ };
69
+ }
70
+ export function decodeOutboxEntry(entry) {
71
+ return {
72
+ ...entry,
73
+ request: decodeOutboxRequest(entry.request),
74
+ };
75
+ }
76
+ //# sourceMappingURL=outboxValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outboxValues.js","sourceRoot":"","sources":["../../../src/live/outbox/outboxValues.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { OntologyOutboxEntry } from "./types.js";
2
+ export interface OutboxProjection {
3
+ settle(error?: Error): void;
4
+ }
5
+ export declare class OutboxProjectionManager {
6
+ private readonly project;
7
+ private desired;
8
+ private readonly projections;
9
+ private readonly installedFingerprints;
10
+ private readonly versions;
11
+ private tail;
12
+ private closed;
13
+ private disabledError;
14
+ constructor(project: ((entry: OntologyOutboxEntry) => Promise<OutboxProjection | undefined>) | undefined);
15
+ get error(): Error | undefined;
16
+ restore(entries: readonly OntologyOutboxEntry[]): Promise<void>;
17
+ reconcile(entries: readonly OntologyOutboxEntry[]): Promise<void>;
18
+ ensure(entry: OntologyOutboxEntry): Promise<void>;
19
+ discard(id: string, error?: Error): Promise<void>;
20
+ close(): Promise<void>;
21
+ private schedule;
22
+ private applyDesired;
23
+ private disable;
24
+ private firstDivergence;
25
+ private install;
26
+ private invalidate;
27
+ private settle;
28
+ }
29
+ //# sourceMappingURL=projectionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectionManager.d.ts","sourceRoot":"","sources":["../../../src/live/outbox/projectionManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CAC/B;AAyBD,qBAAa,uBAAuB;IAU5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT5B,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IACnE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA6B;IACnE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAoB;gBAGpB,OAAO,EAClB,CAAC,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC,GACvE,SAAS;IAGnB,IAAI,KAAK,IAAI,KAAK,GAAG,SAAS,CAE7B;IAED,OAAO,CACH,OAAO,EAAE,SAAS,mBAAmB,EAAE,GACxC,OAAO,CAAC,IAAI,CAAC;IAQhB,SAAS,CACL,OAAO,EAAE,SAAS,mBAAmB,EAAE,GACxC,OAAO,CAAC,IAAI,CAAC;IAQhB,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjD,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,OAAO,CAAC,QAAQ;YAWF,YAAY;IAwC1B,OAAO,CAAC,OAAO;IAef,OAAO,CAAC,eAAe;YAkBT,OAAO;IAsBrB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,MAAM;CAOjB"}
@@ -0,0 +1,155 @@
1
+ import { requestFingerprint } from "./repository.js";
2
+ function normalizeError(error) {
3
+ return error instanceof Error ? error : new Error(String(error));
4
+ }
5
+ function desiredProjections(entries) {
6
+ return [...entries]
7
+ .filter((entry) => entry.status !== "failed" ||
8
+ entry.retryable)
9
+ .sort((left, right) => left.sequence - right.sequence)
10
+ .map((entry) => ({
11
+ entry,
12
+ fingerprint: requestFingerprint(entry.request),
13
+ }));
14
+ }
15
+ export class OutboxProjectionManager {
16
+ project;
17
+ desired = [];
18
+ projections = new Map();
19
+ installedFingerprints = new Map();
20
+ versions = new Map();
21
+ tail = Promise.resolve();
22
+ closed = false;
23
+ disabledError;
24
+ constructor(project) {
25
+ this.project = project;
26
+ }
27
+ get error() {
28
+ return this.disabledError;
29
+ }
30
+ restore(entries) {
31
+ return this.schedule(() => this.applyDesired(desiredProjections(entries)));
32
+ }
33
+ reconcile(entries) {
34
+ return this.schedule(() => this.applyDesired(desiredProjections(entries)));
35
+ }
36
+ ensure(entry) {
37
+ return this.schedule(() => {
38
+ const entries = this.desired
39
+ .filter((candidate) => candidate.entry.id !== entry.id)
40
+ .map((candidate) => candidate.entry);
41
+ entries.push(entry);
42
+ return this.applyDesired(desiredProjections(entries));
43
+ });
44
+ }
45
+ discard(id, error) {
46
+ return this.schedule(() => this.applyDesired(this.desired.filter((candidate) => candidate.entry.id !== id), (removed) => removed.entry.id === id ? error : new Error("Outbox optimistic projection replayed.")));
47
+ }
48
+ close() {
49
+ if (this.closed)
50
+ return Promise.resolve();
51
+ this.closed = true;
52
+ const error = new Error("Outbox disposed.");
53
+ for (const candidate of this.desired) {
54
+ this.invalidate(candidate.entry.id, error);
55
+ }
56
+ this.desired = [];
57
+ return Promise.resolve();
58
+ }
59
+ schedule(work) {
60
+ if (this.closed)
61
+ return Promise.resolve();
62
+ const scheduled = this.tail
63
+ .catch(() => undefined)
64
+ .then(async () => {
65
+ if (!this.closed)
66
+ await work();
67
+ });
68
+ this.tail = scheduled.catch(() => undefined);
69
+ return scheduled;
70
+ }
71
+ async applyDesired(next, removalError = () => new Error("Outbox optimistic projection replaced.")) {
72
+ if (this.disabledError)
73
+ return;
74
+ const divergence = this.firstDivergence(this.desired, next);
75
+ if (divergence === -1) {
76
+ for (const candidate of next) {
77
+ if (this.installedFingerprints.get(candidate.entry.id) !== candidate.fingerprint) {
78
+ try {
79
+ await this.install(candidate);
80
+ }
81
+ catch (error) {
82
+ this.disable(normalizeError(error));
83
+ return;
84
+ }
85
+ }
86
+ }
87
+ return;
88
+ }
89
+ for (let index = this.desired.length - 1; index >= divergence; index -= 1) {
90
+ const removed = this.desired[index];
91
+ this.invalidate(removed.entry.id, removalError(removed));
92
+ }
93
+ this.desired = next;
94
+ for (let index = divergence; index < next.length; index += 1) {
95
+ const candidate = next[index];
96
+ try {
97
+ await this.install(candidate);
98
+ }
99
+ catch (error) {
100
+ this.disable(normalizeError(error));
101
+ return;
102
+ }
103
+ }
104
+ }
105
+ disable(error) {
106
+ for (let index = this.desired.length - 1; index >= 0; index -= 1) {
107
+ this.invalidate(this.desired[index].entry.id, error);
108
+ }
109
+ this.desired = [];
110
+ this.disabledError = error;
111
+ }
112
+ firstDivergence(current, next) {
113
+ const length = Math.max(current.length, next.length);
114
+ for (let index = 0; index < length; index += 1) {
115
+ const previous = current[index];
116
+ const candidate = next[index];
117
+ if (previous?.entry.id !== candidate?.entry.id ||
118
+ previous?.fingerprint !== candidate?.fingerprint) {
119
+ return index;
120
+ }
121
+ }
122
+ return -1;
123
+ }
124
+ async install(candidate) {
125
+ if (this.installedFingerprints.get(candidate.entry.id) === candidate.fingerprint) {
126
+ return;
127
+ }
128
+ this.invalidate(candidate.entry.id, new Error("Outbox optimistic projection replaced."));
129
+ const version = this.versions.get(candidate.entry.id) ?? 0;
130
+ const projection = await this.project?.(candidate.entry);
131
+ if (this.closed || this.versions.get(candidate.entry.id) !== version) {
132
+ this.settle(projection, new Error(this.closed ? "Outbox disposed." : "Outbox projection became stale."));
133
+ return;
134
+ }
135
+ if (projection) {
136
+ this.projections.set(candidate.entry.id, projection);
137
+ }
138
+ this.installedFingerprints.set(candidate.entry.id, candidate.fingerprint);
139
+ }
140
+ invalidate(id, error) {
141
+ this.versions.set(id, (this.versions.get(id) ?? 0) + 1);
142
+ this.settle(this.projections.get(id), error);
143
+ this.projections.delete(id);
144
+ this.installedFingerprints.delete(id);
145
+ }
146
+ settle(projection, error) {
147
+ try {
148
+ projection?.settle(error);
149
+ }
150
+ catch {
151
+ // Projection teardown is isolated from outbox state.
152
+ }
153
+ }
154
+ }
155
+ //# sourceMappingURL=projectionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectionManager.js","sourceRoot":"","sources":["../../../src/live/outbox/projectionManager.ts"],"names":[],"mappings":"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"}