@powerhousedao/powerhouse-vetra-packages 6.2.3-dev.9 → 6.2.3-staging.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 (117) hide show
  1. package/dist/browser/assets/{entry-DSBtQnit.js → entry-D62sYiFV.js} +10 -6
  2. package/dist/browser/assets/{projection-entry-Bem3exmO.js → projection-entry-BGcu_9-p.js} +62 -20
  3. package/dist/browser/document-models/index.js +2 -1
  4. package/dist/browser/{documents-J_l59mSV.js → documents-CRzouuNR.js} +631 -752
  5. package/dist/browser/documents-CRzouuNR.js.map +1 -0
  6. package/dist/browser/editor-C7KBR_ar.js +4676 -0
  7. package/dist/browser/editor-C7KBR_ar.js.map +1 -0
  8. package/dist/browser/{editor-CbGnfPVs.js → editor-CiR6XQBO.js} +4 -5
  9. package/dist/browser/{editor-CbGnfPVs.js.map → editor-CiR6XQBO.js.map} +1 -1
  10. package/dist/browser/editors/document-model-editor/module.js +1 -1
  11. package/dist/browser/editors/document-model-editor/module.js.map +1 -1
  12. package/dist/browser/editors/generic-drive-explorer/index.js +81 -65
  13. package/dist/browser/editors/generic-drive-explorer/index.js.map +1 -1
  14. package/dist/browser/editors/generic-drive-explorer/module.js +1 -1
  15. package/dist/browser/editors/generic-drive-explorer/module.js.map +1 -1
  16. package/dist/browser/folder-view-DSgXN79D.js +4409 -0
  17. package/dist/browser/folder-view-DSgXN79D.js.map +1 -0
  18. package/dist/browser/{graphql-editor-CuiExsfF.js → graphql-editor-Cgi5UOrF.js} +98 -88
  19. package/dist/browser/graphql-editor-Cgi5UOrF.js.map +1 -0
  20. package/dist/{node/hooks-D0DcS3MV.mjs → browser/hooks-eQxBX7g4.js} +824 -444
  21. package/dist/browser/{hooks-KKcNp2X0.js.map → hooks-eQxBX7g4.js.map} +1 -1
  22. package/dist/browser/index.js +137 -34
  23. package/dist/browser/index.js.map +1 -1
  24. package/dist/browser/{json-editor-DqRiIY49.js → json-editor-DfRD-pfk.js} +8 -9
  25. package/dist/browser/{json-editor-DqRiIY49.js.map → json-editor-DfRD-pfk.js.map} +1 -1
  26. package/dist/browser/{parser-CkF6Qt8V.js → parser-DtbeHA3H.js} +7 -6
  27. package/dist/browser/{parser-CkF6Qt8V.js.map → parser-DtbeHA3H.js.map} +1 -1
  28. package/dist/browser/rolldown-runtime-DC62tzP2.js +33 -0
  29. package/dist/browser/src-CrUksCLW-B2dkRdgq.js +5254 -0
  30. package/dist/browser/src-CrUksCLW-B2dkRdgq.js.map +1 -0
  31. package/dist/browser/state-schemas-B5Bk_l1s.js +696 -0
  32. package/dist/browser/state-schemas-B5Bk_l1s.js.map +1 -0
  33. package/dist/browser/tslib.es6-Cno80yFJ.js +32 -0
  34. package/dist/browser/tslib.es6-Cno80yFJ.js.map +1 -0
  35. package/dist/node/document-models/index.mjs +2 -1
  36. package/dist/node/documents-D70S9PZL.mjs +17 -0
  37. package/dist/node/documents-D70S9PZL.mjs.map +1 -0
  38. package/dist/node/editor-96sMeumV.mjs +4597 -0
  39. package/dist/node/editor-96sMeumV.mjs.map +1 -0
  40. package/dist/node/{editor-DCN8dGJA.mjs → editor-wqvKwcO5.mjs} +4 -5
  41. package/dist/node/{editor-DCN8dGJA.mjs.map → editor-wqvKwcO5.mjs.map} +1 -1
  42. package/dist/node/editors/document-model-editor/module.mjs +1 -1
  43. package/dist/node/editors/document-model-editor/module.mjs.map +1 -1
  44. package/dist/node/editors/generic-drive-explorer/index.mjs +26 -21
  45. package/dist/node/editors/generic-drive-explorer/index.mjs.map +1 -1
  46. package/dist/node/editors/generic-drive-explorer/module.mjs +1 -1
  47. package/dist/node/editors/generic-drive-explorer/module.mjs.map +1 -1
  48. package/dist/node/folder-view-ktfv2Cvw.mjs +4409 -0
  49. package/dist/node/folder-view-ktfv2Cvw.mjs.map +1 -0
  50. package/dist/node/{graphql-BfAoPeWM.mjs → graphql-Dp4j7rmx.mjs} +50 -49
  51. package/dist/node/{graphql-BfAoPeWM.mjs.map → graphql-Dp4j7rmx.mjs.map} +1 -1
  52. package/dist/node/{graphql-editor-C38uott6.mjs → graphql-editor-CBJXEY_C.mjs} +77 -63
  53. package/dist/node/graphql-editor-CBJXEY_C.mjs.map +1 -0
  54. package/dist/{browser/hooks-KKcNp2X0.js → node/hooks-C2b46djt.mjs} +824 -444
  55. package/dist/node/{hooks-D0DcS3MV.mjs.map → hooks-C2b46djt.mjs.map} +1 -1
  56. package/dist/node/index.mjs +158 -35
  57. package/dist/node/index.mjs.map +1 -1
  58. package/dist/node/{json-editor-BM2wc5Zz.mjs → json-editor-DaqHARBD.mjs} +8 -9
  59. package/dist/node/{json-editor-BM2wc5Zz.mjs.map → json-editor-DaqHARBD.mjs.map} +1 -1
  60. package/dist/node/{schema-context-DL8jhi_d.mjs → schema-context-CojjnSE6.mjs} +6 -5
  61. package/dist/node/schema-context-CojjnSE6.mjs.map +1 -0
  62. package/dist/node/src-CrUksCLW-TvF37aMo.mjs +5935 -0
  63. package/dist/node/src-CrUksCLW-TvF37aMo.mjs.map +1 -0
  64. package/dist/node/state-schemas-BHuo0GPl.mjs +698 -0
  65. package/dist/node/state-schemas-BHuo0GPl.mjs.map +1 -0
  66. package/dist/node/{main-BhH_ajBM.mjs → tslib.es6-VORZjfk3.mjs} +40 -202
  67. package/dist/node/tslib.es6-VORZjfk3.mjs.map +1 -0
  68. package/package.json +12 -11
  69. package/dist/browser/button-CuO8Gh3v.js +0 -696
  70. package/dist/browser/button-CuO8Gh3v.js.map +0 -1
  71. package/dist/browser/connect-CDHt0LA4.js +0 -14328
  72. package/dist/browser/connect-CDHt0LA4.js.map +0 -1
  73. package/dist/browser/dist-B4FWbuEM.js +0 -4148
  74. package/dist/browser/dist-B4FWbuEM.js.map +0 -1
  75. package/dist/browser/dist-BAJ5nRDl.js +0 -2711
  76. package/dist/browser/dist-BAJ5nRDl.js.map +0 -1
  77. package/dist/browser/dist-Csb8sxU2.js +0 -4641
  78. package/dist/browser/dist-Csb8sxU2.js.map +0 -1
  79. package/dist/browser/document-drive-fcQ4o8i3.js +0 -8320
  80. package/dist/browser/document-drive-fcQ4o8i3.js.map +0 -1
  81. package/dist/browser/documents-J_l59mSV.js.map +0 -1
  82. package/dist/browser/editor-DWqW8FJ2.js +0 -1809
  83. package/dist/browser/editor-DWqW8FJ2.js.map +0 -1
  84. package/dist/browser/folder-view-DxzbfZuY.js +0 -232
  85. package/dist/browser/folder-view-DxzbfZuY.js.map +0 -1
  86. package/dist/browser/graphql-editor-CuiExsfF.js.map +0 -1
  87. package/dist/browser/lib-CPkPeg_u.js +0 -209
  88. package/dist/browser/lib-CPkPeg_u.js.map +0 -1
  89. package/dist/browser/printer-CEYr4JOg.js +0 -604
  90. package/dist/browser/printer-CEYr4JOg.js.map +0 -1
  91. package/dist/browser/schema-context-ZyeclQwy.js +0 -69
  92. package/dist/browser/schema-context-ZyeclQwy.js.map +0 -1
  93. package/dist/browser/state-schemas-DZB9PFEk.js +0 -298
  94. package/dist/browser/state-schemas-DZB9PFEk.js.map +0 -1
  95. package/dist/node/button-Da7CxMn7.mjs +0 -678
  96. package/dist/node/button-Da7CxMn7.mjs.map +0 -1
  97. package/dist/node/connect-D7y1D5hm.mjs +0 -15022
  98. package/dist/node/connect-D7y1D5hm.mjs.map +0 -1
  99. package/dist/node/dist-CTcqTvC6.mjs +0 -4649
  100. package/dist/node/dist-CTcqTvC6.mjs.map +0 -1
  101. package/dist/node/dist-CzYOpeXN.mjs +0 -2711
  102. package/dist/node/dist-CzYOpeXN.mjs.map +0 -1
  103. package/dist/node/dist-DT7jI9ol.mjs +0 -4148
  104. package/dist/node/dist-DT7jI9ol.mjs.map +0 -1
  105. package/dist/node/document-drive-DuGBBYw5.mjs +0 -8337
  106. package/dist/node/document-drive-DuGBBYw5.mjs.map +0 -1
  107. package/dist/node/documents-DCf53bzO.mjs +0 -747
  108. package/dist/node/documents-DCf53bzO.mjs.map +0 -1
  109. package/dist/node/editor-BU3YRt7c.mjs +0 -1809
  110. package/dist/node/editor-BU3YRt7c.mjs.map +0 -1
  111. package/dist/node/folder-view-DrRUOAcf.mjs +0 -232
  112. package/dist/node/folder-view-DrRUOAcf.mjs.map +0 -1
  113. package/dist/node/graphql-editor-C38uott6.mjs.map +0 -1
  114. package/dist/node/main-BhH_ajBM.mjs.map +0 -1
  115. package/dist/node/schema-context-DL8jhi_d.mjs.map +0 -1
  116. package/dist/node/state-schemas--x-Yb4EP.mjs +0 -299
  117. package/dist/node/state-schemas--x-Yb4EP.mjs.map +0 -1
@@ -1,6 +1,5 @@
1
- import { o as instrumentPgPool } from "./drive-container-types-aO-PASn7.js";
2
- import { n as errorToInfo, t as createForwardingLogger } from "./forwarding-logger-BBkMSxuJ.js";
3
- import { n as defaultLoadFactory, t as buildWorkerExecutor } from "./build-worker-executor-BN30c2xw.js";
1
+ import { n as errorToInfo, t as createForwardingLogger, u as instrumentPgPool } from "./forwarding-logger-BkwlvD9W.js";
2
+ import { n as defaultLoadFactory, t as buildWorkerExecutor } from "./build-worker-executor-BonPsKdx.js";
4
3
  import { ConsoleLogger } from "document-model";
5
4
  import { isMainThread, parentPort } from "node:worker_threads";
6
5
  //#region src/executor/worker/run-worker.ts
@@ -38,7 +37,7 @@ async function defaultCreateDatabase(config, workerId) {
38
37
  /**
39
38
  * Drives the worker's message loop. Owns lifecycle of the database handle
40
39
  * and executor stack. The default factories build a real Postgres pool and
41
- * use dynamic `import()` for model/verifier specs; tests inject overrides
40
+ * use dynamic `import()` for model/signer specs; tests inject overrides
42
41
  * for an in-process PGlite path.
43
42
  */
44
43
  function runWorker(parentPort, overrides = {}) {
@@ -146,11 +145,16 @@ function runWorker(parentPort, overrides = {}) {
146
145
  return;
147
146
  }
148
147
  try {
148
+ const result = await executorStack.executor.executeJob(job);
149
+ const writeReady = executorStack.takeLastWriteReady();
150
+ const signatureRefusals = executorStack.takeSignatureRefusals();
149
151
  post({
150
152
  type: "result",
151
153
  correlationId,
152
- result: await executorStack.executor.executeJob(job),
153
- writeReady: executorStack.takeLastWriteReady() ?? void 0
154
+ result,
155
+ writeReady: writeReady ?? void 0,
156
+ signatureRefusals: signatureRefusals.length > 0 ? signatureRefusals : void 0,
157
+ error: !result.success && result.error ? errorToInfo(result.error) : void 0
154
158
  });
155
159
  } catch (error) {
156
160
  post({
@@ -1,8 +1,6 @@
1
- import { _ as DocumentMetaCache, c as KyselyKeyframeStore, g as KyselyOperationIndex, h as KyselyWriteCache, l as DocumentModelRegistry, m as EventBus, n as REACTOR_SCHEMA, o as instrumentPgPool, s as KyselyOperationStore, v as CollectionMembershipCache } from "./drive-container-types-aO-PASn7.js";
2
- import { n as ReactorEventTypes } from "./types-DMKLa0Ok.js";
3
- import { i as KyselyDocumentView, n as ConsistencyTracker, s as ReadModelCoordinator, t as KyselyDocumentIndexer } from "./document-indexer-CDX1D2RZ.js";
4
- import { n as errorToInfo, t as createForwardingLogger } from "./forwarding-logger-BBkMSxuJ.js";
5
- import { n as defaultLoadFactory } from "./build-worker-executor-BN30c2xw.js";
1
+ import { C as SettledWatermark, O as DocumentMetaCache, b as KyselyWriteCache, d as KyselyOperationStore, f as KyselyKeyframeStore, k as CollectionMembershipCache, mt as ReactorEventTypes, n as errorToInfo, o as REACTOR_SCHEMA, p as DocumentModelRegistry, t as createForwardingLogger, u as instrumentPgPool, w as createKyselyWatermarkProbe, x as KyselyOperationIndex, y as EventBus } from "./forwarding-logger-BkwlvD9W.js";
2
+ import { a as KyselyDocumentView, c as ReadModelCoordinator, f as BaseReadModel, n as ConsistencyTracker, t as KyselyDocumentIndexer, y as CatchUpScheduler } from "./document-indexer-I6i_YzsR.js";
3
+ import { n as defaultLoadFactory } from "./build-worker-executor-BonPsKdx.js";
6
4
  import { ConsoleLogger } from "document-model";
7
5
  import { isMainThread, parentPort } from "node:worker_threads";
8
6
  //#region src/projection/projection-worker/build-projection-stack.ts
@@ -22,14 +20,11 @@ async function loadModelManifest(entries, loadFactory, registry, logger) {
22
20
  }
23
21
  }
24
22
  }
25
- function instantiateReadModel(kind, database, operationStore, operationIndex, writeCache) {
23
+ function instantiateReadModel(kind, database, operationStore, operationIndex, writeCache, indexing) {
26
24
  switch (kind) {
27
- case "document-view": return new KyselyDocumentView(database, operationStore, operationIndex, writeCache, new ConsistencyTracker(), false);
28
- case "document-indexer": return new KyselyDocumentIndexer(database, operationIndex, writeCache, new ConsistencyTracker());
29
- default: {
30
- const exhaustive = kind;
31
- throw new Error(`unknown built-in read model kind: ${String(exhaustive)}`);
32
- }
25
+ case "document-view": return new KyselyDocumentView(database, operationStore, operationIndex, writeCache, new ConsistencyTracker(), "NotFound", indexing);
26
+ case "document-indexer": return new KyselyDocumentIndexer(database, operationIndex, writeCache, new ConsistencyTracker(), indexing);
27
+ default: throw new Error(`unknown built-in read model kind: ${String(kind)}`);
33
28
  }
34
29
  }
35
30
  async function initReadModels(models, logger) {
@@ -44,6 +39,31 @@ async function initReadModels(models, logger) {
44
39
  }
45
40
  }
46
41
  }
42
+ /** Posts what each sweep applied, so the host's tracker for the model advances. */
43
+ function relaySweeps(model, events) {
44
+ return {
45
+ get consumerId() {
46
+ return model.consumerId;
47
+ },
48
+ get appliedThrough() {
49
+ return model.appliedThrough;
50
+ },
51
+ get trackedAbove() {
52
+ return model.trackedAbove;
53
+ },
54
+ async sweep(settledThrough, present, signal) {
55
+ const coordinates = [];
56
+ const unsubscribe = model.onSwept((swept) => coordinates.push(...swept));
57
+ try {
58
+ const result = await model.sweep(settledThrough, present, signal);
59
+ if (coordinates.length > 0 || result.to > result.from || result.replayed > 0 || result.blockedAt !== void 0) events.onReadModelSwept(model.name, coordinates, result);
60
+ return result;
61
+ } finally {
62
+ unsubscribe();
63
+ }
64
+ }
65
+ };
66
+ }
47
67
  async function buildProjectionStack(options) {
48
68
  const { init, database: baseDatabase, logger, events } = options;
49
69
  const loadFactory = options.loadFactory ?? defaultLoadFactory;
@@ -51,7 +71,8 @@ async function buildProjectionStack(options) {
51
71
  await loadModelManifest(init.models, loadFactory, registry, logger);
52
72
  const database = baseDatabase.withSchema(REACTOR_SCHEMA);
53
73
  const operationStore = new KyselyOperationStore(database);
54
- const writeCache = new KyselyWriteCache(new KyselyKeyframeStore(database), operationStore, registry, {
74
+ const keyframeStore = new KyselyKeyframeStore(database);
75
+ const writeCache = new KyselyWriteCache(keyframeStore, operationStore, registry, {
55
76
  maxDocuments: 100,
56
77
  ringBufferSize: 10,
57
78
  keyframeInterval: 10
@@ -60,9 +81,15 @@ async function buildProjectionStack(options) {
60
81
  const operationIndex = new KyselyOperationIndex(database);
61
82
  await new DocumentMetaCache(operationStore, { maxDocuments: 1e3 }).startup();
62
83
  new CollectionMembershipCache(operationIndex);
63
- const preReady = init.preReadyKinds.map((kind) => instantiateReadModel(kind, database, operationStore, operationIndex, writeCache));
64
- const postReady = init.postReadyKinds.map((kind) => instantiateReadModel(kind, database, operationStore, operationIndex, writeCache));
65
- await initReadModels([...preReady, ...postReady], logger);
84
+ const preReady = init.preReadyKinds.map((kind) => instantiateReadModel(kind, database, operationStore, operationIndex, writeCache, init.indexing));
85
+ const postReady = init.postReadyKinds.map((kind) => instantiateReadModel(kind, database, operationStore, operationIndex, writeCache, init.indexing));
86
+ const watermark = new SettledWatermark(createKyselyWatermarkProbe(database), logger);
87
+ const catchUp = new CatchUpScheduler(watermark, operationIndex, init.catchUp, logger);
88
+ const models = [...preReady, ...postReady];
89
+ for (const model of models) if (model instanceof BaseReadModel) model.attachCatchUp(watermark, init.catchUp.maxTrackedAboveCursor);
90
+ await initReadModels(models, logger);
91
+ for (const model of models) if (model instanceof BaseReadModel) catchUp.addConsumer(relaySweeps(model, events), "projection");
92
+ catchUp.start();
66
93
  const eventBus = new EventBus();
67
94
  const subscriptions = [];
68
95
  subscriptions.push(eventBus.subscribe(ReactorEventTypes.JOB_READ_READY, (_t, event) => {
@@ -86,13 +113,16 @@ async function buildProjectionStack(options) {
86
113
  getChainDepth() {
87
114
  return coordinator.getChainDepth();
88
115
  },
116
+ catchUpStatus() {
117
+ return catchUp.status();
118
+ },
89
119
  async drain() {
90
120
  await coordinator.drain();
91
121
  },
92
- shutdown() {
122
+ async shutdown() {
123
+ await catchUp.stop();
93
124
  coordinator.stop();
94
125
  for (const unsub of subscriptions) unsub();
95
- return Promise.resolve();
96
126
  }
97
127
  };
98
128
  }
@@ -213,6 +243,11 @@ function runProjectionWorker(parentPort, overrides = {}) {
213
243
  if (intervalMs <= 0) return;
214
244
  depthTimer = setInterval(() => {
215
245
  if (!stack) return;
246
+ post({
247
+ type: "catchup-status",
248
+ shardId,
249
+ status: stack.catchUpStatus()
250
+ });
216
251
  const depth = stack.getChainDepth();
217
252
  if (depth === lastReportedDepth) return;
218
253
  lastReportedDepth = depth;
@@ -261,6 +296,15 @@ function runProjectionWorker(parentPort, overrides = {}) {
261
296
  success: event.success
262
297
  });
263
298
  },
299
+ onReadModelSwept: (readModelName, coordinates, result) => {
300
+ post({
301
+ type: "readmodel-swept",
302
+ shardId,
303
+ readModelName,
304
+ coordinates,
305
+ result
306
+ });
307
+ },
264
308
  onBatchCompleted: (event) => {
265
309
  post({
266
310
  type: "readmodel-batch-completed",
@@ -380,8 +424,6 @@ function runProjectionWorker(parentPort, overrides = {}) {
380
424
  });
381
425
  process.exit(0);
382
426
  });
383
- break;
384
- default: break;
385
427
  }
386
428
  }
387
429
  parentPort.on("message", handleParentMessage);
@@ -1,2 +1,3 @@
1
- import { p as documentModelDocumentModelModule, r as driveDocumentModelModule } from "../document-drive-fcQ4o8i3.js";
1
+ import { documentModelDocumentModelModule } from "document-model";
2
+ import { driveDocumentModelModule } from "@powerhousedao/shared/document-drive";
2
3
  export { documentModelDocumentModelModule, driveDocumentModelModule };