@sixb/core 0.1.9 → 0.1.10
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.
- package/dist/actions/index.js +8 -8
- package/dist/agents/index.js +16 -15
- package/dist/agents/index.js.map +1 -1
- package/dist/bootstrap/index.js +20 -19
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/broker/in-memory.d.ts +8 -2
- package/dist/broker/in-memory.d.ts.map +1 -1
- package/dist/broker/index.d.ts +4 -2
- package/dist/broker/index.d.ts.map +1 -1
- package/dist/broker/index.js +7 -3
- package/dist/broker/index.js.map +1 -1
- package/dist/broker/retention.d.ts +4 -0
- package/dist/broker/retention.d.ts.map +1 -0
- package/dist/broker/subscriber.d.ts +10 -0
- package/dist/broker/subscriber.d.ts.map +1 -0
- package/dist/broker/types.d.ts +14 -1
- package/dist/broker/types.d.ts.map +1 -1
- package/dist/{chunk-k3cqkkn2.js → chunk-1824gssz.js} +30 -65
- package/dist/chunk-1824gssz.js.map +12 -0
- package/dist/{chunk-h1gfhhbh.js → chunk-28ja2cjs.js} +1 -1
- package/dist/chunk-2c4j899j.js.map +1 -1
- package/dist/{chunk-ppytyr6w.js → chunk-358caqf5.js} +4 -4
- package/dist/chunk-358caqf5.js.map +12 -0
- package/dist/{chunk-kxwa347f.js → chunk-3qms4nax.js} +2 -2
- package/dist/{chunk-kxwa347f.js.map → chunk-3qms4nax.js.map} +3 -3
- package/dist/{chunk-emyyk7dx.js → chunk-5c7ga8zz.js} +22 -145
- package/dist/chunk-5c7ga8zz.js.map +12 -0
- package/dist/{chunk-hpr1r6av.js → chunk-5p1v802y.js} +46 -39
- package/dist/{chunk-hpr1r6av.js.map → chunk-5p1v802y.js.map} +4 -4
- package/dist/{chunk-zcnq6105.js → chunk-85cd7e8c.js} +2 -1
- package/dist/chunk-85cd7e8c.js.map +10 -0
- package/dist/{chunk-1enhpacz.js → chunk-976rxdpx.js} +5 -5
- package/dist/{chunk-3f7veca0.js → chunk-9x8dybsb.js} +3 -3
- package/dist/chunk-9x8dybsb.js.map +10 -0
- package/dist/{chunk-r29fxdhn.js → chunk-aa6z4a19.js} +160 -44
- package/dist/chunk-aa6z4a19.js.map +12 -0
- package/dist/{chunk-r4tfx1sf.js → chunk-agbbygvh.js} +4 -4
- package/dist/{chunk-jjy0fhrn.js → chunk-b0ec55a1.js} +20 -3
- package/dist/chunk-b0ec55a1.js.map +12 -0
- package/dist/{chunk-xfbydgzy.js → chunk-bn138h9w.js} +7 -8
- package/dist/{chunk-xfbydgzy.js.map → chunk-bn138h9w.js.map} +3 -3
- package/dist/{chunk-an5tt9y0.js → chunk-ftv470j8.js} +42 -4
- package/dist/{chunk-an5tt9y0.js.map → chunk-ftv470j8.js.map} +7 -7
- package/dist/{chunk-0w35wavj.js → chunk-g7knyczr.js} +1 -1
- package/dist/{chunk-x57ycxq0.js → chunk-gqh45d2n.js} +42 -3
- package/dist/{chunk-x57ycxq0.js.map → chunk-gqh45d2n.js.map} +3 -3
- package/dist/{chunk-0rdrecsb.js → chunk-kfee1h52.js} +116 -32
- package/dist/chunk-kfee1h52.js.map +13 -0
- package/dist/{chunk-ypbtykv6.js → chunk-nmbxcaqx.js} +1 -1
- package/dist/{chunk-3tgwrcyh.js → chunk-nt99sxd6.js} +2 -2
- package/dist/{chunk-3tgwrcyh.js.map → chunk-nt99sxd6.js.map} +3 -3
- package/dist/{chunk-vf691g1r.js → chunk-p5vcsw9c.js} +2 -2
- package/dist/{chunk-mjbk2djy.js → chunk-p6a4npdx.js} +211 -106
- package/dist/{chunk-mjbk2djy.js.map → chunk-p6a4npdx.js.map} +9 -8
- package/dist/{chunk-3frsnm7x.js → chunk-qma80ych.js} +4 -6
- package/dist/chunk-qma80ych.js.map +11 -0
- package/dist/{chunk-qhcpj9wc.js → chunk-qyeptdyv.js} +96 -2
- package/dist/chunk-qyeptdyv.js.map +15 -0
- package/dist/{chunk-52hbv0ak.js → chunk-r7fj830t.js} +101 -48
- package/dist/chunk-r7fj830t.js.map +36 -0
- package/dist/{chunk-xyr8kppc.js → chunk-rtk71jzp.js} +1 -1
- package/dist/{chunk-m3z3x9v0.js → chunk-t1f4f1ve.js} +1 -1
- package/dist/chunk-v2vcg0w6.js +151 -0
- package/dist/chunk-v2vcg0w6.js.map +11 -0
- package/dist/connectors/connections/authorizations.d.ts.map +1 -1
- package/dist/connectors/connections/contracts.d.ts +3 -0
- package/dist/connectors/connections/contracts.d.ts.map +1 -1
- package/dist/connectors/connections/internal.js +1 -1
- package/dist/connectors/connections/request.d.ts +3 -1
- package/dist/connectors/connections/request.d.ts.map +1 -1
- package/dist/connectors/connections/runs.d.ts.map +1 -1
- package/dist/connectors/connections/tokens.d.ts.map +1 -1
- package/dist/connectors/connections/validation.d.ts +5 -1
- package/dist/connectors/connections/validation.d.ts.map +1 -1
- package/dist/connectors/types.d.ts +19 -4
- package/dist/connectors/types.d.ts.map +1 -1
- package/dist/events/execution.d.ts +1 -1
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/index.js +1 -1
- package/dist/events/service.d.ts +2 -2
- package/dist/events/service.d.ts.map +1 -1
- package/dist/execution/agent.js +16 -15
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/primitive.js +16 -15
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.js +16 -15
- package/dist/execution/request.js.map +2 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -28
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/changes.d.ts +5 -0
- package/dist/lake-storage/changes.d.ts.map +1 -0
- package/dist/lake-storage/in-memory.d.ts +2 -1
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.d.ts +2 -1
- package/dist/lake-storage/index.d.ts.map +1 -1
- package/dist/lake-storage/index.js +4 -2
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/lake-storage/types.d.ts +36 -0
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/logging/internal.js +1 -1
- package/dist/materialization/index.d.ts +1 -1
- package/dist/materialization/index.d.ts.map +1 -1
- package/dist/materialization/model.d.ts +12 -1
- package/dist/materialization/model.d.ts.map +1 -1
- package/dist/materializer/index.d.ts +1 -1
- package/dist/materializer/index.d.ts.map +1 -1
- package/dist/materializer/index.js +5 -5
- package/dist/materializer/materializer.d.ts +5 -1
- package/dist/materializer/materializer.d.ts.map +1 -1
- package/dist/materializer/projections/entry-validator.d.ts +2 -1
- package/dist/materializer/projections/entry-validator.d.ts.map +1 -1
- package/dist/materializer/projections/replace.d.ts.map +1 -1
- package/dist/materializer/projections/source-materialization.d.ts +4 -3
- package/dist/materializer/projections/source-materialization.d.ts.map +1 -1
- package/dist/materializer/shared/normalize.d.ts +2 -1
- package/dist/materializer/shared/normalize.d.ts.map +1 -1
- package/dist/models/execution/index.js +5 -5
- package/dist/objects/index.js +9 -9
- package/dist/objects/query/index.js +5 -5
- package/dist/pipelines/index.js +6 -6
- package/dist/pipelines/run-dispatch.d.ts.map +1 -1
- package/dist/projections/internal.js +6 -8
- package/dist/projections/internal.js.map +1 -1
- package/dist/projections/run-dispatch.d.ts.map +1 -1
- package/dist/queues/in-memory.d.ts +7 -3
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/queues/index.js +1 -1
- package/dist/queues/indexed-heap.d.ts +15 -0
- package/dist/queues/indexed-heap.d.ts.map +1 -0
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/internal.js +1 -1
- package/dist/runtime/ontology-mutations.d.ts +3 -1
- package/dist/runtime/ontology-mutations.d.ts.map +1 -1
- package/dist/shares/internal.js +4 -4
- package/dist/storage/connector-connections/in-memory.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider/runs.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +2 -2
- package/dist/storage/connector-connections/provider.js.map +3 -3
- package/dist/storage/connector-connections/types.d.ts +3 -2
- package/dist/storage/connector-connections/types.d.ts.map +1 -1
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +4 -4
- package/dist/storage/internal.js +1 -1
- package/dist/storage/ontology/in-memory/materializations-state.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/shared-state.d.ts +15 -2
- package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/source-roots.d.ts +6 -0
- package/dist/storage/ontology/in-memory/source-roots.d.ts.map +1 -0
- package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
- package/dist/storage/ontology/index.d.ts +1 -1
- package/dist/storage/ontology/index.d.ts.map +1 -1
- package/dist/storage/ontology/provider.d.ts +16 -0
- package/dist/storage/ontology/provider.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +4 -2
- package/dist/storage/ontology/provider.js.map +1 -1
- package/dist/storage/ontology/sources.d.ts +13 -4
- package/dist/storage/ontology/sources.d.ts.map +1 -1
- package/dist/storage/projection-runs/lifecycle.d.ts.map +1 -1
- package/dist/storage/projection-runs/provider.js +2 -2
- package/dist/storage/projection-runs/types.d.ts +2 -0
- package/dist/storage/projection-runs/types.d.ts.map +1 -1
- package/dist/syncs/index.js +8 -7
- package/dist/syncs/index.js.map +1 -1
- package/dist/syncs/run-dispatch.d.ts.map +1 -1
- package/dist/testing/broker-contract.d.ts.map +1 -1
- package/dist/testing/connector-connection-storage-contract.d.ts.map +1 -1
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1459 -951
- package/dist/testing/index.js.map +9 -8
- package/dist/testing/lake-changes-contract.d.ts +6 -0
- package/dist/testing/lake-changes-contract.d.ts.map +1 -0
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
- package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
- package/dist/webhooks/connections.d.ts +6 -0
- package/dist/webhooks/connections.d.ts.map +1 -0
- package/dist/webhooks/index.d.ts +1 -1
- package/dist/webhooks/index.d.ts.map +1 -1
- package/dist/webhooks/internal.d.ts +2 -0
- package/dist/webhooks/internal.d.ts.map +1 -1
- package/dist/webhooks/internal.js +54 -9
- package/dist/webhooks/internal.js.map +4 -3
- package/dist/webhooks/registry.d.ts +1 -1
- package/dist/webhooks/registry.d.ts.map +1 -1
- package/dist/webhooks/types.d.ts +15 -4
- package/dist/webhooks/types.d.ts.map +1 -1
- package/dist/workflows/index.js +17 -16
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/run-dispatch.d.ts +3 -1
- package/dist/workflows/run-dispatch.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/broker/in-memory.ts +104 -39
- package/src/broker/index.ts +4 -1
- package/src/broker/retention.ts +28 -0
- package/src/broker/subscriber.ts +21 -0
- package/src/broker/types.ts +15 -1
- package/src/connectors/builders.ts +0 -6
- package/src/connectors/connections/authorizations.ts +11 -5
- package/src/connectors/connections/contracts.ts +3 -0
- package/src/connectors/connections/request.ts +56 -22
- package/src/connectors/connections/runs.ts +1 -0
- package/src/connectors/connections/tokens.ts +4 -0
- package/src/connectors/connections/validation.ts +91 -5
- package/src/connectors/types.ts +19 -4
- package/src/events/execution.ts +2 -2
- package/src/events/service.ts +3 -3
- package/src/index.ts +10 -2
- package/src/lake-storage/changes.ts +43 -0
- package/src/lake-storage/in-memory.ts +73 -0
- package/src/lake-storage/index.ts +4 -0
- package/src/lake-storage/types.ts +40 -0
- package/src/logging/service.ts +1 -1
- package/src/materialization/index.ts +2 -0
- package/src/materialization/model.ts +14 -1
- package/src/materializer/index.ts +2 -0
- package/src/materializer/materializer.ts +10 -0
- package/src/materializer/projections/entry-validator.ts +19 -1
- package/src/materializer/projections/replace.ts +36 -1
- package/src/materializer/projections/source-materialization.ts +26 -6
- package/src/materializer/shared/normalize.ts +1 -1
- package/src/pipelines/run-dispatch.ts +21 -1
- package/src/projections/run-dispatch.ts +30 -68
- package/src/queues/in-memory.ts +105 -62
- package/src/queues/indexed-heap.ts +74 -0
- package/src/runtime/host.ts +0 -14
- package/src/runtime/ontology-mutations.ts +4 -0
- package/src/storage/connector-connections/in-memory.ts +3 -1
- package/src/storage/connector-connections/provider/runs.ts +3 -1
- package/src/storage/connector-connections/types.ts +3 -2
- package/src/storage/index.ts +1 -0
- package/src/storage/ontology/in-memory/materializations-state.ts +5 -18
- package/src/storage/ontology/in-memory/materializations.ts +73 -92
- package/src/storage/ontology/in-memory/shared-state.ts +26 -1
- package/src/storage/ontology/in-memory/source-roots.ts +123 -0
- package/src/storage/ontology/in-memory/sources.ts +78 -23
- package/src/storage/ontology/index.ts +1 -0
- package/src/storage/ontology/provider.ts +70 -0
- package/src/storage/ontology/sources.ts +14 -3
- package/src/storage/projection-runs/lifecycle.ts +5 -2
- package/src/storage/projection-runs/types.ts +4 -3
- package/src/syncs/run-dispatch.ts +19 -1
- package/src/testing/broker-contract.ts +95 -0
- package/src/testing/connector-connection-storage-contract.ts +18 -1
- package/src/testing/index.ts +1 -0
- package/src/testing/lake-changes-contract.ts +240 -0
- package/src/testing/materializer-storage-contract.ts +172 -1
- package/src/testing/ontology-storage-contract.ts +7 -0
- package/src/testing/projection-run-storage-contract.ts +34 -0
- package/src/webhooks/connections.ts +56 -0
- package/src/webhooks/index.ts +2 -0
- package/src/webhooks/internal.ts +2 -0
- package/src/webhooks/registry.ts +3 -4
- package/src/webhooks/types.ts +17 -4
- package/src/workflows/run-dispatch.ts +42 -29
- package/dist/chunk-0rdrecsb.js.map +0 -11
- package/dist/chunk-3f7veca0.js.map +0 -10
- package/dist/chunk-3frsnm7x.js.map +0 -11
- package/dist/chunk-52hbv0ak.js.map +0 -36
- package/dist/chunk-emyyk7dx.js.map +0 -14
- package/dist/chunk-jjy0fhrn.js.map +0 -12
- package/dist/chunk-k3cqkkn2.js.map +0 -12
- package/dist/chunk-ppytyr6w.js.map +0 -12
- package/dist/chunk-qhcpj9wc.js.map +0 -14
- package/dist/chunk-r29fxdhn.js.map +0 -11
- package/dist/chunk-zcnq6105.js.map +0 -10
- /package/dist/{chunk-h1gfhhbh.js.map → chunk-28ja2cjs.js.map} +0 -0
- /package/dist/{chunk-1enhpacz.js.map → chunk-976rxdpx.js.map} +0 -0
- /package/dist/{chunk-r4tfx1sf.js.map → chunk-agbbygvh.js.map} +0 -0
- /package/dist/{chunk-0w35wavj.js.map → chunk-g7knyczr.js.map} +0 -0
- /package/dist/{chunk-ypbtykv6.js.map → chunk-nmbxcaqx.js.map} +0 -0
- /package/dist/{chunk-vf691g1r.js.map → chunk-p5vcsw9c.js.map} +0 -0
- /package/dist/{chunk-xyr8kppc.js.map → chunk-rtk71jzp.js.map} +0 -0
- /package/dist/{chunk-m3z3x9v0.js.map → chunk-t1f4f1ve.js.map} +0 -0
package/dist/actions/index.js
CHANGED
|
@@ -9,24 +9,24 @@ import {
|
|
|
9
9
|
createActionReadFacade2,
|
|
10
10
|
ActionRegistry2,
|
|
11
11
|
runActionValidators2
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-p5vcsw9c.js";
|
|
13
13
|
import {
|
|
14
14
|
requestAction3,
|
|
15
15
|
requestActionAndWait2,
|
|
16
16
|
waitForActionRun2
|
|
17
|
-
} from "../chunk-
|
|
18
|
-
import"../chunk-
|
|
19
|
-
import"../chunk-
|
|
17
|
+
} from "../chunk-nmbxcaqx.js";
|
|
18
|
+
import"../chunk-g7knyczr.js";
|
|
19
|
+
import"../chunk-ftv470j8.js";
|
|
20
20
|
import"../chunk-17kfctj6.js";
|
|
21
|
-
import"../chunk-
|
|
21
|
+
import"../chunk-p6a4npdx.js";
|
|
22
22
|
import"../chunk-qf954wje.js";
|
|
23
23
|
import"../chunk-pr2h4bv4.js";
|
|
24
24
|
import"../chunk-8vj0rjgs.js";
|
|
25
|
-
import"../chunk-
|
|
25
|
+
import"../chunk-gqh45d2n.js";
|
|
26
26
|
import"../chunk-z30bv4ga.js";
|
|
27
27
|
import"../chunk-mmagke4x.js";
|
|
28
|
-
import"../chunk-
|
|
29
|
-
import"../chunk-
|
|
28
|
+
import"../chunk-358caqf5.js";
|
|
29
|
+
import"../chunk-qma80ych.js";
|
|
30
30
|
import"../chunk-br3k6qbf.js";
|
|
31
31
|
import"../chunk-jmfet9r4.js";
|
|
32
32
|
import"../chunk-vsj3mdfj.js";
|
package/dist/agents/index.js
CHANGED
|
@@ -39,27 +39,28 @@ import {
|
|
|
39
39
|
runModelLoop2,
|
|
40
40
|
requestAgentRun2,
|
|
41
41
|
retryAgentRun2
|
|
42
|
-
} from "../chunk-
|
|
43
|
-
import"../chunk-
|
|
42
|
+
} from "../chunk-5p1v802y.js";
|
|
43
|
+
import"../chunk-5c7ga8zz.js";
|
|
44
|
+
import"../chunk-v2vcg0w6.js";
|
|
44
45
|
import"../chunk-awbhdqyc.js";
|
|
45
|
-
import"../chunk-
|
|
46
|
-
import"../chunk-
|
|
47
|
-
import"../chunk-
|
|
48
|
-
import"../chunk-
|
|
46
|
+
import"../chunk-976rxdpx.js";
|
|
47
|
+
import"../chunk-85cd7e8c.js";
|
|
48
|
+
import"../chunk-b0ec55a1.js";
|
|
49
|
+
import"../chunk-28ja2cjs.js";
|
|
49
50
|
import"../chunk-g6cke204.js";
|
|
50
51
|
import"../chunk-0y39rgsb.js";
|
|
51
52
|
import"../chunk-5a4a52tq.js";
|
|
52
53
|
import"../chunk-mrp7k0pw.js";
|
|
53
54
|
import"../chunk-9qsh3p5y.js";
|
|
54
55
|
import"../chunk-860dwwy0.js";
|
|
55
|
-
import"../chunk-
|
|
56
|
-
import"../chunk-
|
|
57
|
-
import"../chunk-
|
|
58
|
-
import"../chunk-
|
|
56
|
+
import"../chunk-p5vcsw9c.js";
|
|
57
|
+
import"../chunk-nmbxcaqx.js";
|
|
58
|
+
import"../chunk-g7knyczr.js";
|
|
59
|
+
import"../chunk-ftv470j8.js";
|
|
59
60
|
import"../chunk-17kfctj6.js";
|
|
60
61
|
import {
|
|
61
62
|
AGENT_MESSAGE_CONTENT_VERSION2
|
|
62
|
-
} from "../chunk-
|
|
63
|
+
} from "../chunk-p6a4npdx.js";
|
|
63
64
|
import"../chunk-qf954wje.js";
|
|
64
65
|
import {
|
|
65
66
|
ensureManagedAgentExecutionIdentity2,
|
|
@@ -67,11 +68,11 @@ import {
|
|
|
67
68
|
resolveInheritedAgentExecutionAuthorization2
|
|
68
69
|
} from "../chunk-pr2h4bv4.js";
|
|
69
70
|
import"../chunk-8vj0rjgs.js";
|
|
70
|
-
import"../chunk-
|
|
71
|
+
import"../chunk-gqh45d2n.js";
|
|
71
72
|
import"../chunk-z30bv4ga.js";
|
|
72
73
|
import"../chunk-mmagke4x.js";
|
|
73
|
-
import"../chunk-
|
|
74
|
-
import"../chunk-
|
|
74
|
+
import"../chunk-358caqf5.js";
|
|
75
|
+
import"../chunk-qma80ych.js";
|
|
75
76
|
import"../chunk-br3k6qbf.js";
|
|
76
77
|
import"../chunk-jmfet9r4.js";
|
|
77
78
|
import"../chunk-vsj3mdfj.js";
|
|
@@ -201,4 +202,4 @@ export {
|
|
|
201
202
|
workflowAgentNodeQueueJobId2 as workflowAgentNodeQueueJobId
|
|
202
203
|
};
|
|
203
204
|
|
|
204
|
-
//# debugId=
|
|
205
|
+
//# debugId=3E7B8BC287B300C964756E2164756E21
|
package/dist/agents/index.js.map
CHANGED
package/dist/bootstrap/index.js
CHANGED
|
@@ -6,44 +6,45 @@ import {
|
|
|
6
6
|
discoverProjectDefinitions2,
|
|
7
7
|
discoverOntologyTypeManifest2,
|
|
8
8
|
generateOntologyTypeManifest2
|
|
9
|
-
} from "../chunk-
|
|
10
|
-
import"../chunk-
|
|
11
|
-
import"../chunk-
|
|
9
|
+
} from "../chunk-agbbygvh.js";
|
|
10
|
+
import"../chunk-bn138h9w.js";
|
|
11
|
+
import"../chunk-t1f4f1ve.js";
|
|
12
12
|
import"../chunk-x9v4cx1d.js";
|
|
13
|
-
import"../chunk-
|
|
13
|
+
import"../chunk-rtk71jzp.js";
|
|
14
14
|
import"../chunk-e1c18xjx.js";
|
|
15
15
|
import"../chunk-fb3feg1e.js";
|
|
16
16
|
import"../chunk-dfm066qg.js";
|
|
17
17
|
import"../chunk-r2y23egw.js";
|
|
18
18
|
import"../chunk-skz0hst3.js";
|
|
19
19
|
import"../chunk-9vx5e9g1.js";
|
|
20
|
-
import"../chunk-
|
|
21
|
-
import"../chunk-
|
|
20
|
+
import"../chunk-5p1v802y.js";
|
|
21
|
+
import"../chunk-5c7ga8zz.js";
|
|
22
|
+
import"../chunk-v2vcg0w6.js";
|
|
22
23
|
import"../chunk-awbhdqyc.js";
|
|
23
|
-
import"../chunk-
|
|
24
|
-
import"../chunk-
|
|
25
|
-
import"../chunk-
|
|
26
|
-
import"../chunk-
|
|
24
|
+
import"../chunk-976rxdpx.js";
|
|
25
|
+
import"../chunk-85cd7e8c.js";
|
|
26
|
+
import"../chunk-b0ec55a1.js";
|
|
27
|
+
import"../chunk-28ja2cjs.js";
|
|
27
28
|
import"../chunk-g6cke204.js";
|
|
28
29
|
import"../chunk-0y39rgsb.js";
|
|
29
30
|
import"../chunk-5a4a52tq.js";
|
|
30
31
|
import"../chunk-mrp7k0pw.js";
|
|
31
32
|
import"../chunk-9qsh3p5y.js";
|
|
32
33
|
import"../chunk-860dwwy0.js";
|
|
33
|
-
import"../chunk-
|
|
34
|
-
import"../chunk-
|
|
35
|
-
import"../chunk-
|
|
36
|
-
import"../chunk-
|
|
34
|
+
import"../chunk-p5vcsw9c.js";
|
|
35
|
+
import"../chunk-nmbxcaqx.js";
|
|
36
|
+
import"../chunk-g7knyczr.js";
|
|
37
|
+
import"../chunk-ftv470j8.js";
|
|
37
38
|
import"../chunk-17kfctj6.js";
|
|
38
|
-
import"../chunk-
|
|
39
|
+
import"../chunk-p6a4npdx.js";
|
|
39
40
|
import"../chunk-qf954wje.js";
|
|
40
41
|
import"../chunk-pr2h4bv4.js";
|
|
41
42
|
import"../chunk-8vj0rjgs.js";
|
|
42
|
-
import"../chunk-
|
|
43
|
+
import"../chunk-gqh45d2n.js";
|
|
43
44
|
import"../chunk-z30bv4ga.js";
|
|
44
45
|
import"../chunk-mmagke4x.js";
|
|
45
|
-
import"../chunk-
|
|
46
|
-
import"../chunk-
|
|
46
|
+
import"../chunk-358caqf5.js";
|
|
47
|
+
import"../chunk-qma80ych.js";
|
|
47
48
|
import"../chunk-br3k6qbf.js";
|
|
48
49
|
import"../chunk-jmfet9r4.js";
|
|
49
50
|
import"../chunk-vsj3mdfj.js";
|
|
@@ -81,4 +82,4 @@ export {
|
|
|
81
82
|
withProjectModules2 as withProjectModules
|
|
82
83
|
};
|
|
83
84
|
|
|
84
|
-
//# debugId=
|
|
85
|
+
//# debugId=890EEA3B23D91B3664756E2164756E21
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import type { Broker, BrokerPage, BrokerRecord, BrokerRecordInput, BrokerStreamDefinition } from "./types";
|
|
1
|
+
import type { Broker, BrokerPage, BrokerRecord, BrokerRecordInput, BrokerStreamDefinition, BrokerStreamRetention } from "./types";
|
|
2
|
+
export interface InMemoryBrokerOptions {
|
|
3
|
+
readonly streamRetention?: BrokerStreamRetention;
|
|
4
|
+
}
|
|
2
5
|
export declare class InMemoryBroker implements Broker {
|
|
3
6
|
readonly scope: "process";
|
|
4
7
|
private readonly streams;
|
|
5
8
|
private readonly subscriptions;
|
|
9
|
+
private readonly resolveStream;
|
|
10
|
+
constructor(options?: InMemoryBrokerOptions);
|
|
6
11
|
ensureStream(params: {
|
|
7
12
|
projectId: string;
|
|
8
13
|
stream: BrokerStreamDefinition;
|
|
@@ -39,7 +44,7 @@ export declare class InMemoryBroker implements Broker {
|
|
|
39
44
|
afterCursor?: string;
|
|
40
45
|
names?: readonly string[];
|
|
41
46
|
keys?: readonly string[];
|
|
42
|
-
}, handler: (records: readonly BrokerRecord[]) =>
|
|
47
|
+
}, handler: (records: readonly BrokerRecord[]) => unknown): Promise<() => void>;
|
|
43
48
|
private getOrCreateStream;
|
|
44
49
|
private getEnsuredStream;
|
|
45
50
|
private applyRetention;
|
|
@@ -47,6 +52,7 @@ export declare class InMemoryBroker implements Broker {
|
|
|
47
52
|
private assertTailCursorInRetainedRange;
|
|
48
53
|
private notify;
|
|
49
54
|
private deliver;
|
|
55
|
+
private pump;
|
|
50
56
|
private readForward;
|
|
51
57
|
private readBackward;
|
|
52
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../src/broker/in-memory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../src/broker/in-memory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAkChB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,qBAAqB,CAAA;CACjD;AAED,qBAAa,cAAe,YAAW,MAAM;IAC3C,QAAQ,CAAC,KAAK,EAAG,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkD;gBAEpE,OAAO,GAAE,qBAA0B;IAIzC,YAAY,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,sBAAsB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1F,MAAM,CAAC,MAAM,EAAE;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAA;KACtC,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;IA0C9B,IAAI,CAAC,MAAM,EAAE;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KACzB,GAAG,OAAO,CAAC,UAAU,CAAC;IAwBjB,IAAI,CAAC,MAAM,EAAE;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KACzB,GAAG,OAAO,CAAC,UAAU,CAAC;IAmBjB,YAAY,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAa1F,SAAS,CACb,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;QAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KACzB,EACD,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,KAAK,OAAO,GACrD,OAAO,CAAC,MAAM,IAAI,CAAC;IA0CtB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IA2DtB,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,+BAA+B;IAgBvC,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,OAAO;YAWD,IAAI;IA2BlB,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,YAAY;CAuCrB"}
|
package/dist/broker/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export type { ProviderScope } from "../provider-scope";
|
|
2
2
|
export { BrokerCursorExpiredError, BrokerError } from "./errors";
|
|
3
|
-
export { InMemoryBroker } from "./in-memory";
|
|
4
|
-
export
|
|
3
|
+
export { InMemoryBroker, type InMemoryBrokerOptions } from "./in-memory";
|
|
4
|
+
export { createStreamRetentionResolver } from "./retention";
|
|
5
|
+
export { waitForSubscriber } from "./subscriber";
|
|
6
|
+
export type { Broker, BrokerCursor, BrokerPage, BrokerRecord, BrokerRecordInput, BrokerRetention, BrokerStreamDefinition, BrokerStreamRetention, } from "./types";
|
|
5
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/broker/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/broker/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,YAAY,EACV,MAAM,EACN,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,SAAS,CAAA"}
|
package/dist/broker/index.js
CHANGED
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BrokerError2,
|
|
4
4
|
BrokerCursorExpiredError2,
|
|
5
|
+
createStreamRetentionResolver2,
|
|
6
|
+
waitForSubscriber2,
|
|
5
7
|
InMemoryBroker2
|
|
6
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-kfee1h52.js";
|
|
7
9
|
export {
|
|
8
10
|
BrokerCursorExpiredError2 as BrokerCursorExpiredError,
|
|
9
11
|
BrokerError2 as BrokerError,
|
|
10
|
-
InMemoryBroker2 as InMemoryBroker
|
|
12
|
+
InMemoryBroker2 as InMemoryBroker,
|
|
13
|
+
createStreamRetentionResolver2 as createStreamRetentionResolver,
|
|
14
|
+
waitForSubscriber2 as waitForSubscriber
|
|
11
15
|
};
|
|
12
16
|
|
|
13
|
-
//# debugId=
|
|
17
|
+
//# debugId=BF91BB5AF8D564D764756E2164756E21
|
package/dist/broker/index.js.map
CHANGED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BrokerStreamDefinition, BrokerStreamRetention } from "./types";
|
|
2
|
+
/** Provider utility: snapshot and validate configuration before opening any connections. */
|
|
3
|
+
export declare function createStreamRetentionResolver(configuration?: BrokerStreamRetention): (stream: BrokerStreamDefinition) => BrokerStreamDefinition;
|
|
4
|
+
//# sourceMappingURL=retention.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../src/broker/retention.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE7F,4FAA4F;AAC5F,wBAAgB,6BAA6B,CAC3C,aAAa,GAAE,qBAA0B,GACxC,CAAC,MAAM,EAAE,sBAAsB,KAAK,sBAAsB,CAqB5D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Await one observer delivery, or detach it on unsubscribe. The observer's owner
|
|
3
|
+
* remains responsible for cancellation/draining. Rejections are observed even
|
|
4
|
+
* after detaching; each completed delivery removes its abort listener.
|
|
5
|
+
*
|
|
6
|
+
* Do not race every batch against one permanent stop promise: that retains a
|
|
7
|
+
* promise reaction per batch for the subscription's entire lifetime.
|
|
8
|
+
*/
|
|
9
|
+
export declare function waitForSubscriber(result: unknown, signal: AbortSignal): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=subscriber.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriber.d.ts","sourceRoot":"","sources":["../../src/broker/subscriber.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3F"}
|
package/dist/broker/types.d.ts
CHANGED
|
@@ -17,6 +17,8 @@ export interface BrokerStreamDefinition {
|
|
|
17
17
|
readonly id: string;
|
|
18
18
|
readonly retention?: BrokerRetention;
|
|
19
19
|
}
|
|
20
|
+
/** Per-stream overrides at creation; omitted limits keep the stream's own defaults. */
|
|
21
|
+
export type BrokerStreamRetention = Readonly<Record<string, BrokerRetention>>;
|
|
20
22
|
export interface BrokerRecordInput {
|
|
21
23
|
readonly name?: string;
|
|
22
24
|
readonly key?: string;
|
|
@@ -96,6 +98,17 @@ export interface Broker {
|
|
|
96
98
|
* range rather than silently advancing to the first retained record, so a
|
|
97
99
|
* resuming subscriber learns the gap exists instead of mistaking a truncated
|
|
98
100
|
* stream for a complete one.
|
|
101
|
+
*
|
|
102
|
+
* A returned handler promise is awaited before the next delivery. Providers
|
|
103
|
+
* bound read-ahead instead of accumulating pending handler calls. Return the
|
|
104
|
+
* processing promise to apply backpressure; detached work cannot be bounded.
|
|
105
|
+
* Handler errors remain isolated from publishers and other subscribers; they
|
|
106
|
+
* are not a negative acknowledgement. Reliable consumers must retry within
|
|
107
|
+
* their handler before returning. No progress survives a process restart.
|
|
108
|
+
*
|
|
109
|
+
* Unsubscribe stops further delivery, not an already running callback. Its
|
|
110
|
+
* owner must cancel/drain that work; provider close must not wait indefinitely
|
|
111
|
+
* for an uncooperative handler. Return values other than promises are ignored.
|
|
99
112
|
*/
|
|
100
113
|
subscribe(params: {
|
|
101
114
|
projectId: string;
|
|
@@ -104,7 +117,7 @@ export interface Broker {
|
|
|
104
117
|
afterCursor?: BrokerCursor;
|
|
105
118
|
names?: readonly string[];
|
|
106
119
|
keys?: readonly string[];
|
|
107
|
-
}, handler: (records: readonly BrokerRecord[]) =>
|
|
120
|
+
}, handler: (records: readonly BrokerRecord[]) => unknown): Promise<() => void>;
|
|
108
121
|
/**
|
|
109
122
|
* Whether this broker can be shared across processes.
|
|
110
123
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/broker/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/broker/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,15 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import {
|
|
3
|
-
createSixbError2,
|
|
4
|
-
toSixbFailure2
|
|
5
|
-
} from "./chunk-f4w3yp4f.js";
|
|
6
|
-
import {
|
|
7
|
-
reportRunFailure2
|
|
8
|
-
} from "./chunk-7apz6hg4.js";
|
|
9
2
|
import {
|
|
10
3
|
ProjectionValidationError2
|
|
11
4
|
} from "./chunk-dz5h08xv.js";
|
|
12
5
|
import {
|
|
13
6
|
sha256Canonical2
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import {
|
|
16
|
-
PROJECTION_RUN_FAILURE_CODES2
|
|
17
|
-
} from "./chunk-3frsnm7x.js";
|
|
7
|
+
} from "./chunk-gqh45d2n.js";
|
|
18
8
|
import {
|
|
19
9
|
ProjectionRunError2,
|
|
20
10
|
assertProjectionRunIdentityMatches2,
|
|
21
11
|
assertProjectionRunDurableExecution2
|
|
22
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-358caqf5.js";
|
|
23
13
|
import {
|
|
24
14
|
createPrimitiveExecutionRecord
|
|
25
15
|
} from "./chunk-17kfctj6.js";
|
|
@@ -105,13 +95,16 @@ class ProjectionRunDispatcher2 {
|
|
|
105
95
|
const runId = createProjectionRunId2(this.dependencies.id, identity);
|
|
106
96
|
const projectionRuns = requireProjectionRunStorage(this.dependencies.storage);
|
|
107
97
|
const existing = await projectionRuns.getById({ projectId: this.dependencies.id, id: runId });
|
|
108
|
-
|
|
98
|
+
let persisted = existing ? await reuseProjectionRun(this.dependencies, existing, identity) : await persistProjectionRun({
|
|
109
99
|
dependencies: this.dependencies,
|
|
110
100
|
runId,
|
|
111
101
|
identity,
|
|
112
102
|
projection,
|
|
113
103
|
producerExecution: await resolveProducerExecution(this.dependencies.storage, this.dependencies.id, version.producer)
|
|
114
104
|
});
|
|
105
|
+
if (!persisted.publish && persisted.run.status === "queued") {
|
|
106
|
+
persisted = await reuseProjectionRun(this.dependencies, persisted.run, identity);
|
|
107
|
+
}
|
|
115
108
|
if (!persisted.publish)
|
|
116
109
|
return existingResult(persisted.run);
|
|
117
110
|
return publishProjectionRun(this.dependencies, input.metadata, persisted);
|
|
@@ -172,6 +165,9 @@ async function persistProjectionRun(input) {
|
|
|
172
165
|
}
|
|
173
166
|
async function reuseProjectionRun(dependencies, existing, identity) {
|
|
174
167
|
await assertExistingRun(dependencies.storage, existing, identity);
|
|
168
|
+
if (existing.status === "queued") {
|
|
169
|
+
return { publish: true, run: existing, queuedAt: existing.queuedAt, created: false };
|
|
170
|
+
}
|
|
175
171
|
if (existing.status !== "failed" || existing.error?.code !== "queue.enqueue_failed" || !existing.error.retryable) {
|
|
176
172
|
return { publish: false, run: existing };
|
|
177
173
|
}
|
|
@@ -192,46 +188,27 @@ async function reuseProjectionRun(dependencies, existing, identity) {
|
|
|
192
188
|
}
|
|
193
189
|
}
|
|
194
190
|
async function publishProjectionRun(dependencies, metadata, persisted) {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
projectionId: persisted.run.identity.projectionId,
|
|
209
|
-
runId: persisted.run.id,
|
|
210
|
-
queuedAt: persisted.queuedAt.toISOString(),
|
|
211
|
-
...job?.id ? { jobId: job.id } : {},
|
|
212
|
-
created: persisted.created
|
|
213
|
-
};
|
|
214
|
-
} catch (error) {
|
|
215
|
-
const failedAt = new Date;
|
|
216
|
-
const failure = toEnqueueFailure(error, persisted.run, failedAt);
|
|
217
|
-
const failed = await requireProjectionRunStorage(dependencies.storage).failEnqueue({
|
|
218
|
-
projectId: dependencies.id,
|
|
219
|
-
id: persisted.run.id,
|
|
220
|
-
finishedAt: failedAt,
|
|
221
|
-
error: failure
|
|
222
|
-
});
|
|
223
|
-
reportRunFailure2(dependencies, error, {
|
|
224
|
-
projectId: dependencies.id,
|
|
225
|
-
runKind: "projection",
|
|
226
|
-
run: {
|
|
227
|
-
runId: failed.id,
|
|
228
|
-
projectionId: failed.identity.projectionId,
|
|
229
|
-
projectionKind: failed.identity.projectionKind
|
|
230
|
-
},
|
|
231
|
-
failure
|
|
232
|
-
});
|
|
233
|
-
throw error;
|
|
191
|
+
const [job] = await dependencies.queues.projections.enqueue({
|
|
192
|
+
projectId: dependencies.id,
|
|
193
|
+
jobs: [
|
|
194
|
+
{
|
|
195
|
+
id: persisted.run.id,
|
|
196
|
+
type: "projection.run.requested",
|
|
197
|
+
payload: { runId: persisted.run.id },
|
|
198
|
+
...metadata === undefined ? {} : { metadata }
|
|
199
|
+
}
|
|
200
|
+
]
|
|
201
|
+
});
|
|
202
|
+
if (!job || job.id !== persisted.run.id) {
|
|
203
|
+
throw new ProjectionRunError2(`[Sixb] Queue did not acknowledge Projection run '${persisted.run.id}'.`);
|
|
234
204
|
}
|
|
205
|
+
return {
|
|
206
|
+
projectionId: persisted.run.identity.projectionId,
|
|
207
|
+
runId: persisted.run.id,
|
|
208
|
+
queuedAt: persisted.queuedAt.toISOString(),
|
|
209
|
+
...job?.id ? { jobId: job.id } : {},
|
|
210
|
+
created: persisted.created
|
|
211
|
+
};
|
|
235
212
|
}
|
|
236
213
|
async function assertExistingRun(storage, run, identity) {
|
|
237
214
|
assertProjectionRunIdentityMatches2(run, identity);
|
|
@@ -399,18 +376,6 @@ function assertDispatchInput(input) {
|
|
|
399
376
|
throw new ProjectionValidationError2("[Sixb] Projection dataset version timestamp is invalid.");
|
|
400
377
|
}
|
|
401
378
|
}
|
|
402
|
-
function toEnqueueFailure(error, run, at) {
|
|
403
|
-
const enqueueError = createSixbError2("queue.enqueue_failed", `[Sixb] Could not enqueue Projection run '${run.id}'.`, {
|
|
404
|
-
cause: error,
|
|
405
|
-
details: {
|
|
406
|
-
projectionId: run.identity.projectionId,
|
|
407
|
-
projectionKind: run.identity.projectionKind,
|
|
408
|
-
runId: run.id,
|
|
409
|
-
phase: "enqueue"
|
|
410
|
-
}
|
|
411
|
-
});
|
|
412
|
-
return toSixbFailure2(enqueueError, { allowedCodes: PROJECTION_RUN_FAILURE_CODES2, at });
|
|
413
|
-
}
|
|
414
379
|
export { registerProjectionRegistry2, getProjectionRegistry2, getProjectionDispatchDescriptors2, shareProjectionRegistry2, createProjectionRunId2, PROJECTION_TELEMETRY_BATCH_SIZE2, ProjectionRunDispatcher2 };
|
|
415
380
|
|
|
416
|
-
//# debugId=
|
|
381
|
+
//# debugId=62D632045115139564756E2164756E21
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/projections/capability.ts", "../src/projections/run-dispatch.ts", "../src/projections/run-id.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import type { ProjectionRegistry } from \"./registry\"\nimport type { ProjectionDispatchDescriptor } from \"./types\"\n\nconst projectionRegistryKey: unique symbol = Symbol(\"sixb.projectionRegistry\")\n\ninterface ProjectionRegistryOwner {\n readonly [projectionRegistryKey]?: ProjectionRegistry\n}\n\nexport function registerProjectionRegistry(owner: object, registry: ProjectionRegistry): void {\n const registered = (owner as ProjectionRegistryOwner)[projectionRegistryKey]\n if (registered && registered !== registry) {\n throw new Error(\"[Sixb] Projection registry is already registered for this owner.\")\n }\n Object.defineProperty(owner, projectionRegistryKey, {\n configurable: false,\n enumerable: false,\n value: registry,\n writable: false,\n })\n}\n\nexport function getProjectionRegistry(owner: object): ProjectionRegistry {\n const registry = (owner as ProjectionRegistryOwner)[projectionRegistryKey]\n if (registry) return registry\n throw new Error(\"[Sixb] Projection registry is not registered for this runtime.\")\n}\n\nexport function getProjectionDispatchDescriptors(\n owner: object\n): readonly ProjectionDispatchDescriptor[] {\n return getProjectionRegistry(owner).getDispatchDescriptors()\n}\n\nexport function shareProjectionRegistry(source: object, target: object): void {\n registerProjectionRegistry(target, getProjectionRegistry(source))\n}\n",
|
|
6
|
+
"import { randomUUID } from \"node:crypto\"\nimport type { RunDispatcher } from \"../execution/dispatch\"\nimport { createPrimitiveExecutionRecord } from \"../execution/durable\"\nimport type { DatasetProducer, LakeStorage } from \"../lake-storage\"\nimport type { Queues } from \"../queues\"\nimport type { SixbDefinitions } from \"../runtime/definitions\"\nimport type { ExecutionRecord, ProjectionRunRecord, Storage } from \"../storage\"\nimport { ProjectionRunError } from \"../storage\"\nimport { findPrimitiveRunExecution } from \"../storage/executions/run-link\"\nimport {\n assertProjectionRunDurableExecution,\n assertProjectionRunIdentityMatches,\n} from \"../storage/projection-runs/provider\"\nimport { getProjectionRegistry } from \"./capability\"\nimport { ProjectionValidationError } from \"./errors\"\nimport { createProjectionRunId } from \"./run-id\"\nimport type { ProjectionDefinition } from \"./types\"\n\n/** Target maximum mapped points per telemetry commit; a single-property projection reads 500 rows. */\nexport const PROJECTION_TELEMETRY_BATCH_SIZE = 500\n\nexport interface ProjectionRunDispatchInput {\n readonly projectionId: string\n readonly datasetVersion: {\n readonly datasetId: string\n readonly versionId: string\n readonly createdAt: string\n }\n readonly metadata?: Readonly<Record<string, string>>\n}\n\nexport interface ProjectionRunDispatchResult {\n readonly projectionId: string\n readonly runId: string\n readonly queuedAt: string\n readonly jobId?: string\n readonly created: boolean\n}\n\nexport type ProjectionRunDispatchPort = RunDispatcher<\n ProjectionRunDispatchInput,\n ProjectionRunDispatchResult\n>\n\nexport interface ProjectionRunDispatcherDependencies {\n readonly id: string\n readonly definitions: Pick<SixbDefinitions, \"projections\">\n readonly lakeStorage: Pick<LakeStorage, \"getVersion\">\n readonly storage: Storage\n readonly queues: Pick<Queues, \"projections\">\n}\n\ntype PersistedProjectionRun =\n | { readonly publish: false; readonly run: ProjectionRunRecord }\n | {\n readonly publish: true\n readonly run: ProjectionRunRecord\n readonly queuedAt: Date\n readonly created: boolean\n }\n\n/** Core-owned durable dispatch boundary for immutable dataset-version materialization. */\nexport class ProjectionRunDispatcher implements ProjectionRunDispatchPort {\n constructor(private readonly dependencies: ProjectionRunDispatcherDependencies) {}\n\n async dispatch(input: ProjectionRunDispatchInput): Promise<ProjectionRunDispatchResult> {\n assertDispatchInput(input)\n const registry = getProjectionRegistry(this.dependencies)\n const descriptor = registry.resolveDispatch(input.projectionId)\n if (descriptor.datasetId !== input.datasetVersion.datasetId) {\n throw new ProjectionValidationError(\n `[Sixb] Projection '${input.projectionId}' consumes dataset '${descriptor.datasetId}', not '${input.datasetVersion.datasetId}'.`\n )\n }\n const projection = this.dependencies.definitions.projections.getById(input.projectionId)\n if (!projection) {\n throw new ProjectionValidationError(`[Sixb] Unknown projection '${input.projectionId}'.`)\n }\n const version = await this.dependencies.lakeStorage.getVersion(\n input.datasetVersion.datasetId,\n input.datasetVersion.versionId\n )\n if (!version || version.createdAt.toISOString() !== input.datasetVersion.createdAt) {\n throw new ProjectionValidationError(\n `[Sixb] Dataset '${input.datasetVersion.datasetId}' version '${input.datasetVersion.versionId}' does not match its immutable metadata.`\n )\n }\n if (version.mode === \"schema\") {\n throw new ProjectionValidationError(\n `[Sixb] Projection '${input.projectionId}' cannot materialize a schema-only dataset version.`\n )\n }\n\n const { datasetId: _datasetId, ...semanticIdentity } = descriptor\n const identity = {\n ...semanticIdentity,\n datasetVersion: structuredClone(input.datasetVersion),\n }\n const runId = createProjectionRunId(this.dependencies.id, identity)\n const projectionRuns = requireProjectionRunStorage(this.dependencies.storage)\n const existing = await projectionRuns.getById({ projectId: this.dependencies.id, id: runId })\n let persisted = existing\n ? await reuseProjectionRun(this.dependencies, existing, identity)\n : await persistProjectionRun({\n dependencies: this.dependencies,\n runId,\n identity,\n projection,\n producerExecution: await resolveProducerExecution(\n this.dependencies.storage,\n this.dependencies.id,\n version.producer\n ),\n })\n\n if (!persisted.publish && persisted.run.status === \"queued\") {\n persisted = await reuseProjectionRun(this.dependencies, persisted.run, identity)\n }\n if (!persisted.publish) return existingResult(persisted.run)\n return publishProjectionRun(this.dependencies, input.metadata, persisted)\n }\n}\n\nasync function persistProjectionRun(input: {\n readonly dependencies: ProjectionRunDispatcherDependencies\n readonly runId: string\n readonly identity: ProjectionRunRecord[\"identity\"]\n readonly projection: ProjectionDefinition\n readonly producerExecution: ExecutionRecord | null\n}): Promise<PersistedProjectionRun> {\n const execution = createPrimitiveExecutionRecord({\n id: `exec_${randomUUID()}`,\n primitive: { kind: \"projection\", id: input.identity.projectionId, runId: input.runId },\n origin: {\n type: \"automatic\",\n projectId: input.dependencies.id,\n source: {\n type: \"datasetVersion\",\n datasetId: input.identity.datasetVersion.datasetId,\n versionId: input.identity.datasetVersion.versionId,\n },\n correlationId: input.producerExecution?.correlationId ?? input.runId,\n requesterGroupIds: input.producerExecution?.requesterGroupIds,\n ...(input.producerExecution?.requestedBy === undefined\n ? {}\n : { requestedBy: input.producerExecution.requestedBy }),\n },\n })\n const queuedAt = new Date()\n\n try {\n return await input.dependencies.storage.transaction(\n async (tx): Promise<PersistedProjectionRun> => {\n const projectionRuns = requireProjectionRunStorage(tx)\n const raced = await projectionRuns.getById({\n projectId: input.dependencies.id,\n id: input.runId,\n })\n if (raced) {\n await assertExistingRun(tx, raced, input.identity)\n return { publish: false, run: raced }\n }\n await tx.executions.create(execution)\n const run = await queueProjectionRun(projectionRuns, {\n id: input.runId,\n projectId: input.dependencies.id,\n executionId: execution.id,\n identity: input.identity,\n projection: input.projection,\n queuedAt,\n })\n return { publish: true, run, queuedAt, created: true }\n },\n { isolation: \"serializable\" }\n )\n } catch (error) {\n if (!(error instanceof ProjectionRunError)) throw error\n const raced = await requireProjectionRunStorage(input.dependencies.storage).getById({\n projectId: input.dependencies.id,\n id: input.runId,\n })\n if (!raced) throw error\n await assertExistingRun(input.dependencies.storage, raced, input.identity)\n return { publish: false, run: raced }\n }\n}\n\nasync function reuseProjectionRun(\n dependencies: ProjectionRunDispatcherDependencies,\n existing: ProjectionRunRecord,\n identity: ProjectionRunRecord[\"identity\"]\n): Promise<PersistedProjectionRun> {\n await assertExistingRun(dependencies.storage, existing, identity)\n if (existing.status === \"queued\") {\n return { publish: true, run: existing, queuedAt: existing.queuedAt, created: false }\n }\n if (\n existing.status !== \"failed\" ||\n existing.error?.code !== \"queue.enqueue_failed\" ||\n !existing.error.retryable\n ) {\n return { publish: false, run: existing }\n }\n const queuedAt = new Date()\n const projectionRuns = requireProjectionRunStorage(dependencies.storage)\n try {\n const run = await requeueProjectionRun(projectionRuns, existing, queuedAt)\n return { publish: true, run, queuedAt, created: false }\n } catch (error) {\n if (!(error instanceof ProjectionRunError)) throw error\n const raced = await projectionRuns.getById({ projectId: existing.projectId, id: existing.id })\n if (\n !raced ||\n (raced.status === \"failed\" &&\n raced.error?.code === \"queue.enqueue_failed\" &&\n raced.error.retryable)\n ) {\n throw error\n }\n await assertExistingRun(dependencies.storage, raced, identity)\n return { publish: false, run: raced }\n }\n}\n\nasync function publishProjectionRun(\n dependencies: ProjectionRunDispatcherDependencies,\n metadata: Readonly<Record<string, string>> | undefined,\n persisted: Extract<PersistedProjectionRun, { readonly publish: true }>\n): Promise<ProjectionRunDispatchResult> {\n // Keep the run queued on uncertain publication; the caller retries the same identity.\n const [job] = await dependencies.queues.projections.enqueue({\n projectId: dependencies.id,\n jobs: [\n {\n id: persisted.run.id,\n type: \"projection.run.requested\",\n payload: { runId: persisted.run.id },\n ...(metadata === undefined ? {} : { metadata }),\n },\n ],\n })\n if (!job || job.id !== persisted.run.id) {\n throw new ProjectionRunError(\n `[Sixb] Queue did not acknowledge Projection run '${persisted.run.id}'.`\n )\n }\n return {\n projectionId: persisted.run.identity.projectionId,\n runId: persisted.run.id,\n queuedAt: persisted.queuedAt.toISOString(),\n ...(job?.id ? { jobId: job.id } : {}),\n created: persisted.created,\n }\n}\n\nasync function assertExistingRun(\n storage: Storage,\n run: ProjectionRunRecord,\n identity: ProjectionRunRecord[\"identity\"]\n): Promise<void> {\n assertProjectionRunIdentityMatches(run, identity)\n await assertProjectionRunDurableExecution({\n executions: storage.executions,\n projectId: run.projectId,\n executionId: run.executionId,\n runId: run.id,\n projectionId: run.identity.projectionId,\n datasetId: run.identity.datasetVersion.datasetId,\n datasetVersionId: run.identity.datasetVersion.versionId,\n })\n}\n\nasync function resolveProducerExecution(\n storage: Storage,\n projectId: string,\n producer: DatasetProducer | undefined\n): Promise<ExecutionRecord | null> {\n if (producer?.kind === \"ingest\") {\n return producer.id ? storage.executions.getById({ projectId, id: producer.id }) : null\n }\n if (!producer?.runId) return null\n if (producer.kind === \"sync\") {\n const run = await storage.syncRuns?.getById({ projectId, id: producer.runId })\n if (!run) return null\n assertProducerId(producer, run.syncId)\n return requireProducerExecution({\n executions: storage.executions,\n projectId,\n executionId: run.executionId,\n primitive: { kind: \"sync\", id: run.syncId, runId: run.id },\n })\n }\n\n const run = await storage.pipelineRuns?.getById({ projectId, id: producer.runId })\n if (!run) return null\n assertProducerId(producer, run.pipelineId)\n return requireProducerExecution({\n executions: storage.executions,\n projectId,\n executionId: run.executionId,\n primitive: { kind: \"pipeline\", id: run.pipelineId, runId: run.id },\n })\n}\n\nasync function requireProducerExecution(input: {\n readonly executions: Storage[\"executions\"]\n readonly projectId: string\n readonly executionId: string\n readonly primitive:\n | { readonly kind: \"sync\"; readonly id: string; readonly runId: string }\n | { readonly kind: \"pipeline\"; readonly id: string; readonly runId: string }\n}): Promise<ExecutionRecord> {\n const execution = await findPrimitiveRunExecution({\n executions: input.executions,\n projectId: input.projectId,\n executionId: input.executionId,\n primitive: input.primitive,\n sourceTypes: [\"execution\", \"schedule\", \"event\"],\n })\n if (execution) return execution\n throw new ProjectionValidationError(\n `[Sixb] Dataset producer run '${input.primitive.runId}' references an invalid execution.`\n )\n}\n\nfunction assertProducerId(producer: DatasetProducer, runOwnerId: string): void {\n if (producer.id === undefined || producer.id === runOwnerId) return\n throw new ProjectionValidationError(\n `[Sixb] Dataset producer '${producer.kind}:${producer.id}' does not match run '${producer.runId}'.`\n )\n}\n\nfunction requireProjectionRunStorage(storage: Storage): NonNullable<Storage[\"projectionRuns\"]> {\n if (storage.projectionRuns) return storage.projectionRuns\n throw new ProjectionValidationError(\"[Sixb] Projection run storage is not configured.\")\n}\n\nfunction queueProjectionRun(\n storage: NonNullable<Storage[\"projectionRuns\"]>,\n input: {\n readonly id: string\n readonly projectId: string\n readonly executionId: string\n readonly identity: ProjectionRunRecord[\"identity\"]\n readonly projection: ProjectionDefinition\n readonly queuedAt: Date\n }\n): Promise<ProjectionRunRecord> {\n const common = {\n id: input.id,\n projectId: input.projectId,\n executionId: input.executionId,\n queuedAt: input.queuedAt,\n }\n switch (input.projection._tag) {\n case \"ObjectProjectionDefinition\":\n if (input.identity.projectionKind !== \"object\") {\n throw invalidProjectionDefinition(input.id)\n }\n return storage.queue({\n ...common,\n identity: input.identity,\n target: { objectTypeId: input.projection.objectTypeId },\n })\n case \"LinkProjectionDefinition\":\n if (input.identity.projectionKind !== \"link\") {\n throw invalidProjectionDefinition(input.id)\n }\n return storage.queue({\n ...common,\n identity: input.identity,\n target: {\n sourceObjectTypeId: input.projection.sourceObjectTypeId,\n targetObjectTypeId: input.projection.targetObjectTypeId,\n },\n })\n case \"TelemetryProjectionDefinition\":\n if (input.identity.projectionKind !== \"telemetry\") {\n throw invalidProjectionDefinition(input.id)\n }\n return storage.queue({\n ...common,\n identity: input.identity,\n target: { objectTypeId: input.projection.objectTypeId },\n fixedBatchSize: telemetryProjectionBatchRowCount(input.projection),\n })\n }\n}\n\nfunction telemetryProjectionBatchRowCount(\n projection: Extract<ProjectionDefinition, { readonly _tag: \"TelemetryProjectionDefinition\" }>\n): number {\n const mappedPropertyCount = Object.keys(projection.properties).length\n if (mappedPropertyCount === 0) throw invalidProjectionDefinition(projection.id)\n return Math.max(1, Math.floor(PROJECTION_TELEMETRY_BATCH_SIZE / mappedPropertyCount))\n}\n\nfunction requeueProjectionRun(\n storage: NonNullable<Storage[\"projectionRuns\"]>,\n run: ProjectionRunRecord,\n queuedAt: Date\n): Promise<ProjectionRunRecord> {\n const common = {\n id: run.id,\n projectId: run.projectId,\n executionId: run.executionId,\n queuedAt,\n }\n switch (run.identity.projectionKind) {\n case \"object\": {\n if (!(\"objectTypeId\" in run.target)) throw invalidProjectionDefinition(run.id)\n return storage.queue({ ...common, identity: run.identity, target: run.target })\n }\n case \"link\": {\n if (!(\"sourceObjectTypeId\" in run.target)) throw invalidProjectionDefinition(run.id)\n return storage.queue({ ...common, identity: run.identity, target: run.target })\n }\n case \"telemetry\": {\n if (!(\"objectTypeId\" in run.target) || !run.telemetryCheckpoint) {\n throw invalidProjectionDefinition(run.id)\n }\n return storage.queue({\n ...common,\n identity: run.identity,\n target: run.target,\n fixedBatchSize: run.telemetryCheckpoint.fixedBatchSize,\n })\n }\n }\n}\n\nfunction invalidProjectionDefinition(runId: string): ProjectionValidationError {\n return new ProjectionValidationError(\n `[Sixb] Projection run '${runId}' has inconsistent definition metadata.`\n )\n}\n\nfunction existingResult(run: ProjectionRunRecord): ProjectionRunDispatchResult {\n return {\n projectionId: run.identity.projectionId,\n runId: run.id,\n queuedAt: run.queuedAt.toISOString(),\n created: false,\n }\n}\n\nfunction assertDispatchInput(input: ProjectionRunDispatchInput): void {\n for (const [field, value] of [\n [\"projectionId\", input.projectionId],\n [\"datasetId\", input.datasetVersion.datasetId],\n [\"versionId\", input.datasetVersion.versionId],\n ] as const) {\n if (!value.trim())\n throw new ProjectionValidationError(`[Sixb] Projection ${field} is required.`)\n }\n const timestamp = Date.parse(input.datasetVersion.createdAt)\n if (\n !Number.isFinite(timestamp) ||\n new Date(timestamp).toISOString() !== input.datasetVersion.createdAt\n ) {\n throw new ProjectionValidationError(\"[Sixb] Projection dataset version timestamp is invalid.\")\n }\n}\n",
|
|
7
|
+
"import { sha256Canonical } from \"../materialization/identity\"\nimport type { ProjectionMaterializationIdentity } from \"../materialization/model\"\n\nexport function createProjectionRunId(\n projectId: string,\n identity: ProjectionMaterializationIdentity\n): string {\n return sha256Canonical({\n projectId,\n projectionId: identity.projectionId,\n projectionKind: identity.projectionKind,\n protocol: identity.protocol,\n datasetId: identity.datasetVersion.datasetId,\n versionId: identity.datasetVersion.versionId,\n createdAt: identity.datasetVersion.createdAt,\n ontologyRevision: identity.ontologyRevision,\n projectionRevision: identity.projectionRevision,\n ownershipHash: identity.ownershipHash,\n })\n}\n"
|
|
8
|
+
],
|
|
9
|
+
"mappings": "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",
|
|
10
|
+
"debugId": "62D632045115139564756E2164756E21",
|
|
11
|
+
"names": []
|
|
12
|
+
}
|