@atproto/repo 0.3.8 → 0.3.9-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/block-map.d.ts +1 -0
  3. package/dist/block-map.d.ts.map +1 -0
  4. package/dist/block-map.js +119 -0
  5. package/dist/block-map.js.map +1 -0
  6. package/dist/cid-set.d.ts +1 -0
  7. package/dist/cid-set.d.ts.map +1 -0
  8. package/dist/cid-set.js +48 -0
  9. package/dist/cid-set.js.map +1 -0
  10. package/dist/data-diff.d.ts +1 -0
  11. package/dist/data-diff.d.ts.map +1 -0
  12. package/dist/data-diff.js +134 -0
  13. package/dist/data-diff.js.map +1 -0
  14. package/dist/error.d.ts +1 -0
  15. package/dist/error.d.ts.map +1 -0
  16. package/dist/error.js +76 -0
  17. package/dist/error.js.map +1 -0
  18. package/dist/index.d.ts +1 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +26 -27225
  21. package/dist/index.js.map +1 -7
  22. package/dist/logger.d.ts +1 -0
  23. package/dist/logger.d.ts.map +1 -0
  24. package/dist/logger.js +7 -0
  25. package/dist/logger.js.map +1 -0
  26. package/dist/mst/diff.d.ts +1 -0
  27. package/dist/mst/diff.d.ts.map +1 -0
  28. package/dist/mst/diff.js +120 -0
  29. package/dist/mst/diff.js.map +1 -0
  30. package/dist/mst/index.d.ts +1 -0
  31. package/dist/mst/index.d.ts.map +1 -0
  32. package/dist/mst/index.js +34 -0
  33. package/dist/mst/index.js.map +1 -0
  34. package/dist/mst/mst.d.ts +6 -5
  35. package/dist/mst/mst.d.ts.map +1 -0
  36. package/dist/mst/mst.js +770 -0
  37. package/dist/mst/mst.js.map +1 -0
  38. package/dist/mst/util.d.ts +1 -0
  39. package/dist/mst/util.d.ts.map +1 -0
  40. package/dist/mst/util.js +167 -0
  41. package/dist/mst/util.js.map +1 -0
  42. package/dist/mst/walker.d.ts +1 -0
  43. package/dist/mst/walker.d.ts.map +1 -0
  44. package/dist/mst/walker.js +123 -0
  45. package/dist/mst/walker.js.map +1 -0
  46. package/dist/parse.d.ts +1 -0
  47. package/dist/parse.d.ts.map +1 -0
  48. package/dist/parse.js +35 -0
  49. package/dist/parse.js.map +1 -0
  50. package/dist/readable-repo.d.ts +1 -0
  51. package/dist/readable-repo.d.ts.map +1 -0
  52. package/dist/readable-repo.js +117 -0
  53. package/dist/readable-repo.js.map +1 -0
  54. package/dist/repo.d.ts +1 -0
  55. package/dist/repo.d.ts.map +1 -0
  56. package/dist/repo.js +190 -0
  57. package/dist/repo.js.map +1 -0
  58. package/dist/storage/index.d.ts +1 -0
  59. package/dist/storage/index.d.ts.map +1 -0
  60. package/dist/storage/index.js +21 -0
  61. package/dist/storage/index.js.map +1 -0
  62. package/dist/storage/memory-blockstore.d.ts +1 -0
  63. package/dist/storage/memory-blockstore.d.ts.map +1 -0
  64. package/dist/storage/memory-blockstore.js +80 -0
  65. package/dist/storage/memory-blockstore.js.map +1 -0
  66. package/dist/storage/readable-blockstore.d.ts +1 -0
  67. package/dist/storage/readable-blockstore.d.ts.map +1 -0
  68. package/dist/storage/readable-blockstore.js +66 -0
  69. package/dist/storage/readable-blockstore.js.map +1 -0
  70. package/dist/storage/sync-storage.d.ts +1 -0
  71. package/dist/storage/sync-storage.d.ts.map +1 -0
  72. package/dist/storage/sync-storage.js +46 -0
  73. package/dist/storage/sync-storage.js.map +1 -0
  74. package/dist/storage/types.d.ts +1 -0
  75. package/dist/storage/types.d.ts.map +1 -0
  76. package/dist/storage/types.js +7 -0
  77. package/dist/storage/types.js.map +1 -0
  78. package/dist/sync/consumer.d.ts +1 -0
  79. package/dist/sync/consumer.d.ts.map +1 -0
  80. package/dist/sync/consumer.js +178 -0
  81. package/dist/sync/consumer.js.map +1 -0
  82. package/dist/sync/index.d.ts +1 -0
  83. package/dist/sync/index.d.ts.map +1 -0
  84. package/dist/sync/index.js +19 -0
  85. package/dist/sync/index.js.map +1 -0
  86. package/dist/sync/provider.d.ts +1 -0
  87. package/dist/sync/provider.d.ts.map +1 -0
  88. package/dist/sync/provider.js +67 -0
  89. package/dist/sync/provider.js.map +1 -0
  90. package/dist/types.d.ts +22 -19
  91. package/dist/types.d.ts.map +1 -0
  92. package/dist/types.js +62 -0
  93. package/dist/types.js.map +1 -0
  94. package/dist/util.d.ts +2 -1
  95. package/dist/util.d.ts.map +1 -0
  96. package/dist/util.js +219 -0
  97. package/dist/util.js.map +1 -0
  98. package/jest.config.js +3 -3
  99. package/package.json +11 -14
  100. package/src/mst/mst.ts +1 -1
  101. package/src/types.ts +4 -2
  102. package/src/util.ts +1 -1
  103. package/tests/_util.ts +4 -0
  104. package/tsconfig.build.json +6 -2
  105. package/tsconfig.json +3 -11
  106. package/tsconfig.tests.json +7 -0
  107. package/babel.config.js +0 -1
  108. package/build.js +0 -14
  109. package/jest.bench.config.js +0 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mst.js","sourceRoot":"","sources":["../../src/mst/mst.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAmB;AAInB,4CAA+E;AAE/E,6CAA8B;AAC9B,6DAAmC;AACnC,yDAA+B;AAC/B,oCAAgE;AAChE,gDAAiC;AAEjC;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,cAAc,GAAG,aAAC,CAAC,QAAQ,CAAC,eAAM,CAAC,GAAG,CAAC,CAAA;AAC7C,MAAM,SAAS,GAAG,aAAC,CAAC,MAAM,CAAC;IACzB,CAAC,EAAE,aAAC,CAAC,MAAM,EAAE,EAAE,qEAAqE;IACpF,CAAC,EAAE,eAAM,CAAC,KAAK,EAAE,gDAAgD;IACjE,CAAC,EAAE,eAAM,CAAC,GAAG,EAAE,QAAQ;IACvB,CAAC,EAAE,cAAc,EAAE,sCAAsC;CAC1D,CAAC,CAAA;AACF,MAAM,QAAQ,GAAG,aAAC,CAAC,MAAM,CAAC;IACxB,CAAC,EAAE,cAAc,EAAE,oBAAoB;IACvC,CAAC,EAAE,aAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS;CACjC,CAAC,CAAA;AAGW,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,QAAQ;CACjB,CAAA;AAQD,MAAa,GAAG;IAOd,YACE,OAA2B,EAC3B,OAAY,EACZ,OAA2B,EAC3B,KAAoB;QAVtB;;;;;WAA2B;QAC3B;;;;;WAA2B;QAC3B;;;;;WAAoB;QACpB;;;;;WAAY;QACZ;;;;mBAAkB,KAAK;WAAA;QAQrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,OAA2B,EAC3B,UAAuB,EAAE,EACzB,IAAuB;QAEvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACjD,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QACnC,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAClD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CACnB,OAA2B,EAC3B,IAAc,EACd,IAAuB;QAEvB,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACnE,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAA;QACtC,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAClD,CAAC;IAED,+DAA+D;IAC/D,MAAM,CAAC,IAAI,CACT,OAA2B,EAC3B,GAAQ,EACR,IAAuB;QAEvB,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QACnC,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;IAED,eAAe;IACf,sBAAsB;IAEtB,uEAAuE;IACvE,KAAK,CAAC,OAAO,CAAC,OAAoB;QAChC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACpE,GAAG,CAAC,eAAe,GAAG,IAAI,CAAA;QAC1B,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,sBAAsB;IACtB,sBAAsB;IAEtB,wEAAwE;IACxE,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAW,CAAC,CAAA;YAClE,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3B,MAAM,KAAK,GACT,SAAS,KAAK,SAAS;gBACrB,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC5C,CAAC,CAAC,SAAS,CAAA;YACf,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;gBAChE,KAAK;aACN,CAAC,CAAA;YAEF,OAAO,IAAI,CAAC,OAAO,CAAA;QACrB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;IAC/C,CAAC;IAED,mEAAmE;IACnE,wGAAwG;IACxG,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,OAAO,CAAA;QAC9C,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACtC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QAClB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,eAAe,CAC9B,CAAA;QACV,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;YACtD,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACnC,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,MAAM,IAAA,wBAAe,EAAC,IAAI,CAAC,CAAA;QACzC,OAAO;YACL,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAA;IACH,CAAC;IAED,oEAAoE;IACpE,mGAAmG;IACnG,oEAAoE;IACpE,iFAAiF;IACjF,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QACzC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAA;QAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvC,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC/C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBACnB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE,CAAA;oBAChD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;wBACxB,KAAK,GAAG,UAAU,GAAG,CAAC,CAAA;wBACtB,MAAK;oBACP,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,KAAK,KAAK,IAAI;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,qBAAqB;IACrB,sBAAsB;IAEtB,iEAAiE;IACjE,KAAK,CAAC,iBAAiB;QACrB,MAAM,MAAM,GAAG,IAAI,mBAAQ,EAAE,CAAA;QAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,UAAU;YAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAC5C,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACtB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,iBAAiB,EAAE,CAAA;gBAC/C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;IAC1C,CAAC;IAED,+CAA+C;IAC/C,gDAAgD;IAChD,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,UAAmB;QACpD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,QAAQ,GAAG,UAAU,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;QACnE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACnC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACpC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,2BAA2B;YAC3B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;YACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACvC,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAA;YAC5D,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;YAC9C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnC,0EAA0E;gBAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YACtC,CAAC;iBAAM,CAAC;gBACN,kDAAkD;gBAClD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;gBACpD,OAAO,IAAI,CAAC,gBAAgB,CAC1B,KAAK,GAAG,CAAC,EACT,YAAY,CAAC,CAAC,CAAC,EACf,OAAO,EACP,YAAY,CAAC,CAAC,CAAC,CAChB,CAAA;YACH,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,GAAG,KAAK,EAAE,CAAC;YAC5B,8BAA8B;YAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;YACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;YAC9C,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClC,oDAAoD;gBACpD,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;gBAC3D,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,UAAU,CAAC,CAAA;YAChD,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;gBACxC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;gBAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YACzC,mFAAmF;YACnF,6DAA6D;YAC7D,IAAI,IAAI,GAAe,KAAK,CAAC,CAAC,CAAC,CAAA;YAC/B,IAAI,KAAK,GAAe,KAAK,CAAC,CAAC,CAAC,CAAA;YAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;YACnC,MAAM,gBAAgB,GAAG,QAAQ,GAAG,KAAK,CAAA;YACzC,2EAA2E;YAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;gBAClC,CAAC;gBACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACnB,KAAK,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE,CAAA;gBACpC,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAgB,EAAE,CAAA;YAC/B,IAAI,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5B,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;YAClC,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC9B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;gBACtD,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAA;YACF,OAAO,CAAC,eAAe,GAAG,IAAI,CAAA;YAC9B,OAAO,OAAO,CAAA;QAChB,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;QACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC,KAAK,CAAA;QACpB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAC1C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,mCAAmC;IACnC,yCAAyC;IACzC,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,KAAU;QAClC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;QACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QACtD,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAC1C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACjD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,WAAW,CAAC,CAAA;QACjD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAC7C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAW;QAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;QACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACvC,oCAAoC;QACpC,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;YAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;YAC1C,IAAI,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;gBAC3C,OAAO,IAAI,CAAC,OAAO,CAAC;oBAClB,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBACnC,MAAM;oBACN,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;iBACjC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;QACD,+BAA+B;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAC1C,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;YAC7C,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;YACjD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;YACpC,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;YAC7C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,sBAAsB;IAEtB,wBAAwB;IACxB,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,KAAgB;QAC/C,MAAM,MAAM,GAAG;YACb,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC/B,KAAK;YACL,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;SACjC,CAAA;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,OAAO,GAAG;YACd,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC/B,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;SACjC,CAAA;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,MAAM,CAAC,KAAgB;QAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,OAAO,CAAC,KAAgB;QAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,OAAO,CAAC,KAAa;QACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAA;IAC/B,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,KAAK,CACT,KAA0B,EAC1B,GAAwB;QAExB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvC,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAClC,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,QAAQ,CAAC,KAAgB,EAAE,KAAa;QAC5C,MAAM,MAAM,GAAG;YACb,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC/B,KAAK;YACL,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC7B,CAAA;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,gBAAgB,CACpB,KAAa,EACb,IAAgB,EAChB,IAAU,EACV,KAAiB;QAEjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACzC,IAAI,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjB,IAAI,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED,mGAAmG;IACnG,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,sBAAsB;IAEtB,mDAAmD;IACnD,KAAK,CAAC,WAAW,CAAC,GAAW;QAC3B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;QACpD,wBAAwB;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QAC3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACzC,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAEzC,kDAAkD;QAClD,yCAAyC;QACzC,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAChD,IAAI,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;YACzB,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAC/C,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACb,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACpC,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACb,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;QAED,OAAO;YACL,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;YAClD,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;SACrD,CAAA;IACH,CAAC;IAED,qGAAqG;IACrG,+BAA+B;IAC/B,KAAK,CAAC,WAAW,CAAC,OAAY;QAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAA;QACH,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QAC3C,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;QACjD,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACtD,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACtC,IAAI,UAAU,EAAE,MAAM,EAAE,IAAI,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;YACzD,OAAO,IAAI,CAAC,OAAO,CAAC;gBAClB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC/C,MAAM;gBACN,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;aAC3B,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,cAAc,CAAC,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,sBAAsB;IAEtB,KAAK,CAAC,WAAW;QACf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACnC,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE;YAClC,KAAK,EAAE,KAAK,GAAG,CAAC;SACjB,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACnC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;YACpD,KAAK,EAAE,KAAK,GAAG,CAAC;SACjB,CAAC,CAAA;QACF,MAAM,CAAC,eAAe,GAAG,IAAI,CAAA;QAC7B,OAAO,MAAM,CAAA;IACf,CAAC;IAED,2BAA2B;IAC3B,sBAAsB;IAEtB,4EAA4E;IAC5E,KAAK,CAAC,sBAAsB,CAAC,GAAW;QACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvC,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAClC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,IAAI,GAAG,CAC9C,CAAA;QACD,qCAAqC;QACrC,OAAO,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAA;IACtD,CAAC;IAED,2CAA2C;IAC3C,sBAAsB;IAEtB,8BAA8B;IAE9B,4BAA4B;IAC5B,KAAK,CAAC,CAAC,cAAc,CAAC,GAAW;QAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;QACpD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,MAAM,CAAC,CAAA;YACT,CAAC;QACH,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACxB,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,MAAM,KAAK,CAAA;YACb,CAAC;iBAAM,CAAC;gBACN,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChD,MAAM,CAAC,CAAA;gBACT,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CACR,KAAK,GAAG,MAAM,CAAC,gBAAgB,EAC/B,KAAc,EACd,MAAe;QAEf,MAAM,IAAI,GAAW,EAAE,CAAA;QACvB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YAC1D,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK;gBAAE,SAAQ;YAChC,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;gBAAE,MAAK;YAC/B,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,MAAM;gBAAE,MAAK;YACvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,MAAc,EACd,KAAK,GAAG,MAAM,CAAC,gBAAgB;QAE/B,MAAM,IAAI,GAAW,EAAE,CAAA;QACvB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,MAAK;YAC/D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,sBAAsB;IACtB,sBAAsB;IAEtB,iFAAiF;IACjF,KAAK,CAAC,CAAC,IAAI;QACT,MAAM,IAAI,CAAA;QACV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;oBACnC,MAAM,CAAC,CAAA;gBACT,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,KAAK,CAAC,KAAK;QACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvC,IAAI,KAAK,GAAkB,EAAE,CAAA;QAC7B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;YACrB,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;gBACpC,KAAK,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3D,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,QAAQ;QACZ,MAAM,KAAK,GAAgB,EAAE,CAAA;QAC7B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,gCAAgC;IAChC,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,GAAG,IAAI,iBAAM,EAAE,CAAA;QACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACvB,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAA;gBACzC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,MAAM;QACV,MAAM,MAAM,GAAW,EAAE,CAAA;QACzB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,MAAM,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QAClC,OAAO,MAAM,CAAC,MAAM,CAAA;IACtB,CAAC;IAED,2BAA2B;IAC3B,sBAAsB;IAEtB,kGAAkG;IAClG,KAAK,CAAC,CAAC,aAAa;QAClB,MAAM,IAAI,CAAA;QACV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;wBAC5C,MAAM,CAAC,CAAA;oBACT,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,GAAG,YAAY,yBAAiB,EAAE,CAAC;wBACrC,SAAQ;oBACV,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,CAAA;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,MAAM,GAAW,EAAE,CAAA;QACzB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC/C,IAAI,KAAK,CAAC,MAAM,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,gBAAgB;IAEhB,KAAK,CAAC,gBAAgB,CAAC,GAAgB;QACrC,MAAM,MAAM,GAAG,IAAI,iBAAM,EAAE,CAAA;QAC3B,IAAI,OAAO,GAAG,IAAI,iBAAM,EAAE,CAAA;QAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QACpC,OAAO,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,IAAI,iBAAM,EAAE,CAAA;YAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;YAC9D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,0BAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;YAC3D,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,gBAAgB,CACxC,OAAO,CAAC,MAAM,EACd,GAAG,EACH,mBAAW,CACZ,CAAA;gBACD,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;gBAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;gBAEvE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;wBACnB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBACzB,CAAC;yBAAM,CAAC;wBACN,SAAS,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;oBACzC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,GAAG,SAAS,CAAA;QACrB,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;QAC9D,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,0BAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC5D,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7C,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAW;QAC3B,MAAM,IAAI,GAAU,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC7C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;QACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAC1C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACpD,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,0BAA0B;IAC1B,sBAAsB;IAEtB,MAAM;QACJ,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAgB;QAC3B,IAAI,KAAK,CAAC,MAAM,EAAE;YAAE,OAAO,KAAK,CAAA;QAChC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QAC3C,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAC7C,OAAO,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IACzC,CAAC;CACF;AAlsBD,kBAksBC;AAED,MAAa,IAAI;IACf,YAAmB,GAAW,EAAS,KAAU;QAArC;;;;mBAAO,GAAG;WAAQ;QAAE;;;;mBAAO,KAAK;WAAK;IAAG,CAAC;IAErD,MAAM;QACJ,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,KAAgB;QACrB,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACjE,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;CACF;AAlBD,oBAkBC;AAED,kBAAe,GAAG,CAAA"}
@@ -15,3 +15,4 @@ export declare class InvalidMstKeyError extends Error {
15
15
  key: string;
16
16
  constructor(key: string);
17
17
  }
18
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/mst/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,OAAO,EAAa,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAG/D,eAAO,MAAM,kBAAkB,QAAe,MAAM,GAAG,UAAU,oBAehE,CAAA;AAED,eAAO,MAAM,eAAe,YACjB,SAAS,EAAE,KACnB,QAAQ,MAAM,GAAG,IAAI,CAIvB,CAAA;AAED,eAAO,MAAM,mBAAmB,YACrB,kBAAkB,QACrB,QAAQ,SACP,QAAQ,OAAO,CAAC,KACtB,QAAQ,SAAS,EAAE,CA0BrB,CAAA;AAED,eAAO,MAAM,iBAAiB,YAAa,SAAS,EAAE,KAAG,QAmCxD,CAAA;AAED,eAAO,MAAM,cAAc,MAAO,MAAM,KAAK,MAAM,KAAG,MAQrD,CAAA;AAED,eAAO,MAAM,aAAa,YAAmB,SAAS,EAAE,KAAG,QAAQ,GAAG,CAGrE,CAAA;AAED,eAAO,MAAM,aAAa,QAAS,MAAM,KAAG,OAU3C,CAAA;AAED,eAAO,MAAM,eAAe,QAAwB,CAAA;AAEpD,eAAO,MAAM,YAAY,QAAS,MAAM,KAAG,OAE1C,CAAA;AAED,eAAO,MAAM,iBAAiB,QAAS,MAAM,SAI5C,CAAA;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IACxB,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;CAG/B"}
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.InvalidMstKeyError = exports.ensureValidMstKey = exports.isValidChars = exports.validCharsRegex = exports.isValidMstKey = exports.cidForEntries = exports.countPrefixLen = exports.serializeNodeData = exports.deserializeNodeData = exports.layerForEntries = exports.leadingZerosOnHash = void 0;
27
+ const uint8arrays = __importStar(require("uint8arrays"));
28
+ const crypto_1 = require("@atproto/crypto");
29
+ const mst_1 = require("./mst");
30
+ const common_1 = require("@atproto/common");
31
+ const leadingZerosOnHash = async (key) => {
32
+ const hash = await (0, crypto_1.sha256)(key);
33
+ let leadingZeros = 0;
34
+ for (let i = 0; i < hash.length; i++) {
35
+ const byte = hash[i];
36
+ if (byte < 64)
37
+ leadingZeros++;
38
+ if (byte < 16)
39
+ leadingZeros++;
40
+ if (byte < 4)
41
+ leadingZeros++;
42
+ if (byte === 0) {
43
+ leadingZeros++;
44
+ }
45
+ else {
46
+ break;
47
+ }
48
+ }
49
+ return leadingZeros;
50
+ };
51
+ exports.leadingZerosOnHash = leadingZerosOnHash;
52
+ const layerForEntries = async (entries) => {
53
+ const firstLeaf = entries.find((entry) => entry.isLeaf());
54
+ if (!firstLeaf || firstLeaf.isTree())
55
+ return null;
56
+ return await (0, exports.leadingZerosOnHash)(firstLeaf.key);
57
+ };
58
+ exports.layerForEntries = layerForEntries;
59
+ const deserializeNodeData = async (storage, data, opts) => {
60
+ const { layer } = opts || {};
61
+ const entries = [];
62
+ if (data.l !== null) {
63
+ entries.push(await mst_1.MST.load(storage, data.l, {
64
+ layer: layer ? layer - 1 : undefined,
65
+ }));
66
+ }
67
+ let lastKey = '';
68
+ for (const entry of data.e) {
69
+ const keyStr = uint8arrays.toString(entry.k, 'ascii');
70
+ const key = lastKey.slice(0, entry.p) + keyStr;
71
+ (0, exports.ensureValidMstKey)(key);
72
+ entries.push(new mst_1.Leaf(key, entry.v));
73
+ lastKey = key;
74
+ if (entry.t !== null) {
75
+ entries.push(await mst_1.MST.load(storage, entry.t, {
76
+ layer: layer ? layer - 1 : undefined,
77
+ }));
78
+ }
79
+ }
80
+ return entries;
81
+ };
82
+ exports.deserializeNodeData = deserializeNodeData;
83
+ const serializeNodeData = (entries) => {
84
+ const data = {
85
+ l: null,
86
+ e: [],
87
+ };
88
+ let i = 0;
89
+ if (entries[0]?.isTree()) {
90
+ i++;
91
+ data.l = entries[0].pointer;
92
+ }
93
+ let lastKey = '';
94
+ while (i < entries.length) {
95
+ const leaf = entries[i];
96
+ const next = entries[i + 1];
97
+ if (!leaf.isLeaf()) {
98
+ throw new Error('Not a valid node: two subtrees next to each other');
99
+ }
100
+ i++;
101
+ let subtree = null;
102
+ if (next?.isTree()) {
103
+ subtree = next.pointer;
104
+ i++;
105
+ }
106
+ (0, exports.ensureValidMstKey)(leaf.key);
107
+ const prefixLen = (0, exports.countPrefixLen)(lastKey, leaf.key);
108
+ data.e.push({
109
+ p: prefixLen,
110
+ k: uint8arrays.fromString(leaf.key.slice(prefixLen), 'ascii'),
111
+ v: leaf.value,
112
+ t: subtree,
113
+ });
114
+ lastKey = leaf.key;
115
+ }
116
+ return data;
117
+ };
118
+ exports.serializeNodeData = serializeNodeData;
119
+ const countPrefixLen = (a, b) => {
120
+ let i;
121
+ for (i = 0; i < a.length; i++) {
122
+ if (a[i] !== b[i]) {
123
+ break;
124
+ }
125
+ }
126
+ return i;
127
+ };
128
+ exports.countPrefixLen = countPrefixLen;
129
+ const cidForEntries = async (entries) => {
130
+ const data = (0, exports.serializeNodeData)(entries);
131
+ return (0, common_1.cidForCbor)(data);
132
+ };
133
+ exports.cidForEntries = cidForEntries;
134
+ const isValidMstKey = (str) => {
135
+ const split = str.split('/');
136
+ return (str.length <= 256 &&
137
+ split.length === 2 &&
138
+ split[0].length > 0 &&
139
+ split[1].length > 0 &&
140
+ (0, exports.isValidChars)(split[0]) &&
141
+ (0, exports.isValidChars)(split[1]));
142
+ };
143
+ exports.isValidMstKey = isValidMstKey;
144
+ exports.validCharsRegex = /^[a-zA-Z0-9_\-:.]*$/;
145
+ const isValidChars = (str) => {
146
+ return str.match(exports.validCharsRegex) !== null;
147
+ };
148
+ exports.isValidChars = isValidChars;
149
+ const ensureValidMstKey = (str) => {
150
+ if (!(0, exports.isValidMstKey)(str)) {
151
+ throw new InvalidMstKeyError(str);
152
+ }
153
+ };
154
+ exports.ensureValidMstKey = ensureValidMstKey;
155
+ class InvalidMstKeyError extends Error {
156
+ constructor(key) {
157
+ super(`Not a valid MST key: ${key}`);
158
+ Object.defineProperty(this, "key", {
159
+ enumerable: true,
160
+ configurable: true,
161
+ writable: true,
162
+ value: key
163
+ });
164
+ }
165
+ }
166
+ exports.InvalidMstKeyError = InvalidMstKeyError;
167
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/mst/util.ts"],"names":[],"mappings":"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"}
@@ -20,3 +20,4 @@ export declare class MstWalker {
20
20
  advance(): Promise<void>;
21
21
  }
22
22
  export default MstWalker;
23
+ //# sourceMappingURL=walker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../src/mst/walker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,GAAG,GAAG,IAAI,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,YAAY,GAAG,gBAAgB,GAAG,oBAAoB,CAAA;AAE3D,qBAAa,SAAS;IAID,IAAI,EAAE,GAAG;IAH5B,KAAK,EAAE,YAAY,EAAE,CAAK;IAC1B,MAAM,EAAE,YAAY,CAAA;gBAED,IAAI,EAAE,GAAG;IAU5B,KAAK,IAAI,MAAM;IAeT,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BzB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAuCzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ/B;AAED,eAAe,SAAS,CAAA"}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MstWalker = void 0;
4
+ class MstWalker {
5
+ constructor(root) {
6
+ Object.defineProperty(this, "root", {
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true,
10
+ value: root
11
+ });
12
+ Object.defineProperty(this, "stack", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: []
17
+ });
18
+ Object.defineProperty(this, "status", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: void 0
23
+ });
24
+ this.status = {
25
+ done: false,
26
+ curr: root,
27
+ walking: null,
28
+ index: 0,
29
+ };
30
+ }
31
+ // return the current layer of the node you are walking
32
+ layer() {
33
+ if (this.status.done) {
34
+ throw new Error('Walk is done');
35
+ }
36
+ if (this.status.walking) {
37
+ return this.status.walking.layer ?? 0;
38
+ }
39
+ // if curr is the root of the tree, add 1
40
+ if (this.status.curr.isTree()) {
41
+ return (this.status.curr.layer ?? 0) + 1;
42
+ }
43
+ throw new Error('Could not identify layer of walk');
44
+ }
45
+ // move to the next node in the subtree, skipping over the subtree
46
+ async stepOver() {
47
+ if (this.status.done)
48
+ return;
49
+ // if stepping over the root of the node, we're done
50
+ if (this.status.walking === null) {
51
+ this.status = { done: true };
52
+ return;
53
+ }
54
+ const entries = await this.status.walking.getEntries();
55
+ this.status.index++;
56
+ const next = entries[this.status.index];
57
+ if (!next) {
58
+ const popped = this.stack.pop();
59
+ if (!popped) {
60
+ this.status = { done: true };
61
+ return;
62
+ }
63
+ else {
64
+ this.status = popped;
65
+ await this.stepOver();
66
+ return;
67
+ }
68
+ }
69
+ else {
70
+ this.status.curr = next;
71
+ }
72
+ }
73
+ // step into a subtree, throws if currently pointed at a leaf
74
+ async stepInto() {
75
+ if (this.status.done)
76
+ return;
77
+ // edge case for very start of walk
78
+ if (this.status.walking === null) {
79
+ if (!this.status.curr.isTree()) {
80
+ throw new Error('The root of the tree cannot be a leaf');
81
+ }
82
+ const next = await this.status.curr.atIndex(0);
83
+ if (!next) {
84
+ this.status = { done: true };
85
+ }
86
+ else {
87
+ this.status = {
88
+ done: false,
89
+ walking: this.status.curr,
90
+ curr: next,
91
+ index: 0,
92
+ };
93
+ }
94
+ return;
95
+ }
96
+ if (!this.status.curr.isTree()) {
97
+ throw new Error('No tree at pointer, cannot step into');
98
+ }
99
+ const next = await this.status.curr.atIndex(0);
100
+ if (!next) {
101
+ throw new Error('Tried to step into a node with 0 entries which is invalid');
102
+ }
103
+ this.stack.push({ ...this.status });
104
+ this.status.walking = this.status.curr;
105
+ this.status.curr = next;
106
+ this.status.index = 0;
107
+ }
108
+ // advance the pointer to the next node in the tree,
109
+ // stepping into the current node if necessary
110
+ async advance() {
111
+ if (this.status.done)
112
+ return;
113
+ if (this.status.curr.isLeaf()) {
114
+ await this.stepOver();
115
+ }
116
+ else {
117
+ await this.stepInto();
118
+ }
119
+ }
120
+ }
121
+ exports.MstWalker = MstWalker;
122
+ exports.default = MstWalker;
123
+ //# sourceMappingURL=walker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walker.js","sourceRoot":"","sources":["../../src/mst/walker.ts"],"names":[],"mappings":"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"}
package/dist/parse.d.ts CHANGED
@@ -14,3 +14,4 @@ export declare const parseObjByDef: <T>(bytes: Uint8Array, cid: CID, def: check.
14
14
  obj: T;
15
15
  bytes: Uint8Array;
16
16
  };
17
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAc,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,QAAQ,MAAM,aAAa,CAAA;AAIlC,eAAO,MAAM,iBAAiB,WACpB,QAAQ,OACX,GAAG;YACW,UAAU;WAAS,UAAU;EAOjD,CAAA;AAED,eAAO,MAAM,gBAAgB,cACnB,QAAQ,OACX,GAAG;;WAEkB,UAAU;EAMrC,CAAA;AAED,eAAO,MAAM,aAAa,aACjB,UAAU,OACZ,GAAG;;WAEU,UAAU;CAQ7B,CAAA"}
package/dist/parse.js ADDED
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseObjByDef = exports.getAndParseByDef = exports.getAndParseRecord = void 0;
4
+ const common_1 = require("@atproto/common");
5
+ const error_1 = require("./error");
6
+ const util_1 = require("./util");
7
+ const getAndParseRecord = async (blocks, cid) => {
8
+ const bytes = blocks.get(cid);
9
+ if (!bytes) {
10
+ throw new error_1.MissingBlockError(cid, 'record');
11
+ }
12
+ const record = await (0, util_1.cborToLexRecord)(bytes);
13
+ return { record, bytes };
14
+ };
15
+ exports.getAndParseRecord = getAndParseRecord;
16
+ const getAndParseByDef = async (blocks, cid, def) => {
17
+ const bytes = blocks.get(cid);
18
+ if (!bytes) {
19
+ throw new error_1.MissingBlockError(cid, def.name);
20
+ }
21
+ return (0, exports.parseObjByDef)(bytes, cid, def);
22
+ };
23
+ exports.getAndParseByDef = getAndParseByDef;
24
+ const parseObjByDef = (bytes, cid, def) => {
25
+ const obj = (0, common_1.cborDecode)(bytes);
26
+ const res = def.schema.safeParse(obj);
27
+ if (res.success) {
28
+ return { obj: res.data, bytes };
29
+ }
30
+ else {
31
+ throw new error_1.UnexpectedObjectError(cid, def.name);
32
+ }
33
+ };
34
+ exports.parseObjByDef = parseObjByDef;
35
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":";;;AAAA,4CAAmD;AAInD,mCAAkE;AAClE,iCAAwC;AAEjC,MAAM,iBAAiB,GAAG,KAAK,EACpC,MAAgB,EAChB,GAAQ,EAC4C,EAAE;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,yBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAe,EAAC,KAAK,CAAC,CAAA;IAC3C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AAC1B,CAAC,CAAA;AAVY,QAAA,iBAAiB,qBAU7B;AAEM,MAAM,gBAAgB,GAAG,KAAK,EACnC,MAAgB,EAChB,GAAQ,EACR,GAAiB,EACuB,EAAE;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,yBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC;IACD,OAAO,IAAA,qBAAa,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACvC,CAAC,CAAA;AAVY,QAAA,gBAAgB,oBAU5B;AAEM,MAAM,aAAa,GAAG,CAC3B,KAAiB,EACjB,GAAQ,EACR,GAAiB,EACc,EAAE;IACjC,MAAM,GAAG,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAA;IAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACrC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IACjC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,6BAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC;AACH,CAAC,CAAA;AAZY,QAAA,aAAa,iBAYzB"}
@@ -28,3 +28,4 @@ export declare class ReadableRepo {
28
28
  getContents(): Promise<RepoContents>;
29
29
  }
30
30
  export default ReadableRepo;
31
+ //# sourceMappingURL=readable-repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readable-repo.d.ts","sourceRoot":"","sources":["../src/readable-repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAO,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAK3B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,KAAK,MAAM,GAAG;IACZ,OAAO,EAAE,kBAAkB,CAAA;IAC3B,IAAI,EAAE,GAAG,CAAA;IACT,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,GAAG,CAAA;CACT,CAAA;AAED,qBAAa,YAAY;IACvB,OAAO,EAAE,kBAAkB,CAAA;IAC3B,IAAI,EAAE,GAAG,CAAA;IACT,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,GAAG,CAAA;gBAEI,MAAM,EAAE,MAAM;WAOb,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,GAAG;IAY7D,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAEM,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;QAC/C,UAAU,EAAE,MAAM,CAAA;QAClB,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,GAAG,CAAA;QACR,MAAM,EAAE,UAAU,CAAA;KACnB,CAAC;IAQI,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAOpE,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;CAgB3C;AAED,eAAe,YAAY,CAAA"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.ReadableRepo = void 0;
30
+ const types_1 = require("./types");
31
+ const mst_1 = require("./mst");
32
+ const logger_1 = __importDefault(require("./logger"));
33
+ const util = __importStar(require("./util"));
34
+ const parse = __importStar(require("./parse"));
35
+ const error_1 = require("./error");
36
+ class ReadableRepo {
37
+ constructor(params) {
38
+ Object.defineProperty(this, "storage", {
39
+ enumerable: true,
40
+ configurable: true,
41
+ writable: true,
42
+ value: void 0
43
+ });
44
+ Object.defineProperty(this, "data", {
45
+ enumerable: true,
46
+ configurable: true,
47
+ writable: true,
48
+ value: void 0
49
+ });
50
+ Object.defineProperty(this, "commit", {
51
+ enumerable: true,
52
+ configurable: true,
53
+ writable: true,
54
+ value: void 0
55
+ });
56
+ Object.defineProperty(this, "cid", {
57
+ enumerable: true,
58
+ configurable: true,
59
+ writable: true,
60
+ value: void 0
61
+ });
62
+ this.storage = params.storage;
63
+ this.data = params.data;
64
+ this.commit = params.commit;
65
+ this.cid = params.cid;
66
+ }
67
+ static async load(storage, commitCid) {
68
+ const commit = await storage.readObj(commitCid, types_1.def.versionedCommit);
69
+ const data = await mst_1.MST.load(storage, commit.data);
70
+ logger_1.default.info({ did: commit.did }, 'loaded repo for');
71
+ return new ReadableRepo({
72
+ storage,
73
+ data,
74
+ commit: util.ensureV3Commit(commit),
75
+ cid: commitCid,
76
+ });
77
+ }
78
+ get did() {
79
+ return this.commit.did;
80
+ }
81
+ get version() {
82
+ return this.commit.version;
83
+ }
84
+ async *walkRecords(from) {
85
+ for await (const leaf of this.data.walkLeavesFrom(from ?? '')) {
86
+ const { collection, rkey } = util.parseDataKey(leaf.key);
87
+ const record = await this.storage.readRecord(leaf.value);
88
+ yield { collection, rkey, cid: leaf.value, record };
89
+ }
90
+ }
91
+ async getRecord(collection, rkey) {
92
+ const dataKey = collection + '/' + rkey;
93
+ const cid = await this.data.get(dataKey);
94
+ if (!cid)
95
+ return null;
96
+ return this.storage.readObj(cid, types_1.def.unknown);
97
+ }
98
+ async getContents() {
99
+ const entries = await this.data.list();
100
+ const cids = entries.map((e) => e.value);
101
+ const { blocks, missing } = await this.storage.getBlocks(cids);
102
+ if (missing.length > 0) {
103
+ throw new error_1.MissingBlocksError('getContents record', missing);
104
+ }
105
+ const contents = {};
106
+ for (const entry of entries) {
107
+ const { collection, rkey } = util.parseDataKey(entry.key);
108
+ contents[collection] ?? (contents[collection] = {});
109
+ const parsed = await parse.getAndParseRecord(blocks, entry.value);
110
+ contents[collection][rkey] = parsed.record;
111
+ }
112
+ return contents;
113
+ }
114
+ }
115
+ exports.ReadableRepo = ReadableRepo;
116
+ exports.default = ReadableRepo;
117
+ //# sourceMappingURL=readable-repo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readable-repo.js","sourceRoot":"","sources":["../src/readable-repo.ts"],"names":[],"mappings":"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"}
package/dist/repo.d.ts CHANGED
@@ -33,3 +33,4 @@ export declare class Repo extends ReadableRepo {
33
33
  resignCommit(rev: string, keypair: crypto.Keypair): Promise<Repo>;
34
34
  }
35
35
  export default Repo;
36
+ //# sourceMappingURL=repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../src/repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAEtC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,EACL,MAAM,EACN,UAAU,EAEV,cAAc,EACd,aAAa,EAEd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAG3B,OAAO,QAAQ,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,MAAM,MAAM,WAAW,CAAA;AAE9B,KAAK,MAAM,GAAG;IACZ,OAAO,EAAE,WAAW,CAAA;IACpB,IAAI,EAAE,GAAG,CAAA;IACT,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,GAAG,CAAA;CACT,CAAA;AAED,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,EAAE,WAAW,CAAA;gBAER,MAAM,EAAE,MAAM;WAKb,gBAAgB,CAC3B,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,aAAa,GAAE,cAAc,EAAO,GACnC,OAAO,CAAC,UAAU,CAAC;WAmCT,gBAAgB,CAC3B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,IAAI,CAAC;WAKH,MAAM,CACjB,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,aAAa,GAAE,cAAc,EAAO,GACnC,OAAO,CAAC,IAAI,CAAC;WAUH,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,GAAG;IAgB3C,YAAY,CAChB,OAAO,EAAE,aAAa,GAAG,aAAa,EAAE,EACxC,OAAO,EAAE,MAAM,CAAC,OAAO,GACtB,OAAO,CAAC,UAAU,CAAC;IA6DhB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlD,WAAW,CACf,OAAO,EAAE,aAAa,GAAG,aAAa,EAAE,EACxC,OAAO,EAAE,MAAM,CAAC,OAAO,GACtB,OAAO,CAAC,IAAI,CAAC;IAKV,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO;;;;;;;;IAuBvD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO;CAIxD;AAED,eAAe,IAAI,CAAA"}