mindoodb 0.0.71 → 0.0.73

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 (43) hide show
  1. package/dist/core/BaseMindooDB.d.ts +50 -1
  2. package/dist/core/BaseMindooDB.d.ts.map +1 -1
  3. package/dist/core/BaseMindooDB.js +314 -10
  4. package/dist/core/BaseMindooDB.js.map +1 -1
  5. package/dist/core/BaseMindooTenant.d.ts +16 -0
  6. package/dist/core/BaseMindooTenant.d.ts.map +1 -1
  7. package/dist/core/BaseMindooTenant.js +43 -0
  8. package/dist/core/BaseMindooTenant.js.map +1 -1
  9. package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +11 -0
  10. package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -1
  11. package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +44 -18
  12. package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -1
  13. package/dist/core/appendonlystores/purgeDocumentHistory.d.ts +52 -0
  14. package/dist/core/appendonlystores/purgeDocumentHistory.d.ts.map +1 -0
  15. package/dist/core/appendonlystores/purgeDocumentHistory.js +107 -0
  16. package/dist/core/appendonlystores/purgeDocumentHistory.js.map +1 -0
  17. package/dist/core/appendonlystores/purgedDocumentGuard.d.ts +33 -0
  18. package/dist/core/appendonlystores/purgedDocumentGuard.d.ts.map +1 -0
  19. package/dist/core/appendonlystores/purgedDocumentGuard.js +78 -0
  20. package/dist/core/appendonlystores/purgedDocumentGuard.js.map +1 -0
  21. package/dist/core/types.d.ts +63 -0
  22. package/dist/core/types.d.ts.map +1 -1
  23. package/dist/core/types.js.map +1 -1
  24. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +13 -0
  25. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +1 -1
  26. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js +26 -2
  27. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js.map +1 -1
  28. package/dist/node/server/MindooDBServer.d.ts.map +1 -1
  29. package/dist/node/server/MindooDBServer.js +2 -0
  30. package/dist/node/server/MindooDBServer.js.map +1 -1
  31. package/dist/node/server/TenantManager.d.ts +11 -0
  32. package/dist/node/server/TenantManager.d.ts.map +1 -1
  33. package/dist/node/server/TenantManager.js +40 -9
  34. package/dist/node/server/TenantManager.js.map +1 -1
  35. package/dist/node/server/peer/ClusterManager.d.ts +4 -0
  36. package/dist/node/server/peer/ClusterManager.d.ts.map +1 -1
  37. package/dist/node/server/peer/ClusterManager.js +2 -0
  38. package/dist/node/server/peer/ClusterManager.js.map +1 -1
  39. package/dist/node/server/peer/PeerReplicator.d.ts +12 -0
  40. package/dist/node/server/peer/PeerReplicator.d.ts.map +1 -1
  41. package/dist/node/server/peer/PeerReplicator.js +19 -1
  42. package/dist/node/server/peer/PeerReplicator.js.map +1 -1
  43. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryContentAddressedStore.js","sourceRoot":"","sources":["../../../src/core/appendonlystores/InMemoryContentAddressedStore.ts"],"names":[],"mappings":";;;AAAA,mCAkBiB;AACjB,wDAA2D;AAC3D,mEAA8E;AAC9E,mCAA+C;AAC/C,qEAA+G;AAC/G,2CAAmD;AAMnD,wCAAsE;AAEtE;;;;;;;;;GASG;AACH,MAAa,6BAA6B;IA+BxC,YACE,IAAY,EACZ,YAAuB,iBAAS,CAAC,IAAI,EACrC,MAAe,EACf,OAA0B;QA/B5B,mCAAmC;QAC3B,YAAO,GAAoC,IAAI,GAAG,EAAE,CAAC;QAE7D,4DAA4D;QACpD,iBAAY,GAA4B,IAAI,GAAG,EAAE,CAAC;QAE1D,qEAAqE;QAC7D,aAAQ,GAA6B,IAAI,GAAG,EAAE,CAAC,CAAC,wBAAwB;QAEhF,0FAA0F;QAClF,uBAAkB,GAAgC,IAAI,CAAC;QAE/D,2EAA2E;QACnE,qBAAgB,GAAG,CAAC,CAAC;QAE7B;;;WAGG;QACK,eAAU,GAAW,IAAA,iCAAkB,GAAE,CAAC;QAElD,6EAA6E;QACrE,oBAAe,GAAwB,IAAI,GAAG,EAAE,CAAC;QAWvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM;YACT,MAAM;gBACN,IAAI,sBAAY,CAAC,IAAA,4BAAkB,GAAE,EAAE,iBAAiB,IAAI,IAAI,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QACrF,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,KAAK,KAAK,CAAC;IAC5D,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CAAC,OAAqB;QACpC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,8DAA8D;YAC9D,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE,2BAA2B,CAAC,CAAC;gBAChE,SAAS;YACX,CAAC;YAED,wCAAwC;YACxC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;YAC7E,MAAM,QAAQ,GAAuB;gBACnC,GAAG,IAAI;gBACP,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE;aACtC,CAAC;YAEF,uBAAuB;YACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAErC,0DAA0D;YAC1D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;gBACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACvF,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,mCAAmC,CAAC,CAAC;YACrG,CAAC;YAED,wBAAwB;YACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAE9C,8DAA8D;YAC9D,IAAI,CAAC,eAAe,CAAC,GAAG,CACtB,KAAK,CAAC,WAAW,EACjB,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CACvD,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,CAAC,EAAE,YAAY,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,oBAAoB,CAAC,QAA8B;QACvD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,SAAS;YACX,CAAC;YACD,uEAAuE;YACvE,IACE,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU;gBAC1C,QAAQ,CAAC,mBAAmB,KAAK,OAAO,CAAC,mBAAmB,EAC5D,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;gBAC3B,GAAG,QAAQ;gBACX,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;gBAChD,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;gBACpD,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,kEAAkE;gBAClE,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE;aACtC,CAAC,CAAC;YACH,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,GAAa;QAC5B,MAAM,MAAM,GAAiB,EAAE,CAAC;QAEhC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAClE,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,WAAW,wBAAwB,EAAE,EAAE,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC;QACvF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAU;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,mCAAmC,CACvC,WAAmB,EACnB,cAAsB,EACtB,OAAkC;QAElC,OAAO,IAAA,2DAAmC,EAAC,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACzF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,GAAa;QAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,QAAQ,CAAC,MAAM,4BAA4B,GAAG,CAAC,MAAM,UAAU,CAAC,CAAC;QAC5F,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,cAAc,CAAC,QAAkB;QACrC,sDAAsD;QACtD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,CAAC;QAE9C,6DAA6D;QAC7D,MAAM,UAAU,GAAyB,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,UAAU,CAAC,MAAM,uBAAuB,IAAI,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,CAAC;QAC9F,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,oBAAoB,CAAC,QAAkB,EAAE,KAAa;QAC1D,sDAAsD;QACtD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,CAAC;QAE9C,2CAA2C;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAE1D,kEAAkE;QAClE,MAAM,UAAU,GAAyB,EAAE,CAAC;QAC5C,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtC,IAAI,QAAQ,EAAE,CAAC;oBACb,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,UAAU,CAAC,MAAM,wBAAwB,KAAK,WAAW,WAAW,CAAC,IAAI,QAAQ,CAAC,CAAC;QAC9G,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,IAAoB,EACpB,gBAA+B,EAC/B,iBAAgC;QAEhC,MAAM,OAAO,GAAyB,EAAE,CAAC;QAEzC,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1C,iBAAiB;YACjB,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;YAED,gCAAgC;YAChC,IAAI,gBAAgB,KAAK,IAAI,IAAI,QAAQ,CAAC,SAAS,GAAG,gBAAgB,EAAE,CAAC;gBACvE,SAAS;YACX,CAAC;YAED,IAAI,iBAAiB,KAAK,IAAI,IAAI,QAAQ,CAAC,SAAS,IAAI,iBAAiB,EAAE,CAAC;gBAC1E,SAAS;YACX,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,MAAM,oBAAoB,IAAI,gBAAgB,CAAC,CAAC;QACnF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IACK,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;iBACxD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACb,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1B,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAClD,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACK,uBAAuB,CAC7B,MAA4B,EAC5B,MAAuB;QAEvB,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,IACE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY;gBAC3C,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,EACpE,CAAC;gBACD,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,GAAG,CAAC;YACX,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,2DAA2D;IACnD,kBAAkB,CACxB,IAAwB,EACxB,OAA0B;QAE1B,IAAI,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IACE,OAAO,EAAE,UAAU;YACnB,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAC7B,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAC5C,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IACE,OAAO,EAAE,gBAAgB,KAAK,SAAS;YACvC,OAAO,CAAC,gBAAgB,KAAK,IAAI;YACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,gBAAgB,EACzC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IACE,OAAO,EAAE,iBAAiB,KAAK,SAAS;YACxC,OAAO,CAAC,iBAAiB,KAAK,IAAI;YAClC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAC3C,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,CACpB,MAA8B,EAC9B,QAAgB,MAAM,CAAC,gBAAgB,EACvC,OAA0B;QAE1B,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,MAAM,UAAU,GAAyB,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,GAAG,EAAE,CAAC;gBACR,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;oBACrB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAClC,IAAI,IAAI,EAAE,CAAC;wBACT,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,IAAA,gCAAoB,EAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvC,MAAM,QAAQ,GACZ,MAAM,KAAK,IAAI;YACb,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEnD,8DAA8D;QAC9D,MAAM,IAAI,GAAyB,EAAE,CAAC;QACtC,IAAI,CAAC,GAAG,QAAQ,CAAC;QACjB,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;gBAChD,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,OAAO;YACL,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;gBACd,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;gBACvD,CAAC,CAAC,MAAM;YACV,OAAO;SACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACnC,OAAO,IAAA,4BAAoB,EAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,eAAe,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC;SAC3C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,2BAA2B,CAC/B,KAAa,EACb,OAAoC;QAEpC,MAAM,OAAO,GAAyB,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,GAAG,EAAE,CAAC;YACR,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClC,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAA,2DAAkC,EAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,gCAAgC,CACpC,MAAgB,EAChB,OAAoC;QAEpC,2DAA2D;QAC3D,MAAM,UAAU,GAAyB,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAA,wDAA+B,EAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,mBAAmB,CACvB,OAAe,EACf,OAAiC;QAEjC,MAAM,eAAe,GAAG,OAAO,EAAE,eAAqC,CAAC;QACvE,MAAM,QAAQ,GAAG,OAAO,EAAE,QAA8B,CAAC;QACzD,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,KAAK,KAAK,CAAC,CAAC,gBAAgB;QAEtE,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,KAAK,GAAyC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAChF,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,OAAO,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAExC,0BAA0B;YAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpB,SAAS;YACX,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,kBAAkB;YAClB,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;gBAC/C,SAAS;YACX,CAAC;YAED,yBAAyB;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,yCAAyC,CAAC,CAAC;gBACvE,SAAS;YACX,CAAC;YAED,uBAAuB;YACvB,IAAI,eAAe,IAAI,KAAK,CAAC,SAAS,KAAK,eAAe,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;gBAC7E,6DAA6D;gBAC7D,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,SAAS;YACX,CAAC;YAED,qEAAqE;YACrE,IAAI,EAAE,KAAK,OAAO,IAAI,YAAY,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YAED,mCAAmC;YACnC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,MAAM,qBAAqB,OAAO,EAAE,CAAC,CAAC;QAC3E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,eAAe,CAAC,KAAa;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAC;QAEjE,sCAAsC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE7C,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,KAAK,oBAAoB,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,2DAA2D;QAC3D,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,QAAQ,EAAE,CAAC;gBACb,kEAAkE;gBAClE,MAAM,QAAQ,GACZ,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC5D,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;oBAClB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBAC/C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,+BAA+B,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CACzE,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC3D,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE5B,kCAAkC;QAClC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAE/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,WAAW,CAAC,IAAI,yBAAyB,KAAK,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;YACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;SAC7B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,iEAAiE;QACjE,IAAI,CAAC,UAAU,GAAG,IAAA,iCAAkB,GAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,QAAiC;QACrD,OAAO;YACL,KAAK,EAAE,OAAO;YACd,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO;YACL,KAAK,EAAE,OAAO;YACd,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;CACF;AAxoBD,sEAwoBC;AAED;;;GAGG;AACH,MAAa,oCAAoC;IAC/C,WAAW,CAAC,IAAY,EAAE,OAA0B;QAClD,MAAM,QAAQ,GAAG,IAAI,6BAA6B,CAAC,IAAI,EAAE,iBAAS,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7F,MAAM,eAAe,GAAG,IAAI,6BAA6B,CACvD,IAAI,EACJ,iBAAS,CAAC,WAAW,EACrB,SAAS,EACT,OAAO,CACR,CAAC;QACF,IAAI,OAAO,EAAE,uBAAuB,EAAE,CAAC;YACrC,+EAA+E;YAC/E,KAAK,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAClC,KAAK,eAAe,CAAC,iBAAiB,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO;YACL,QAAQ;YACR,eAAe;SAChB,CAAC;IACJ,CAAC;CACF;AAnBD,oFAmBC"}
1
+ {"version":3,"file":"InMemoryContentAddressedStore.js","sourceRoot":"","sources":["../../../src/core/appendonlystores/InMemoryContentAddressedStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Store-level document-history purge (docs/accesscontrol.md §13).
3
+ *
4
+ * A purge physically removes one document's entries from a database's docs
5
+ * store and its attachment chunks from the attachment store. The docs store is
6
+ * simple: a document's entries belong to it alone. Attachment chunks are not:
7
+ *
8
+ * - **Entries.** Duplicating a document inside the same database re-prefixes
9
+ * the copy's chunks, but the copy's *history* keeps pointing at the source's
10
+ * chunk ids (see `copy/attachments.ts`). Purging the source's chunks
11
+ * unconditionally would break attachment time travel on the copy. Those
12
+ * references are visible without decryption: every document entry carries
13
+ * its complete attachment set in the signed cleartext `attachmentRefs`.
14
+ * - **Content.** With deterministic attachment encryption, identical bytes
15
+ * under the same key produce identical ciphertext, so two documents can share
16
+ * one content blob. The stores release a blob only when its last entry goes
17
+ * (reference counting by content hash), which this module relies on.
18
+ *
19
+ * Usable without decryption keys, so both the sync server and clients run the
20
+ * same code.
21
+ *
22
+ * @module
23
+ */
24
+ import type { ContentAddressedStore } from "./types";
25
+ /** What {@link purgeDocumentHistoryFromStores} removed and kept. */
26
+ export interface DocumentHistoryPurgeOutcome {
27
+ /** Entries removed from the docs store. */
28
+ docEntriesPurged: number;
29
+ /** Attachment chunks of the document removed from the attachment store. */
30
+ attachmentChunksPurged: number;
31
+ /**
32
+ * Attachment chunks of the document that were kept because another
33
+ * document's history still references them.
34
+ */
35
+ attachmentChunksRetained: number;
36
+ }
37
+ /**
38
+ * Physically purge one document's history from a database's stores.
39
+ *
40
+ * Removes every docs-store entry of the document and every attachment chunk of
41
+ * it that no other document references. Idempotent: a second call finds
42
+ * nothing (or only the retained chunks) and changes nothing.
43
+ *
44
+ * @param stores The database's docs store and, when it has one, its attachment
45
+ * store.
46
+ * @param docId The document to purge.
47
+ */
48
+ export declare function purgeDocumentHistoryFromStores(stores: {
49
+ docsStore: ContentAddressedStore;
50
+ attachmentStore?: ContentAddressedStore | null;
51
+ }, docId: string): Promise<DocumentHistoryPurgeOutcome>;
52
+ //# sourceMappingURL=purgeDocumentHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"purgeDocumentHistory.d.ts","sourceRoot":"","sources":["../../../src/core/appendonlystores/purgeDocumentHistory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGrD,oEAAoE;AACpE,MAAM,WAAW,2BAA2B;IAC1C,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,sBAAsB,EAAE,MAAM,CAAC;IAC/B;;;OAGG;IACH,wBAAwB,EAAE,MAAM,CAAC;CAClC;AA6CD;;;;;;;;;;GAUG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,EAAE;IACN,SAAS,EAAE,qBAAqB,CAAC;IACjC,eAAe,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAChD,EACD,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,2BAA2B,CAAC,CAqCtC"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ /**
3
+ * Store-level document-history purge (docs/accesscontrol.md §13).
4
+ *
5
+ * A purge physically removes one document's entries from a database's docs
6
+ * store and its attachment chunks from the attachment store. The docs store is
7
+ * simple: a document's entries belong to it alone. Attachment chunks are not:
8
+ *
9
+ * - **Entries.** Duplicating a document inside the same database re-prefixes
10
+ * the copy's chunks, but the copy's *history* keeps pointing at the source's
11
+ * chunk ids (see `copy/attachments.ts`). Purging the source's chunks
12
+ * unconditionally would break attachment time travel on the copy. Those
13
+ * references are visible without decryption: every document entry carries
14
+ * its complete attachment set in the signed cleartext `attachmentRefs`.
15
+ * - **Content.** With deterministic attachment encryption, identical bytes
16
+ * under the same key produce identical ciphertext, so two documents can share
17
+ * one content blob. The stores release a blob only when its last entry goes
18
+ * (reference counting by content hash), which this module relies on.
19
+ *
20
+ * Usable without decryption keys, so both the sync server and clients run the
21
+ * same code.
22
+ *
23
+ * @module
24
+ */
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.purgeDocumentHistoryFromStores = purgeDocumentHistoryFromStores;
27
+ /**
28
+ * Ids of `ownChunks` that another document still references: a chunk chain
29
+ * whose head appears in some other document's `attachmentRefs`, followed back
30
+ * through its dependencies.
31
+ *
32
+ * Chunk chains never cross documents (appends depend on the attachment's own
33
+ * previous chunk and copies re-map the dependencies with the ids), so the walk
34
+ * stays inside `ownChunks`.
35
+ */
36
+ async function findChunksReferencedElsewhere(docsStore, docId, ownChunks) {
37
+ const ownById = new Map(ownChunks.map((entry) => [entry.id, entry]));
38
+ const pending = [];
39
+ for (const entry of await docsStore.findNewEntries([])) {
40
+ if (entry.docId === docId) {
41
+ continue;
42
+ }
43
+ for (const ref of entry.attachmentRefs ?? []) {
44
+ if (ownById.has(ref.lastChunkId)) {
45
+ pending.push(ref.lastChunkId);
46
+ }
47
+ }
48
+ }
49
+ const retained = new Set();
50
+ while (pending.length > 0) {
51
+ const id = pending.pop();
52
+ if (retained.has(id)) {
53
+ continue;
54
+ }
55
+ const chunk = ownById.get(id);
56
+ if (!chunk) {
57
+ continue;
58
+ }
59
+ retained.add(id);
60
+ pending.push(...chunk.dependencyIds);
61
+ }
62
+ return retained;
63
+ }
64
+ /**
65
+ * Physically purge one document's history from a database's stores.
66
+ *
67
+ * Removes every docs-store entry of the document and every attachment chunk of
68
+ * it that no other document references. Idempotent: a second call finds
69
+ * nothing (or only the retained chunks) and changes nothing.
70
+ *
71
+ * @param stores The database's docs store and, when it has one, its attachment
72
+ * store.
73
+ * @param docId The document to purge.
74
+ */
75
+ async function purgeDocumentHistoryFromStores(stores, docId) {
76
+ const { docsStore, attachmentStore } = stores;
77
+ let attachmentChunksPurged = 0;
78
+ let attachmentChunksRetained = 0;
79
+ if (attachmentStore && attachmentStore !== docsStore) {
80
+ const ownChunks = await attachmentStore.findNewEntriesForDoc([], docId);
81
+ if (ownChunks.length > 0) {
82
+ const retained = await findChunksReferencedElsewhere(docsStore, docId, ownChunks);
83
+ if (retained.size === 0) {
84
+ await attachmentStore.purgeDocHistory(docId);
85
+ attachmentChunksPurged = ownChunks.length;
86
+ }
87
+ else {
88
+ if (typeof attachmentStore.deleteEntriesById !== "function") {
89
+ throw new Error(`Cannot purge attachments of ${docId}: ${retained.size} chunk(s) are shared ` +
90
+ `with other documents and the attachment store cannot delete entries by id`);
91
+ }
92
+ attachmentChunksPurged = await attachmentStore.deleteEntriesById(ownChunks.filter((entry) => !retained.has(entry.id)).map((entry) => entry.id));
93
+ attachmentChunksRetained = retained.size;
94
+ }
95
+ }
96
+ }
97
+ const docEntries = await docsStore.findNewEntriesForDoc([], docId);
98
+ if (docEntries.length > 0) {
99
+ await docsStore.purgeDocHistory(docId);
100
+ }
101
+ return {
102
+ docEntriesPurged: docEntries.length,
103
+ attachmentChunksPurged,
104
+ attachmentChunksRetained,
105
+ };
106
+ }
107
+ //# sourceMappingURL=purgeDocumentHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"purgeDocumentHistory.js","sourceRoot":"","sources":["../../../src/core/appendonlystores/purgeDocumentHistory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Refuse entries of purged documents at the moment they would be stored.
3
+ *
4
+ * A purge removes a document's history from the replicas that executed it, but
5
+ * every replica that has not (yet) done so still holds the entries and offers
6
+ * them on the next sync. The sync server already rejects such pushes
7
+ * (`ServerNetworkContentAddressedStore`, rejection class `"purged"`); this
8
+ * guard applies the same rule wherever entries are *pulled into* a store:
9
+ * client pulls and server-to-server pull replication.
10
+ *
11
+ * The guard wraps the receiving store and filters `putEntries`. Rejected
12
+ * entries are reported as `"purged"` in a {@link PutEntriesAck}, which the sync
13
+ * loop already understands: the class is not self-resolving, so the scan cursor
14
+ * moves past them and they are never offered again.
15
+ *
16
+ * @module
17
+ */
18
+ import type { ContentAddressedStore } from "./types";
19
+ import type { Logger } from "../logging";
20
+ /** Supplies the ids of the documents purged from the guarded database. */
21
+ export type PurgedDocumentIdsResolver = () => Promise<ReadonlySet<string>>;
22
+ /**
23
+ * Wrap `store` so `putEntries` refuses entries whose `docId` is purged. Every
24
+ * other member is the original store's, so store identity (sync cursor keys,
25
+ * `getId`, `getCacheIdentity`) is unchanged.
26
+ *
27
+ * The resolver runs lazily, once per wrapper, on the first `putEntries` call:
28
+ * a sync that transfers nothing costs nothing. A failing resolver lets entries
29
+ * through (logged) rather than blocking the sync; the purge reconcile removes
30
+ * whatever slipped in.
31
+ */
32
+ export declare function guardStoreAgainstPurgedDocuments(store: ContentAddressedStore, resolvePurgedDocIds: PurgedDocumentIdsResolver, logger?: Logger): ContentAddressedStore;
33
+ //# sourceMappingURL=purgedDocumentGuard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"purgedDocumentGuard.d.ts","sourceRoot":"","sources":["../../../src/core/appendonlystores/purgedDocumentGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAmC,MAAM,SAAS,CAAC;AAGtF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,0EAA0E;AAC1E,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAE3E;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,qBAAqB,EAC5B,mBAAmB,EAAE,yBAAyB,EAC9C,MAAM,CAAC,EAAE,MAAM,GACd,qBAAqB,CAoDvB"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ /**
3
+ * Refuse entries of purged documents at the moment they would be stored.
4
+ *
5
+ * A purge removes a document's history from the replicas that executed it, but
6
+ * every replica that has not (yet) done so still holds the entries and offers
7
+ * them on the next sync. The sync server already rejects such pushes
8
+ * (`ServerNetworkContentAddressedStore`, rejection class `"purged"`); this
9
+ * guard applies the same rule wherever entries are *pulled into* a store:
10
+ * client pulls and server-to-server pull replication.
11
+ *
12
+ * The guard wraps the receiving store and filters `putEntries`. Rejected
13
+ * entries are reported as `"purged"` in a {@link PutEntriesAck}, which the sync
14
+ * loop already understands: the class is not self-resolving, so the scan cursor
15
+ * moves past them and they are never offered again.
16
+ *
17
+ * @module
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.guardStoreAgainstPurgedDocuments = guardStoreAgainstPurgedDocuments;
21
+ const syncStores_1 = require("./syncStores");
22
+ /**
23
+ * Wrap `store` so `putEntries` refuses entries whose `docId` is purged. Every
24
+ * other member is the original store's, so store identity (sync cursor keys,
25
+ * `getId`, `getCacheIdentity`) is unchanged.
26
+ *
27
+ * The resolver runs lazily, once per wrapper, on the first `putEntries` call:
28
+ * a sync that transfers nothing costs nothing. A failing resolver lets entries
29
+ * through (logged) rather than blocking the sync; the purge reconcile removes
30
+ * whatever slipped in.
31
+ */
32
+ function guardStoreAgainstPurgedDocuments(store, resolvePurgedDocIds, logger) {
33
+ let purgedDocIds = null;
34
+ const loadPurgedDocIds = () => {
35
+ purgedDocIds ?? (purgedDocIds = resolvePurgedDocIds().catch((error) => {
36
+ logger?.warn(`Could not resolve purged documents for ${store.getId()}/${store.getStoreKind()}; not filtering: ${error}`);
37
+ return new Set();
38
+ }));
39
+ return purgedDocIds;
40
+ };
41
+ const putEntries = async (entries) => {
42
+ const purged = await loadPurgedDocIds();
43
+ if (purged.size === 0) {
44
+ return store.putEntries(entries);
45
+ }
46
+ const accepted = [];
47
+ const refused = [];
48
+ for (const entry of entries) {
49
+ if (entry.docId && purged.has(entry.docId)) {
50
+ refused.push({
51
+ id: entry.id,
52
+ reason: `Entry ${entry.id} belongs to a purged document and may not be stored`,
53
+ rejectionClass: "purged",
54
+ });
55
+ }
56
+ else {
57
+ accepted.push(entry);
58
+ }
59
+ }
60
+ if (refused.length === 0) {
61
+ return store.putEntries(entries);
62
+ }
63
+ logger?.info(`Refused ${refused.length} entr${refused.length === 1 ? "y" : "ies"} of purged documents for ${store.getId()}/${store.getStoreKind()}`);
64
+ const result = accepted.length > 0 ? await store.putEntries(accepted) : undefined;
65
+ const { receipts, batchRejected } = (0, syncStores_1.normalizePutResult)(result);
66
+ return { receipts, rejected: [...batchRejected, ...refused] };
67
+ };
68
+ return new Proxy(store, {
69
+ get(target, property) {
70
+ if (property === "putEntries") {
71
+ return putEntries;
72
+ }
73
+ const value = Reflect.get(target, property, target);
74
+ return typeof value === "function" ? value.bind(target) : value;
75
+ },
76
+ });
77
+ }
78
+ //# sourceMappingURL=purgedDocumentGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"purgedDocumentGuard.js","sourceRoot":"","sources":["../../../src/core/appendonlystores/purgedDocumentGuard.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;AAoBH,4EAwDC;AAzED,6CAAkD;AAOlD;;;;;;;;;GASG;AACH,SAAgB,gCAAgC,CAC9C,KAA4B,EAC5B,mBAA8C,EAC9C,MAAe;IAEf,IAAI,YAAY,GAAwC,IAAI,CAAC;IAC7D,MAAM,gBAAgB,GAAG,GAAiC,EAAE;QAC1D,YAAY,KAAZ,YAAY,GAAK,mBAAmB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACrD,MAAM,EAAE,IAAI,CACV,0CAA0C,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,YAAY,EAAE,oBAAoB,KAAK,EAAE,CAC3G,CAAC;YACF,OAAO,IAAI,GAAG,EAAU,CAAC;QAC3B,CAAC,CAAC,EAAC;QACH,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EACtB,OAAqB,EACiC,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAClC,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,MAAM,EAAE,SAAS,KAAK,CAAC,EAAE,qDAAqD;oBAC9E,cAAc,EAAE,QAAQ;iBACzB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,EAAE,IAAI,CACV,WAAW,OAAO,CAAC,MAAM,QAAQ,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,4BAA4B,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,YAAY,EAAE,EAAE,CACvI,CAAC;QACF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAA,+BAAkB,EAAC,MAAM,CAAC,CAAC;QAC/D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAChE,CAAC,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;QACtB,GAAG,CAAC,MAAM,EAAE,QAAQ;YAClB,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC9B,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACpD,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -3,6 +3,7 @@ import type { KeyType } from "./keys/KeyContext";
3
3
  import type { PublicUserId, PrivateUserId } from "./userid";
4
4
  import { StoreKind } from "./appendonlystores/types";
5
5
  import type { ContentAddressedStore, OpenStoreOptions, RejectedPutEntry } from "./appendonlystores/types";
6
+ import type { DocumentHistoryPurgeOutcome } from "./appendonlystores/purgeDocumentHistory";
6
7
  import type { CryptoAdapter } from "./crypto/CryptoAdapter";
7
8
  import type { EntryProvenance } from "./crypto/EntrySignature";
8
9
  import type { CopyDocumentOptions, CopyDocumentResult, CopyDocumentSelector, CopyDocumentsOptions, CopyDocumentsResult, CopyFeasibility } from "./copy/types";
@@ -909,6 +910,14 @@ export interface MindooTenant {
909
910
  * @return The database instance
910
911
  */
911
912
  openDB(id: string, options?: OpenDBOptions): Promise<MindooDB>;
913
+ /**
914
+ * Ids of the documents that admin-signed purge requests in the tenant
915
+ * directory removed from database `dbId` (docs/accesscontrol.md §13), as
916
+ * known to the local directory replica. `MindooDB.pullChangesFrom` refuses
917
+ * incoming entries of these documents; listeners that accept pushed entries
918
+ * from peers should do the same. Always empty for the directory itself.
919
+ */
920
+ getPurgedDocumentIds(dbId: string): Promise<ReadonlySet<string>>;
912
921
  /**
913
922
  * List the time-travel cutoff dates (epoch milliseconds, ascending) for
914
923
  * which persisted cache records exist for the given database — i.e. every
@@ -3993,6 +4002,22 @@ export interface DocumentConflictBaseValue {
3993
4002
  /**
3994
4003
  * Result of reconstructing one branch-local document state for a selected DAG head.
3995
4004
  */
4005
+ /** What {@link MindooDB.restoreDocumentToEntry} changed. */
4006
+ export interface DocumentRestoreResult {
4007
+ docId: string;
4008
+ /** The DAG entry whose state was restored. */
4009
+ restoredFromEntryId: string;
4010
+ /** True when the document was deleted and had to be undeleted first. */
4011
+ undeleted: boolean;
4012
+ /** Top-level fields set back to their earlier value. */
4013
+ changedFields: string[];
4014
+ /** Top-level fields the earlier state did not have, now removed. */
4015
+ removedFields: string[];
4016
+ /** Attachments put back (missing, or changed since). */
4017
+ restoredAttachmentIds: string[];
4018
+ /** Attachments added after that state, now removed. */
4019
+ removedAttachmentIds: string[];
4020
+ }
3996
4021
  export interface DocumentDagBranchMaterializationResult {
3997
4022
  docId: string;
3998
4023
  headEntryId: string;
@@ -4190,6 +4215,25 @@ export interface MindooDB {
4190
4215
  * @return The content-addressed store for attachments
4191
4216
  */
4192
4217
  getAttachmentStore(): ContentAddressedStore;
4218
+ /**
4219
+ * Physically and irreversibly remove a document's history from this
4220
+ * database on this device (docs/accesscontrol.md §13): every docs-store
4221
+ * entry, and every attachment chunk no other document still references
4222
+ * (an in-place copy's history can point at the source's chunks; shared
4223
+ * content blobs stay while another entry uses them). Also drops all
4224
+ * derived state: cached documents, summary values, full-text tokens,
4225
+ * open time-travel snapshots and their persisted caches. The index entry
4226
+ * becomes a deleted tombstone so views remove the document.
4227
+ *
4228
+ * This is the local half of an admin-signed purge request; it does not
4229
+ * stop other replicas from sending the entries again (see
4230
+ * {@link MindooTenant.getPurgedDocumentIds}). Not allowed in time-travel
4231
+ * mode.
4232
+ *
4233
+ * @param docId The document to purge
4234
+ * @return Counts of removed and retained entries
4235
+ */
4236
+ purgeDocumentHistory(docId: string): Promise<DocumentHistoryPurgeOutcome>;
4193
4237
  /**
4194
4238
  * Entries this device refused to materialize, grouped per document and
4195
4239
  * persisted in the metadata checkpoint (docs/accesscontrol.md §10).
@@ -4365,6 +4409,25 @@ export interface MindooDB {
4365
4409
  * concurrent branches unless the selected head explicitly depends on them.
4366
4410
  */
4367
4411
  materializeDocumentBranchAtEntry(docId: string, headEntryId: string): Promise<DocumentDagBranchMaterializationResult | null>;
4412
+ /**
4413
+ * Restore a document to the state it had at a DAG entry, as
4414
+ * {@link materializeDocumentBranchAtEntry} shows it — for example to undo
4415
+ * vandalism. Nothing is erased: the restore is one new signed change on top
4416
+ * of the current heads (plus an undelete first when the document is
4417
+ * deleted now), so the replaced state stays in the history and the restore
4418
+ * itself can be undone the same way.
4419
+ *
4420
+ * Fields that differ are set to their earlier values, fields the earlier
4421
+ * state lacks are removed, and the attachment set is put back as it was:
4422
+ * attachments added since are removed, and earlier attachment states are
4423
+ * re-pointed at their stored chunks (no re-upload, ids unchanged). Fields
4424
+ * starting with `_` are managed by MindooDB and left alone. The change goes
4425
+ * through the same access checks as {@link changeDoc}.
4426
+ *
4427
+ * @throws when no state exists at that entry, when the document is deleted
4428
+ * in that state, or when an attachment chunk it needs was purged.
4429
+ */
4430
+ restoreDocumentToEntry(docId: string, entryId: string, options?: ChangeOptions): Promise<DocumentRestoreResult>;
4368
4431
  /**
4369
4432
  * Reconstruct the branch-local document state for a selected head within a
4370
4433
  * time-bounded DAG slice.