@indigoai-us/hq-cloud 6.15.77 → 6.15.79

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 (65) hide show
  1. package/dist/bin/sync-runner-worker.d.ts +3 -0
  2. package/dist/bin/sync-runner-worker.d.ts.map +1 -0
  3. package/dist/bin/sync-runner-worker.js +88 -0
  4. package/dist/bin/sync-runner-worker.js.map +1 -0
  5. package/dist/bin/sync-runner.d.ts +3 -1
  6. package/dist/bin/sync-runner.d.ts.map +1 -1
  7. package/dist/bin/sync-runner.js +31 -13
  8. package/dist/bin/sync-runner.js.map +1 -1
  9. package/dist/bin/sync-runner.test.js +85 -0
  10. package/dist/bin/sync-runner.test.js.map +1 -1
  11. package/dist/index.d.ts +4 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +4 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/index.test.js +11 -1
  16. package/dist/index.test.js.map +1 -1
  17. package/dist/journal.d.ts +1 -0
  18. package/dist/journal.d.ts.map +1 -1
  19. package/dist/journal.js +4 -0
  20. package/dist/journal.js.map +1 -1
  21. package/dist/sync/area-ledger.d.ts +93 -0
  22. package/dist/sync/area-ledger.d.ts.map +1 -0
  23. package/dist/sync/area-ledger.js +460 -0
  24. package/dist/sync/area-ledger.js.map +1 -0
  25. package/dist/sync/area-ledger.test.d.ts +2 -0
  26. package/dist/sync/area-ledger.test.d.ts.map +1 -0
  27. package/dist/sync/area-ledger.test.js +199 -0
  28. package/dist/sync/area-ledger.test.js.map +1 -0
  29. package/dist/sync/child-process-sync-worker.d.ts +53 -0
  30. package/dist/sync/child-process-sync-worker.d.ts.map +1 -0
  31. package/dist/sync/child-process-sync-worker.js +256 -0
  32. package/dist/sync/child-process-sync-worker.js.map +1 -0
  33. package/dist/sync/child-process-sync-worker.test.d.ts +2 -0
  34. package/dist/sync/child-process-sync-worker.test.d.ts.map +1 -0
  35. package/dist/sync/child-process-sync-worker.test.js +262 -0
  36. package/dist/sync/child-process-sync-worker.test.js.map +1 -0
  37. package/dist/sync/event-sync.d.ts +14 -4
  38. package/dist/sync/event-sync.d.ts.map +1 -1
  39. package/dist/sync/event-sync.js +177 -61
  40. package/dist/sync/event-sync.js.map +1 -1
  41. package/dist/sync/event-sync.test.js +140 -10
  42. package/dist/sync/event-sync.test.js.map +1 -1
  43. package/dist/sync/index.d.ts +4 -0
  44. package/dist/sync/index.d.ts.map +1 -1
  45. package/dist/sync/index.js +2 -0
  46. package/dist/sync/index.js.map +1 -1
  47. package/dist/sync/parallel-sync-coordinator.d.ts.map +1 -1
  48. package/dist/sync/parallel-sync-coordinator.js +7 -2
  49. package/dist/sync/parallel-sync-coordinator.js.map +1 -1
  50. package/dist/sync/parallel-sync-coordinator.test.js +22 -0
  51. package/dist/sync/parallel-sync-coordinator.test.js.map +1 -1
  52. package/dist/sync/state-store.d.ts +46 -1
  53. package/dist/sync/state-store.d.ts.map +1 -1
  54. package/dist/sync/state-store.js +263 -11
  55. package/dist/sync/state-store.js.map +1 -1
  56. package/dist/sync/state-store.test.js +125 -2
  57. package/dist/sync/state-store.test.js.map +1 -1
  58. package/dist/sync/sync-work.d.ts +2 -0
  59. package/dist/sync/sync-work.d.ts.map +1 -1
  60. package/dist/sync/sync-work.js.map +1 -1
  61. package/dist/sync/sync-worker-port.d.ts +59 -0
  62. package/dist/sync/sync-worker-port.d.ts.map +1 -0
  63. package/dist/sync/sync-worker-port.js +67 -0
  64. package/dist/sync/sync-worker-port.js.map +1 -0
  65. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"parallel-sync-coordinator.test.js","sourceRoot":"","sources":["../../src/sync/parallel-sync-coordinator.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parallel-sync-coordinator.test.js","sourceRoot":"","sources":["../../src/sync/parallel-sync-coordinator.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAkB,MAAM,gBAAgB,CAAC;AAEzE,SAAS,QAAQ,CAAC,IAAY,EAAE,SAAS,GAAG,IAAI;IAC9C,OAAO,EAAE,KAAK,EAAE,UAAmB,EAAE,MAAM,EAAE,SAAkB,EAAE,SAAS,EAAE,MAAe,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;AAC1H,CAAC;AAED,SAAS,KAAK,CAAC,OAA8D,gBAAgB;IAC3F,OAAO,EAAE,KAAK,EAAE,OAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,OAAO,CAAC,KAAgB;IAC/B,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAkB,EAAE,CAAC,CAAC,EAAE,CAAC;AAC7H,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,EAAE,CAAC;AACvF,CAAC;AAED,SAAS,QAAQ;IACf,IAAI,OAA4B,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,KAAK;IAClB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AAC1B,CAAC;AAED,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,EAAE,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACvD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,OAAO,CAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,8BAA8B,CAAC;YACrD,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACvD,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;gBACtD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;YACF,cAAc,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1D,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;gBACzD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC;YACF,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC;YACrC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;SACjC,CAAC,CAAC;QAEH,KAAK,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACjC,MAAM,KAAK,EAAE,CAAC;QACd,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACxI,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAC/E,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAClG,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,QAAQ,EAA8B,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,8BAA8B,CAAC;YACrD,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACvD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC3B,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1F,OAAO,WAAW,CAAC,OAAO,CAAC;YAC7B,CAAC,CAAC;YACF,cAAc,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1D,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC;YACF,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC;SACtC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACjD,MAAM,KAAK,EAAE,CAAC;QACd,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,EAAE,CAAC;QACd,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;QACxD,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACvF,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACxG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;QACvI,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,aAAa,GAAG,QAAQ,EAA8B,CAAC;QAC7D,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,MAAM,WAAW,GAAG,IAAI,8BAA8B,CAAC;YACrD,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACvD,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;gBACtD,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,KAAK,WAAW;oBAAE,OAAO,IAAI,OAAO,CAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC9F,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC;YACF,cAAc,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1D,aAAa,IAAI,CAAC,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,YAAY,aAAa,EAAE,CAAC,CAAC;gBACzC,OAAO,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtE,CAAC,CAAC;YACF,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;SACpF,CAAC,CAAC;QAEH,KAAK,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1C,MAAM,KAAK,EAAE,CAAC;QACd,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,MAAM,KAAK,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;QACrE,MAAM,KAAK,EAAE,CAAC;QACd,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAEzF,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC,EAAE,CAAC,CAAC;QAClI,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3G,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAChF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,WAAW,GAAG,IAAI,8BAA8B,CAAC;YACrD,YAAY,EAAE,YAAY;YAC1B,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE;YACxB,WAAW,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzE,cAAc,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1D,KAAK,IAAI,CAAC,CAAC;gBACX,IAAI,KAAK,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;gBAChD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9I,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjD,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACvH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,WAAW,GAAG,IAAI,8BAA8B,CAAC;YACrD,YAAY,EAAE,YAAY;YAC1B,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE;YACxB,WAAW,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzE,cAAc,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC5D,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,SAAkB,EAAE,CAAC,CAAC;aACpH,CAAC,CAAC;SACJ,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC/E,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,6CAA6C,EAAE,CAAC;SACxF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,MAAM,GAAG,QAAQ,EAA8B,CAAC;QACtD,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,WAAW,GAAG,IAAI,8BAA8B,CAAC;YACrD,YAAY,EAAE,YAAY;YAC1B,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE;YACxB,WAAW,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzE,cAAc,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1D,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpF,OAAO,MAAM,CAAC,OAAO,CAAC;YACxB,CAAC,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,EAAE,CAAC;QACd,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,KAAK,EAAE,CAAC;QACd,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAClF,MAAM,YAAY,CAAC;QACnB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3H,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;QACtG,IAAI,eAAwC,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,OAAO,CAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;QACnE,MAAM,WAAW,GAAG,IAAI,8BAA8B,CAAC;YACrD,YAAY,EAAE,YAAY;YAC1B,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE;YACxB,cAAc,EAAE,MAAM;YACtB,WAAW,EAAE,MAAM;SACpB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAC3D,MAAM,KAAK,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC;QACzE,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YACxB,SAAS;YACT,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC;SAC9E,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;QAChH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,IAAI,8BAA8B,CAAC;YACrD,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACvD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC;YACF,cAAc,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1D,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;gBACzD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC;YACF,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,iBAAiB,CAAC;SAC1C,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACjD,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACnH,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACtF,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,8BAA8B,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAW,CAAC,CAAC,CAAC,OAAO,CAChH,uBAAuB,CACxB,CAAC;QACF,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,8BAA8B,CAAC;YAC9C,cAAc,EAAE,MAAM;YACtB,WAAW,EAAE,MAAM;YACnB,YAAY,EAAE,YAAY;SAClB,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,IAAI,8BAA8B,CAAC;YACrD,YAAY,EAAE,YAAY;YAC1B,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE;YACxB,WAAW,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzE,cAAc,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,aAAa,CAAC,CAAC;gBAC1C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC1E,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;SAC/C,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC/E,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;SACpD,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,8BAA8B,CAAC;YACrD,YAAY,EAAE,YAAY;YAC1B,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE;YACxB,WAAW,EAAE,IAAI,uBAAuB,CAAC,MAAM,CAAC;YAChD,cAAc,EAAE,IAAI,uBAAuB,CAAC,MAAM,CAAC;SACpD,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YACjH,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;aAC3C;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACtC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,SAAS,GAAG,QAAQ,EAAQ,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,8BAA8B,CAAC;YACrD,YAAY,EAAE,YAAY;YAC1B,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC;YACrC,WAAW,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACvD,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3F,MAAM,SAAS,CAAC,OAAO,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACtC,CAAC,CAAC;YACF,cAAc,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC7E,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,MAAM,KAAK,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3D,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAChF,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,MAAM,GAAG,QAAQ,EAA8B,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,8BAA8B,CAAC;YACrD,YAAY,EAAE,YAAY;YAC1B,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE;YACxB,WAAW,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzE,cAAc,EAAE,IAAI,uBAAuB,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;SACxE,CAAC,CAAC;QAEH,KAAK,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QACjD,MAAM,KAAK,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,WAAW,GAAG,QAAQ,EAA8B,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,8BAA8B,CAAC;YACrD,YAAY,EAAE,YAAY;YAC1B,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC;YACrC,WAAW,EAAE,IAAI,uBAAuB,CAAC,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;YACzE,cAAc,EAAE,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC7E,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACjD,MAAM,KAAK,EAAE,CAAC;QACd,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QACpE,MAAM,CAAE,WAAgD,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjF,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACvF,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACzF,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACtF,MAAM,CAAE,WAAgD,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -20,8 +20,12 @@ export declare function setStateStorePositionalWriteForTest(write: ((fd: number,
20
20
  export declare function setStateStoreRotationClaimWriteHookForTest(hook: (() => void) | undefined): void;
21
21
  /** Test-only seam for proving same-process async lock waiters queue cooperatively. */
22
22
  export declare function setStateStoreScopeLockAcquiredHookForTest(hook: (() => void | Promise<void>) | undefined): void;
23
+ /** Test-only seam for a failure after a batch lock file has been created. */
24
+ export declare function setStateStoreScopeLockWriteHookForTest(hook: (() => void) | undefined): void;
23
25
  /** Test-only seam for exercising async lock deadlines without a minute-long wait. */
24
26
  export declare function setStateStoreAsyncLockTimeoutForTest(timeoutMs: number | undefined): void;
27
+ /** Test-only seam for exercising synchronous lock contention without a five-second wait. */
28
+ export declare function setStateStoreSyncLockTimeoutForTest(timeoutMs: number | undefined): void;
25
29
  export interface StateStoreRecord<T = unknown> {
26
30
  sequence: number;
27
31
  type: number;
@@ -53,6 +57,23 @@ export interface StateStoreRefreshResult {
53
57
  export interface StateStoreAppendResult extends StateStoreRecord {
54
58
  refresh: StateStoreRefreshResult;
55
59
  }
60
+ /**
61
+ * One durable append participating in a short, ordered multi-scope commit.
62
+ *
63
+ * This is deliberately an internal-storage primitive rather than a general
64
+ * transaction manager: callers still own their recovery protocol. It gives
65
+ * them one important invariant that a sequence of `append()` calls cannot:
66
+ * every live lock is acquired in a stable order and a contender releases all
67
+ * acquired locks before waiting to retry.
68
+ */
69
+ export interface StateStoreBatchAppend<T> {
70
+ /** Stable caller-owned order key. `@meta` is always acquired last. */
71
+ areaId: string;
72
+ store: StateStore<T>;
73
+ type: number;
74
+ payload: unknown;
75
+ flags?: number;
76
+ }
56
77
  export interface StateStoreRecoveryStats {
57
78
  /** Bytes in the selected generation's WAL, including its header. */
58
79
  walBytes: number;
@@ -85,8 +106,12 @@ export interface StateStoreMaintenanceOptions {
85
106
  export declare class StateStoreCorruptionError extends Error {
86
107
  constructor(message: string, options?: ErrorOptions);
87
108
  }
109
+ export type StateStoreLockErrorReason = "in-process-async-holder";
88
110
  export declare class StateStoreLockError extends Error {
89
- constructor(message: string, options?: ErrorOptions);
111
+ readonly reason?: StateStoreLockErrorReason;
112
+ constructor(message: string, options?: ErrorOptions & {
113
+ reason?: StateStoreLockErrorReason;
114
+ });
90
115
  }
91
116
  /** A recovered v3 store. `append` is the ordinary hot path. */
92
117
  export declare class StateStore<T> {
@@ -106,6 +131,17 @@ export declare class StateStore<T> {
106
131
  static open<T>(options: StateStoreOptions<T>): StateStore<T>;
107
132
  /** Yielding first-open variant for callback-originated projections. */
108
133
  static openAsync<T>(options: StateStoreOptions<T>): Promise<StateStore<T>>;
134
+ /**
135
+ * Append one record to each independent store under lexical, all-or-none
136
+ * locks. The caller's `areaId` is the stable order key; hashed on-disk
137
+ * directories must never decide lock order. `@meta` intentionally follows
138
+ * all data areas so a watermark can only publish after its data is durable.
139
+ *
140
+ * A process death between records is still possible, by design. Consumers
141
+ * that need cross-area atomic visibility must use a data-first recovery
142
+ * protocol (AreaLedger does this with prepare records and a meta watermark).
143
+ */
144
+ static appendBatch<T>(entries: readonly StateStoreBatchAppend<T>[]): StateStoreAppendResult[];
109
145
  /**
110
146
  * Repair an over-budget generation without making appenders wait for snapshot
111
147
  * I/O. Recovery captures a stable generation while holding the scope lock,
@@ -141,6 +177,15 @@ export declare class StateStore<T> {
141
177
  * and retain the prior compact copy.
142
178
  */
143
179
  replaceState(nextState: T): void;
180
+ /**
181
+ * Atomically derive a compact replacement from the newest durable state.
182
+ *
183
+ * Callers that fold a projection must not calculate their replacement before
184
+ * taking the append lock: another writer could otherwise be lost between the
185
+ * read and publication. The transform runs under that lock and publication
186
+ * still validates the source generation after the off-lock snapshot stage.
187
+ */
188
+ replaceStateWith(transform: (state: T) => T): void;
144
189
  private replaceStateAttempt;
145
190
  /** Create G+1 without ever merging two generations during recovery. */
146
191
  compact(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../../src/sync/state-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../../src/sync/state-store.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,10 @@ const FRAME_FIXED_BODY_BYTES = 8 + 2 + 2 + 4 + 4 + 32;
37
37
  const MAX_FRAME_BYTES = 256 * 1024 * 1024;
38
38
  const DEFAULT_MAX_WAL_BYTES_BEFORE_COMPACTION = 16 * 1024 * 1024;
39
39
  const LOCK_RETRY_MS = 10;
40
+ // `open(..., "wx")` creates the lock before its owner can durably write its
41
+ // PID. A contender must give that hand-off a short grace period: otherwise an
42
+ // empty file parses as PID 0 and the stale breaker can unlink a live lock.
43
+ const MALFORMED_LOCK_GRACE_MS = 250;
40
44
  // A synchronous caller can only be blocked by another process. Keep that
41
45
  // exceptional event-loop pause bounded; async callers wait without parking.
42
46
  const SYNC_LOCK_TIMEOUT_MS = 5_000;
@@ -56,7 +60,9 @@ let reflinkCopyHookForTest;
56
60
  let positionalWriteForTest;
57
61
  let rotationClaimWriteHookForTest;
58
62
  let scopeLockAcquiredHookForTest;
63
+ let scopeLockWriteHookForTest;
59
64
  let asyncLockTimeoutMsForTest;
65
+ let syncLockTimeoutMsForTest;
60
66
  export function resetStateStoreSnapshotRecoveryCountForTest() {
61
67
  snapshotRecoveryCount = 0;
62
68
  }
@@ -107,10 +113,18 @@ export function setStateStoreRotationClaimWriteHookForTest(hook) {
107
113
  export function setStateStoreScopeLockAcquiredHookForTest(hook) {
108
114
  scopeLockAcquiredHookForTest = hook;
109
115
  }
116
+ /** Test-only seam for a failure after a batch lock file has been created. */
117
+ export function setStateStoreScopeLockWriteHookForTest(hook) {
118
+ scopeLockWriteHookForTest = hook;
119
+ }
110
120
  /** Test-only seam for exercising async lock deadlines without a minute-long wait. */
111
121
  export function setStateStoreAsyncLockTimeoutForTest(timeoutMs) {
112
122
  asyncLockTimeoutMsForTest = timeoutMs;
113
123
  }
124
+ /** Test-only seam for exercising synchronous lock contention without a five-second wait. */
125
+ export function setStateStoreSyncLockTimeoutForTest(timeoutMs) {
126
+ syncLockTimeoutMsForTest = timeoutMs;
127
+ }
114
128
  export class StateStoreCorruptionError extends Error {
115
129
  constructor(message, options) {
116
130
  super(`state-store corruption: ${message}`, options);
@@ -118,9 +132,11 @@ export class StateStoreCorruptionError extends Error {
118
132
  }
119
133
  }
120
134
  export class StateStoreLockError extends Error {
135
+ reason;
121
136
  constructor(message, options) {
122
137
  super(`state-store lock: ${message}`, options);
123
138
  this.name = "StateStoreLockError";
139
+ this.reason = options?.reason;
124
140
  }
125
141
  }
126
142
  class StateStoreReducerError extends Error {
@@ -234,6 +250,80 @@ export class StateStore {
234
250
  return created;
235
251
  }
236
252
  }
253
+ /**
254
+ * Append one record to each independent store under lexical, all-or-none
255
+ * locks. The caller's `areaId` is the stable order key; hashed on-disk
256
+ * directories must never decide lock order. `@meta` intentionally follows
257
+ * all data areas so a watermark can only publish after its data is durable.
258
+ *
259
+ * A process death between records is still possible, by design. Consumers
260
+ * that need cross-area atomic visibility must use a data-first recovery
261
+ * protocol (AreaLedger does this with prepare records and a meta watermark).
262
+ */
263
+ static appendBatch(entries) {
264
+ if (entries.length === 0)
265
+ return [];
266
+ const seenAreas = new Set();
267
+ const seenStores = new Set();
268
+ const ordered = entries.map((entry, index) => {
269
+ if (!entry.areaId)
270
+ throw new Error("state-store: batch areaId is required");
271
+ if (seenAreas.has(entry.areaId))
272
+ throw new Error(`state-store: duplicate batch area ${entry.areaId}`);
273
+ if (seenStores.has(entry.store.stateDir))
274
+ throw new Error(`state-store: duplicate batch state directory ${entry.store.stateDir}`);
275
+ seenAreas.add(entry.areaId);
276
+ seenStores.add(entry.store.stateDir);
277
+ assertUint16(entry.type, "record type");
278
+ assertUint16(entry.flags ?? 0, "record flags");
279
+ return { ...entry, index };
280
+ }).sort((left, right) => {
281
+ if (left.areaId === "@meta")
282
+ return right.areaId === "@meta" ? 0 : 1;
283
+ if (right.areaId === "@meta")
284
+ return -1;
285
+ return left.areaId.localeCompare(right.areaId);
286
+ });
287
+ let recovered = false;
288
+ while (true) {
289
+ const result = withScopeLocks(ordered.map((entry) => entry.store.stateDir), () => {
290
+ // Refresh every participant before appending any record. If a
291
+ // generation changed, release the full set and recover off-lock; a
292
+ // partial batch must never retry and duplicate an earlier append.
293
+ const refreshes = new Map();
294
+ for (const entry of ordered) {
295
+ const refresh = entry.store.refreshFromDisk();
296
+ if (!refresh)
297
+ return undefined;
298
+ refreshes.set(entry, refresh);
299
+ }
300
+ const appended = [];
301
+ for (const entry of ordered) {
302
+ appended.push({
303
+ entry,
304
+ result: entry.store.appendUnlocked(entry.type, entry.payload, entry.flags ?? 0, recovered ? { records: [], recovered: true } : refreshes.get(entry)),
305
+ });
306
+ }
307
+ return appended;
308
+ });
309
+ if (!result) {
310
+ for (const entry of ordered)
311
+ entry.store.recoverNewestGenerationOutsideLock();
312
+ recovered = true;
313
+ continue;
314
+ }
315
+ const compact = new Set();
316
+ for (const { entry } of result)
317
+ if (entry.store.needsCompaction())
318
+ compact.add(entry.store);
319
+ for (const store of compact)
320
+ store.compact();
321
+ const byIndex = [];
322
+ for (const appended of result)
323
+ byIndex[appended.entry.index] = appended.result;
324
+ return byIndex;
325
+ }
326
+ }
237
327
  /**
238
328
  * Repair an over-budget generation without making appenders wait for snapshot
239
329
  * I/O. Recovery captures a stable generation while holding the scope lock,
@@ -483,16 +573,28 @@ export class StateStore {
483
573
  * and retain the prior compact copy.
484
574
  */
485
575
  replaceState(nextState) {
576
+ this.replaceStateWith(() => nextState);
577
+ }
578
+ /**
579
+ * Atomically derive a compact replacement from the newest durable state.
580
+ *
581
+ * Callers that fold a projection must not calculate their replacement before
582
+ * taking the append lock: another writer could otherwise be lost between the
583
+ * read and publication. The transform runs under that lock and publication
584
+ * still validates the source generation after the off-lock snapshot stage.
585
+ */
586
+ replaceStateWith(transform) {
486
587
  for (let attempt = 0; attempt < REPLACE_STATE_MAX_ATTEMPTS; attempt++) {
487
- if (this.replaceStateAttempt(nextState))
588
+ if (this.replaceStateAttempt(transform))
488
589
  return;
489
590
  }
490
591
  throw new StateStoreLockError(`cannot replace state after ${REPLACE_STATE_MAX_ATTEMPTS} concurrent writes`);
491
592
  }
492
- replaceStateAttempt(nextState) {
593
+ replaceStateAttempt(transform) {
493
594
  const plan = withScopeLock(this.stateDir, () => {
494
595
  if (!this.refreshFromDisk())
495
596
  return undefined;
597
+ const nextState = transform(this.state);
496
598
  const previousGeneration = this.generation;
497
599
  const previousWalHasRecords = this.walBytes > WAL_HEADER_BYTES;
498
600
  const first = {
@@ -1482,7 +1584,15 @@ function readIntoSync(fd, target, position) {
1482
1584
  }
1483
1585
  function withScopeLock(dir, action) {
1484
1586
  const lockPath = path.join(dir, "append.lock");
1485
- const deadline = Date.now() + SYNC_LOCK_TIMEOUT_MS;
1587
+ // A synchronous contender cannot let an in-process async holder make
1588
+ // progress: Atomics.wait would park the event loop the holder needs to
1589
+ // release append.lock. Fail before attempting the spin instead.
1590
+ if (inProcessAsyncScopeLocks.has(path.resolve(dir))) {
1591
+ throw new StateStoreLockError(`in-process async holder for ${lockPath}`, {
1592
+ reason: "in-process-async-holder",
1593
+ });
1594
+ }
1595
+ const deadline = Date.now() + (syncLockTimeoutMsForTest ?? SYNC_LOCK_TIMEOUT_MS);
1486
1596
  let fd;
1487
1597
  while (fd === undefined) {
1488
1598
  try {
@@ -1523,6 +1633,121 @@ function withScopeLock(dir, action) {
1523
1633
  throw actionError;
1524
1634
  return result;
1525
1635
  }
1636
+ /**
1637
+ * Acquire every scope lock in caller-provided stable order, or acquire none.
1638
+ *
1639
+ * Waiting while holding an earlier lock would create the classic A→B/B→A
1640
+ * deadlock across independent StateStores. This optimistic loop instead
1641
+ * drops the partial set and retries after the ordinary bounded backoff. It is
1642
+ * only for tiny durable publication sections; staging, recovery, callbacks,
1643
+ * and network work remain outside these locks.
1644
+ */
1645
+ function withScopeLocks(dirs, action) {
1646
+ const deadline = Date.now() + (syncLockTimeoutMsForTest ?? SYNC_LOCK_TIMEOUT_MS);
1647
+ const acquired = [];
1648
+ while (true) {
1649
+ let unavailable = false;
1650
+ try {
1651
+ for (const dir of dirs) {
1652
+ const held = tryAcquireScopeLock(dir);
1653
+ if (!held) {
1654
+ unavailable = true;
1655
+ break;
1656
+ }
1657
+ acquired.push(held);
1658
+ }
1659
+ if (!unavailable)
1660
+ break;
1661
+ }
1662
+ catch (error) {
1663
+ releaseScopeLocks(acquired);
1664
+ throw error;
1665
+ }
1666
+ releaseScopeLocks(acquired);
1667
+ if (Date.now() >= deadline) {
1668
+ throw new StateStoreLockError("timed out acquiring ordered scope locks");
1669
+ }
1670
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, LOCK_RETRY_MS);
1671
+ }
1672
+ let result;
1673
+ let actionError;
1674
+ try {
1675
+ result = action();
1676
+ }
1677
+ catch (error) {
1678
+ actionError = error;
1679
+ }
1680
+ releaseScopeLocks(acquired);
1681
+ if (actionError !== undefined)
1682
+ throw actionError;
1683
+ return result;
1684
+ }
1685
+ function tryAcquireScopeLock(dir) {
1686
+ const lockPath = path.join(dir, "append.lock");
1687
+ if (inProcessAsyncScopeLocks.has(path.resolve(dir))) {
1688
+ throw new StateStoreLockError(`in-process async holder for ${lockPath}`, {
1689
+ reason: "in-process-async-holder",
1690
+ });
1691
+ }
1692
+ let fd;
1693
+ try {
1694
+ fd = fs.openSync(lockPath, "wx");
1695
+ scopeLockWriteHookForTest?.();
1696
+ fs.writeFileSync(fd, String(process.pid));
1697
+ fs.fdatasyncSync(fd);
1698
+ return { lockPath, fd };
1699
+ }
1700
+ catch (error) {
1701
+ // `openSync(..., "wx")` has already made this process the lock owner.
1702
+ // A failed PID write or sync must not leave that live-PID lock behind,
1703
+ // because no stale breaker will remove it while this process remains up.
1704
+ if (fd !== undefined) {
1705
+ let cleanupError;
1706
+ try {
1707
+ fs.closeSync(fd);
1708
+ }
1709
+ catch (closeError) {
1710
+ cleanupError = closeError;
1711
+ }
1712
+ try {
1713
+ fs.unlinkSync(lockPath);
1714
+ }
1715
+ catch (unlinkError) {
1716
+ if (!isMissing(unlinkError))
1717
+ cleanupError ??= unlinkError;
1718
+ }
1719
+ if (cleanupError !== undefined)
1720
+ throw new StateStoreLockError(`cannot clean up ${lockPath}`, { cause: cleanupError });
1721
+ }
1722
+ if (!isAlreadyExists(error)) {
1723
+ throw new StateStoreLockError(`cannot acquire ${lockPath}`, { cause: error });
1724
+ }
1725
+ if (removeDeadLock(lockPath))
1726
+ return tryAcquireScopeLock(dir);
1727
+ return undefined;
1728
+ }
1729
+ }
1730
+ function releaseScopeLocks(acquired) {
1731
+ let releaseError;
1732
+ while (acquired.length > 0) {
1733
+ const held = acquired.pop();
1734
+ try {
1735
+ fs.closeSync(held.fd);
1736
+ }
1737
+ catch (error) {
1738
+ releaseError ??= error;
1739
+ }
1740
+ try {
1741
+ fs.unlinkSync(held.lockPath);
1742
+ }
1743
+ catch (error) {
1744
+ releaseError ??= error;
1745
+ }
1746
+ }
1747
+ if (releaseError !== undefined) {
1748
+ throw new StateStoreLockError("cannot release ordered scope locks", { cause: releaseError });
1749
+ }
1750
+ }
1526
1751
  /**
1527
1752
  * A best-effort, non-blocking claim for off-lock snapshot materialisation.
1528
1753
  * Appenders deliberately ignore it; it only prevents several stale handles
@@ -1687,15 +1912,22 @@ async function withScopeLockAsync(dir, action) {
1687
1912
  });
1688
1913
  }
1689
1914
  function removeDeadLock(lockPath) {
1690
- let pid;
1915
+ let contents;
1691
1916
  try {
1692
- pid = Number(fs.readFileSync(lockPath, "utf8"));
1917
+ contents = fs.readFileSync(lockPath, "utf8");
1693
1918
  }
1694
1919
  catch (error) {
1695
1920
  return isMissing(error);
1696
1921
  }
1697
- if (!Number.isSafeInteger(pid) || pid <= 0)
1698
- return removeMalformedLock(lockPath);
1922
+ const pid = Number(contents);
1923
+ if (!Number.isSafeInteger(pid) || pid <= 0) {
1924
+ return isFreshLockFile(lockPath) ? false : removeMalformedLock(lockPath);
1925
+ }
1926
+ // A same-process lock must never be treated as stale. In particular, an
1927
+ // event-loop stall can defer its owner long enough for a competing path to
1928
+ // inspect it; only its owner may unlink it.
1929
+ if (pid === process.pid)
1930
+ return false;
1699
1931
  try {
1700
1932
  process.kill(pid, 0);
1701
1933
  return false;
@@ -1713,17 +1945,21 @@ function removeDeadLock(lockPath) {
1713
1945
  }
1714
1946
  }
1715
1947
  async function removeDeadLockAsync(lockPath) {
1716
- let pid;
1948
+ let contents;
1717
1949
  try {
1718
- pid = Number(await fs.promises.readFile(lockPath, "utf8"));
1950
+ contents = await fs.promises.readFile(lockPath, "utf8");
1719
1951
  }
1720
1952
  catch (error) {
1721
1953
  if (isMissing(error))
1722
1954
  return true;
1723
1955
  return false;
1724
1956
  }
1725
- if (!Number.isSafeInteger(pid) || pid <= 0)
1726
- return removeMalformedLockAsync(lockPath);
1957
+ const pid = Number(contents);
1958
+ if (!Number.isSafeInteger(pid) || pid <= 0) {
1959
+ return (await isFreshLockFileAsync(lockPath)) ? false : removeMalformedLockAsync(lockPath);
1960
+ }
1961
+ if (pid === process.pid)
1962
+ return false;
1727
1963
  try {
1728
1964
  process.kill(pid, 0);
1729
1965
  return false;
@@ -1742,6 +1978,22 @@ async function removeDeadLockAsync(lockPath) {
1742
1978
  return false;
1743
1979
  }
1744
1980
  }
1981
+ function isFreshLockFile(lockPath) {
1982
+ try {
1983
+ return Date.now() - fs.statSync(lockPath).mtimeMs < MALFORMED_LOCK_GRACE_MS;
1984
+ }
1985
+ catch (error) {
1986
+ return !isMissing(error);
1987
+ }
1988
+ }
1989
+ async function isFreshLockFileAsync(lockPath) {
1990
+ try {
1991
+ return Date.now() - (await fs.promises.stat(lockPath)).mtimeMs < MALFORMED_LOCK_GRACE_MS;
1992
+ }
1993
+ catch (error) {
1994
+ return !isMissing(error);
1995
+ }
1996
+ }
1745
1997
  function removeMalformedLock(lockPath) {
1746
1998
  try {
1747
1999
  fs.unlinkSync(lockPath);