@harperfast/harper 5.1.0-beta.3 → 5.1.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 (52) hide show
  1. package/bin/copyDb.ts +16 -3
  2. package/dist/bin/copyDb.js +16 -3
  3. package/dist/bin/copyDb.js.map +1 -1
  4. package/dist/resources/Table.js +43 -4
  5. package/dist/resources/Table.js.map +1 -1
  6. package/dist/resources/databases.js +135 -41
  7. package/dist/resources/databases.js.map +1 -1
  8. package/dist/resources/graphql.js +3 -0
  9. package/dist/resources/graphql.js.map +1 -1
  10. package/dist/resources/replayLogs.d.ts +1 -0
  11. package/dist/resources/replayLogs.js +100 -40
  12. package/dist/resources/replayLogs.js.map +1 -1
  13. package/dist/resources/replayLogsGuards.d.ts +25 -8
  14. package/dist/resources/replayLogsGuards.js +50 -10
  15. package/dist/resources/replayLogsGuards.js.map +1 -1
  16. package/dist/server/nodeName.js +9 -3
  17. package/dist/server/nodeName.js.map +1 -1
  18. package/dist/server/operationsServer.js +20 -0
  19. package/dist/server/operationsServer.js.map +1 -1
  20. package/dist/utility/install/installer.js +12 -6
  21. package/dist/utility/install/installer.js.map +1 -1
  22. package/package.json +3 -3
  23. package/resources/Table.ts +41 -4
  24. package/resources/databases.ts +134 -42
  25. package/resources/graphql.ts +3 -0
  26. package/resources/replayLogs.ts +114 -42
  27. package/resources/replayLogsGuards.ts +58 -9
  28. package/server/nodeName.ts +9 -3
  29. package/server/operationsServer.ts +17 -0
  30. package/studio/web/assets/{Chat-BdFickL8.js → Chat-DMBW4pI2.js} +2 -2
  31. package/studio/web/assets/{Chat-BdFickL8.js.map → Chat-DMBW4pI2.js.map} +1 -1
  32. package/studio/web/assets/{FloatingChat-CaAoco8I.js → FloatingChat-DTmhPsrm.js} +4 -4
  33. package/studio/web/assets/{FloatingChat-CaAoco8I.js.map → FloatingChat-DTmhPsrm.js.map} +1 -1
  34. package/studio/web/assets/{applications-C3y3xwyG.js → applications-CigxJarn.js} +2 -2
  35. package/studio/web/assets/{applications-C3y3xwyG.js.map → applications-CigxJarn.js.map} +1 -1
  36. package/studio/web/assets/{index-Cd3Zh3nK.js → index-oRZw5GW3.js} +6 -6
  37. package/studio/web/assets/index-oRZw5GW3.js.map +1 -0
  38. package/studio/web/assets/{index.lazy-0hLbh5Fo.js → index.lazy-DY3VcR86.js} +4 -4
  39. package/studio/web/assets/{index.lazy-0hLbh5Fo.js.map → index.lazy-DY3VcR86.js.map} +1 -1
  40. package/studio/web/assets/{profile-CwBWGuVt.js → profile-DiV60L50.js} +2 -2
  41. package/studio/web/assets/{profile-CwBWGuVt.js.map → profile-DiV60L50.js.map} +1 -1
  42. package/studio/web/assets/{setComponentFile-Dhrmd8eR.js → setComponentFile-Bz6WI4jy.js} +2 -2
  43. package/studio/web/assets/{setComponentFile-Dhrmd8eR.js.map → setComponentFile-Bz6WI4jy.js.map} +1 -1
  44. package/studio/web/assets/{status-Bykq6QcD.js → status-fW6PBpPM.js} +2 -2
  45. package/studio/web/assets/{status-Bykq6QcD.js.map → status-fW6PBpPM.js.map} +1 -1
  46. package/studio/web/assets/{swagger-ui-react-CF94s29D.js → swagger-ui-react-DRYf7G3J.js} +2 -2
  47. package/studio/web/assets/{swagger-ui-react-CF94s29D.js.map → swagger-ui-react-DRYf7G3J.js.map} +1 -1
  48. package/studio/web/assets/{useEntityRestURL-D7vuaG2W.js → useEntityRestURL-14jWKu9J.js} +2 -2
  49. package/studio/web/assets/{useEntityRestURL-D7vuaG2W.js.map → useEntityRestURL-14jWKu9J.js.map} +1 -1
  50. package/studio/web/index.html +1 -1
  51. package/utility/install/installer.ts +12 -5
  52. package/studio/web/assets/index-Cd3Zh3nK.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../../utility/install/installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../../utility/install/installer.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFJ,0BAAO;AAAE,0CAAe;AAAE,8CAAiB;AAwapD,4DAkCC;AA9hBD,uCAAyB;AACzB,wDAAgC;AAChC,6CAA+B;AAC/B,0EAAiD;AACjD,kDAA0B;AAC1B,2CAA6B;AAC7B,IAAI,GAAG,CAAC,CAAC,kDAAkD;AAC3D,2CAA6B;AAE7B,uEAAyD;AACzD,iFAAmE;AACnE,6DAA+C;AAE/C,wFAA0E;AAC1E,wDAAiD;AACjD,yDAA2C;AAC3C,MAAM,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;AACnC,+FAAoE;AACpE,mEAAuC;AACvC,yEAA2D;AAC3D,gEAAkD;AAClD,gEAAkD;AAClD,sFAAsD;AACtD,iEAAmD;AACnD,+BAAiC;AACjC,MAAM,eAAe,GAAG,IAAA,gBAAS,EAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;AACtE,6DAA+C;AAE/C,4EAA4E;AAC5E,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC;AACrD,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxD,MAAM,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC;AAC1B,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AACvD,MAAM,oBAAoB,GAAG,qCAAqC,CAAC;AACnE,MAAM,WAAW,GAAG,wDAAwD,CAAC;AAC7E,MAAM,cAAc,GAAG,iEAAiE,CAAC;AACzF,MAAM,SAAS,GAAG,kBAAkB,CAAC;AACrC,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;AAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAC7E,MAAM,sBAAsB,GAAG,OAAO,CAAC;AACvC,2FAA2F;AAC3F,0FAA0F;AAC1F,0FAA0F;AAC1F,2FAA2F;AAC3F,4FAA4F;AAC5F,4FAA4F;AAC5F,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC,MAAM,eAAe,GAAG;IACvB,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI;IAC/B,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,CAAC;IAC1C,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI;IAC/B,CAAC,aAAa,CAAC,6BAA6B,CAAC,EAAE,IAAI;IACnD,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;IAChC,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,IAAI;IACnC,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,IAAI;IACxC,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM;IACrC,CAAC,aAAa,CAAC,0BAA0B,CAAC,EAAE,IAAI;IAChD,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,IAAI;IACzC,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,qBAAqB;IACpD,CAAC,aAAa,CAAC,6BAA6B,CAAC,EAAE,KAAK;CACpD,CAAC;AAEF,kBAAkB;AAClB,MAAM,eAAe,GAAG;IACvB,WAAW,EAAE,wCAAwC;IACrD,YAAY,EAAE,sDAAsD;IACpE,QAAQ,EAAE,sDAAsD;IAChE,aAAa,EAAE,oDAAoD;IACnE,aAAa,EAAE,yFAAyF;CACxG,CAAC;AAEF,2FAAgE;AAChE,MAAM,MAAM,GAAG,IAAA,kCAAqB,EAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;AAC5E,IAAI,OAAO,GAAG,SAAS,CAAC;AACxB,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAChC,IAAI,cAAc,GAAG,KAAK,CAAC;AAO3B,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC;AAE1C;;;GAGG;AACH,KAAK,UAAU,OAAO;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,GAAG,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAAC;IAC3E,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAEpC,IAAI,cAAc,CAAC;IACnB,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;QACjD,cAAc,GAAG,iBAAiB,EAAE,CAAC;IACtC,CAAC;IAED,6EAA6E;IAC7E,MAAM,cAAc,GAAG,sBAAsB,EAAE,CAAC;IAChD,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAC9C,MAAM,0BAA0B,GAC/B,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC;QACjD,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,kBAAkB,CAAC;QAC3D,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAE7D,IACC,0BAA0B;QAC1B,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,oBAAoB,CAAC;QAC9D,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,EACtD,CAAC;QACF,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IAC/D,CAAC;IAED,kHAAkH;IAClH,IAAI,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACnE,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC;YACrD,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAED,+GAA+G;IAC/G,IAAI,0BAA0B,IAAI,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;QACxG,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;IACjE,CAAC;IAED,gDAAgD;IAChD,MAAM,eAAe,GAAG,IAAA,6BAAgB,EAAC,cAAc,CAAC,CAAC;IACzD,IAAI,eAAe,EAAE,CAAC;QACrB,MAAM,eAAe,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,gDAAgD;IAChD,MAAM,uBAAuB,EAAE,CAAC;IAEhC,kDAAkD;IAClD,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,CAAC;IAE3D,+DAA+D;IAC/D,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAE3D,IACC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,KAAK,OAAO,EACpE,CAAC;QACF,mBAAmB,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,8EAA8E;IAC9E,IACC,CAAC,cAAc;QACf,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC;QAC5C,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACtE,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EACpE,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IACrC,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC;QACnB,UAAU,EAAE,cAAc,CAAC,YAAY,CAAC;QACxC,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,YAAY;KACrB,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;IACpG,CAAC;IACD,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAE5F,8EAA8E;IAC9E,MAAM,IAAA,sBAAQ,EAAC,OAAO,CAAC,CAAC;IAExB,+FAA+F;IAC/F,MAAM,wBAAwB,EAAE,CAAC;IAEjC,uCAAuC;IACvC,MAAM,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAEtC,4FAA4F;IAC5F,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAEhC,yBAAyB;IACzB,MAAM,eAAe,CAAC,aAAa,CAAC,CAAC;IAErC,gCAAgC;IAChC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC9B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAE/B,wDAAwD;IACxD,MAAM,oBAAoB,EAAE,CAAC;IAE7B,4EAA4E;IAC5E,IAAA,gCAAc,GAAE,CAAC;IAEjB,OAAO,CAAC,IAAI,EAAE,CAAC;IAEf,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,GAAG,oBAAoB,GAAG,UAAU,CAAC,CAAC,CAAC;IAC9E,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,iBAAiB;IACzB,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,EAAE;QAClG,UAAU,EAAE,IAAI;KACT,CAAC,CAAC;IACV,MAAM,OAAO,GAAQ,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAEnE,yFAAyF;IACzF,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACzD,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAE3E,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,cAAc,CAAC,cAAc;IAC3C,SAAS,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAEvD,MAAM,aAAa,GAAG;QACrB;YACC,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,yBAAyB;YACtC,IAAI,EAAE,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC;YACtG,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,QAAQ;YACvC,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,gBAAgB;YACzB,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACzB,IAAI,kBAAkB,CAAC,KAAK,CAAC;oBAAE,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAChE,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;oBAClE,OAAO,IAAI,KAAK,qDAAqD,CAAC;gBACvE,OAAO,IAAI,CAAC;YACb,CAAC;YACD,OAAO,EAAE,cAAc,CAAC,eAAe,CAAC,WAAW,CAAC;SACpD;QACD;YACC,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,yBAAyB;YACtC,IAAI,EAAE,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC;YACjH,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,kBAAkB;YACjD,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,sBAAsB;YAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBACnB,IAAI,kBAAkB,CAAC,KAAK,CAAC;oBAAE,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAChE,OAAO,IAAI,CAAC;YACb,CAAC;YACD,OAAO,EAAE,cAAc,CAAC,eAAe,CAAC,YAAY,CAAC;SACrD;QACD;YACC,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC;YAC7G,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,kBAAkB;YACjD,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBACnB,IAAI,kBAAkB,CAAC,KAAK,CAAC;oBAAE,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAChE,OAAO,IAAI,CAAC;YACb,CAAC;YACD,OAAO,EAAE,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC;SACjD;QACD;YACC,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,yBAAyB;YACtC,IAAI,EAAE,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC;YAC7G,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,aAAa;YAC5C,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,qBAAqB;YAC9B,sFAAsF;YACtF,qFAAqF;YACrF,sFAAsF;YACtF,0CAA0C;YAC1C,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI;YACpB,OAAO,EAAE,cAAc,CAAC,eAAe,CAAC,aAAa,CAAC;SACtD;QACD;YACC,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,yBAAyB;YACtC,IAAI,EAAE,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC;YAC7G,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,aAAa;YAC5C,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,mBAAmB;YAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBACnB,IAAI,kBAAkB,CAAC,KAAK,CAAC;oBAAE,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAChE,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;oBACzC,OAAO,qBAAqB,KAAK,iCAAiC,CAAC;gBACpE,CAAC;gBACD,OAAO,IAAI,CAAC;YACb,CAAC;YACD,OAAO,EAAE,cAAc,CAAC,eAAe,CAAC,aAAa,CAAC;SACtD;KACD,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACrD,gEAAgE;IAChE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,cAAc,CAAC;IACvB,CAAC;IAED,sFAAsF;IACtF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YACzC,cAAc,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAED,OAAO,cAAc,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,KAAK,EAAE,GAAG;IACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAClE,SAAS,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;YACjD,SAAS,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,KAAK;IAChC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,wBAAwB,CAAC;IACjC,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB;IAC9B,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAClE,4GAA4G;IAC5G,qGAAqG;IACrG,MAAM,gBAAgB,GAAG,IAAA,kCAAqB,EAAC,mBAAmB,CAAC,CAAC;IACpE,MAAM,gBAAgB,GAAG,IAAA,kCAAqB,EAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7F,MAAM,cAAc,GAAG,EAAE,CAAC;IAE1B,KAAK,MAAM,cAAc,IAAI,mBAAmB,EAAE,CAAC;QAClD,+GAA+G;QAC/G,gHAAgH;QAChH,0BAA0B;QAC1B,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;QAE5E,4GAA4G;QAC5G,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC;YACtC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC/B,cAAc,CAAC,cAAc,CAAC,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACP,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;YAC9E,CAAC;YAED,sHAAsH;YACtH,qCAAqC;QACtC,CAAC;aAAM,IAAI,WAAW,KAAK,SAAS,IAAI,gBAAgB,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACrF,cAAc,CAAC,cAAc,CAAC,GAAG,gBAAgB,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9E,CAAC;IACF,CAAC;IAED,OAAO,cAAc,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,uBAAuB;IACrC,SAAS,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;IACjD,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAEzD,IAAI,SAAS,CAAC;IACd,IAAI,cAAc,EAAE,CAAC;QACpB,SAAS,CAAC,KAAK,CAAC,+CAA+C,YAAY,EAAE,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,IAAA,2BAAgB,EAAC,YAAY,CAAC,CAAC;QACrD,MAAM,cAAc,GACnB,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC;YACvE,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAChE,SAAS,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAED,uFAAuF;IACvF,kCAAkC;IAClC,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,UAAU,EAAE;QAAE,SAAS,GAAG,IAAI,CAAC;IAE/D,IAAI,SAAS,IAAI,CAAC,cAAc,EAAE,CAAC;QAClC,SAAS,CAAC,KAAK,CAAC,wCAAwC,YAAY,EAAE,CAAC,CAAC;QACxE,qGAAqG;QACrG,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;QAClE,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,eAAe,GAAG,gDAAgD,6BAAW,CAAC,OAAO,sBAAsB,CAAC;YAClH,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YACnD,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YAC/D,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC;AAED,KAAK,UAAU,wBAAwB;IACtC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAEvE,IAAI,YAAY,CAAC;IACjB,IAAI,CAAC;QACJ,YAAY,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACR,gDAAgD;QAChD,YAAY;YACX,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IAChH,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QAClB,MAAM,cAAc,GAAG,mBAAmB,cAAc;qBACrC,YAAY,EAAE,CAAC;QAElC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACnE,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QACjF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAC5E,uFAAuF;QACvF,iFAAiF;QACjF,mFAAmF;QACnF,IAAI,oBAAoB,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC1F,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBACvD,wEAAwE;gBACxE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBAChE,IAAI,KAAK,EAAE,CAAC;oBACX,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;oBACjE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;wBAClC,oBAAoB,GAAG,IAAI,CAAC;oBAC7B,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,oBAAoB,GAAG,IAAI,CAAC;gBAC7B,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,oBAAoB,GAAG,IAAI,CAAC;YAC7B,CAAC;QACF,CAAC;QACD,IAAI,oBAAoB,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACJ,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,oBAAoB,EAAE,CAAC,CAAC;gBACpE,EAAE,CAAC,UAAU,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,oBAAoB,EAAE,CAAC,CAAC;YAC5E,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,CAAC,KAAK,CACZ,qCAAqC,QAAQ,CAAC,iBAAiB,mEAAmE,CAClI,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACJ,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,SAAS,CAAC,KAAK,CAAC,sDAAsD,aAAa,EAAE,CAAC,CAAC;gBACvF,MAAM,GAAG,CAAC;YACX,CAAC;QACF,CAAC;QAED,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,YAAY,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;QACpF,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;QACtF,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;IACxE,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY;IAC1D,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACnC,sEAAsE;YACtE,IAAI,GAAG,KAAK,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;gBAC5D,8CAA8C;gBAC9C,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;gBAC3C,SAAS;YACV,CAAC;iBAAM,IAAI,GAAG,KAAK,aAAa,CAAC,SAAS,EAAE,CAAC;gBAC5C,SAAS;YACV,CAAC;YAED,yEAAyE;YACzE,IACC,GAAG,KAAK,aAAa,CAAC,0BAA0B;gBAChD,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,WAAW,EAAE,CAAC,KAAK,SAAS,EAC/E,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;gBAC5D,8CAA8C;gBAC9C,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,GAAG,IAAI,CAAC;gBAC5D,SAAS;YACV,CAAC;iBAAM,IAAI,GAAG,KAAK,aAAa,CAAC,0BAA0B,EAAE,CAAC;gBAC7D,SAAS;YACV,CAAC;YAED,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAC7E,CAAC;IACF,CAAC;SAAM,CAAC;QACP,IAAI,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;YAC/D,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,GAAG,IAAI,CAAC;QAC7D,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAAE,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAC7F,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,gBAAgB,CAAC,aAAa;IAC5C,SAAS,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAA,kCAAqB,EAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;IACjF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAEnC,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAC3E,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,KAAK,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QACrF,MAAM,IAAI,GAAG,wBAAwB,YAAY,sEAAsE,CAAC;QACxH,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;QACrD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,wBAAwB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAE7C,IAAI,CAAC;QACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YAClD,iCAAiC;YACjC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,UAAU,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACpB,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,MAAM;IAC9B,SAAS,CAAC,KAAK,CAAC,6DAA6D,MAAM,EAAE,CAAC,CAAC;IACvF,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEzB,2BAA2B;IAC3B,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAC;IAChG,IAAI,kBAAkB,EAAE,CAAC;QACxB,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACnC,CAAC;IAED,cAAc;IACd,IAAI,OAAO,EAAE,CAAC;QACb,8FAA8F;QAC9F,IAAI,mBAAmB,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAE,CAAS,CAAC,UAAU,IAAK,CAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC7E,IAAI,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9D,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACP,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACF,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAAC,IAAI,EAAE,SAAS;IAC7C,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAEvC,MAAM,eAAe,EAAE,CAAC;IACxB,IAAI,YAAY,CAAC;IACjB,IAAI,CAAC;QACJ,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,uEAAuE;QACvE,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC5C,SAAS,GAAG,SAAS,CAAC;QACvB,CAAC;aAAM,CAAC;YACP,GAAG,CAAC,OAAO,IAAI,qBAAqB,CAAC;YACrC,MAAM,GAAG,CAAC;QACX,CAAC;IACF,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACf,IAAI,CAAC;YACJ,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YACnC,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,OAAO,GAAG,yBAAyB,GAAG,EAAE,CAAC;YAC7C,MAAM,GAAG,CAAC;QACX,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAAC,aAAa;IAC3C,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG;QACZ,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACX,UAAU,EAAE,IAAI;SAChB;KACD,CAAC;IAEF,MAAM,IAAI,GAAG;QACZ,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;QAC/E,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;QAC/E,MAAM,EAAE,IAAI;KACZ,CAAC;IAEF,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,OAAO,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAClE,OAAO,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,oBAAoB;IAClC,MAAM,IAAI,GAAG,6BAAW,CAAC,OAAO,CAAC;IACjC,IAAI,IAAI,EAAE,CAAC;QACV,MAAM,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC5E,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CAAC,KAAK;IAC7B,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;AACrD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAK;IAC/B,cAAc,GAAG,KAAK,CAAC;AACxB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@harperfast/harper",
3
3
  "description": "Harper is an open-source Node.js performance platform that unifies database, cache, application, and messaging layers into one in-memory process.",
4
- "version": "5.1.0-beta.3",
4
+ "version": "5.1.0",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://harper.fast",
7
7
  "bugs": {
@@ -124,7 +124,7 @@
124
124
  },
125
125
  "devDependencies": {
126
126
  "@harperdb/code-guidelines": "^0.0.6",
127
- "@harperfast/integration-testing": "^0.3.1",
127
+ "@harperfast/integration-testing": "^0.5.1",
128
128
  "@modelcontextprotocol/sdk": "^1.29.0",
129
129
  "@types/busboy": "^1.5.4",
130
130
  "@types/fs-extra": "^11.0.4",
@@ -167,7 +167,7 @@
167
167
  "@fastify/cors": "^11.2.0",
168
168
  "@fastify/static": "^9.1.3",
169
169
  "@harperfast/extended-iterable": "^1.0.1",
170
- "@harperfast/rocksdb-js": "^2.0.0",
170
+ "@harperfast/rocksdb-js": "^2.1.0",
171
171
  "@turf/area": "6.5.0",
172
172
  "@turf/boolean-contains": "6.5.0",
173
173
  "@turf/boolean-disjoint": "6.5.0",
@@ -1017,6 +1017,29 @@ export function makeTable(options) {
1017
1017
  }
1018
1018
 
1019
1019
  static async dropTable() {
1020
+ if (databaseName === databasePath) {
1021
+ // Persist a drop tombstone on the primary catalog entry BEFORE any
1022
+ // destructive work. If the process dies or a column family drop fails
1023
+ // partway through, the tombstone survives with the catalog rows, and
1024
+ // the next startup (or a same-name create) completes the drop via
1025
+ // completeInterruptedDrop in databases.ts instead of resurrecting
1026
+ // the table.
1027
+ const primaryCatalogKey = TableResource.tableName + '/';
1028
+ const primaryMeta = (dbisDb as any).getSync(primaryCatalogKey);
1029
+ if (primaryMeta && !primaryMeta.dropping) {
1030
+ primaryMeta.dropping = true;
1031
+ // put is rebound to putSync on RocksDB stores; on LMDB it returns
1032
+ // a promise, so await it to make the tombstone durable before the
1033
+ // destructive work below
1034
+ const tombstoneWrite = (dbisDb as any).put(primaryCatalogKey, primaryMeta);
1035
+ if (tombstoneWrite?.then) await tombstoneWrite;
1036
+ }
1037
+ }
1038
+ // Remove the table from the in-memory schema immediately so concurrent
1039
+ // requests get "table does not exist" instead of racing the column
1040
+ // family drops below. If a drop fails past this point the table stays
1041
+ // invisible, and the tombstone guarantees the drop completes on the
1042
+ // next startup (or on a same-name create).
1020
1043
  delete databases[databaseName][tableName];
1021
1044
  for (const entry of primaryStore.getRange({ versions: true, snapshot: false, lazy: true })) {
1022
1045
  if (entry.metadataFlags & HAS_BLOBS && entry.value) {
@@ -1024,14 +1047,28 @@ export function makeTable(options) {
1024
1047
  }
1025
1048
  }
1026
1049
  if (databaseName === databasePath) {
1027
- // part of a database
1050
+ // part of a database.
1051
+ // Drop the column families and AWAIT them. Previously the catalog
1052
+ // metadata was removed (synchronous removeSync) before primaryStore.drop(),
1053
+ // and the drops were fire-and-forget (their rejections swallowed). If a
1054
+ // column family was corrupt/half-initialized the drop would fail, yet the
1055
+ // catalog entry was already gone - an orphaned "ghost" column family that
1056
+ // poisons same-name recreates. By awaiting the drops before touching the
1057
+ // catalog, a failed drop surfaces as the operation's error and the
1058
+ // tombstoned catalog rows survive for the startup reconcile.
1059
+ const drops = [];
1028
1060
  for (const attribute of attributes) {
1029
- dbisDb.remove(TableResource.tableName + '/' + attribute.name);
1030
1061
  const index = indices[attribute.name];
1031
- index?.drop();
1062
+ if (index) drops.push(index.drop());
1063
+ }
1064
+ drops.push(primaryStore.drop());
1065
+ await Promise.all(drops);
1066
+ // Column families are gone; remove the catalog metadata (including
1067
+ // the tombstoned primary entry).
1068
+ for (const attribute of attributes) {
1069
+ dbisDb.remove(TableResource.tableName + '/' + attribute.name);
1032
1070
  }
1033
1071
  dbisDb.remove(TableResource.tableName + '/');
1034
- primaryStore.drop();
1035
1072
  await dbisDb.committed;
1036
1073
  } else {
1037
1074
  // legacy table per database
@@ -521,6 +521,27 @@ function initStores(
521
521
  Object.defineProperty(value, 'key', { value: key, configurable: true });
522
522
  }
523
523
 
524
+ // Complete any drops that were interrupted mid-flight. dropTable persists a
525
+ // `dropping` tombstone on the table's primary catalog entry before removing
526
+ // column families; if the process died or a column family drop failed
527
+ // partway, the tombstone survives alongside the catalog rows. Without this
528
+ // reconcile, those rows would silently resurrect the table below
529
+ // (recreating any missing column families as empty stores).
530
+ for (const [tableName, tableDef] of tablesToLoad) {
531
+ if (!tableDef.primary?.dropping) continue;
532
+ try {
533
+ completeInterruptedDrop(rootStore, attributesDbi, databaseName, tableName);
534
+ definedTables?.delete(tableName);
535
+ } catch (error) {
536
+ logger.error(
537
+ `Failed to complete interrupted drop of table ${databaseName}.${tableName}; will retry on next start`,
538
+ error
539
+ );
540
+ }
541
+ // whether or not cleanup succeeded, never load a table that was being dropped
542
+ tablesToLoad.delete(tableName);
543
+ }
544
+
524
545
  for (const [tableName, tableDef] of tablesToLoad) {
525
546
  let { attributes, primary: primaryAttribute } = tableDef;
526
547
  if (!primaryAttribute) {
@@ -1067,7 +1088,8 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
1067
1088
  }
1068
1089
 
1069
1090
  exclusiveLock(); // get an exclusive lock on the database so we can verify that we are the only thread creating the table (and assigning the table id)
1070
- if ((attributesDbi as any).getSync(dbiName)) {
1091
+ const existingTableMeta = (attributesDbi as any).getSync(dbiName);
1092
+ if (existingTableMeta && !existingTableMeta.dropping) {
1071
1093
  // table was created while we were setting up
1072
1094
  if (releaseExclusiveLock) releaseExclusiveLock();
1073
1095
  resetDatabases();
@@ -1075,50 +1097,69 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
1075
1097
  }
1076
1098
 
1077
1099
  let primaryStore;
1078
- if (rootStore instanceof RocksDatabase) {
1079
- primaryStore = openRocksDatabase(rootStore.path, { ...dbiInit, name: dbiName } as any);
1080
- } else {
1081
- primaryStore = (rootStore as any).openDB(dbiName, dbiInit as any);
1082
- }
1083
- primaryStore = handleLocalTimeForGets(primaryStore, rootStore);
1084
- rootStore.databaseName = databaseName;
1085
- primaryStore.tableId = attributesDbi.getSync(NEXT_TABLE_ID);
1086
- logger.trace(`Assigning new table id ${primaryStore.tableId} for ${tableName}`);
1087
- if (!primaryStore.tableId) primaryStore.tableId = 1;
1088
- attributesDbi.put(NEXT_TABLE_ID, primaryStore.tableId + 1);
1100
+ try {
1101
+ if (existingTableMeta?.dropping) {
1102
+ // A previous drop of this table was interrupted after its tombstone
1103
+ // was written. Complete it now (under the exclusive lock) so the
1104
+ // create below starts from a clean slate; treating the tombstoned
1105
+ // entry as an existing table would recurse forever on the stale
1106
+ // catalog row.
1107
+ completeInterruptedDrop(rootStore, attributesDbi, databaseName, tableName);
1108
+ }
1109
+ if (rootStore instanceof RocksDatabase) {
1110
+ primaryStore = openRocksDatabase(rootStore.path, { ...dbiInit, name: dbiName } as any);
1111
+ } else {
1112
+ primaryStore = (rootStore as any).openDB(dbiName, dbiInit as any);
1113
+ }
1114
+ primaryStore = handleLocalTimeForGets(primaryStore, rootStore);
1115
+ rootStore.databaseName = databaseName;
1116
+ primaryStore.tableId = attributesDbi.getSync(NEXT_TABLE_ID);
1117
+ logger.trace(`Assigning new table id ${primaryStore.tableId} for ${tableName}`);
1118
+ if (!primaryStore.tableId) primaryStore.tableId = 1;
1119
+ attributesDbi.put(NEXT_TABLE_ID, primaryStore.tableId + 1);
1089
1120
 
1090
- primaryKeyAttribute.tableId = primaryStore.tableId;
1091
- Table = setTable(
1092
- tables,
1093
- tableName,
1094
- makeTable({
1095
- primaryStore,
1096
- auditStore,
1097
- audit,
1098
- sealed,
1099
- splitSegments,
1100
- replicate,
1101
- trackDeletes,
1102
- expirationMS: expiration && expiration * 1000,
1103
- evictionMS: eviction && eviction * 1000,
1104
- primaryKey,
1121
+ primaryKeyAttribute.tableId = primaryStore.tableId;
1122
+ Table = setTable(
1123
+ tables,
1105
1124
  tableName,
1106
- tableId: primaryStore.tableId,
1107
- databasePath: databaseName,
1108
- databaseName,
1109
- indices: {},
1110
- attributes,
1111
- schemaDefined,
1112
- dbisDB: attributesDbi,
1113
- description,
1114
- properties,
1115
- hidden,
1116
- })
1117
- );
1118
- Table.schemaVersion = 1;
1119
- hasChanges = true;
1125
+ makeTable({
1126
+ primaryStore,
1127
+ auditStore,
1128
+ audit,
1129
+ sealed,
1130
+ splitSegments,
1131
+ replicate,
1132
+ trackDeletes,
1133
+ expirationMS: expiration && expiration * 1000,
1134
+ evictionMS: eviction && eviction * 1000,
1135
+ primaryKey,
1136
+ tableName,
1137
+ tableId: primaryStore.tableId,
1138
+ databasePath: databaseName,
1139
+ databaseName,
1140
+ indices: {},
1141
+ attributes,
1142
+ schemaDefined,
1143
+ dbisDB: attributesDbi,
1144
+ description,
1145
+ properties,
1146
+ hidden,
1147
+ })
1148
+ );
1149
+ Table.schemaVersion = 1;
1150
+ hasChanges = true;
1120
1151
 
1121
- attributesDbi.put(dbiName, primaryKeyAttribute);
1152
+ attributesDbi.put(dbiName, primaryKeyAttribute);
1153
+ } catch (error) {
1154
+ // A failure while opening/creating the column family or writing the
1155
+ // table id / catalog entry (e.g. into an env poisoned by a prior
1156
+ // dangling column family) must NOT leak the exclusive
1157
+ // 'update-attributes' spin lock. If it leaks, every subsequent
1158
+ // create_table / attribute update on this database spins forever
1159
+ // (a hard wedge that pins a worker at 100% CPU). Release before rethrow.
1160
+ if (releaseExclusiveLock) releaseExclusiveLock();
1161
+ throw error;
1162
+ }
1122
1163
  }
1123
1164
  const indices = Table.indices;
1124
1165
  if (!attributesDbi) {
@@ -1171,8 +1212,14 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
1171
1212
  let attributeDescriptor = attributesDbi.getSync(dbiKey);
1172
1213
  if (attribute.isPrimaryKey) {
1173
1214
  attributeDescriptor = attributeDescriptor || attributesDbi.getSync((dbiKey = tableName + '/')) || {};
1215
+ // Persist schemaDefined when the explicit live value disagrees with disk. Without this,
1216
+ // a stale `false` (from a v4-era write or replicated event) survives every reload: the
1217
+ // in-memory re-assert in the existing-Table branch only fixes the worker that ran @table,
1218
+ // but other workers' next disk-load re-reads the stale value.
1219
+ const schemaDefinedMismatch = schemaDefinedExplicit && attributeDescriptor.schemaDefined !== schemaDefined;
1174
1220
  // primary key can't change indexing, but settings can change
1175
1221
  if (
1222
+ schemaDefinedMismatch ||
1176
1223
  (audit !== undefined && audit !== Table.audit) ||
1177
1224
  (sealed !== undefined && sealed !== Table.sealed) ||
1178
1225
  (replicate !== undefined && replicate !== Table.replicate) ||
@@ -1190,6 +1237,7 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
1190
1237
  if (sealed !== undefined) updatedPrimaryAttribute.sealed = sealed;
1191
1238
  if (replicate !== undefined) updatedPrimaryAttribute.replicate = replicate;
1192
1239
  if (attribute.type) updatedPrimaryAttribute.type = attribute.type;
1240
+ if (schemaDefinedMismatch) updatedPrimaryAttribute.schemaDefined = schemaDefined;
1193
1241
  hasChanges = true; // send out notification of the change
1194
1242
  exclusiveLock();
1195
1243
  attributesDbi.put(dbiKey, updatedPrimaryAttribute);
@@ -1538,6 +1586,50 @@ async function runIndexing(Table, attributes, indicesToRemove) {
1538
1586
  }
1539
1587
  }
1540
1588
 
1589
+ /**
1590
+ * Completes a table drop that was interrupted after its `dropping` tombstone
1591
+ * was written: drops any surviving table stores and removes the table's
1592
+ * catalog rows. Called from the boot-time schema load and from the create
1593
+ * path when a same-named table is created over a tombstoned entry. Callers
1594
+ * are expected to hold the database's exclusive lock or be in single-threaded
1595
+ * startup; the per-store drops tolerate races (another worker may be
1596
+ * completing the same drop concurrently).
1597
+ */
1598
+ function completeInterruptedDrop(rootStore, attributesDbi, databaseName: string, tableName: string) {
1599
+ logger.warn(`Completing interrupted drop of table ${databaseName}.${tableName}`);
1600
+ if (rootStore instanceof RocksDatabase) {
1601
+ for (const columnName of (rootStore as any).columns) {
1602
+ if (columnName.startsWith(tableName + '/')) {
1603
+ try {
1604
+ const columnStore = openRocksDatabase(rootStore.path, { name: columnName } as any);
1605
+ columnStore.dropSync();
1606
+ columnStore.close();
1607
+ } catch (error) {
1608
+ logger.warn(`Failed dropping column family ${columnName} of ${databaseName}.${tableName}`, error);
1609
+ }
1610
+ }
1611
+ }
1612
+ } else {
1613
+ // LMDB reuses an existing named sub-database on open, so the stores must
1614
+ // be dropped too; removing only the catalog rows would let a same-name
1615
+ // recreate silently inherit the previous table's records.
1616
+ for (const { key, value } of attributesDbi.getRange({ start: tableName + '/', end: tableName + '0' })) {
1617
+ try {
1618
+ const objectStorage =
1619
+ value?.isPrimaryKey || (value?.indexed?.type && CUSTOM_INDEXES[value.indexed.type]?.useObjectStore);
1620
+ const store = (rootStore as any).openDB(key, createOpenDBIObject(!objectStorage, objectStorage) as any);
1621
+ // lmdb drop commits with the env's next transaction
1622
+ store.drop?.();
1623
+ } catch (error) {
1624
+ logger.warn(`Failed dropping store ${key} of ${databaseName}.${tableName}`, error);
1625
+ }
1626
+ }
1627
+ }
1628
+ for (const key of attributesDbi.getKeys({ start: tableName + '/', end: tableName + '0' })) {
1629
+ attributesDbi.remove(key);
1630
+ }
1631
+ }
1632
+
1541
1633
  export function dropTableMeta({ table: tableName, database: databaseName }) {
1542
1634
  const rootStore = database({ database: databaseName, table: tableName });
1543
1635
  const removals = [];
@@ -109,6 +109,9 @@ async function processGraphQLSchema(gqlContent, urlPath, filePath, resources) {
109
109
  for (const arg of directive.arguments) {
110
110
  typeDef[arg.name.value] = coerceDirectiveValue(arg.value);
111
111
  }
112
+ // @table is the canonical schema-defined declaration; pass the flag explicitly so
113
+ // the existing-Table re-assert in databases.ts::table() fires on every reload.
114
+ typeDef.schemaDefined = true;
112
115
  if (typeDef.schema) typeDef.database = typeDef.schema;
113
116
  if (!typeDef.table) typeDef.table = typeName;
114
117
  if (typeDef.audit) typeDef.audit = typeDef.audit !== 'false';
@@ -1,4 +1,4 @@
1
- import { RocksDatabase, Transaction as RocksTransaction } from '@harperfast/rocksdb-js';
1
+ import { RocksDatabase } from '@harperfast/rocksdb-js';
2
2
  import { Resource } from './Resource.ts';
3
3
  import type { Context } from './ResourceInterface.ts';
4
4
  import * as logger from '../utility/logging/harper_logger.js';
@@ -6,10 +6,36 @@ import { DatabaseTransaction } from './DatabaseTransaction.ts';
6
6
  import { RocksTransactionLogStore } from './RocksTransactionLogStore.ts';
7
7
  import { isMainThread } from 'node:worker_threads';
8
8
  import { RequestTarget } from './RequestTarget.ts';
9
- import { classifyAuditEntryForReplay, isUndecodableValidatedWrite } from './replayLogsGuards.ts';
9
+ import {
10
+ classifyAuditEntryForReplay,
11
+ isUndecodableValidatedWrite,
12
+ shouldAbortStalledReplay,
13
+ } from './replayLogsGuards.ts';
10
14
  import { purgeAgedLogs } from './auditStore.ts';
11
15
 
12
16
  let warnedReplayHappening = false;
17
+
18
+ // True when `updated` would DROP shared structures relative to `existing` — for either the classic
19
+ // array form or the {named, typed} Map form, and for a form change between the two. Shared
20
+ // structures only ever grow (ids are stable and append-only), so a shorter replayed buffer is a
21
+ // stale/older entry. Used to refuse a downgrade of the durable structures dictionary during replay:
22
+ // since the composite key is the one RecordEncoder.getStructures reads, overwriting it with fewer
23
+ // structures would drop ids the decoder still needs and make existing records decode to null. This
24
+ // mirrors saveStructures' compatibility reject (RecordEncoder.ts). See harper-pro#362.
25
+ export function structuresWouldShrink(existing: any, updated: any): boolean {
26
+ if (Array.isArray(existing)) {
27
+ return !Array.isArray(updated) || updated.length < existing.length;
28
+ }
29
+ if (existing && typeof existing.get === 'function') {
30
+ if (!updated || typeof updated.get !== 'function') return true;
31
+ return (
32
+ (updated.get('named')?.length ?? 0) < (existing.get('named')?.length ?? 0) ||
33
+ (updated.get('typed')?.length ?? 0) < (existing.get('typed')?.length ?? 0)
34
+ );
35
+ }
36
+ return false;
37
+ }
38
+
13
39
  export function replayLogs(rootStore: RocksDatabase, tables: any): Promise<void> {
14
40
  if (!isMainThread) return; // ideally we don't do it like this, but for now this is predictable
15
41
  return new Promise((resolve) => {
@@ -49,8 +75,21 @@ export function replayLogs(rootStore: RocksDatabase, tables: any): Promise<void>
49
75
  let lastTimestamp = 0;
50
76
  let writes = 0;
51
77
  let skipped = 0;
78
+ // Track forward progress so a backlog of unwritable entries can't grind the boot thread
79
+ // forever (harper#1266). `noProgressRun` counts every entry processed without a successful
80
+ // write since the last one — undecodable/corrupt skips AND entries for a dropped table — and
81
+ // is reset to 0 the moment a write succeeds, so the stall bound only fires on a genuinely
82
+ // write-free run.
83
+ let noProgressRun = 0;
84
+ let lastProgressTime = performance.now();
52
85
  const txnLog: RocksTransactionLogStore = (rootStore as any).auditStore;
53
86
  for (const auditRecord of txnLog.getRange({ startFromLastFlushed: true, readUncommitted: true }) as any) {
87
+ if (noProgressRun > 0 && shouldAbortStalledReplay(noProgressRun, performance.now() - lastProgressTime)) {
88
+ logger.fatal(
89
+ `Aborting transaction-log replay in ${(rootStore as any).databaseName} database: ${noProgressRun} consecutive audit entries with no successful write (${skipped} skipped as unrecoverable, ${writes} replayed so far). This backlog is making no forward progress and was blocking startup (harper#1266) — typically a peer transaction log whose values reference unresolvable shared structures (harper#1163), or a backlog for a dropped table. Continuing boot without replaying the remainder; shed or relocate the oversized/undecodable peer transaction log(s), or re-clone this node, to recover the unreplayed data.`
90
+ );
91
+ break;
92
+ }
54
93
  const {
55
94
  type,
56
95
  tableId,
@@ -66,27 +105,18 @@ export function replayLogs(rootStore: RocksDatabase, tables: any): Promise<void>
66
105
  try {
67
106
  if (classifyAuditEntryForReplay(extendedType, tableId, true) === 'corrupt-header') {
68
107
  skipped++;
108
+ noProgressRun++;
69
109
  continue;
70
110
  }
71
111
  const Table = tableById.get(tableId);
72
- if (!Table) continue;
73
- const context: Context = {
74
- nodeId,
75
- alreadyLogged: true,
76
- version,
77
- expiresAt,
78
- user: { username },
79
- } as any;
80
- const { primaryStore } = Table as any;
81
- const target = new RequestTarget();
82
- target.id = null;
83
- const tableInstance: any = Table.getResource(target, context, {});
84
- // TODO: If this throws an error due to being unable to access structures, we need to iterate through
85
- // other transaction logs to get the latest structure. Ultimately we may have to skip records
86
- if (!warnedReplayHappening) {
87
- warnedReplayHappening = true;
88
- console.warn('Harper was not properly shutdown, replaying transaction logs to synchronize database');
112
+ if (!Table) {
113
+ // Entry for a table this node no longer has (dropped/foreign). Not an
114
+ // unrecoverable skip, but still a no-progress entry — a large backlog of them
115
+ // must trip the stall bound rather than grind the boot thread.
116
+ noProgressRun++;
117
+ continue;
89
118
  }
119
+ const { primaryStore } = Table as any;
90
120
  let record: any;
91
121
  try {
92
122
  record = auditRecord.getValue(primaryStore);
@@ -97,6 +127,7 @@ export function replayLogs(rootStore: RocksDatabase, tables: any): Promise<void>
97
127
  // (millions of these were observed in prod). The total skip count is logged
98
128
  // once at the end of replay.
99
129
  skipped++;
130
+ noProgressRun++;
100
131
  continue;
101
132
  }
102
133
  if (
@@ -104,8 +135,27 @@ export function replayLogs(rootStore: RocksDatabase, tables: any): Promise<void>
104
135
  isUndecodableValidatedWrite(type, record)
105
136
  ) {
106
137
  skipped++;
138
+ noProgressRun++;
107
139
  continue;
108
140
  }
141
+ // Entry is replayable: build the context and instantiate the resource only now, so
142
+ // the skip paths above never pay those per-entry allocations (harper#1266).
143
+ const context: Context = {
144
+ nodeId,
145
+ alreadyLogged: true,
146
+ version,
147
+ expiresAt,
148
+ user: { username },
149
+ } as any;
150
+ const target = new RequestTarget();
151
+ target.id = null;
152
+ const tableInstance: any = Table.getResource(target, context, {});
153
+ // TODO: If this throws an error due to being unable to access structures, we need to iterate through
154
+ // other transaction logs to get the latest structure. Ultimately we may have to skip records
155
+ if (!warnedReplayHappening) {
156
+ warnedReplayHappening = true;
157
+ console.warn('Harper was not properly shutdown, replaying transaction logs to synchronize database');
158
+ }
109
159
  if (lastTimestamp !== version) {
110
160
  lastTimestamp = version;
111
161
  try {
@@ -145,40 +195,62 @@ export function replayLogs(rootStore: RocksDatabase, tables: any): Promise<void>
145
195
  tableInstance._writeInvalidate(recordId, record, options);
146
196
  break;
147
197
  case 'structures': {
148
- const rocksTransaction = new RocksTransaction(primaryStore.store);
149
198
  const structuresAsBinary = auditRecord.getBinaryValue(primaryStore);
150
199
  const updatedStructures = structuresAsBinary ? primaryStore.decoder.decode(structuresAsBinary) : undefined;
151
- const existingStructures = primaryStore.getSync(Symbol.for('structures'), {
152
- transaction: rocksTransaction,
153
- });
154
- if (existingStructures) {
155
- if (existingStructures instanceof Array) {
156
- if (updatedStructures.length < existingStructures.length) {
157
- logger.warn(
158
- `Found ${existingStructures.length} structures in audit store, but ${updatedStructures.length} in replay log. Using ${updatedStructures.length} structures.`
159
- );
160
- }
161
- } else {
162
- if (existingStructures.get('named').length > updatedStructures.get('named').length) {
200
+ // Persist replayed structures where the decoder actually reads them: the RocksDB decode
201
+ // path (RecordEncoder.getStructures) reads `rootStore` at the COMPOSITE key
202
+ // [Symbol.for('structures'), name], and saveStructures writes there. This previously wrote
203
+ // `primaryStore` at the PLAIN key Symbol.for('structures'), which getStructures never
204
+ // consults so a structure delivered only via replication stayed invisible to the decoder
205
+ // (records referencing it decoded to null) until a full-copy resync rewrote the row through
206
+ // saveStructures. See harper-pro#362 (and the #352 auth-path wedge). Because this is now the
207
+ // authoritative key the decoder reads, it must carry saveStructures' guards: never poison the
208
+ // dictionary with an undecodable value, and never downgrade it to fewer structures.
209
+ const encoder = primaryStore.decoder;
210
+ const sharedStructuresKey = [Symbol.for('structures'), encoder.name];
211
+ encoder.rootStore.transactionSync(
212
+ (txn) => {
213
+ // A torn/corrupt/empty structures log value decodes to null/undefined; writing it to
214
+ // the key the decoder reads would poison the whole table's structure dictionary.
215
+ if (!updatedStructures) {
163
216
  logger.warn(
164
- `Found named ${existingStructures.length} structures in audit store, but ${updatedStructures.length} in replay log. Using named ${updatedStructures.length} structures.`
217
+ `Skipping a structures replay entry that did not decode to a valid structures buffer (table ${encoder.name}).`
165
218
  );
219
+ return;
166
220
  }
167
- if (existingStructures.get('typed').length > updatedStructures.get('typed').length) {
221
+ const existingStructuresBuffer = txn.getBinarySync(sharedStructuresKey);
222
+ const existingStructures = existingStructuresBuffer
223
+ ? encoder.decode(existingStructuresBuffer)
224
+ : undefined;
225
+ // Refuse to overwrite a longer/newer durable buffer with an older/shorter replayed
226
+ // one — dropping ids the decoder still needs would make existing records decode to
227
+ // null. saveStructures rejects incompatible writes the same way (RecordEncoder.ts).
228
+ if (existingStructures && structuresWouldShrink(existingStructures, updatedStructures)) {
168
229
  logger.warn(
169
- `Found named ${existingStructures.length} structures in audit store, but ${updatedStructures.length} in replay log. Using named ${updatedStructures.length} structures.`
230
+ `Replay log structures for table ${encoder.name} are fewer than the durable buffer; keeping the durable structures.`
170
231
  );
232
+ return;
171
233
  }
172
- }
173
- }
174
- primaryStore.putSync(Symbol.for('structures'), asBinary(structuresAsBinary), {
175
- transaction: rocksTransaction,
176
- });
177
- rocksTransaction.commitSync();
178
- primaryStore.decoder.structure = updatedStructures;
234
+ txn.putSync(sharedStructuresKey, asBinary(structuresAsBinary));
235
+ },
236
+ { retryOnBusy: true }
237
+ );
238
+ // No in-memory assignment is needed: the remainder of the replay decodes through
239
+ // getStructures/loadStructures, which re-reads this composite key (now correct) whenever a
240
+ // record references a not-yet-loaded structure id. We deliberately do NOT route through
241
+ // saveStructures, which would set structureUpdate and re-log the structure during replay.
179
242
  }
180
243
  }
244
+ // Forward progress: a write was staged successfully, so reset the no-progress
245
+ // trackers. Doing this AFTER the switch (not before) means a slow or throwing
246
+ // write is neither counted as progress nor charged to the stall bound (harper#1266).
247
+ noProgressRun = 0;
248
+ lastProgressTime = performance.now();
181
249
  } catch (err) {
250
+ // A write that threw made no forward progress either — count it toward the stall
251
+ // bound so a continuous stream of throwing writes can't grind the boot thread
252
+ // indefinitely (and the per-entry error log below can't spam unboundedly). harper#1266
253
+ noProgressRun++;
182
254
  logger.error(`Error writing from replay of log`, err, {
183
255
  version,
184
256
  });