@noy-db/hub 0.2.0-pre.26 → 0.2.0-pre.28

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 (182) hide show
  1. package/dist/aggregate/index.cjs +7 -0
  2. package/dist/aggregate/index.cjs.map +1 -1
  3. package/dist/aggregate/index.d.cts +2 -2
  4. package/dist/aggregate/index.d.ts +2 -2
  5. package/dist/aggregate/index.js +2 -2
  6. package/dist/attestation/index.cjs.map +1 -1
  7. package/dist/attestation/index.d.cts +3 -3
  8. package/dist/attestation/index.d.ts +3 -3
  9. package/dist/attestation/index.js +4 -4
  10. package/dist/blobs/index.cjs.map +1 -1
  11. package/dist/blobs/index.d.cts +5 -5
  12. package/dist/blobs/index.d.ts +5 -5
  13. package/dist/blobs/index.js +4 -4
  14. package/dist/bundle/index.cjs +403 -149
  15. package/dist/bundle/index.cjs.map +1 -1
  16. package/dist/bundle/index.d.cts +5 -5
  17. package/dist/bundle/index.d.ts +5 -5
  18. package/dist/bundle/index.js +8 -8
  19. package/dist/{chunk-PS6PSEZL.js → chunk-2M62POB5.js} +3 -3
  20. package/dist/{chunk-C7UIT5XY.js → chunk-345PYZD6.js} +2 -2
  21. package/dist/{chunk-56ENKU46.js → chunk-3LHTFCU2.js} +186 -161
  22. package/dist/chunk-3LHTFCU2.js.map +1 -0
  23. package/dist/{chunk-ANLOD6IS.js → chunk-42EGY2FQ.js} +3 -3
  24. package/dist/{chunk-KJ37E3R5.js → chunk-4FHKQDHN.js} +2 -2
  25. package/dist/{chunk-KD253AI5.js → chunk-6LD37AMK.js} +22 -3
  26. package/dist/chunk-6LD37AMK.js.map +1 -0
  27. package/dist/{chunk-EYZJULEN.js → chunk-7GKDVWMD.js} +2 -2
  28. package/dist/{chunk-N4EXCKWP.js → chunk-7TBCLM52.js} +2 -2
  29. package/dist/{chunk-VJNV2GRF.js → chunk-AHDQYG7P.js} +3 -3
  30. package/dist/{chunk-ZCBJIDT4.js → chunk-DCYWBKQ2.js} +2 -2
  31. package/dist/{chunk-Y5CTT6K5.js → chunk-DMWUOV7X.js} +2 -2
  32. package/dist/{chunk-RZOGD7IF.js → chunk-DQ6XF2K2.js} +6 -6
  33. package/dist/{chunk-OCRDV3NU.js → chunk-ENC4C6XW.js} +3 -3
  34. package/dist/{chunk-FCIZXX56.js → chunk-GVEUI7VR.js} +2 -2
  35. package/dist/{chunk-WVYL6HM7.js → chunk-HI7FY7QZ.js} +2 -2
  36. package/dist/{chunk-JJKXJAH2.js → chunk-HQ242WNG.js} +3 -3
  37. package/dist/{chunk-GHXOVGTX.js → chunk-IMY4FXYE.js} +3 -3
  38. package/dist/{chunk-YP2AYE5W.js → chunk-JEQB2KVI.js} +2 -2
  39. package/dist/chunk-M2VZQ24Q.js +220 -0
  40. package/dist/chunk-M2VZQ24Q.js.map +1 -0
  41. package/dist/{chunk-HUXDQIVU.js → chunk-PPF7Z2YQ.js} +2 -2
  42. package/dist/{chunk-2RHBFCWQ.js → chunk-QBC2TZHC.js} +3 -3
  43. package/dist/{chunk-LR7CODVN.js → chunk-QSLIT4JZ.js} +1 -1
  44. package/dist/chunk-QSLIT4JZ.js.map +1 -0
  45. package/dist/{chunk-TSUICI5N.js → chunk-RG5KLMEU.js} +2 -2
  46. package/dist/{chunk-GPZHHTJU.js → chunk-SWGVCSIY.js} +2 -2
  47. package/dist/{chunk-UNBX2HMA.js → chunk-VSL3W2MO.js} +2 -2
  48. package/dist/{chunk-VGAN5RLD.js → chunk-WH7G2YEE.js} +2 -2
  49. package/dist/{chunk-QYQRAOEF.js → chunk-YYLFXX2K.js} +2 -2
  50. package/dist/consent/index.d.cts +4 -4
  51. package/dist/consent/index.d.ts +4 -4
  52. package/dist/{decrypt-partition-CyyJUWLR.d.ts → decrypt-partition-BtGtE-19.d.ts} +1 -1
  53. package/dist/{decrypt-partition-C71vhnND.d.cts → decrypt-partition-Cqi5gcOl.d.cts} +1 -1
  54. package/dist/derivations/index.d.cts +5 -5
  55. package/dist/derivations/index.d.ts +5 -5
  56. package/dist/{dev-unlock-BdrE0kbS.d.cts → dev-unlock-Cts_iiVv.d.cts} +1 -1
  57. package/dist/{dev-unlock-ByBkl99-.d.ts → dev-unlock-D0p9cQzN.d.ts} +1 -1
  58. package/dist/{executor-BIW4FT5R.js → executor-PJHMRZWJ.js} +4 -4
  59. package/dist/{fanout-sidecar-ZQT4Y7PF.js → fanout-sidecar-DSBVAR2P.js} +2 -2
  60. package/dist/forget/index.js +2 -2
  61. package/dist/guards/index.d.cts +5 -5
  62. package/dist/guards/index.d.ts +5 -5
  63. package/dist/{hash-CZxVv8RH.d.ts → hash-BtDtwguU.d.ts} +1 -1
  64. package/dist/{hash-BUkDp_8Q.d.cts → hash-DA75XwW2.d.cts} +1 -1
  65. package/dist/history/index.cjs.map +1 -1
  66. package/dist/history/index.d.cts +5 -5
  67. package/dist/history/index.d.ts +5 -5
  68. package/dist/history/index.js +3 -3
  69. package/dist/i18n/index.cjs +98 -1
  70. package/dist/i18n/index.cjs.map +1 -1
  71. package/dist/i18n/index.d.cts +4 -4
  72. package/dist/i18n/index.d.ts +4 -4
  73. package/dist/i18n/index.js +83 -4
  74. package/dist/i18n/index.js.map +1 -1
  75. package/dist/{index-DFhKV-6A.d.ts → index-BidHvmWf.d.ts} +3 -3
  76. package/dist/{index-CBUhOmrM.d.cts → index-CP24aYCp.d.cts} +3 -3
  77. package/dist/{index-DoxKSsMj.d.cts → index-CVnt2Qmq.d.cts} +1 -1
  78. package/dist/{index-LaexBi3v.d.ts → index-DxBNV54L.d.ts} +1 -1
  79. package/dist/index.cjs +411 -146
  80. package/dist/index.cjs.map +1 -1
  81. package/dist/index.d.cts +14 -14
  82. package/dist/index.d.ts +14 -14
  83. package/dist/index.js +24 -23
  84. package/dist/index.js.map +1 -1
  85. package/dist/{issue-LEBPVF3Y.js → issue-JSGGSVY4.js} +4 -4
  86. package/dist/kernel/index.cjs +61 -0
  87. package/dist/kernel/index.cjs.map +1 -1
  88. package/dist/kernel/index.d.cts +4 -4
  89. package/dist/kernel/index.d.ts +4 -4
  90. package/dist/kernel/index.js +9 -2
  91. package/dist/{ledger-FLRTSOYH.js → ledger-PLMSH7LD.js} +3 -3
  92. package/dist/materialized-views/index.cjs +7 -0
  93. package/dist/materialized-views/index.cjs.map +1 -1
  94. package/dist/materialized-views/index.d.cts +5 -5
  95. package/dist/materialized-views/index.d.ts +5 -5
  96. package/dist/materialized-views/index.js +4 -4
  97. package/dist/{mime-magic-C1UbcBxP.d.ts → mime-magic--NcogI82.d.ts} +1 -1
  98. package/dist/{mime-magic-BAhLjkHw.d.cts → mime-magic-i2VSlkPM.d.cts} +1 -1
  99. package/dist/noydb-PHXA5E6I.js +39 -0
  100. package/dist/overlay-views/index.d.cts +5 -5
  101. package/dist/overlay-views/index.d.ts +5 -5
  102. package/dist/periods/index.cjs.map +1 -1
  103. package/dist/periods/index.d.cts +4 -4
  104. package/dist/periods/index.d.ts +4 -4
  105. package/dist/periods/index.js +3 -3
  106. package/dist/{public-envelope-DBKJEBBF.js → public-envelope-7MTH2PVE.js} +3 -3
  107. package/dist/query/index.cjs +7 -0
  108. package/dist/query/index.cjs.map +1 -1
  109. package/dist/query/index.d.cts +2 -2
  110. package/dist/query/index.d.ts +2 -2
  111. package/dist/query/index.js +3 -3
  112. package/dist/{revoke-P5D3UTRX.js → revoke-DBAGKIDA.js} +4 -4
  113. package/dist/session/index.d.cts +5 -5
  114. package/dist/session/index.d.ts +5 -5
  115. package/dist/shadow/index.d.cts +4 -4
  116. package/dist/shadow/index.d.ts +4 -4
  117. package/dist/{signer-NEQPCHMW.js → signer-ADFJNS5W.js} +3 -3
  118. package/dist/snapshots/index.d.cts +4 -4
  119. package/dist/snapshots/index.d.ts +4 -4
  120. package/dist/snapshots/index.js +3 -3
  121. package/dist/{stale-KKCHF2VB.js → stale-BCIE3SMC.js} +2 -2
  122. package/dist/store/index.d.cts +4 -4
  123. package/dist/store/index.d.ts +4 -4
  124. package/dist/{strategy-YQ1qJWyq.d.ts → strategy-BoITAb2H.d.ts} +20 -1
  125. package/dist/{strategy-D1zjEV3n.d.cts → strategy-DDNvt_UD.d.cts} +20 -1
  126. package/dist/sync/index.cjs.map +1 -1
  127. package/dist/sync/index.d.cts +3 -3
  128. package/dist/sync/index.d.ts +3 -3
  129. package/dist/sync/index.js +2 -2
  130. package/dist/team/index.cjs.map +1 -1
  131. package/dist/team/index.d.cts +4 -4
  132. package/dist/team/index.d.ts +4 -4
  133. package/dist/team/index.js +5 -5
  134. package/dist/{transition-guard-BSLdikC_.d.ts → transition-guard-BZhOlrFT.d.ts} +1 -1
  135. package/dist/{transition-guard-DPs6al8h.d.cts → transition-guard-Bekgaxux.d.cts} +1 -1
  136. package/dist/tx/index.d.cts +4 -4
  137. package/dist/tx/index.d.ts +4 -4
  138. package/dist/{types-CCq0WHh9.d.ts → types-84nsWSDF.d.ts} +182 -11
  139. package/dist/{types-BCYvhKzr.d.cts → types-B_eCkuEI.d.cts} +182 -11
  140. package/dist/{with-materialized-view-DiD41wQp.d.ts → with-materialized-view-CAMGQroY.d.ts} +1 -1
  141. package/dist/{with-materialized-view-CTHe6uh9.d.cts → with-materialized-view-DKMaZmkJ.d.cts} +1 -1
  142. package/dist/{with-overlayed-view-Dlz5hcM8.d.cts → with-overlayed-view--lWXImbV.d.cts} +1 -1
  143. package/dist/{with-overlayed-view-DlbsJMhF.d.ts → with-overlayed-view-FnOf1v6H.d.ts} +1 -1
  144. package/dist/{with-rollup-BBWdrCvu.d.cts → with-rollup-C5875Ad5.d.cts} +1 -1
  145. package/dist/{with-rollup-mT4_CWaU.d.ts → with-rollup-xi-mkY6Y.d.ts} +1 -1
  146. package/package.json +3 -3
  147. package/dist/chunk-56ENKU46.js.map +0 -1
  148. package/dist/chunk-KD253AI5.js.map +0 -1
  149. package/dist/chunk-LR7CODVN.js.map +0 -1
  150. package/dist/noydb-6FA46A4M.js +0 -38
  151. /package/dist/{chunk-PS6PSEZL.js.map → chunk-2M62POB5.js.map} +0 -0
  152. /package/dist/{chunk-C7UIT5XY.js.map → chunk-345PYZD6.js.map} +0 -0
  153. /package/dist/{chunk-ANLOD6IS.js.map → chunk-42EGY2FQ.js.map} +0 -0
  154. /package/dist/{chunk-KJ37E3R5.js.map → chunk-4FHKQDHN.js.map} +0 -0
  155. /package/dist/{chunk-EYZJULEN.js.map → chunk-7GKDVWMD.js.map} +0 -0
  156. /package/dist/{chunk-N4EXCKWP.js.map → chunk-7TBCLM52.js.map} +0 -0
  157. /package/dist/{chunk-VJNV2GRF.js.map → chunk-AHDQYG7P.js.map} +0 -0
  158. /package/dist/{chunk-ZCBJIDT4.js.map → chunk-DCYWBKQ2.js.map} +0 -0
  159. /package/dist/{chunk-Y5CTT6K5.js.map → chunk-DMWUOV7X.js.map} +0 -0
  160. /package/dist/{chunk-RZOGD7IF.js.map → chunk-DQ6XF2K2.js.map} +0 -0
  161. /package/dist/{chunk-OCRDV3NU.js.map → chunk-ENC4C6XW.js.map} +0 -0
  162. /package/dist/{chunk-FCIZXX56.js.map → chunk-GVEUI7VR.js.map} +0 -0
  163. /package/dist/{chunk-WVYL6HM7.js.map → chunk-HI7FY7QZ.js.map} +0 -0
  164. /package/dist/{chunk-JJKXJAH2.js.map → chunk-HQ242WNG.js.map} +0 -0
  165. /package/dist/{chunk-GHXOVGTX.js.map → chunk-IMY4FXYE.js.map} +0 -0
  166. /package/dist/{chunk-YP2AYE5W.js.map → chunk-JEQB2KVI.js.map} +0 -0
  167. /package/dist/{chunk-HUXDQIVU.js.map → chunk-PPF7Z2YQ.js.map} +0 -0
  168. /package/dist/{chunk-2RHBFCWQ.js.map → chunk-QBC2TZHC.js.map} +0 -0
  169. /package/dist/{chunk-TSUICI5N.js.map → chunk-RG5KLMEU.js.map} +0 -0
  170. /package/dist/{chunk-GPZHHTJU.js.map → chunk-SWGVCSIY.js.map} +0 -0
  171. /package/dist/{chunk-UNBX2HMA.js.map → chunk-VSL3W2MO.js.map} +0 -0
  172. /package/dist/{chunk-VGAN5RLD.js.map → chunk-WH7G2YEE.js.map} +0 -0
  173. /package/dist/{chunk-QYQRAOEF.js.map → chunk-YYLFXX2K.js.map} +0 -0
  174. /package/dist/{executor-BIW4FT5R.js.map → executor-PJHMRZWJ.js.map} +0 -0
  175. /package/dist/{fanout-sidecar-ZQT4Y7PF.js.map → fanout-sidecar-DSBVAR2P.js.map} +0 -0
  176. /package/dist/{issue-LEBPVF3Y.js.map → issue-JSGGSVY4.js.map} +0 -0
  177. /package/dist/{ledger-FLRTSOYH.js.map → ledger-PLMSH7LD.js.map} +0 -0
  178. /package/dist/{noydb-6FA46A4M.js.map → noydb-PHXA5E6I.js.map} +0 -0
  179. /package/dist/{public-envelope-DBKJEBBF.js.map → public-envelope-7MTH2PVE.js.map} +0 -0
  180. /package/dist/{revoke-P5D3UTRX.js.map → revoke-DBAGKIDA.js.map} +0 -0
  181. /package/dist/{signer-NEQPCHMW.js.map → signer-ADFJNS5W.js.map} +0 -0
  182. /package/dist/{stale-KKCHF2VB.js.map → stale-BCIE3SMC.js.map} +0 -0
@@ -30,8 +30,10 @@ __export(kernel_exports, {
30
30
  VaultTemplateNotFoundError: () => VaultTemplateNotFoundError,
31
31
  generateULID: () => generateULID,
32
32
  groupAndReduce: () => groupAndReduce,
33
+ isQuorum: () => isQuorum,
33
34
  readPath: () => readPath,
34
35
  reduceRecords: () => reduceRecords,
36
+ runDrainBarrier: () => runDrainBarrier,
35
37
  sha256Hex: () => sha256Hex
36
38
  });
37
39
  module.exports = __toCommonJS(kernel_exports);
@@ -222,6 +224,18 @@ var ValidationError = class extends NoydbError {
222
224
  this.name = "ValidationError";
223
225
  }
224
226
  };
227
+ var SchemaUpdateError = class extends NoydbError {
228
+ constructor(code, message) {
229
+ super(code, message);
230
+ this.name = "SchemaUpdateError";
231
+ }
232
+ };
233
+ var QuiesceTimeoutError = class extends SchemaUpdateError {
234
+ constructor(message) {
235
+ super("QUIESCE_TIMEOUT", message);
236
+ this.name = "QuiesceTimeoutError";
237
+ }
238
+ };
225
239
  var GroupCardinalityError = class extends NoydbError {
226
240
  /** The field being grouped on. */
227
241
  field;
@@ -638,6 +652,51 @@ async function sha256Hex(data) {
638
652
  const hash = await subtle.digest("SHA-256", data);
639
653
  return Array.from(new Uint8Array(hash)).map((b) => b.toString(16).padStart(2, "0")).join("");
640
654
  }
655
+
656
+ // src/coordination/types.ts
657
+ function isQuorum(writers, generation, excludeWriterId) {
658
+ return writers.filter((w) => w.writerId !== excludeWriterId).every((w) => w.quiescedAtVersion === generation);
659
+ }
660
+ async function runDrainBarrier(provider, o, run) {
661
+ await provider.setFence(o.vault, { currentSchemaVersion: o.generation, fenceState: "draining" });
662
+ await o.onFlush();
663
+ const deadline = o.now() + o.quiesceTimeoutMs;
664
+ const seeded = await provider.reachableWriters(o.vault, { staleMs: o.staleMs, now: o.now() });
665
+ if (!isQuorum(seeded, o.generation, o.writerId)) {
666
+ await new Promise((resolve, reject) => {
667
+ let settled = false;
668
+ const finish = (fn) => {
669
+ if (!settled) {
670
+ settled = true;
671
+ unsub();
672
+ fn();
673
+ }
674
+ };
675
+ const unsub = provider.observePresence(o.vault, (writers) => {
676
+ if (isQuorum(writers, o.generation, o.writerId)) finish(resolve);
677
+ });
678
+ const tick = async () => {
679
+ if (settled) return;
680
+ if (o.now() >= deadline) {
681
+ finish(
682
+ () => reject(
683
+ new QuiesceTimeoutError(
684
+ `Cutover of vault "${o.vault}" to generation ${o.generation} timed out after ${o.quiesceTimeoutMs}ms waiting for active writers to quiesce.`
685
+ )
686
+ )
687
+ );
688
+ return;
689
+ }
690
+ if (o.onPoll) await o.onPoll();
691
+ const w = await provider.reachableWriters(o.vault, { staleMs: o.staleMs, now: o.now() });
692
+ if (isQuorum(w, o.generation, o.writerId)) finish(resolve);
693
+ else setTimeout(() => void tick(), 25);
694
+ };
695
+ void tick();
696
+ });
697
+ }
698
+ await run();
699
+ }
641
700
  // Annotate the CommonJS export names for ESM import in node:
642
701
  0 && (module.exports = {
643
702
  CrossShardJoinError,
@@ -650,8 +709,10 @@ async function sha256Hex(data) {
650
709
  VaultTemplateNotFoundError,
651
710
  generateULID,
652
711
  groupAndReduce,
712
+ isQuorum,
653
713
  readPath,
654
714
  reduceRecords,
715
+ runDrainBarrier,
655
716
  sha256Hex
656
717
  });
657
718
  //# sourceMappingURL=index.cjs.map