@fluid-experimental/tree 0.59.3000 → 0.59.3003

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 (36) hide show
  1. package/dist/SharedTree.d.ts +30 -89
  2. package/dist/SharedTree.d.ts.map +1 -1
  3. package/dist/SharedTree.js +58 -93
  4. package/dist/SharedTree.js.map +1 -1
  5. package/dist/SharedTreeEncoder.d.ts +1 -1
  6. package/dist/SharedTreeEncoder.d.ts.map +1 -1
  7. package/dist/SharedTreeEncoder.js.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/lib/SharedTree.d.ts +30 -89
  12. package/lib/SharedTree.d.ts.map +1 -1
  13. package/lib/SharedTree.js +59 -94
  14. package/lib/SharedTree.js.map +1 -1
  15. package/lib/SharedTreeEncoder.d.ts +1 -1
  16. package/lib/SharedTreeEncoder.d.ts.map +1 -1
  17. package/lib/SharedTreeEncoder.js.map +1 -1
  18. package/lib/index.d.ts +1 -1
  19. package/lib/index.d.ts.map +1 -1
  20. package/lib/index.js.map +1 -1
  21. package/lib/test/fuzz/SharedTreeFuzzTests.d.ts.map +1 -1
  22. package/lib/test/fuzz/SharedTreeFuzzTests.js +1 -3
  23. package/lib/test/fuzz/SharedTreeFuzzTests.js.map +1 -1
  24. package/lib/test/utilities/SharedTreeTests.d.ts.map +1 -1
  25. package/lib/test/utilities/SharedTreeTests.js +50 -27
  26. package/lib/test/utilities/SharedTreeTests.js.map +1 -1
  27. package/lib/test/utilities/SharedTreeVersioningTests.d.ts.map +1 -1
  28. package/lib/test/utilities/SharedTreeVersioningTests.js +19 -19
  29. package/lib/test/utilities/SharedTreeVersioningTests.js.map +1 -1
  30. package/lib/test/utilities/TestUtilities.d.ts.map +1 -1
  31. package/lib/test/utilities/TestUtilities.js +6 -4
  32. package/lib/test/utilities/TestUtilities.js.map +1 -1
  33. package/package.json +15 -15
  34. package/src/SharedTree.ts +46 -195
  35. package/src/SharedTreeEncoder.ts +1 -1
  36. package/src/index.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"SharedTreeEncoder.js","sourceRoot":"","sources":["../src/SharedTreeEncoder.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+DAAyD;AACzD,qCAAwC;AACxC,uCAAoC;AACpC,mDAA4D;AAE5D,+CAA4C;AAC5C,uDAS2B;AAC3B,qEAA8F;AAC9F,uDAsB2B;AAE3B,qDAAyE;AAEzE,qDAA2D;AAC3D,mDAMyB;AACzB,2DAAqF;AACrF,iDAAoE;AAEpE;;;GAGG;AACH,MAAa,uBAAuB;IAInC,YAAoC,gBAAyB;QAAzB,qBAAgB,GAAhB,gBAAgB,CAAS;QAH5C,mBAAc,GAAG,IAAI,wCAAuB,EAAS,CAAC;QACtD,qBAAgB,GAAG,IAAI,oCAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEd,CAAC;IAEjE;;;;;;OAMG;IACI,YAAY,CAClB,IAA0B,EAC1B,cAEkD,EAClD,OAAwB,EACxB,YAA6C,EAC7C,QAAwB;QAExB,wCAAwC;QACxC,kFAAkF;QAClF,qDAAqD;QACrD,MAAM,cAAc,GAAG,cAAc,CACpC,IAAA,gCAAY,EAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAA,mCAAiB,EAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CACvG,CAAC;QAEF,OAAO;YACN,IAAI,EAAE,kCAAgB,CAAC,IAAI;YAC3B,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,6BAAW,CAAC,MAAM;YAC3B,OAAO;SACP,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,YAAY,CAClB,EAAoB,EACpB,gBAEkD,EAClD,YAA6C,EAC7C,QAAwB;QAExB,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QACxD,OAAO,IAAA,kCAAc,EACpB,IAAI,CAAC,gBAAgB,EACrB,QAAQ,EACR,IAAA,mCAAiB,EAAC,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EACrD,UAAU,CACV,CAAC;IACH,CAAC;IAED;;OAEG;IACI,aAAa,CACnB,KAA8B,EAC9B,WAAyB,EACzB,SAAwB,EACxB,YAA6C,EAC7C,QAAwB,EACxB,sBAA2D;QAE3D,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC1B,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,sBAAsB,CAAC,CAAC;SACtG;aAAM;YACN,OAAO,IAAI,CAAC,mBAAmB,CAC9B,KAAK,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,sBAAsB,CACtB,CAAC;SACF;IACF,CAAC;IAED;;OAEG;IACI,aAAa,CACnB,EACC,WAAW,EACX,WAAW,EAAE,cAAc,EAC3B,eAAe,EACf,YAAY,EAAE,sBAAsB,EACpC,OAAO,GACY,EACpB,aAA4B;QAE5B,IAAA,eAAM,EAAC,OAAO,KAAK,6BAAW,CAAC,MAAM,EAAE,sCAAsC,OAAO,mBAAmB,CAAC,CAAC;QACzG,IAAA,eAAM,EAAC,OAAO,WAAW,KAAK,QAAQ,EAAE,yDAAyD,CAAC,CAAC;QAEnG,MAAM,YAAY,GAAG,IAAA,iCAAiB,EAAC,sBAAsB,CAAC;YAC7D,CAAC,CAAC,4BAAY,CAAC,WAAW,CAAC,sBAAsB,CAAC;YAClD,CAAC,CAAC,4BAAY,CAAC,WAAW,CAAC,sBAAsB,EAAE,IAAA,+BAAe,GAAE,EAAE,aAAa,CAAC,CAAC;QAEtF,MAAM,QAAQ,GAAG,IAAI,sCAAqB,CAAC,eAAe,CAAC,CAAC;QAC5D,MAAM,mBAAmB,GAAG,IAAA,uCAAqB,EAAC,IAAA,kCAAgB,EAAC,YAAY,CAAC,CAAC,CAAC;QAClF,MAAM,gBAAgB,GACrB,cAAc,KAAK,SAAS;YAC3B,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,mBAAmB,CAAC;YAC/E,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;QAC5C,IAAA,eAAM,EAAC,UAAU,KAAK,SAAS,EAAE,sCAAsC,CAAC,CAAC;QACzE,IAAA,eAAM,EAAC,OAAO,KAAK,SAAS,EAAE,mCAAmC,CAAC,CAAC;QAEnE,MAAM,kBAAkB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACxE,aAAa;YACb,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;gBACzB,CAAC,CAAC;oBACA,GAAG,EAAE,KAAK,IAAI,EAAE;wBACf,MAAM,UAAU,GAAG,KAAK,CAAC;wBACzB,MAAM,QAAQ,GAAsB,IAAI,CAAC,KAAK,CAC7C,wBAAS,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CACjD,CAAC;wBACF,kGAAkG;wBAClG,kDAAkD;wBAClD,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;oBACtE,CAAC;oBACD,UAAU,EAAE,KAAK;iBAChB;gBACH,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,kCAAc,EAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;SAClG,CAAC,CAAC,CAAC;QACJ,OAAO;YACN,WAAW,EAAE,gBAAgB;YAC7B,WAAW,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE;YACxD,YAAY;YACZ,QAAQ;SACR,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CAC1B,MAAwB,EACxB,WAAyB,EACzB,SAAwB,EACxB,YAA6C,EAC7C,QAAwB,EACxB,sBAA2D;QAE3D,MAAM,WAAW,GAAG,IAAA,8CAAqB,EAAC,WAAW,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,SAAS,CAAC,eAAe,CAAC,yBAAW,CAAC,UAAU,CAAC,CAAC;QACxE,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,mGAAmG;QACnG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE;YAChE,MAAM,EAAE,GAAG,CAAuB,CAAC;YACnC,OAAO,CAAC,IAAI,CACX,gCAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,EAClC,gCAAc,CAAC,MAAM,CACpB,EAAE,EACF,qCAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,KAAmB,EAAE,CAAC,CACpF,CACD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,WAAW,CAAC,OAAO,KAAK,SAAS,EAAE;YACtC,OAAO,CAAC,IAAI,CAAC,gCAAc,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;SAC5E;QAED,IAAA,eAAM,EACL,WAAW,CAAC,UAAU,KAAK,aAAa,IAAI,WAAW,CAAC,UAAU,KAAK,yBAAW,CAAC,UAAU,EAC7F,qDAAqD,CACrD,CAAC;QACF,MAAM,IAAI,GAAG,IAAA,uBAAO,EAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACrD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAA,uCAAqB,EAAC,YAAY,CAAC,CAAC,CACrF,CAAC;QACF,OAAO;YACN,WAAW,EAAE;gBACZ,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;gBAC3E,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;aAClB;YACD,OAAO,EAAE,6BAAW,CAAC,MAAM;YAC3B,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE;YAC3C,YAAY,EAAE,sBAAsB;SACpC,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,qBAAqB,CAC5B,KAA8B,EAC9B,WAAyB,EACzB,YAA6C,EAC7C,QAAwB,EACxB,sBAA2D;QAE3D,MAAM,mBAAmB,GAAG,IAAA,uCAAqB,EAAC,YAAY,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAC/C,IAAA,8CAAqB,EAAC,WAAW,CAAC,EAClC,QAAQ,EACR,mBAAmB,CACnB,CAAC;QAEF,OAAO;YACN,WAAW;YACX,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7C,IAAA,gCAAY,EAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,CAAC,CACxE;YACD,OAAO,EAAE,6BAAW,CAAC,MAAM;YAC3B,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE;YAC3C,YAAY,EAAE,sBAAsB;SACpC,CAAC;IACH,CAAC;IAEM,eAAe,CACrB,KAA+C,EAC/C,YAAyD,EACzD,QAAwB;QAExB,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,gCAAY,EAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/G,OAAO;YACN,OAAO,EAAE,6BAAW,CAAC,MAAM;YAC3B,KAAK,EAAE,eAAe;SACtB,CAAC;IACH,CAAC;IAEM,eAAe,CACrB,QAA2B,EAC3B,YAAyD,EACzD,QAAwB;QAExB,IAAA,eAAM,EACL,QAAQ,CAAC,OAAO,KAAK,6BAAW,CAAC,MAAM,EACvC,gCAAgC,QAAQ,CAAC,OAAO,mBAAmB,CACnE,CAAC;QACF,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,kCAAc,EAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1G,CAAC;CACD;AArPD,0DAqPC;AAED;;;GAGG;AACH,MAAa,uBAAuB;IACnC,YAAoC,gBAAyB;QAAzB,qBAAgB,GAAhB,gBAAgB,CAAS;IAAG,CAAC;IAEjE;;;;;;OAMG;IACI,YAAY,CAClB,IAA0B,EAC1B,cAAgF,EAChF,WAA4B;QAE5B,wCAAwC;QACxC,kFAAkF;QAClF,qDAAqD;QACrD,MAAM,cAAc,GAAG,cAAc,CAAC,IAAA,6BAAc,EAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAE3G,OAAO;YACN,IAAI,EAAE,kCAAgB,CAAC,IAAI;YAC3B,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,6BAAW,CAAC,MAAM;SAC3B,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,YAAY,CAClB,EAA0B,EAC1B,gBAAgG,EAChG,WAA4B;QAE5B,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QACxD,OAAO,IAAA,6BAAc,EAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACI,aAAa,CACnB,KAA8B,EAC9B,WAAyB,EACzB,WAA4B;QAE5B,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC1B,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;SACnE;aAAM;YACN,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;SACjE;IACF,CAAC;IAED;;OAEG;IACI,aAAa,CACnB,EAAE,WAAW,EAAE,cAAc,EAA2B,EACxD,aAA6B;QAE7B,IAAA,eAAM,EAAC,cAAc,KAAK,SAAS,EAAE,8DAA8D,CAAC,CAAC;QACrG,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,IAAA,+BAAe,GAAE,EAAE,iCAAe,EAAE,aAAa,CAAC,CAAC;QACzF,MAAM,WAAW,GAAG,IAAA,kCAAgB,EAAC,YAAY,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAE1D,yEAAyE;QACzE,MAAM,YAAY,GAAG,IAAI,iBAAO,EAAkB,CAAC;QACnD,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/B,YAAY,CAAC,gBAAgB,CAAC,IAAA,6BAAc,EAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YAC/D,cAAc,EAAE,CAAC;YACjB,uBAAuB,EAAE,CAAC;SAC1B,CAAC,CACF,CAAC;QAEF,OAAO;YACN,WAAW,EAAE,IAAA,gCAAgB,EAA+B,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CACjF,IAAA,iCAAkB,EAAC,IAAI,EAAE,UAAU,CAAC,CACpC;YACD,YAAY;YACZ,QAAQ,EAAE,IAAI,sCAAqB,EAAE;YACrC,6FAA6F;YAC7F,WAAW,EAAE,YAAY,CAAC,iBAAiB,EAA2C;SACtF,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CAC1B,MAAwB,EACxB,WAAyB,EACzB,WAA4B;QAE5B,MAAM,WAAW,GAAG,IAAA,oDAA2B,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC1E,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,mGAAmG;QACnG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE;YAChE,MAAM,EAAE,GAAG,CAAuB,CAAC;YACnC,OAAO,CAAC,IAAI,CACX,EAAE,IAAI,EAAE,oCAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,EACrE;gBACC,IAAI,EAAE,oCAAkB,CAAC,MAAM;gBAC/B,MAAM,EAAE,EAAE;gBACV,WAAW,EAAE;oBACZ,IAAI,EAAE,sBAAI,CAAC,KAAK;oBAChB,cAAc,EAAE,EAAE,KAAK,EAAE,KAAmB,EAAE,MAAM,EAAE,yBAAW,CAAC,UAAU,EAAE;iBAC9E;aACD,CACD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,WAAW,CAAC,OAAO,KAAK,SAAS,EAAE;YACtC,OAAO,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,oCAAkB,CAAC,QAAQ;gBACjC,YAAY,EAAE,yBAAW,CAAC,UAAU;gBACpC,OAAO,EAAE,WAAW,CAAC,OAAO;aAC5B,CAAC,CAAC;SACH;QAED,IAAA,eAAM,EACL,WAAW,CAAC,UAAU,KAAK,yBAAW,CAAC,UAAU,IAAI,WAAW,CAAC,UAAU,KAAK,yBAAW,CAAC,UAAU,EACtG,qDAAqD,CACrD,CAAC;QACF,MAAM,IAAI,GAAG,IAAA,uBAAO,EAAC,OAAO,CAAC,CAAC;QAE9B,OAAO;YACN,WAAW;YACX,cAAc,EAAE;gBACf;oBACC,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,OAAO,EAAE,IAAI,CAAC,OAAO;iBACrB;aACD;YACD,OAAO,EAAE,6BAAW,CAAC,MAAM;SAC3B,CAAC;IACH,CAAC;IACD;;OAEG;IACK,qBAAqB,CAC5B,KAA8B,EAC9B,WAAyB,EACzB,WAA4B;QAE5B,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1D,MAAM,cAAc,GAAiC,EAAE,CAAC;QACxD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAChC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;gBACxB,IAAA,aAAI,EAAC,+CAA+C,CAAC,CAAC;aACtD;iBAAM;gBACN,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;;oBAC7B,cAAc,CAAC,IAAI,CAClB,IAAA,6BAAc,EACb;wBACC,OAAO;wBACP,EAAE,EAAE,MAAA,OAAO,CAAC,OAAO,EAAE,CAAC,mCAAI,IAAA,aAAI,EAAC,kDAAkD,CAAC;qBAClF,EACD,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAC7C,CACD,CAAC;gBACH,CAAC,CAAC,CAAC;aACH;QACF,CAAC,CAAC,CAAC;QAEH,OAAO;YACN,WAAW,EAAE,IAAA,oDAA2B,EAAC,WAAW,EAAE,WAAW,CAAC;YAClE,cAAc;YACd,OAAO,EAAE,6BAAW,CAAC,MAAM;SAC3B,CAAC;IACH,CAAC;CACD;AApLD,0DAoLC;AAED,SAAS,YAAY,CAAC,KAA0D;IAC/E,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IsoBuffer } from '@fluidframework/common-utils';\nimport { assert, fail } from './Common';\nimport { EditLog } from './EditLog';\nimport { convertTreeNodes, newEdit } from './EditUtilities';\nimport { AttributionId, DetachedSequenceId, FinalNodeId, OpSpaceNodeId, TraitLabel } from './Identifiers';\nimport { initialTree } from './InitialTree';\nimport {\n\tContextualizedNodeIdNormalizer,\n\tgetNodeIdContext,\n\tNodeIdContext,\n\tNodeIdConverter,\n\tNodeIdGenerator,\n\tNodeIdNormalizer,\n\tscopeIdNormalizer,\n\tsequencedIdNormalizer,\n} from './NodeIdUtilities';\nimport { getChangeNodeFromView, getChangeNode_0_0_2FromView } from './SerializationUtilities';\nimport {\n\tCompressedChangeInternal,\n\tChangeInternal,\n\tSharedTreeSummary_0_0_2,\n\tWriteFormat,\n\tChangeNode,\n\tEdit,\n\tSharedTreeEditOp,\n\tSharedTreeOpType,\n\tSharedTreeSummary,\n\tEditWithoutId,\n\tChangeTypeInternal,\n\tChangeInternal_0_0_2,\n\tSharedTreeEditOp_0_0_2,\n\treservedIdCount,\n\tChangeNode_0_0_2,\n\tEditChunkContents,\n\tEditLogSummary,\n\tEditChunkContents_0_1_1,\n\tFluidEditHandle,\n\tStablePlaceInternal,\n\tSide,\n} from './persisted-types';\nimport { RevisionView } from './RevisionView';\nimport { MutableStringInterner, StringInterner } from './StringInterner';\nimport { SummaryContents } from './Summary';\nimport { InterningTreeCompressor } from './TreeCompressor';\nimport {\n\tcreateSessionId,\n\thasOngoingSession,\n\tIdCompressor,\n\tIdCreationRange,\n\tSerializedIdCompressorWithNoSession,\n} from './id-compressor';\nimport { ChangeCompressor, compressEdit, decompressEdit } from './ChangeCompression';\nimport { convertEditIds, convertNodeDataIds } from './IdConversion';\n\n/**\n * Object capable of converting between the current internal representation for 0.1.1 edits and their wire format.\n * @internal\n */\nexport class SharedTreeEncoder_0_1_1 {\n\tprivate readonly treeCompressor = new InterningTreeCompressor<never>();\n\tprivate readonly changeCompressor = new ChangeCompressor(this.treeCompressor);\n\n\tpublic constructor(private readonly summarizeHistory: boolean) {}\n\n\t/**\n\t * Encodes an edit op to be sent.\n\t * @param edit - edit to encode.\n\t * @param fluidSerialize - Callback which serializes Fluid handles contained in a JSON-serializable object, returning the result.\n\t * Should be invoked on the edit contents at some point before op encoding is complete.\n\t * This is because edit contents may have Payloads needing to be serialized.\n\t */\n\tpublic encodeEditOp(\n\t\tedit: Edit<ChangeInternal>,\n\t\tfluidSerialize: (\n\t\t\tedit: Edit<CompressedChangeInternal<OpSpaceNodeId>>\n\t\t) => Edit<CompressedChangeInternal<OpSpaceNodeId>>,\n\t\tidRange: IdCreationRange,\n\t\tidNormalizer: NodeIdNormalizer<OpSpaceNodeId>,\n\t\tinterner: StringInterner\n\t): SharedTreeEditOp {\n\t\t// IFluidHandles are not allowed in Ops.\n\t\t// Ops can contain Fluid's Serializable (for payloads) which allows IFluidHandles.\n\t\t// So replace the handles by encoding before sending:\n\t\tconst semiSerialized = fluidSerialize(\n\t\t\tcompressEdit(this.changeCompressor, interner, scopeIdNormalizer(idNormalizer, idRange.sessionId), edit)\n\t\t);\n\n\t\treturn {\n\t\t\ttype: SharedTreeOpType.Edit,\n\t\t\tedit: semiSerialized,\n\t\t\tversion: WriteFormat.v0_1_1,\n\t\t\tidRange,\n\t\t};\n\t}\n\n\t/**\n\t * Decodes an edit op encoded with `encodeEditOp`.\n\t * @param op - op to decode.\n\t * @param fluidDeserialize - Callback which deserializes Fluid handles contained in a JSON-serializable object.\n\t * Should be invoked on the semi-serialized edit contents at some point before decoding is complete.\n\t * This will rehydrate any serialized Fluid handles into usable IFluidHandle objects.\n\t */\n\tpublic decodeEditOp(\n\t\top: SharedTreeEditOp,\n\t\tfluidDeserialize: (\n\t\t\tsemiSerializedEdit: Edit<CompressedChangeInternal<OpSpaceNodeId>>\n\t\t) => Edit<CompressedChangeInternal<OpSpaceNodeId>>,\n\t\tidNormalizer: NodeIdNormalizer<OpSpaceNodeId>,\n\t\tinterner: StringInterner\n\t): Edit<ChangeInternal> {\n\t\tconst { edit: semiSerializedEdit } = op;\n\t\tconst parsedEdit = fluidDeserialize(semiSerializedEdit);\n\t\treturn decompressEdit(\n\t\t\tthis.changeCompressor,\n\t\t\tinterner,\n\t\t\tscopeIdNormalizer(idNormalizer, op.idRange.sessionId),\n\t\t\tparsedEdit\n\t\t);\n\t}\n\n\t/**\n\t * Encodes a summary.\n\t */\n\tpublic encodeSummary(\n\t\tedits: EditLog<ChangeInternal>,\n\t\tcurrentView: RevisionView,\n\t\tidContext: NodeIdContext,\n\t\tidNormalizer: NodeIdNormalizer<OpSpaceNodeId>,\n\t\tinterner: StringInterner,\n\t\tserializedIdCompressor: SerializedIdCompressorWithNoSession\n\t): SharedTreeSummary {\n\t\tif (this.summarizeHistory) {\n\t\t\treturn this.fullHistorySummarizer(edits, currentView, idNormalizer, interner, serializedIdCompressor);\n\t\t} else {\n\t\t\treturn this.noHistorySummarizer(\n\t\t\t\tedits,\n\t\t\t\tcurrentView,\n\t\t\t\tidContext,\n\t\t\t\tidNormalizer,\n\t\t\t\tinterner,\n\t\t\t\tserializedIdCompressor\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Decodes an encoded summary.\n\t */\n\tpublic decodeSummary(\n\t\t{\n\t\t\teditHistory,\n\t\t\tcurrentTree: compressedTree,\n\t\t\tinternedStrings,\n\t\t\tidCompressor: serializedIdCompressor,\n\t\t\tversion,\n\t\t}: SharedTreeSummary,\n\t\tattributionId: AttributionId\n\t): SummaryContents {\n\t\tassert(version === WriteFormat.v0_1_1, `Invalid summary version to decode: ${version}, expected: 0.1.1`);\n\t\tassert(typeof editHistory === 'object', '0.1.1 summary encountered with non-object edit history.');\n\n\t\tconst idCompressor = hasOngoingSession(serializedIdCompressor)\n\t\t\t? IdCompressor.deserialize(serializedIdCompressor)\n\t\t\t: IdCompressor.deserialize(serializedIdCompressor, createSessionId(), attributionId);\n\n\t\tconst interner = new MutableStringInterner(internedStrings);\n\t\tconst sequencedNormalizer = sequencedIdNormalizer(getNodeIdContext(idCompressor));\n\t\tconst decompressedTree: ChangeNode | undefined =\n\t\t\tcompressedTree !== undefined\n\t\t\t\t? this.treeCompressor.decompress(compressedTree, interner, sequencedNormalizer)\n\t\t\t\t: undefined;\n\t\tconst { editChunks, editIds } = editHistory;\n\t\tassert(editChunks !== undefined, 'Missing editChunks on 0.1.1 summary.');\n\t\tassert(editIds !== undefined, 'Missing editIds on 0.1.1 summary.');\n\n\t\tconst uncompressedChunks = editChunks.map(({ startRevision, chunk }) => ({\n\t\t\tstartRevision,\n\t\t\tchunk: isEditHandle(chunk)\n\t\t\t\t? {\n\t\t\t\t\t\tget: async () => {\n\t\t\t\t\t\t\tconst baseHandle = chunk;\n\t\t\t\t\t\t\tconst contents: EditChunkContents = JSON.parse(\n\t\t\t\t\t\t\t\tIsoBuffer.from(await baseHandle.get()).toString()\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// Note: any interned IDs referenced in chunks taken at the time of summarization must be included\n\t\t\t\t\t\t\t// in the summary. So this interner is sufficient.\n\t\t\t\t\t\t\treturn this.decodeEditChunk(contents, sequencedNormalizer, interner);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbaseHandle: chunk,\n\t\t\t\t }\n\t\t\t\t: chunk.map((edit) => decompressEdit(this.changeCompressor, interner, sequencedNormalizer, edit)),\n\t\t}));\n\t\treturn {\n\t\t\tcurrentTree: decompressedTree,\n\t\t\teditHistory: { editIds, editChunks: uncompressedChunks },\n\t\t\tidCompressor,\n\t\t\tinterner,\n\t\t};\n\t}\n\n\t/**\n\t * Does not preserve (persist) history at all.\n\t * Instead, the history returned in the summary will contain a single edit that creates a revision identical to the supplied view.\n\t * Writes summary format 0.1.1 which does not store the currentView for no history summaries.\n\t */\n\tprivate noHistorySummarizer<TChange>(\n\t\t_edits: EditLog<TChange>,\n\t\tcurrentView: RevisionView,\n\t\tidContext: NodeIdContext,\n\t\tidNormalizer: NodeIdNormalizer<OpSpaceNodeId>,\n\t\tinterner: StringInterner,\n\t\tserializedIdCompressor: SerializedIdCompressorWithNoSession\n\t): SharedTreeSummary {\n\t\tconst currentTree = getChangeNodeFromView(currentView);\n\t\tconst initialTreeId = idContext.convertToNodeId(initialTree.identifier);\n\t\tconst changes: ChangeInternal[] = [];\n\t\t// Generate a set of changes to set the root node's children to that of the root in the currentTree\n\t\tObject.entries(currentTree.traits).forEach(([label, children]) => {\n\t\t\tconst id = 0 as DetachedSequenceId;\n\t\t\tchanges.push(\n\t\t\t\tChangeInternal.build(children, id),\n\t\t\t\tChangeInternal.insert(\n\t\t\t\t\tid,\n\t\t\t\t\tStablePlaceInternal.atStartOf({ parent: initialTreeId, label: label as TraitLabel })\n\t\t\t\t)\n\t\t\t);\n\t\t});\n\n\t\tif (currentTree.payload !== undefined) {\n\t\t\tchanges.push(ChangeInternal.setPayload(initialTreeId, currentTree.payload));\n\t\t}\n\n\t\tassert(\n\t\t\tcurrentTree.identifier === initialTreeId && currentTree.definition === initialTree.definition,\n\t\t\t'root definition and identifier should be immutable.'\n\t\t);\n\t\tconst edit = newEdit(changes);\n\t\tconst compressedChanges = edit.changes.map((change) =>\n\t\t\tthis.changeCompressor.compress(change, interner, sequencedIdNormalizer(idNormalizer))\n\t\t);\n\t\treturn {\n\t\t\teditHistory: {\n\t\t\t\teditChunks: [{ startRevision: 0, chunk: [{ changes: compressedChanges }] }],\n\t\t\t\teditIds: [edit.id],\n\t\t\t},\n\t\t\tversion: WriteFormat.v0_1_1,\n\t\t\tinternedStrings: interner.getSerializable(),\n\t\t\tidCompressor: serializedIdCompressor,\n\t\t};\n\t}\n\n\t/**\n\t * Generates a summary with format version 0.1.1. This will prefer handles over edits in edit chunks where possible,\n\t * and string interning and tree compression will be applied.\n\t */\n\tprivate fullHistorySummarizer(\n\t\tedits: EditLog<ChangeInternal>,\n\t\tcurrentView: RevisionView,\n\t\tidNormalizer: NodeIdNormalizer<OpSpaceNodeId>,\n\t\tinterner: StringInterner,\n\t\tserializedIdCompressor: SerializedIdCompressorWithNoSession\n\t): SharedTreeSummary {\n\t\tconst sequencedNormalizer = sequencedIdNormalizer(idNormalizer);\n\t\tconst currentTree = this.treeCompressor.compress(\n\t\t\tgetChangeNodeFromView(currentView),\n\t\t\tinterner,\n\t\t\tsequencedNormalizer\n\t\t);\n\n\t\treturn {\n\t\t\tcurrentTree,\n\t\t\teditHistory: edits.getEditLogSummary((edit) =>\n\t\t\t\tcompressEdit(this.changeCompressor, interner, sequencedNormalizer, edit)\n\t\t\t),\n\t\t\tversion: WriteFormat.v0_1_1,\n\t\t\tinternedStrings: interner.getSerializable(),\n\t\t\tidCompressor: serializedIdCompressor,\n\t\t};\n\t}\n\n\tpublic encodeEditChunk(\n\t\tedits: readonly EditWithoutId<ChangeInternal>[],\n\t\tidNormalizer: ContextualizedNodeIdNormalizer<FinalNodeId>,\n\t\tinterner: StringInterner\n\t): EditChunkContents_0_1_1 {\n\t\tconst compressedEdits = edits.map((edit) => compressEdit(this.changeCompressor, interner, idNormalizer, edit));\n\t\treturn {\n\t\t\tversion: WriteFormat.v0_1_1,\n\t\t\tedits: compressedEdits,\n\t\t};\n\t}\n\n\tpublic decodeEditChunk(\n\t\tcontents: EditChunkContents,\n\t\tidNormalizer: ContextualizedNodeIdNormalizer<FinalNodeId>,\n\t\tinterner: StringInterner\n\t): EditWithoutId<ChangeInternal>[] {\n\t\tassert(\n\t\t\tcontents.version === WriteFormat.v0_1_1,\n\t\t\t`Invalid editChunk to decode: ${contents.version}. Expected 0.1.1.`\n\t\t);\n\t\treturn contents.edits.map((edit) => decompressEdit(this.changeCompressor, interner, idNormalizer, edit));\n\t}\n}\n\n/**\n * Object capable of converting between the current internal representation for 0.0.2 edits and their wire format.\n * @internal\n */\nexport class SharedTreeEncoder_0_0_2 {\n\tpublic constructor(private readonly summarizeHistory: boolean) {}\n\n\t/**\n\t * Encodes an edit op to be sent.\n\t * @param edit - edit to encode.\n\t * @param fluidSerialize - Callback which serializes Fluid handles contained in a JSON-serializable object, returning the result.\n\t * Should be invoked on the edit contents at some point before op encoding is complete.\n\t * This is because edit contents may have Payloads needing to be serialized.\n\t */\n\tpublic encodeEditOp(\n\t\tedit: Edit<ChangeInternal>,\n\t\tfluidSerialize: (edit: Edit<ChangeInternal_0_0_2>) => Edit<ChangeInternal_0_0_2>,\n\t\tidConverter: NodeIdConverter\n\t): SharedTreeEditOp_0_0_2 {\n\t\t// IFluidHandles are not allowed in Ops.\n\t\t// Ops can contain Fluid's Serializable (for payloads) which allows IFluidHandles.\n\t\t// So replace the handles by encoding before sending:\n\t\tconst semiSerialized = fluidSerialize(convertEditIds(edit, (id) => idConverter.convertToStableNodeId(id)));\n\n\t\treturn {\n\t\t\ttype: SharedTreeOpType.Edit,\n\t\t\tedit: semiSerialized,\n\t\t\tversion: WriteFormat.v0_0_2,\n\t\t};\n\t}\n\n\t/**\n\t * Decodes an edit op encoded with `encodeEditOp`.\n\t * @param op - op to decode.\n\t * @param fluidDeserialize - Callback which deserializes Fluid handles contained in a JSON-serializable object.\n\t * Should be invoked on the semi-serialized edit contents at some point before decoding is complete.\n\t * This will rehydrate any serialized Fluid handles into usable IFluidHandle objects.\n\t */\n\tpublic decodeEditOp(\n\t\top: SharedTreeEditOp_0_0_2,\n\t\tfluidDeserialize: (semiSerializedEdit: Edit<ChangeInternal_0_0_2>) => Edit<ChangeInternal_0_0_2>,\n\t\tidGenerator: NodeIdGenerator\n\t): Edit<ChangeInternal> {\n\t\tconst { edit: semiSerializedEdit } = op;\n\t\tconst parsedEdit = fluidDeserialize(semiSerializedEdit);\n\t\treturn convertEditIds(parsedEdit, (id) => idGenerator.generateNodeId(id));\n\t}\n\n\t/**\n\t * Encodes a summary.\n\t */\n\tpublic encodeSummary(\n\t\tedits: EditLog<ChangeInternal>,\n\t\tcurrentView: RevisionView,\n\t\tidConverter: NodeIdConverter\n\t): SharedTreeSummary_0_0_2 {\n\t\tif (this.summarizeHistory) {\n\t\t\treturn this.fullHistorySummarizer(edits, currentView, idConverter);\n\t\t} else {\n\t\t\treturn this.noHistorySummarizer(edits, currentView, idConverter);\n\t\t}\n\t}\n\n\t/**\n\t * Decodes an encoded summary.\n\t */\n\tpublic decodeSummary(\n\t\t{ currentTree, sequencedEdits }: SharedTreeSummary_0_0_2,\n\t\tattributionId?: AttributionId\n\t): SummaryContents {\n\t\tassert(sequencedEdits !== undefined, '0.0.2 summary encountered with missing sequencedEdits field.');\n\t\tconst idCompressor = new IdCompressor(createSessionId(), reservedIdCount, attributionId);\n\t\tconst idGenerator = getNodeIdContext(idCompressor);\n\t\tconst generateId = (id) => idGenerator.generateNodeId(id);\n\n\t\t// This saves all of the edits in the summary as part of the first chunk.\n\t\tconst temporaryLog = new EditLog<ChangeInternal>();\n\t\tsequencedEdits.forEach((edit) =>\n\t\t\ttemporaryLog.addSequencedEdit(convertEditIds(edit, generateId), {\n\t\t\t\tsequenceNumber: 1,\n\t\t\t\treferenceSequenceNumber: 0,\n\t\t\t})\n\t\t);\n\n\t\treturn {\n\t\t\tcurrentTree: convertTreeNodes<ChangeNode_0_0_2, ChangeNode>(currentTree, (node) =>\n\t\t\t\tconvertNodeDataIds(node, generateId)\n\t\t\t),\n\t\t\tidCompressor,\n\t\t\tinterner: new MutableStringInterner(),\n\t\t\t// This cast is valid because we just constructed this log and gave it only in-session edits.\n\t\t\teditHistory: temporaryLog.getEditLogSummary() as EditLogSummary<ChangeInternal, never>,\n\t\t};\n\t}\n\n\t/**\n\t * Does not preserve (persist) history at all.\n\t * Instead, the history returned in the summary will contain a single edit that creates a revision identical to the supplied view.\n\t * @param stable - Generates the single edit with a stable edit ID. False by default, used for testing.\n\t */\n\tprivate noHistorySummarizer<TChange>(\n\t\t_edits: EditLog<TChange>,\n\t\tcurrentView: RevisionView,\n\t\tidConverter: NodeIdConverter\n\t): SharedTreeSummary_0_0_2 {\n\t\tconst currentTree = getChangeNode_0_0_2FromView(currentView, idConverter);\n\t\tconst changes: ChangeInternal_0_0_2[] = [];\n\t\t// Generate a set of changes to set the root node's children to that of the root in the currentTree\n\t\tObject.entries(currentTree.traits).forEach(([label, children]) => {\n\t\t\tconst id = 0 as DetachedSequenceId;\n\t\t\tchanges.push(\n\t\t\t\t{ type: ChangeTypeInternal.Build, source: children, destination: id },\n\t\t\t\t{\n\t\t\t\t\ttype: ChangeTypeInternal.Insert,\n\t\t\t\t\tsource: id,\n\t\t\t\t\tdestination: {\n\t\t\t\t\t\tside: Side.After,\n\t\t\t\t\t\treferenceTrait: { label: label as TraitLabel, parent: initialTree.identifier },\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\n\t\tif (currentTree.payload !== undefined) {\n\t\t\tchanges.push({\n\t\t\t\ttype: ChangeTypeInternal.SetValue,\n\t\t\t\tnodeToModify: initialTree.identifier,\n\t\t\t\tpayload: currentTree.payload,\n\t\t\t});\n\t\t}\n\n\t\tassert(\n\t\t\tcurrentTree.identifier === initialTree.identifier && currentTree.definition === initialTree.definition,\n\t\t\t'root definition and identifier should be immutable.'\n\t\t);\n\t\tconst edit = newEdit(changes);\n\n\t\treturn {\n\t\t\tcurrentTree,\n\t\t\tsequencedEdits: [\n\t\t\t\t{\n\t\t\t\t\tid: edit.id,\n\t\t\t\t\tchanges: edit.changes,\n\t\t\t\t},\n\t\t\t],\n\t\t\tversion: WriteFormat.v0_0_2,\n\t\t};\n\t}\n\t/**\n\t * Preserves the full history in the generated summary.\n\t */\n\tprivate fullHistorySummarizer(\n\t\tedits: EditLog<ChangeInternal>,\n\t\tcurrentView: RevisionView,\n\t\tidConverter: NodeIdConverter\n\t): SharedTreeSummary_0_0_2 {\n\t\tconst { editChunks, editIds } = edits.getEditLogSummary();\n\n\t\tconst sequencedEdits: Edit<ChangeInternal_0_0_2>[] = [];\n\t\tlet idIndex = 0;\n\t\teditChunks.forEach(({ chunk }) => {\n\t\t\tif (isEditHandle(chunk)) {\n\t\t\t\tfail('Cannot write handles to summary version 0.0.2');\n\t\t\t} else {\n\t\t\t\tchunk.forEach(({ changes }) => {\n\t\t\t\t\tsequencedEdits.push(\n\t\t\t\t\t\tconvertEditIds(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tchanges,\n\t\t\t\t\t\t\t\tid: editIds[idIndex++] ?? fail('Number of edits should match number of edit IDs.'),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t(id) => idConverter.convertToStableNodeId(id)\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tcurrentTree: getChangeNode_0_0_2FromView(currentView, idConverter),\n\t\t\tsequencedEdits,\n\t\t\tversion: WriteFormat.v0_0_2,\n\t\t};\n\t}\n}\n\nfunction isEditHandle(chunk: FluidEditHandle | readonly EditWithoutId<unknown>[]): chunk is FluidEditHandle {\n\treturn !Array.isArray(chunk);\n}\n"]}
1
+ {"version":3,"file":"SharedTreeEncoder.js","sourceRoot":"","sources":["../src/SharedTreeEncoder.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IsoBuffer } from '@fluidframework/common-utils';\nimport { assert, fail } from './Common';\nimport { EditLog } from './EditLog';\nimport { convertTreeNodes, newEdit } from './EditUtilities';\nimport { AttributionId, DetachedSequenceId, FinalNodeId, OpSpaceNodeId, TraitLabel } from './Identifiers';\nimport { initialTree } from './InitialTree';\nimport {\n\tContextualizedNodeIdNormalizer,\n\tgetNodeIdContext,\n\tNodeIdContext,\n\tNodeIdConverter,\n\tNodeIdGenerator,\n\tNodeIdNormalizer,\n\tscopeIdNormalizer,\n\tsequencedIdNormalizer,\n} from './NodeIdUtilities';\nimport { getChangeNodeFromView, getChangeNode_0_0_2FromView } from './SerializationUtilities';\nimport {\n\tCompressedChangeInternal,\n\tChangeInternal,\n\tSharedTreeSummary_0_0_2,\n\tWriteFormat,\n\tChangeNode,\n\tEdit,\n\tSharedTreeEditOp,\n\tSharedTreeOpType,\n\tSharedTreeSummary,\n\tEditWithoutId,\n\tChangeTypeInternal,\n\tChangeInternal_0_0_2,\n\tSharedTreeEditOp_0_0_2,\n\treservedIdCount,\n\tChangeNode_0_0_2,\n\tEditChunkContents,\n\tEditLogSummary,\n\tEditChunkContents_0_1_1,\n\tFluidEditHandle,\n\tStablePlaceInternal,\n\tSide,\n} from './persisted-types';\nimport { RevisionView } from './RevisionView';\nimport { MutableStringInterner, StringInterner } from './StringInterner';\nimport { SummaryContents } from './Summary';\nimport { InterningTreeCompressor } from './TreeCompressor';\nimport {\n\tcreateSessionId,\n\thasOngoingSession,\n\tIdCompressor,\n\tIdCreationRange,\n\tSerializedIdCompressorWithNoSession,\n} from './id-compressor';\nimport { ChangeCompressor, compressEdit, decompressEdit } from './ChangeCompression';\nimport { convertEditIds, convertNodeDataIds } from './IdConversion';\n\n/**\n * Object capable of converting between the current internal representation for 0.1.1 edits and their wire format.\n * @internal\n */\nexport class SharedTreeEncoder_0_1_1 {\n\tprivate readonly treeCompressor = new InterningTreeCompressor<never>();\n\tprivate readonly changeCompressor = new ChangeCompressor(this.treeCompressor);\n\n\tpublic constructor(private readonly summarizeHistory: boolean) {}\n\n\t/**\n\t * Encodes an edit op to be sent.\n\t * @param edit - edit to encode.\n\t * @param fluidSerialize - Callback which serializes Fluid handles contained in a JSON-serializable object, returning the result.\n\t * Should be invoked on the edit contents at some point before op encoding is complete.\n\t * This is because edit contents may have Payloads needing to be serialized.\n\t */\n\tpublic encodeEditOp(\n\t\tedit: Edit<ChangeInternal>,\n\t\tfluidSerialize: (\n\t\t\tedit: Edit<CompressedChangeInternal<OpSpaceNodeId>>\n\t\t) => Edit<CompressedChangeInternal<OpSpaceNodeId>>,\n\t\tidRange: IdCreationRange,\n\t\tidNormalizer: NodeIdNormalizer<OpSpaceNodeId>,\n\t\tinterner: StringInterner\n\t): SharedTreeEditOp {\n\t\t// IFluidHandles are not allowed in Ops.\n\t\t// Ops can contain Fluid's Serializable (for payloads) which allows IFluidHandles.\n\t\t// So replace the handles by encoding before sending:\n\t\tconst semiSerialized = fluidSerialize(\n\t\t\tcompressEdit(this.changeCompressor, interner, scopeIdNormalizer(idNormalizer, idRange.sessionId), edit)\n\t\t);\n\n\t\treturn {\n\t\t\ttype: SharedTreeOpType.Edit,\n\t\t\tedit: semiSerialized,\n\t\t\tversion: WriteFormat.v0_1_1,\n\t\t\tidRange,\n\t\t};\n\t}\n\n\t/**\n\t * Decodes an edit op encoded with `encodeEditOp`.\n\t * @param op - op to decode.\n\t * @param fluidDeserialize - Callback which deserializes Fluid handles contained in a JSON-serializable object.\n\t * Should be invoked on the semi-serialized edit contents at some point before decoding is complete.\n\t * This will rehydrate any serialized Fluid handles into usable IFluidHandle objects.\n\t */\n\tpublic decodeEditOp(\n\t\top: SharedTreeEditOp,\n\t\tfluidDeserialize: (\n\t\t\tsemiSerializedEdit: Edit<CompressedChangeInternal<OpSpaceNodeId>>\n\t\t) => Edit<CompressedChangeInternal<OpSpaceNodeId>>,\n\t\tidNormalizer: NodeIdNormalizer<OpSpaceNodeId>,\n\t\tinterner: StringInterner\n\t): Edit<ChangeInternal> {\n\t\tconst { edit: semiSerializedEdit } = op;\n\t\tconst parsedEdit = fluidDeserialize(semiSerializedEdit);\n\t\treturn decompressEdit(\n\t\t\tthis.changeCompressor,\n\t\t\tinterner,\n\t\t\tscopeIdNormalizer(idNormalizer, op.idRange.sessionId),\n\t\t\tparsedEdit\n\t\t);\n\t}\n\n\t/**\n\t * Encodes a summary.\n\t */\n\tpublic encodeSummary(\n\t\tedits: EditLog<ChangeInternal>,\n\t\tcurrentView: RevisionView,\n\t\tidContext: NodeIdContext,\n\t\tidNormalizer: NodeIdNormalizer<OpSpaceNodeId>,\n\t\tinterner: StringInterner,\n\t\tserializedIdCompressor: SerializedIdCompressorWithNoSession\n\t): SharedTreeSummary {\n\t\tif (this.summarizeHistory) {\n\t\t\treturn this.fullHistorySummarizer(edits, currentView, idNormalizer, interner, serializedIdCompressor);\n\t\t} else {\n\t\t\treturn this.noHistorySummarizer(\n\t\t\t\tedits,\n\t\t\t\tcurrentView,\n\t\t\t\tidContext,\n\t\t\t\tidNormalizer,\n\t\t\t\tinterner,\n\t\t\t\tserializedIdCompressor\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Decodes an encoded summary.\n\t */\n\tpublic decodeSummary(\n\t\t{\n\t\t\teditHistory,\n\t\t\tcurrentTree: compressedTree,\n\t\t\tinternedStrings,\n\t\t\tidCompressor: serializedIdCompressor,\n\t\t\tversion,\n\t\t}: SharedTreeSummary,\n\t\tattributionId?: AttributionId\n\t): SummaryContents {\n\t\tassert(version === WriteFormat.v0_1_1, `Invalid summary version to decode: ${version}, expected: 0.1.1`);\n\t\tassert(typeof editHistory === 'object', '0.1.1 summary encountered with non-object edit history.');\n\n\t\tconst idCompressor = hasOngoingSession(serializedIdCompressor)\n\t\t\t? IdCompressor.deserialize(serializedIdCompressor)\n\t\t\t: IdCompressor.deserialize(serializedIdCompressor, createSessionId(), attributionId);\n\n\t\tconst interner = new MutableStringInterner(internedStrings);\n\t\tconst sequencedNormalizer = sequencedIdNormalizer(getNodeIdContext(idCompressor));\n\t\tconst decompressedTree: ChangeNode | undefined =\n\t\t\tcompressedTree !== undefined\n\t\t\t\t? this.treeCompressor.decompress(compressedTree, interner, sequencedNormalizer)\n\t\t\t\t: undefined;\n\t\tconst { editChunks, editIds } = editHistory;\n\t\tassert(editChunks !== undefined, 'Missing editChunks on 0.1.1 summary.');\n\t\tassert(editIds !== undefined, 'Missing editIds on 0.1.1 summary.');\n\n\t\tconst uncompressedChunks = editChunks.map(({ startRevision, chunk }) => ({\n\t\t\tstartRevision,\n\t\t\tchunk: isEditHandle(chunk)\n\t\t\t\t? {\n\t\t\t\t\t\tget: async () => {\n\t\t\t\t\t\t\tconst baseHandle = chunk;\n\t\t\t\t\t\t\tconst contents: EditChunkContents = JSON.parse(\n\t\t\t\t\t\t\t\tIsoBuffer.from(await baseHandle.get()).toString()\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// Note: any interned IDs referenced in chunks taken at the time of summarization must be included\n\t\t\t\t\t\t\t// in the summary. So this interner is sufficient.\n\t\t\t\t\t\t\treturn this.decodeEditChunk(contents, sequencedNormalizer, interner);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbaseHandle: chunk,\n\t\t\t\t }\n\t\t\t\t: chunk.map((edit) => decompressEdit(this.changeCompressor, interner, sequencedNormalizer, edit)),\n\t\t}));\n\t\treturn {\n\t\t\tcurrentTree: decompressedTree,\n\t\t\teditHistory: { editIds, editChunks: uncompressedChunks },\n\t\t\tidCompressor,\n\t\t\tinterner,\n\t\t};\n\t}\n\n\t/**\n\t * Does not preserve (persist) history at all.\n\t * Instead, the history returned in the summary will contain a single edit that creates a revision identical to the supplied view.\n\t * Writes summary format 0.1.1 which does not store the currentView for no history summaries.\n\t */\n\tprivate noHistorySummarizer<TChange>(\n\t\t_edits: EditLog<TChange>,\n\t\tcurrentView: RevisionView,\n\t\tidContext: NodeIdContext,\n\t\tidNormalizer: NodeIdNormalizer<OpSpaceNodeId>,\n\t\tinterner: StringInterner,\n\t\tserializedIdCompressor: SerializedIdCompressorWithNoSession\n\t): SharedTreeSummary {\n\t\tconst currentTree = getChangeNodeFromView(currentView);\n\t\tconst initialTreeId = idContext.convertToNodeId(initialTree.identifier);\n\t\tconst changes: ChangeInternal[] = [];\n\t\t// Generate a set of changes to set the root node's children to that of the root in the currentTree\n\t\tObject.entries(currentTree.traits).forEach(([label, children]) => {\n\t\t\tconst id = 0 as DetachedSequenceId;\n\t\t\tchanges.push(\n\t\t\t\tChangeInternal.build(children, id),\n\t\t\t\tChangeInternal.insert(\n\t\t\t\t\tid,\n\t\t\t\t\tStablePlaceInternal.atStartOf({ parent: initialTreeId, label: label as TraitLabel })\n\t\t\t\t)\n\t\t\t);\n\t\t});\n\n\t\tif (currentTree.payload !== undefined) {\n\t\t\tchanges.push(ChangeInternal.setPayload(initialTreeId, currentTree.payload));\n\t\t}\n\n\t\tassert(\n\t\t\tcurrentTree.identifier === initialTreeId && currentTree.definition === initialTree.definition,\n\t\t\t'root definition and identifier should be immutable.'\n\t\t);\n\t\tconst edit = newEdit(changes);\n\t\tconst compressedChanges = edit.changes.map((change) =>\n\t\t\tthis.changeCompressor.compress(change, interner, sequencedIdNormalizer(idNormalizer))\n\t\t);\n\t\treturn {\n\t\t\teditHistory: {\n\t\t\t\teditChunks: [{ startRevision: 0, chunk: [{ changes: compressedChanges }] }],\n\t\t\t\teditIds: [edit.id],\n\t\t\t},\n\t\t\tversion: WriteFormat.v0_1_1,\n\t\t\tinternedStrings: interner.getSerializable(),\n\t\t\tidCompressor: serializedIdCompressor,\n\t\t};\n\t}\n\n\t/**\n\t * Generates a summary with format version 0.1.1. This will prefer handles over edits in edit chunks where possible,\n\t * and string interning and tree compression will be applied.\n\t */\n\tprivate fullHistorySummarizer(\n\t\tedits: EditLog<ChangeInternal>,\n\t\tcurrentView: RevisionView,\n\t\tidNormalizer: NodeIdNormalizer<OpSpaceNodeId>,\n\t\tinterner: StringInterner,\n\t\tserializedIdCompressor: SerializedIdCompressorWithNoSession\n\t): SharedTreeSummary {\n\t\tconst sequencedNormalizer = sequencedIdNormalizer(idNormalizer);\n\t\tconst currentTree = this.treeCompressor.compress(\n\t\t\tgetChangeNodeFromView(currentView),\n\t\t\tinterner,\n\t\t\tsequencedNormalizer\n\t\t);\n\n\t\treturn {\n\t\t\tcurrentTree,\n\t\t\teditHistory: edits.getEditLogSummary((edit) =>\n\t\t\t\tcompressEdit(this.changeCompressor, interner, sequencedNormalizer, edit)\n\t\t\t),\n\t\t\tversion: WriteFormat.v0_1_1,\n\t\t\tinternedStrings: interner.getSerializable(),\n\t\t\tidCompressor: serializedIdCompressor,\n\t\t};\n\t}\n\n\tpublic encodeEditChunk(\n\t\tedits: readonly EditWithoutId<ChangeInternal>[],\n\t\tidNormalizer: ContextualizedNodeIdNormalizer<FinalNodeId>,\n\t\tinterner: StringInterner\n\t): EditChunkContents_0_1_1 {\n\t\tconst compressedEdits = edits.map((edit) => compressEdit(this.changeCompressor, interner, idNormalizer, edit));\n\t\treturn {\n\t\t\tversion: WriteFormat.v0_1_1,\n\t\t\tedits: compressedEdits,\n\t\t};\n\t}\n\n\tpublic decodeEditChunk(\n\t\tcontents: EditChunkContents,\n\t\tidNormalizer: ContextualizedNodeIdNormalizer<FinalNodeId>,\n\t\tinterner: StringInterner\n\t): EditWithoutId<ChangeInternal>[] {\n\t\tassert(\n\t\t\tcontents.version === WriteFormat.v0_1_1,\n\t\t\t`Invalid editChunk to decode: ${contents.version}. Expected 0.1.1.`\n\t\t);\n\t\treturn contents.edits.map((edit) => decompressEdit(this.changeCompressor, interner, idNormalizer, edit));\n\t}\n}\n\n/**\n * Object capable of converting between the current internal representation for 0.0.2 edits and their wire format.\n * @internal\n */\nexport class SharedTreeEncoder_0_0_2 {\n\tpublic constructor(private readonly summarizeHistory: boolean) {}\n\n\t/**\n\t * Encodes an edit op to be sent.\n\t * @param edit - edit to encode.\n\t * @param fluidSerialize - Callback which serializes Fluid handles contained in a JSON-serializable object, returning the result.\n\t * Should be invoked on the edit contents at some point before op encoding is complete.\n\t * This is because edit contents may have Payloads needing to be serialized.\n\t */\n\tpublic encodeEditOp(\n\t\tedit: Edit<ChangeInternal>,\n\t\tfluidSerialize: (edit: Edit<ChangeInternal_0_0_2>) => Edit<ChangeInternal_0_0_2>,\n\t\tidConverter: NodeIdConverter\n\t): SharedTreeEditOp_0_0_2 {\n\t\t// IFluidHandles are not allowed in Ops.\n\t\t// Ops can contain Fluid's Serializable (for payloads) which allows IFluidHandles.\n\t\t// So replace the handles by encoding before sending:\n\t\tconst semiSerialized = fluidSerialize(convertEditIds(edit, (id) => idConverter.convertToStableNodeId(id)));\n\n\t\treturn {\n\t\t\ttype: SharedTreeOpType.Edit,\n\t\t\tedit: semiSerialized,\n\t\t\tversion: WriteFormat.v0_0_2,\n\t\t};\n\t}\n\n\t/**\n\t * Decodes an edit op encoded with `encodeEditOp`.\n\t * @param op - op to decode.\n\t * @param fluidDeserialize - Callback which deserializes Fluid handles contained in a JSON-serializable object.\n\t * Should be invoked on the semi-serialized edit contents at some point before decoding is complete.\n\t * This will rehydrate any serialized Fluid handles into usable IFluidHandle objects.\n\t */\n\tpublic decodeEditOp(\n\t\top: SharedTreeEditOp_0_0_2,\n\t\tfluidDeserialize: (semiSerializedEdit: Edit<ChangeInternal_0_0_2>) => Edit<ChangeInternal_0_0_2>,\n\t\tidGenerator: NodeIdGenerator\n\t): Edit<ChangeInternal> {\n\t\tconst { edit: semiSerializedEdit } = op;\n\t\tconst parsedEdit = fluidDeserialize(semiSerializedEdit);\n\t\treturn convertEditIds(parsedEdit, (id) => idGenerator.generateNodeId(id));\n\t}\n\n\t/**\n\t * Encodes a summary.\n\t */\n\tpublic encodeSummary(\n\t\tedits: EditLog<ChangeInternal>,\n\t\tcurrentView: RevisionView,\n\t\tidConverter: NodeIdConverter\n\t): SharedTreeSummary_0_0_2 {\n\t\tif (this.summarizeHistory) {\n\t\t\treturn this.fullHistorySummarizer(edits, currentView, idConverter);\n\t\t} else {\n\t\t\treturn this.noHistorySummarizer(edits, currentView, idConverter);\n\t\t}\n\t}\n\n\t/**\n\t * Decodes an encoded summary.\n\t */\n\tpublic decodeSummary(\n\t\t{ currentTree, sequencedEdits }: SharedTreeSummary_0_0_2,\n\t\tattributionId?: AttributionId\n\t): SummaryContents {\n\t\tassert(sequencedEdits !== undefined, '0.0.2 summary encountered with missing sequencedEdits field.');\n\t\tconst idCompressor = new IdCompressor(createSessionId(), reservedIdCount, attributionId);\n\t\tconst idGenerator = getNodeIdContext(idCompressor);\n\t\tconst generateId = (id) => idGenerator.generateNodeId(id);\n\n\t\t// This saves all of the edits in the summary as part of the first chunk.\n\t\tconst temporaryLog = new EditLog<ChangeInternal>();\n\t\tsequencedEdits.forEach((edit) =>\n\t\t\ttemporaryLog.addSequencedEdit(convertEditIds(edit, generateId), {\n\t\t\t\tsequenceNumber: 1,\n\t\t\t\treferenceSequenceNumber: 0,\n\t\t\t})\n\t\t);\n\n\t\treturn {\n\t\t\tcurrentTree: convertTreeNodes<ChangeNode_0_0_2, ChangeNode>(currentTree, (node) =>\n\t\t\t\tconvertNodeDataIds(node, generateId)\n\t\t\t),\n\t\t\tidCompressor,\n\t\t\tinterner: new MutableStringInterner(),\n\t\t\t// This cast is valid because we just constructed this log and gave it only in-session edits.\n\t\t\teditHistory: temporaryLog.getEditLogSummary() as EditLogSummary<ChangeInternal, never>,\n\t\t};\n\t}\n\n\t/**\n\t * Does not preserve (persist) history at all.\n\t * Instead, the history returned in the summary will contain a single edit that creates a revision identical to the supplied view.\n\t * @param stable - Generates the single edit with a stable edit ID. False by default, used for testing.\n\t */\n\tprivate noHistorySummarizer<TChange>(\n\t\t_edits: EditLog<TChange>,\n\t\tcurrentView: RevisionView,\n\t\tidConverter: NodeIdConverter\n\t): SharedTreeSummary_0_0_2 {\n\t\tconst currentTree = getChangeNode_0_0_2FromView(currentView, idConverter);\n\t\tconst changes: ChangeInternal_0_0_2[] = [];\n\t\t// Generate a set of changes to set the root node's children to that of the root in the currentTree\n\t\tObject.entries(currentTree.traits).forEach(([label, children]) => {\n\t\t\tconst id = 0 as DetachedSequenceId;\n\t\t\tchanges.push(\n\t\t\t\t{ type: ChangeTypeInternal.Build, source: children, destination: id },\n\t\t\t\t{\n\t\t\t\t\ttype: ChangeTypeInternal.Insert,\n\t\t\t\t\tsource: id,\n\t\t\t\t\tdestination: {\n\t\t\t\t\t\tside: Side.After,\n\t\t\t\t\t\treferenceTrait: { label: label as TraitLabel, parent: initialTree.identifier },\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\n\t\tif (currentTree.payload !== undefined) {\n\t\t\tchanges.push({\n\t\t\t\ttype: ChangeTypeInternal.SetValue,\n\t\t\t\tnodeToModify: initialTree.identifier,\n\t\t\t\tpayload: currentTree.payload,\n\t\t\t});\n\t\t}\n\n\t\tassert(\n\t\t\tcurrentTree.identifier === initialTree.identifier && currentTree.definition === initialTree.definition,\n\t\t\t'root definition and identifier should be immutable.'\n\t\t);\n\t\tconst edit = newEdit(changes);\n\n\t\treturn {\n\t\t\tcurrentTree,\n\t\t\tsequencedEdits: [\n\t\t\t\t{\n\t\t\t\t\tid: edit.id,\n\t\t\t\t\tchanges: edit.changes,\n\t\t\t\t},\n\t\t\t],\n\t\t\tversion: WriteFormat.v0_0_2,\n\t\t};\n\t}\n\t/**\n\t * Preserves the full history in the generated summary.\n\t */\n\tprivate fullHistorySummarizer(\n\t\tedits: EditLog<ChangeInternal>,\n\t\tcurrentView: RevisionView,\n\t\tidConverter: NodeIdConverter\n\t): SharedTreeSummary_0_0_2 {\n\t\tconst { editChunks, editIds } = edits.getEditLogSummary();\n\n\t\tconst sequencedEdits: Edit<ChangeInternal_0_0_2>[] = [];\n\t\tlet idIndex = 0;\n\t\teditChunks.forEach(({ chunk }) => {\n\t\t\tif (isEditHandle(chunk)) {\n\t\t\t\tfail('Cannot write handles to summary version 0.0.2');\n\t\t\t} else {\n\t\t\t\tchunk.forEach(({ changes }) => {\n\t\t\t\t\tsequencedEdits.push(\n\t\t\t\t\t\tconvertEditIds(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tchanges,\n\t\t\t\t\t\t\t\tid: editIds[idIndex++] ?? fail('Number of edits should match number of edit IDs.'),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t(id) => idConverter.convertToStableNodeId(id)\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tcurrentTree: getChangeNode_0_0_2FromView(currentView, idConverter),\n\t\t\tsequencedEdits,\n\t\t\tversion: WriteFormat.v0_0_2,\n\t\t};\n\t}\n}\n\nfunction isEditHandle(chunk: FluidEditHandle | readonly EditWithoutId<unknown>[]): chunk is FluidEditHandle {\n\treturn !Array.isArray(chunk);\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -28,7 +28,7 @@ export * from './MergeHealth';
28
28
  export * from './TreeViewUtilities';
29
29
  export { StringInterner } from './StringInterner';
30
30
  export { Side, EditStatus, TreeNode, TreeNodeSequence, Payload, ConstraintEffect, Edit, ChangeInternal, InternalizedChange, ChangeNode, ChangeNode_0_0_2, EditLogSummary, FluidEditHandle, SharedTreeSummaryBase, EditWithoutId, PlaceholderTree, EditBase, HasTraits, InsertInternal, DetachInternal, BuildInternal, SetValueInternal, ConstraintInternal, BuildNodeInternal, StablePlaceInternal_0_0_2, StableRangeInternal_0_0_2, NodeData, TraitMap, ChangeTypeInternal, TraitLocationInternal_0_0_2, WriteFormat, ConstraintInternal_0_0_2, StablePlaceInternal, StableRangeInternal, BuildNodeInternal_0_0_2, BuildInternal_0_0_2, InsertInternal_0_0_2, DetachInternal_0_0_2, SetValueInternal_0_0_2, TraitLocationInternal, } from './persisted-types';
31
- export { SharedTreeArgs, SharedTreeOptions, SharedTreeOptions_0_0_2, SharedTreeOptions_0_1_1, SharedTreeFactory, SharedTree, EditCommittedHandler, SequencedEditAppliedHandler, EditCommittedEventArguments, SequencedEditAppliedEventArguments, EditApplicationOutcome, ISharedTreeEvents, } from './SharedTree';
31
+ export { SharedTreeFactory, SharedTree, EditCommittedHandler, SequencedEditAppliedHandler, EditCommittedEventArguments, SequencedEditAppliedEventArguments, EditApplicationOutcome, ISharedTreeEvents, } from './SharedTree';
32
32
  export * from './EventTypes';
33
33
  export { setTrait, areRevisionViewsSemanticallyEqual, BadPlaceValidationResult, BadRangeValidationResult, PlaceValidationResult, RangeValidationResult, RangeValidationResultKind, } from './EditUtilities';
34
34
  export { comparePayloads } from './PayloadUtilities';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH,cAAc;AAEd,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mCAAiE;AAAjD,gGAAA,MAAM,OAAA;AACtB,mCAAmF;AAA1E,sHAAA,4BAA4B,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAAE,gGAAA,MAAM,OAAA;AAkBhE,6CAAqD;AAA5C,mHAAA,oBAAoB,OAAA;AAI7B,uCAA4F;AAAnF,oGAAA,QAAQ,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAmB,gHAAA,oBAAoB,OAAA;AACvE,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,uDAAqC;AACrC,gDAA8B;AAC9B,sDAAoC;AAEpC,qDAyC2B;AAxC1B,uGAAA,IAAI,OAAA;AACJ,6GAAA,UAAU,OAAA;AAIV,mHAAA,gBAAgB,OAAA;AAEhB,iHAAA,cAAc,OAAA;AAqBd,qHAAA,kBAAkB,OAAA;AAElB,8GAAA,WAAW,OAAA;AAEX,sHAAA,mBAAmB,OAAA;AACnB,sHAAA,mBAAmB,OAAA;AAQpB,2CAasB;AARrB,+GAAA,iBAAiB,OAAA;AACjB,wGAAA,UAAU,OAAA;AAQX,+CAA6B;AAC7B,iDAQyB;AAPxB,yGAAA,QAAQ,OAAA;AACR,kIAAA,iCAAiC,OAAA;AAGjC,sHAAA,qBAAqB,OAAA;AAErB,0HAAA,yBAAyB,OAAA;AAE1B,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,6DAa+B;AAZ9B,0HAAA,mBAAmB,OAAA;AACnB,yHAAA,kBAAkB,OAAA;AAYnB,uCASoB;AALnB,oGAAA,QAAQ,OAAA;AAMT,+CAA+D;AAAtD,4GAAA,YAAY,OAAA;AAAE,+GAAA,eAAe,OAAA;AAEtC,6CAAiF;AAAxE,0GAAA,WAAW,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AAEtC;;GAEG;AACH,+DAIgC;AAH/B,wEAAwE;AACxE,oIAAA,sCAAsC,OAAgC;AACtE,8IAAA,sCAAsC,OAAA;AAGvC,gDAA8B","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Fluid DDS storing a tree.\n *\n * @packageDocumentation\n */\n\n/**\n * This file represents the public API. Consumers of this package will not see exported modules unless they are enumerated here.\n * Removing / editing existing exports here will often indicate a breaking change, so please be cognizant of changes made here.\n */\n\n// API Exports\n\nexport { initialTree } from './InitialTree';\nexport { TreeNodeHandle } from './TreeNodeHandle';\nexport { Delta, Forest, ForestNode, ParentData } from './Forest';\nexport { sharedTreeAssertionErrorType, isSharedTreeEvent, Result } from './Common';\nexport type {\n\tCompressedId,\n\tDefinition,\n\tDetachedSequenceId,\n\tEditId,\n\tInternedStringId,\n\tFinalCompressedId,\n\tLocalCompressedId,\n\tNodeId,\n\tNodeIdBrand,\n\tStableNodeId,\n\tSessionSpaceCompressedId,\n\tSessionUnique,\n\tTraitLabel,\n\tUuidString,\n\tAttributionId,\n} from './Identifiers';\nexport { isDetachedSequenceId } from './Identifiers';\nexport type { OrderedEditSet, EditHandle } from './EditLog';\nexport { LogViewer } from './LogViewer';\nexport { Revision } from './RevisionValueCache';\nexport { Checkout, CheckoutEvent, ICheckoutEvents, EditValidationResult } from './Checkout';\nexport { LazyCheckout } from './LazyCheckout';\nexport { EagerCheckout } from './EagerCheckout';\nexport * from './ReconciliationPath';\nexport * from './MergeHealth';\nexport * from './TreeViewUtilities';\nexport { StringInterner } from './StringInterner';\nexport {\n\tSide,\n\tEditStatus,\n\tTreeNode,\n\tTreeNodeSequence,\n\tPayload,\n\tConstraintEffect,\n\tEdit,\n\tChangeInternal,\n\tInternalizedChange,\n\tChangeNode,\n\tChangeNode_0_0_2,\n\tEditLogSummary,\n\tFluidEditHandle,\n\tSharedTreeSummaryBase,\n\tEditWithoutId,\n\tPlaceholderTree,\n\tEditBase,\n\tHasTraits,\n\tInsertInternal,\n\tDetachInternal,\n\tBuildInternal,\n\tSetValueInternal,\n\tConstraintInternal,\n\tBuildNodeInternal,\n\tStablePlaceInternal_0_0_2,\n\tStableRangeInternal_0_0_2,\n\tNodeData,\n\tTraitMap,\n\tChangeTypeInternal,\n\tTraitLocationInternal_0_0_2,\n\tWriteFormat,\n\tConstraintInternal_0_0_2,\n\tStablePlaceInternal,\n\tStableRangeInternal,\n\tBuildNodeInternal_0_0_2,\n\tBuildInternal_0_0_2,\n\tInsertInternal_0_0_2,\n\tDetachInternal_0_0_2,\n\tSetValueInternal_0_0_2,\n\tTraitLocationInternal,\n} from './persisted-types';\nexport {\n\tSharedTreeArgs,\n\tSharedTreeOptions,\n\tSharedTreeOptions_0_0_2,\n\tSharedTreeOptions_0_1_1,\n\tSharedTreeFactory,\n\tSharedTree,\n\tEditCommittedHandler,\n\tSequencedEditAppliedHandler,\n\tEditCommittedEventArguments,\n\tSequencedEditAppliedEventArguments,\n\tEditApplicationOutcome,\n\tISharedTreeEvents,\n} from './SharedTree';\nexport * from './EventTypes';\nexport {\n\tsetTrait,\n\tareRevisionViewsSemanticallyEqual,\n\tBadPlaceValidationResult,\n\tBadRangeValidationResult,\n\tPlaceValidationResult,\n\tRangeValidationResult,\n\tRangeValidationResultKind,\n} from './EditUtilities';\nexport { comparePayloads } from './PayloadUtilities';\nexport {\n\tTransactionInternal,\n\tGenericTransaction,\n\tGenericTransactionPolicy,\n\tEditingResult,\n\tEditingResultBase,\n\tFailedEditingResult,\n\tValidEditingResult,\n\tTransactionState,\n\tTransactionFailure,\n\tSucceedingTransactionState,\n\tFailingTransactionState,\n\tChangeResult,\n} from './TransactionInternal';\nexport {\n\tNodeInTrait,\n\tPlaceIndex,\n\tTreeViewNode,\n\tTreeView,\n\tTraitNodeIndex,\n\tTreeViewPlace,\n\tTreeViewRange,\n\tTraitLocation,\n} from './TreeView';\nexport { RevisionView, TransactionView } from './RevisionView';\nexport { NodeIdContext, NodeIdGenerator, NodeIdConverter } from './NodeIdUtilities';\nexport { Transaction, TransactionEvent, TransactionEvents } from './Transaction';\n\n/**\n * TODO:#61413: Publish test utilities from a separate test package\n */\nexport {\n\t/** @deprecated Use `getSerializedUploadedEditChunkContents` instead. */\n\tgetSerializedUploadedEditChunkContents as getUploadedEditChunkContents,\n\tgetSerializedUploadedEditChunkContents,\n} from './SummaryTestUtilities';\n\nexport * from './ChangeTypes';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH,cAAc;AAEd,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mCAAiE;AAAjD,gGAAA,MAAM,OAAA;AACtB,mCAAmF;AAA1E,sHAAA,4BAA4B,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAAE,gGAAA,MAAM,OAAA;AAkBhE,6CAAqD;AAA5C,mHAAA,oBAAoB,OAAA;AAI7B,uCAA4F;AAAnF,oGAAA,QAAQ,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAmB,gHAAA,oBAAoB,OAAA;AACvE,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,uDAAqC;AACrC,gDAA8B;AAC9B,sDAAoC;AAEpC,qDAyC2B;AAxC1B,uGAAA,IAAI,OAAA;AACJ,6GAAA,UAAU,OAAA;AAIV,mHAAA,gBAAgB,OAAA;AAEhB,iHAAA,cAAc,OAAA;AAqBd,qHAAA,kBAAkB,OAAA;AAElB,8GAAA,WAAW,OAAA;AAEX,sHAAA,mBAAmB,OAAA;AACnB,sHAAA,mBAAmB,OAAA;AAQpB,2CASsB;AARrB,+GAAA,iBAAiB,OAAA;AACjB,wGAAA,UAAU,OAAA;AAQX,+CAA6B;AAC7B,iDAQyB;AAPxB,yGAAA,QAAQ,OAAA;AACR,kIAAA,iCAAiC,OAAA;AAGjC,sHAAA,qBAAqB,OAAA;AAErB,0HAAA,yBAAyB,OAAA;AAE1B,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,6DAa+B;AAZ9B,0HAAA,mBAAmB,OAAA;AACnB,yHAAA,kBAAkB,OAAA;AAYnB,uCASoB;AALnB,oGAAA,QAAQ,OAAA;AAMT,+CAA+D;AAAtD,4GAAA,YAAY,OAAA;AAAE,+GAAA,eAAe,OAAA;AAEtC,6CAAiF;AAAxE,0GAAA,WAAW,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AAEtC;;GAEG;AACH,+DAIgC;AAH/B,wEAAwE;AACxE,oIAAA,sCAAsC,OAAgC;AACtE,8IAAA,sCAAsC,OAAA;AAGvC,gDAA8B","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Fluid DDS storing a tree.\n *\n * @packageDocumentation\n */\n\n/**\n * This file represents the public API. Consumers of this package will not see exported modules unless they are enumerated here.\n * Removing / editing existing exports here will often indicate a breaking change, so please be cognizant of changes made here.\n */\n\n// API Exports\n\nexport { initialTree } from './InitialTree';\nexport { TreeNodeHandle } from './TreeNodeHandle';\nexport { Delta, Forest, ForestNode, ParentData } from './Forest';\nexport { sharedTreeAssertionErrorType, isSharedTreeEvent, Result } from './Common';\nexport type {\n\tCompressedId,\n\tDefinition,\n\tDetachedSequenceId,\n\tEditId,\n\tInternedStringId,\n\tFinalCompressedId,\n\tLocalCompressedId,\n\tNodeId,\n\tNodeIdBrand,\n\tStableNodeId,\n\tSessionSpaceCompressedId,\n\tSessionUnique,\n\tTraitLabel,\n\tUuidString,\n\tAttributionId,\n} from './Identifiers';\nexport { isDetachedSequenceId } from './Identifiers';\nexport type { OrderedEditSet, EditHandle } from './EditLog';\nexport { LogViewer } from './LogViewer';\nexport { Revision } from './RevisionValueCache';\nexport { Checkout, CheckoutEvent, ICheckoutEvents, EditValidationResult } from './Checkout';\nexport { LazyCheckout } from './LazyCheckout';\nexport { EagerCheckout } from './EagerCheckout';\nexport * from './ReconciliationPath';\nexport * from './MergeHealth';\nexport * from './TreeViewUtilities';\nexport { StringInterner } from './StringInterner';\nexport {\n\tSide,\n\tEditStatus,\n\tTreeNode,\n\tTreeNodeSequence,\n\tPayload,\n\tConstraintEffect,\n\tEdit,\n\tChangeInternal,\n\tInternalizedChange,\n\tChangeNode,\n\tChangeNode_0_0_2,\n\tEditLogSummary,\n\tFluidEditHandle,\n\tSharedTreeSummaryBase,\n\tEditWithoutId,\n\tPlaceholderTree,\n\tEditBase,\n\tHasTraits,\n\tInsertInternal,\n\tDetachInternal,\n\tBuildInternal,\n\tSetValueInternal,\n\tConstraintInternal,\n\tBuildNodeInternal,\n\tStablePlaceInternal_0_0_2,\n\tStableRangeInternal_0_0_2,\n\tNodeData,\n\tTraitMap,\n\tChangeTypeInternal,\n\tTraitLocationInternal_0_0_2,\n\tWriteFormat,\n\tConstraintInternal_0_0_2,\n\tStablePlaceInternal,\n\tStableRangeInternal,\n\tBuildNodeInternal_0_0_2,\n\tBuildInternal_0_0_2,\n\tInsertInternal_0_0_2,\n\tDetachInternal_0_0_2,\n\tSetValueInternal_0_0_2,\n\tTraitLocationInternal,\n} from './persisted-types';\nexport {\n\tSharedTreeFactory,\n\tSharedTree,\n\tEditCommittedHandler,\n\tSequencedEditAppliedHandler,\n\tEditCommittedEventArguments,\n\tSequencedEditAppliedEventArguments,\n\tEditApplicationOutcome,\n\tISharedTreeEvents,\n} from './SharedTree';\nexport * from './EventTypes';\nexport {\n\tsetTrait,\n\tareRevisionViewsSemanticallyEqual,\n\tBadPlaceValidationResult,\n\tBadRangeValidationResult,\n\tPlaceValidationResult,\n\tRangeValidationResult,\n\tRangeValidationResultKind,\n} from './EditUtilities';\nexport { comparePayloads } from './PayloadUtilities';\nexport {\n\tTransactionInternal,\n\tGenericTransaction,\n\tGenericTransactionPolicy,\n\tEditingResult,\n\tEditingResultBase,\n\tFailedEditingResult,\n\tValidEditingResult,\n\tTransactionState,\n\tTransactionFailure,\n\tSucceedingTransactionState,\n\tFailingTransactionState,\n\tChangeResult,\n} from './TransactionInternal';\nexport {\n\tNodeInTrait,\n\tPlaceIndex,\n\tTreeViewNode,\n\tTreeView,\n\tTraitNodeIndex,\n\tTreeViewPlace,\n\tTreeViewRange,\n\tTraitLocation,\n} from './TreeView';\nexport { RevisionView, TransactionView } from './RevisionView';\nexport { NodeIdContext, NodeIdGenerator, NodeIdConverter } from './NodeIdUtilities';\nexport { Transaction, TransactionEvent, TransactionEvents } from './Transaction';\n\n/**\n * TODO:#61413: Publish test utilities from a separate test package\n */\nexport {\n\t/** @deprecated Use `getSerializedUploadedEditChunkContents` instead. */\n\tgetSerializedUploadedEditChunkContents as getUploadedEditChunkContents,\n\tgetSerializedUploadedEditChunkContents,\n} from './SummaryTestUtilities';\n\nexport * from './ChangeTypes';\n"]}
@@ -7,7 +7,7 @@ import { IFluidSerializer, ISharedObjectEvents, SharedObject } from '@fluidframe
7
7
  import { ITelemetryLogger, ITelemetryProperties } from '@fluidframework/common-definitions';
8
8
  import { ISummaryTreeWithStats } from '@fluidframework/runtime-definitions';
9
9
  import { OrderedEditSet } from './EditLog';
10
- import { EditId, NodeId, StableNodeId, AttributionId } from './Identifiers';
10
+ import { EditId, NodeId, StableNodeId } from './Identifiers';
11
11
  import { LogViewer } from './LogViewer';
12
12
  import { ReconciliationPath } from './ReconciliationPath';
13
13
  import { ChangeInternal, Edit, EditStatus, SharedTreeSummaryBase, WriteFormat, InternalizedChange } from './persisted-types';
@@ -15,68 +15,15 @@ import { NodeIdContext } from './NodeIdUtilities';
15
15
  import { RevisionView } from './RevisionView';
16
16
  import { Change } from './ChangeTypes';
17
17
  import { TransactionInternal } from './TransactionInternal';
18
- /**
19
- * The write format and associated options used to construct a `SharedTree`
20
- * @public
21
- */
22
- export declare type SharedTreeArgs<WF extends WriteFormat = WriteFormat> = [writeFormat: WF, options?: SharedTreeOptions<WF>];
23
- /**
24
- * The type of shared tree options for a given write format
25
- * @public
26
- */
27
- export declare type SharedTreeOptions<WF extends WriteFormat, HistoryCompatibility extends 'Forwards' | 'None' = 'Forwards'> = Omit<WF extends WriteFormat.v0_0_2 ? SharedTreeOptions_0_0_2 : WF extends WriteFormat.v0_1_1 ? SharedTreeOptions_0_1_1 : never, HistoryCompatibility extends 'Forwards' ? 'summarizeHistory' : never>;
28
- /**
29
- * Configuration options for a SharedTree with write format 0.0.2
30
- * @public
31
- */
32
- export interface SharedTreeOptions_0_0_2 {
33
- /**
34
- * Determines if the history is included in summaries.
35
- *
36
- * Warning: enabling history summarization incurs a permanent cost in the document. It is not possible to disable history summarization
37
- * later once it has been enabled, and thus the history cannot be safely deleted.
38
- *
39
- * On 0.1.1 documents, due to current code limitations, this parameter is only impactful for newly created documents.
40
- * `SharedTree`s which load existing documents will summarize history if and only if the loaded summary included history.
41
- *
42
- * The technical limitations here relate to clients with mixed versions collaborating.
43
- * In the future we may allow modification of whether or not a particular document saves history, but only via a consensus mechanism.
44
- * See the skipped test in SharedTreeFuzzTests.ts for more details on this issue.
45
- * See docs/Breaking-Change-Migration for more details on the consensus scheme.
46
- */
47
- summarizeHistory?: boolean;
48
- }
49
- /**
50
- * Configuration options for a SharedTree with write format 0.1.1
51
- * @public
52
- */
53
- export interface SharedTreeOptions_0_1_1 {
54
- /**
55
- * Determines if the history is included in summaries and if edit chunks are uploaded when they are full.
56
- *
57
- * Warning: enabling history summarization incurs a permanent cost in the document. It is not possible to disable history summarization
58
- * later once it has been enabled, and thus the history cannot be safely deleted.
59
- *
60
- * On 0.1.1 documents, due to current code limitations, this parameter is only impactful for newly created documents.
61
- * `SharedTree`s which load existing documents will summarize history if and only if the loaded summary included history.
62
- *
63
- * The technical limitations here relate to clients with mixed versions collaborating.
64
- * In the future we may allow modification of whether or not a particular document saves history, but only via a consensus mechanism.
65
- * See the skipped test in SharedTreeFuzzTests.ts for more details on this issue.
66
- * See docs/Breaking-Change-Migration for more details on the consensus scheme.
67
- */
68
- summarizeHistory?: false | {
69
- uploadEditChunks: boolean;
70
- };
71
- /** a UUID that identifies the user of this tree; all node IDs generated by this tree will be associated with this UUID */
72
- attributionId?: AttributionId;
73
- }
74
18
  /**
75
19
  * Factory for SharedTree.
76
20
  * Includes history in the summary.
77
21
  * @public
78
22
  */
79
23
  export declare class SharedTreeFactory implements IChannelFactory {
24
+ private readonly writeFormat;
25
+ private readonly summarizeHistory;
26
+ private expensiveValidation;
80
27
  /**
81
28
  * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory."type"}
82
29
  */
@@ -85,16 +32,18 @@ export declare class SharedTreeFactory implements IChannelFactory {
85
32
  * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}
86
33
  */
87
34
  static Attributes: IChannelAttributes;
88
- private readonly args;
89
35
  /**
90
36
  * Get a factory for SharedTree to register with the data store.
91
37
  * @param writeFormat - Determines the format version the SharedTree will write ops and summaries in. See [the write format
92
38
  * documentation](../docs/Write-Format.md) for more information.
93
- * @param options - Configuration options for this tree
39
+ * @param summarizeHistory - Determines if the history is included in summaries and if edit chunks are uploaded when they are full.
40
+ * See the [breaking change migration documentation](docs/Breaking-Change-Migration) for more details on this scheme.
41
+ * @param expensiveValidation - Enables expensive asserts on SharedTree.
94
42
  * @returns A factory that creates `SharedTree`s and loads them from storage.
95
43
  */
96
- constructor(...args: SharedTreeArgs<WriteFormat.v0_0_2>);
97
- constructor(...args: SharedTreeArgs<WriteFormat.v0_1_1>);
44
+ constructor(writeFormat: WriteFormat, summarizeHistory?: false | {
45
+ uploadEditChunks: boolean;
46
+ }, expensiveValidation?: boolean);
98
47
  /**
99
48
  * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory."type"}
100
49
  */
@@ -112,7 +61,7 @@ export declare class SharedTreeFactory implements IChannelFactory {
112
61
  * @param runtime - data store runtime that owns the new SharedTree
113
62
  * @param id - optional name for the SharedTree
114
63
  */
115
- create(runtime: IFluidDataStoreRuntime, id: string): SharedTree;
64
+ create(runtime: IFluidDataStoreRuntime, id: string, expensiveValidation?: boolean): SharedTree;
116
65
  private createSharedTree;
117
66
  }
118
67
  /**
@@ -192,30 +141,33 @@ export declare type SequencedEditAppliedHandler = (args: SequencedEditAppliedEve
192
141
  */
193
142
  export declare class SharedTree extends SharedObject<ISharedTreeEvents> implements NodeIdContext {
194
143
  private writeFormat;
144
+ private readonly expensiveValidation;
195
145
  /**
196
146
  * Create a new SharedTree. It will contain the default value (see initialTree).
197
147
  */
198
148
  static create(runtime: IFluidDataStoreRuntime, id?: string): SharedTree;
199
149
  /**
200
150
  * Get a factory for SharedTree to register with the data store.
151
+ * @param summarizeHistory - Determines if the history is included in summaries and if edit chunks are uploaded when they are full.
152
+ *
153
+ * On 0.1.1 documents, due to current code limitations, this parameter is only impactful for newly created documents.
154
+ * `SharedTree`s which load existing documents will summarize history if and only if the loaded summary included history.
155
+ *
156
+ * The technical limitations here relate to clients with mixed versions collaborating.
157
+ * In the future we may allow modification of whether or not a particular document saves history, but only via a consensus mechanism.
158
+ * See the skipped test in SharedTreeFuzzTests.ts for more details on this issue.
159
+ * See docs/Breaking-Change-Migration for more details on the consensus scheme.
201
160
  * @param writeFormat - Determines the format version the SharedTree will write ops and summaries in.
202
161
  * This format may be updated to a newer (supported) version at runtime if a collaborating shared-tree
203
162
  * that was initialized with a newer write version connects to the session. Care must be taken when changing this value,
204
163
  * as a staged rollout must of occurred such that all collaborating clients must have the code to read at least the version
205
164
  * written.
206
165
  * See [the write format documentation](../docs/Write-Format.md) for more information.
207
- * @param options - Configuration options for this tree
208
166
  * @returns A factory that creates `SharedTree`s and loads them from storage.
209
167
  */
210
- static getFactory(...args: SharedTreeArgs<WriteFormat.v0_0_2>): SharedTreeFactory;
211
- static getFactory(...args: SharedTreeArgs<WriteFormat.v0_1_1>): SharedTreeFactory;
212
- /**
213
- * The UUID used for attribution of nodes created by this SharedTree. All shared trees with a write format of 0.1.1 or
214
- * greater have a unique attribution ID which may be configured in the constructor. All other shared trees (i.e. those
215
- * with a write format of 0.0.2) use the nil UUID as their attribution ID.
216
- * @public
217
- */
218
- get attributionId(): AttributionId;
168
+ static getFactory(writeFormat: WriteFormat, summarizeHistory?: false | {
169
+ uploadEditChunks: boolean;
170
+ }): SharedTreeFactory;
219
171
  private idCompressor;
220
172
  private readonly idNormalizer;
221
173
  private interner;
@@ -243,22 +195,18 @@ export declare class SharedTree extends SharedObject<ISharedTreeEvents> implemen
243
195
  private readonly processSequencedEditResult;
244
196
  private summarizeHistory;
245
197
  private uploadEditChunks;
246
- private getHistoryPolicy;
247
198
  /**
248
- * Create a new SharedTree.
199
+ * Create a new SharedTreeFactory.
249
200
  * @param runtime - The runtime the SharedTree will be associated with
250
201
  * @param id - Unique ID for the SharedTree
251
202
  * @param writeFormat - Determines the format version the SharedTree will write ops and summaries in. See [the write format
252
203
  * documentation](../docs/Write-Format.md) for more information.
253
- * @param options - Configuration options for this tree
254
- */
255
- constructor(runtime: IFluidDataStoreRuntime, id: string, ...args: SharedTreeArgs<WriteFormat.v0_0_2>);
256
- constructor(runtime: IFluidDataStoreRuntime, id: string, ...args: SharedTreeArgs<WriteFormat.v0_1_1>);
257
- /**
258
- * The write format version currently used by this `SharedTree`. This is always initialized to the write format
259
- * passed to the tree's constructor, but it may automatically upgrade over time (e.g. when connected to another
260
- * SharedTree with a higher write format, or when loading a summary with a higher write format).
204
+ * @param summarizeHistory - Determines if the history is included in summaries and if edit chunks are uploaded when they are full.
205
+ * @param expensiveValidation - Enable expensive asserts.
261
206
  */
207
+ constructor(runtime: IFluidDataStoreRuntime, id: string, writeFormat: WriteFormat, summarizeHistory?: false | {
208
+ uploadEditChunks: boolean;
209
+ }, expensiveValidation?: boolean);
262
210
  getWriteFormat(): WriteFormat;
263
211
  /**
264
212
  * Re-computes currentIsOldest and emits an event if it has changed.
@@ -320,13 +268,6 @@ export declare class SharedTree extends SharedObject<ISharedTreeEvents> implemen
320
268
  * @public
321
269
  */
322
270
  tryConvertToNodeId(id: StableNodeId): NodeId | undefined;
323
- /**
324
- * Returns the attribution ID associated with the SharedTree that generated the given node ID. This is generally only useful for clients
325
- * with a write format of 0.1.1 or greater since older clients cannot be given an attribution ID and will always use the default
326
- * `attributionId` of the tree.
327
- * @public
328
- */
329
- attributeNodeId(id: NodeId): AttributionId;
330
271
  /**
331
272
  * @returns the edit history of the tree.
332
273
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"SharedTree.d.ts","sourceRoot":"","sources":["../src/SharedTree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACN,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAEN,gBAAgB,EAChB,mBAAmB,EAEnB,YAAY,EACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,EAA6D,cAAc,EAAE,MAAM,WAAW,CAAC;AACtG,OAAO,EACN,MAAM,EACN,MAAM,EACN,YAAY,EAIZ,aAAa,EACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAIN,SAAS,EAGT,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAEN,cAAc,EAKd,IAAI,EAGJ,UAAU,EAWV,qBAAqB,EAIrB,WAAW,EAEX,kBAAkB,EAClB,MAAM,mBAAmB,CAAC;AAW3B,OAAO,EAAoB,aAAa,EAA2C,MAAM,mBAAmB,CAAC;AAE7G,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAA4B,MAAM,EAAc,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAM5D;;;GAGG;AACH,oBAAY,cAAc,CAAC,EAAE,SAAS,WAAW,GAAG,WAAW,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;AAEtH;;;GAGG;AACH,oBAAY,iBAAiB,CAC5B,EAAE,SAAS,WAAW,EACtB,oBAAoB,SAAS,UAAU,GAAG,MAAM,GAAG,UAAU,IAC1D,IAAI,CACP,EAAE,SAAS,WAAW,CAAC,MAAM,GAC1B,uBAAuB,GACvB,EAAE,SAAS,WAAW,CAAC,MAAM,GAC7B,uBAAuB,GACvB,KAAK,EACR,oBAAoB,SAAS,UAAU,GAAG,kBAAkB,GAAG,KAAK,CACpE,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACvC;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACvC;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,EAAE,KAAK,GAAG;QAAE,gBAAgB,EAAE,OAAO,CAAA;KAAE,CAAC;IACzD,0HAA0H;IAC1H,aAAa,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,eAAe;IACxD;;OAEG;IACH,OAAc,IAAI,SAAgB;IAElC;;OAEG;IACH,OAAc,UAAU,EAAE,kBAAkB,CAI1C;IAEF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC;;;;;;OAMG;gBACS,GAAG,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC;gBAC3C,GAAG,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC;IAKvD;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,kBAAkB,CAE1C;IAED;;OAEG;IACU,IAAI,CAChB,OAAO,EAAE,sBAAsB,EAC/B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,gBAAgB,EAC1B,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAC9C,OAAO,CAAC,QAAQ,CAAC;IAMpB;;;;OAIG;IACI,MAAM,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU;IAMtE,OAAO,CAAC,gBAAgB;CAWxB;AAYD;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC3C,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,+GAA+G;IAC/G,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,kCAAkC;IAClD,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACpC,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,wFAAwF;IACxF,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChD,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;CACzC;AAED;;;GAGG;AACH,oBAAY,sBAAsB,GAC/B;IACA;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC;CACnC,GACD;IACA;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC;IAC9C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC;CAC1D,CAAC;AAEL;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC7D,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,oBAAoB,OAAE;IACzD,CAAC,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,2BAA2B,OAAE;CACvE;AAED;;;GAGG;AACH,oBAAY,oBAAoB,GAAG,CAAC,IAAI,EAAE,2BAA2B,KAAK,IAAI,CAAC;AAE/E;;;GAGG;AACH,oBAAY,2BAA2B,GAAG,CAAC,IAAI,EAAE,kCAAkC,KAAK,IAAI,CAAC;AAI7F;;;GAGG;AACH,qBAAa,UAAW,SAAQ,YAAY,CAAC,iBAAiB,CAAE,YAAW,aAAa;IA8JtF,OAAO,CAAC,WAAW;IA7JpB;;OAEG;WACW,MAAM,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAI9E;;;;;;;;;;OAUG;WACW,UAAU,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,iBAAiB;WAE1E,UAAU,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,iBAAiB;IAkBxF;;;;;OAKG;IACH,IAAW,aAAa,IAAI,aAAa,CAYxC;IAED,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAO3B;IAGF,OAAO,CAAC,QAAQ,CAA8E;IAE9F;;OAEG;IACH,OAAO,CAAC,OAAO,CAA0B;IAEzC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAAmB;IAE3C;;OAEG;IACH,IAAW,SAAS,IAAI,SAAS,CAEhC;IAED,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAmB;IAE9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD,OAAO,CAAC,aAAa,CAA0B;IAE/C,kEAAkE;IAClE,OAAO,CAAC,eAAe,CAAU;IAEjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAGhC;IAEF,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAezC;IAEF,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,gBAAgB,CAAU;IAElC,OAAO,CAAC,gBAAgB;IAkBxB;;;;;;;OAOG;gBACgB,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC;gBAExF,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC;IAiD3G;;;;OAIG;IACI,cAAc,IAAI,WAAW;IAIpC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAW3B;IAEF;;;OAGG;IACH,OAAO,CAAC,eAAe;IA+BvB;;OAEG;IACH,IAAW,WAAW,IAAI,YAAY,CAErC;IAED;;;;;;;;;;;OAWG;IACI,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAIhD;;;;;;OAMG;IACI,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY;IAItD;;;;;;;OAOG;IACI,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrE;;;;;;OAMG;IACI,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM;IAMhD;;;;;;OAMG;IACI,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS;IAI/D;;;;;OAKG;IACI,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa;IAcjD;;;OAGG;IACH,IAAW,KAAK,IAAI,cAAc,CAAC,kBAAkB,CAAC,CAErD;IAED,OAAO,CAAC,iBAAiB;IAMzB;;;;OAIG;IACH,OAAO,CAAC,eAAe;YAQT,oBAAoB;IA6ClC;;OAEG;IACI,aAAa,CAAC,UAAU,EAAE,gBAAgB,GAAG,qBAAqB;IAIzE;;;;;OAKG;IACI,qBAAqB,CAAC,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,gBAAgB,CAAA;KAAE,GAAG,MAAM;IAKjF;;;;OAIG;IACI,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB;IAMpE;;;OAGG;IACI,WAAW,IAAI,qBAAqB;IAyB3C;;;OAGG;IACH,OAAO,CAAC,eAAe;IA0BvB;;;OAGG;IACI,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAmGxD,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAWlC;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAkDvC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;;;;;;;;;;;;SAaK;IACE,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;IAQ9C;;OAEG;cACa,QAAQ,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxE;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAuD7D;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAI9B;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAI9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,oBAAoB;IAqC5B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAiC5B,OAAO,CAAC,0BAA0B;IAiDlC;;;;;;OAMG;IACI,SAAS,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;IACzD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;IAa7D;;;;;;;;;OASG;IACI,cAAc,CACpB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EACzC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,YAAY,GACnD,MAAM,EAAE;IAaX;;;;;;OAMG;IACI,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,SAAS,cAAc,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;IAa/G;;;;OAIG;IACI,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;IAmExD,OAAO,CAAC,gBAAgB;IAgBxB;;;;;OAKG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAYjD;;;;;;OAMG;IACI,aAAa,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,EAAE,MAAM,EAAE,YAAY,GAAG,cAAc,EAAE,GAAG,SAAS;IAIhH;;OAEG;IACH,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,aAAa;IAIrB,oEAAoE;IACpE,OAAO,CAAC,QAAQ;IAQT,UAAU,IAAI,sBAAsB;IAI3C;;;;;;;;;OASG;IACH,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IA6C3C,OAAO,CAAC,iBAAiB;IAKzB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;CAuB7B"}
1
+ {"version":3,"file":"SharedTree.d.ts","sourceRoot":"","sources":["../src/SharedTree.ts"],"names":[],"mappings":"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"}