@powersync/service-core-tests 0.0.0-dev-20260602073133 → 0.0.0-dev-20260909133214

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 (53) hide show
  1. package/CHANGELOG.md +112 -4
  2. package/dist/test-utils/AbstractStreamTestContext.d.ts +7 -6
  3. package/dist/test-utils/AbstractStreamTestContext.js +28 -25
  4. package/dist/test-utils/AbstractStreamTestContext.js.map +1 -1
  5. package/dist/test-utils/StorageDataHelpers.d.ts +6 -5
  6. package/dist/test-utils/StorageDataHelpers.js +40 -2
  7. package/dist/test-utils/StorageDataHelpers.js.map +1 -1
  8. package/dist/test-utils/bucket-validation.d.ts +3 -3
  9. package/dist/test-utils/bucket-validation.js +3 -3
  10. package/dist/test-utils/general-utils.d.ts +16 -3
  11. package/dist/test-utils/general-utils.js +37 -4
  12. package/dist/test-utils/general-utils.js.map +1 -1
  13. package/dist/test-utils/storage-combinations.d.ts +13 -0
  14. package/dist/test-utils/storage-combinations.js +26 -0
  15. package/dist/test-utils/storage-combinations.js.map +1 -0
  16. package/dist/test-utils/stream_utils.d.ts +0 -1
  17. package/dist/test-utils/stream_utils.js +0 -10
  18. package/dist/test-utils/stream_utils.js.map +1 -1
  19. package/dist/test-utils/test-utils-index.d.ts +1 -0
  20. package/dist/test-utils/test-utils-index.js +1 -0
  21. package/dist/test-utils/test-utils-index.js.map +1 -1
  22. package/dist/tests/register-compacting-tests.js +36 -29
  23. package/dist/tests/register-compacting-tests.js.map +1 -1
  24. package/dist/tests/register-data-storage-checkpoint-tests.js +138 -14
  25. package/dist/tests/register-data-storage-checkpoint-tests.js.map +1 -1
  26. package/dist/tests/register-data-storage-data-tests.js +205 -138
  27. package/dist/tests/register-data-storage-data-tests.js.map +1 -1
  28. package/dist/tests/register-data-storage-parameter-tests.js +44 -42
  29. package/dist/tests/register-data-storage-parameter-tests.js.map +1 -1
  30. package/dist/tests/register-parameter-compacting-tests.js +3 -2
  31. package/dist/tests/register-parameter-compacting-tests.js.map +1 -1
  32. package/dist/tests/register-sync-tests.js +404 -86
  33. package/dist/tests/register-sync-tests.js.map +1 -1
  34. package/dist/tests/util.d.ts +8 -2
  35. package/dist/tests/util.js +12 -0
  36. package/dist/tests/util.js.map +1 -1
  37. package/package.json +5 -6
  38. package/src/test-utils/AbstractStreamTestContext.ts +31 -27
  39. package/src/test-utils/StorageDataHelpers.ts +52 -8
  40. package/src/test-utils/bucket-validation.ts +3 -3
  41. package/src/test-utils/general-utils.ts +62 -10
  42. package/src/test-utils/storage-combinations.ts +51 -0
  43. package/src/test-utils/stream_utils.ts +0 -11
  44. package/src/test-utils/test-utils-index.ts +1 -0
  45. package/src/tests/register-compacting-tests.ts +55 -32
  46. package/src/tests/register-data-storage-checkpoint-tests.ts +171 -14
  47. package/src/tests/register-data-storage-data-tests.ts +251 -150
  48. package/src/tests/register-data-storage-parameter-tests.ts +58 -42
  49. package/src/tests/register-parameter-compacting-tests.ts +3 -2
  50. package/src/tests/register-sync-tests.ts +443 -88
  51. package/src/tests/util.ts +15 -2
  52. package/tsconfig.json +1 -4
  53. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"register-sync-tests.js","sourceRoot":"","sources":["../../src/tests/register-sync-tests.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,OAAO,EAGP,IAAI,EACJ,uBAAuB,EAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAElF,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,gBAAgB,GAAG;;;;;KAKpB,CAAC;AAEN,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,kCAAkC,CAAC,CAAC;AAE9F;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,eAAuE,EACvE,UAAiE,EAAE;IAEnE,MAAM,MAAM,GACV,OAAO,eAAe,IAAI,UAAU;QAClC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE;QAC9E,CAAC,CAAC,eAAe,CAAC;IACtB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,oBAAoB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC;QACvC,UAAU,EAAE,EAAE;QACd,wBAAwB,EAAE,EAAE;QAC5B,uBAAuB,EAAE,CAAC;KAC3B,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,CAAC,oBAAkD,EAAE,aAAkC,EAAE,EAAE;QACjH,OAAO,oBAAoB,CAAC,eAAe,CACzC,uBAAuB,CAAC,aAAa,CAAC,OAAO,EAAE;YAC7C,QAAQ,EAAE,IAAI;YACd,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAClC,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC/C,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAEtF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAExC,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW;YACX,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,QAAQ;aACtB;YACD,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW;YACX,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,QAAQ;aACtB;YACD,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa,EAAE,aAAa;YAC5B,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;YAC/D,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QACvC,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE;;;;;;;;;;KAUV;SACA,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC/C,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAEpF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,QAAQ;aACtB;YACD,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,SAAS;gBACb,WAAW,EAAE,QAAQ;aACtB;YACD,cAAc,EAAE,SAAS;SAC1B,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;YAC/D,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAClE,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE;;;;;;;CAOd;SACI,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC/C,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAEpF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG;gBACP,WAAW,EAAE,QAAQ;aACtB;YACD,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG;gBACP,WAAW,EAAE,QAAQ;aACtB;YACD,cAAc,EAAE,SAAS;SAC1B,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE;oBACP,gBAAgB,EAAE,IAAI;oBACtB,aAAa,EAAE;wBACb;4BACE,MAAM,EAAE,OAAO;4BACf,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE;4BAC/B,iBAAiB,EAAE,CAAC;yBACrB;wBACD;4BACE,MAAM,EAAE,OAAO;4BACf,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;4BACpC,iBAAiB,EAAE,IAAI;yBACxB;qBACF;iBACF;aACF;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;YAC/D,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACzE,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE;;;;;;;;;;KAUV;SACA,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC/C,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAEpF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,gEAAgE;QAChE,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,UAAU;gBACd,WAAW,EAAE,mBAAmB;aACjC;YACD,cAAc,EAAE,UAAU;SAC3B,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,IAAI,CAAC;gBAChB,WAAW,EAAE,SAAS;gBACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;gBACpC,KAAK,EAAE;oBACL,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,WAAW,EAAE,UAAU;iBACxB;gBACD,cAAc,EAAE,GAAG,CAAC,EAAE;aACvB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;YAC/D,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,IAAI,KAAK,EAAE,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YAC9B,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC9C,IAAI,6BAA6B,IAAI,IAAI,EAAE,CAAC;oBAC1C,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;wBACzB,oDAAoD;wBAEpD,2FAA2F;wBAC3F,MAAM,MAAM,CAAC,IAAI,CAAC;4BAChB,WAAW,EAAE,SAAS;4BACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;4BACpC,KAAK,EAAE;gCACL,EAAE,EAAE,WAAW;gCACf,WAAW,EAAE,2BAA2B;6BACzC;4BACD,cAAc,EAAE,WAAW;yBAC5B,CAAC,CAAC;wBAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;yBAAM,CAAC;wBACN,6FAA6F;wBAC7F,6CAA6C;wBAC7C,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;gBACD,IAAI,YAAY,IAAI,IAAI,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;oBACtD,eAAe,IAAI,CAAC,CAAC;gBACvB,CAAC;gBAED,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBACpC,CAAC;gBACD,IAAI,qBAAqB,IAAI,IAAI,EAAE,CAAC;oBAClC,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACxD,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE;;;;;;;;;;;KAWV;SACA,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC/C,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAEpF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,gEAAgE;QAChE,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,UAAU;gBACd,WAAW,EAAE,UAAU;aACxB;YACD,cAAc,EAAE,UAAU;SAC3B,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,IAAI,CAAC;gBAChB,WAAW,EAAE,SAAS;gBACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;gBACpC,KAAK,EAAE;oBACL,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,WAAW,EAAE,UAAU;iBACxB;gBACD,cAAc,EAAE,GAAG,CAAC,EAAE;aACvB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;YAC3E,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,iBAAiB;QACjB,yGAAyG;QACzG,gFAAgF;QAChF,kHAAkH;QAClH,kHAAkH;QAElH,IAAI,KAAK,EAAE,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YAC9B,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC9C,IAAI,6BAA6B,IAAI,IAAI,EAAE,CAAC;oBAC1C,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;wBACzB,gEAAgE;wBAChE,MAAM,MAAM,CAAC,IAAI,CAAC;4BAChB,WAAW,EAAE,SAAS;4BACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;4BACpC,KAAK,EAAE;gCACL,EAAE,EAAE,WAAW;gCACf,WAAW,EAAE,UAAU;6BACxB;4BACD,cAAc,EAAE,WAAW;yBAC5B,CAAC,CAAC;wBAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;gBACD,IAAI,YAAY,IAAI,IAAI,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;oBACtD,eAAe,IAAI,CAAC,CAAC;gBACvB,CAAC;gBAED,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBACpC,CAAC;gBACD,IAAI,qBAAqB,IAAI,IAAI,EAAE,CAAC;oBAClC,oBAAoB,EAAE,CAAC;oBACvB,IAAI,oBAAoB,IAAI,CAAC,EAAE,CAAC;wBAC9B,MAAM;oBACR,CAAC;oBACD,IAAI,oBAAoB,IAAI,CAAC,EAAE,CAAC;wBAC9B,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAE7B,yDAAyD;wBACzD,MAAM,MAAM,CAAC,IAAI,CAAC;4BAChB,WAAW,EAAE,SAAS;4BACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;4BACpC,KAAK,EAAE;gCACL,EAAE,EAAE,WAAW;gCACf,WAAW,EAAE,UAAU;6BACxB;4BACD,cAAc,EAAE,WAAW;yBAC5B,CAAC,CAAC;wBAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC7E,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,4BAA4B;QAC5B,0DAA0D;QAC1D,+DAA+D;QAE/D,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE;;;;;;;;;;;;;;KAcV;SACA,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC/C,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAEpF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,gEAAgE;QAChE,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,UAAU;gBACd,WAAW,EAAE,mBAAmB;aACjC;YACD,cAAc,EAAE,UAAU;SAC3B,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,IAAI,CAAC;gBAChB,WAAW,EAAE,SAAS;gBACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;gBACpC,KAAK,EAAE;oBACL,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,WAAW,EAAE,UAAU;iBACxB;gBACD,cAAc,EAAE,GAAG,CAAC,EAAE;aACvB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;YAC/D,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,KAAK,GAAU,EAAE,CAAC;QAEtB,IAAI,KAAK,EAAE,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YAC9B,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC9C,IAAI,6BAA6B,IAAI,IAAI,EAAE,CAAC;oBAC1C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;gBACD,IAAI,YAAY,IAAI,IAAI,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;oBACtD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;gBAED,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;oBACxD,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAElC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;wBACrB,oDAAoD;wBACpD,2FAA2F;wBAC3F,MAAM,MAAM,CAAC,IAAI,CAAC;4BAChB,WAAW,EAAE,SAAS;4BACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;4BACpC,KAAK,EAAE;gCACL,EAAE,EAAE,WAAW;gCACf,WAAW,EAAE,2BAA2B;6BACzC;4BACD,cAAc,EAAE,WAAW;yBAC5B,CAAC,CAAC;wBAEH,8BAA8B;wBAC9B,MAAM,MAAM,CAAC,IAAI,CAAC;4BAChB,WAAW,EAAE,SAAS;4BACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;4BACpC,KAAK,EAAE;gCACL,EAAE,EAAE,MAAM;gCACV,WAAW,EAAE,0BAA0B;6BACxC;4BACD,cAAc,EAAE,MAAM;yBACvB,CAAC,CAAC;wBAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;oBAED,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;wBACzC,oEAAoE;wBACpE,qDAAqD;wBACrD,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBACD,IAAI,qBAAqB,IAAI,IAAI,EAAE,CAAC;oBAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,EAAE;QACF,oBAAoB;QACpB,qBAAqB;QACrB,iDAAiD;QACjD,0BAA0B;QAC1B,gDAAgD;QAChD,oHAAoH;QACpH,yBAAyB;QACzB,yBAAyB;QACzB,iDAAiD;QACjD,6BAA6B;QAC7B,0BAA0B;QAC1B,6BAA6B;QAC7B,6BAA6B;QAC7B,6BAA6B;QAC7B,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACrE,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC/C,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAEpF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,MAAM;aACpB;YACD,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;YACnE,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAU,EAAE,CAAC;QACxB,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAE5B,IAAI,KAAK,EAAE,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YAC9B,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEjB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC9C,IAAI,qBAAqB,IAAI,IAAI,EAAE,CAAC;oBAClC,mBAAmB,EAAE,CAAC;oBACtB,IAAI,mBAAmB,IAAI,CAAC,EAAE,CAAC;wBAC7B,kCAAkC;wBAClC,MAAM,aAAa,CAAC,4BAA4B,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;wBACzF,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;yBAAM,CAAC;wBACN,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QAC1C,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACrD,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAEpF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,gBAAgB;gBAC7B,SAAS,EAAE,qBAAqB;aACjC;YACD,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,KAAK;aAChB;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;YAC/D,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;QAChC,yEAAyE;QACzE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC/B,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YAC1C,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6BAA6B,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACpD,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACrD,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACpF,WAAW;QACX,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;YAC/D,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QAEzD,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,QAAQ;aACtB;YACD,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QAEzD,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,QAAQ;aACtB;YACD,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sCAAsC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC7D,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE;;;;;CAKd;SACI,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACrD,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAEzF,WAAW;QACX,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;YACrE,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAE,WAAW,CAAC,CAAC,CAA6B,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1G,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,EAAE,CAAC;QAEtC,WAAW;QACX,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,UAAU;YACvB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,QAAQ;aACf;YACD,cAAc,EAAE,OAAO;SACxB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAEnD,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAC3E,MAAM,CACH,WAAW,CAAC,CAAC,CAAiC,CAAC,eAAe,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CACvG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iCAAiC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACxD,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE;;;;;CAKd;SACI,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACrD,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAEzF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,UAAU;YACvB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,QAAQ;aACf;YACD,cAAc,EAAE,OAAO;SACxB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;YACrE,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAEnD,MAAM,CAAE,WAAW,CAAC,CAAC,CAA6B,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAChH,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,EAAE,CAAC;QAEtC,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,UAAU;YACvB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,OAAO;gBACX,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,QAAQ;aACf;YACD,cAAc,EAAE,OAAO;SACxB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CACH,WAAW,CAAC,CAAC,CAAiC,CAAC,eAAe,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CACvG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/D,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE;;;;;CAKd;SACI,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACrD,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACzF,WAAW;QACX,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;YACrE,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QAEzD,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,UAAU;YACvB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,OAAO;gBACX,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,QAAQ;aACf;YACD,cAAc,EAAE,OAAO;SACxB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,UAAU;YACvB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,QAAQ;aACf;YACD,cAAc,EAAE,OAAO;SACxB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAE3E,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CACH,WAAW,CAAC,CAAC,CAAiC,CAAC,eAAe,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CACvG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACvC,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACrD,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,WAAW;QACX,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,CAAC;QAEpC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAC5C,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;QAErC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,QAAQ,CAAC,CAAC,eAAe,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,4EAA4E;QAC5E,0BAA0B;QAC1B,yEAAyE;QACzE,6DAA6D;QAE7D,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACrD,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAEpF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,QAAQ;aACtB;YACD,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,QAAQ;aACtB;YACD,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACjC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;YAC/D,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,gFAAgF;QAChF,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAE,IAAY,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC,CAAC;QACnH,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACvB,UAAU,EAAE,MAAM,CAAC,gBAAgB,CAAC;gBAClC,UAAU,EAAE,GAAG;aAChB,CAAC;SACH,CAAC,CAAC;QAEH,6DAA6D;QAC7D,wDAAwD;QAExD,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,SAAS;aACvB;YACD,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,SAAS;aACvB;YACD,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,aAAa,CAAC,OAAO,CAAC;YAC1B,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;SAClB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjE,+CAA+C;QAC/C,uEAAuE;QACvE,gBAAgB;QAChB,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,CAAC;QAEjC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC;gBAC5B,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE;oBACJ,4DAA4D;oBAC5D,MAAM,CAAC,gBAAgB,CAAC;wBACtB,EAAE,EAAE,OAAO;qBACZ,CAAC;iBACH;aACF,CAAC;SACH,CAAC,CAAC;QAEH,mEAAmE;QACnE,+BAA+B;QAE/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACxB,eAAe,EAAE,MAAM,CAAC,gBAAgB,CAAC;gBACvC,UAAU,EAAE,GAAG;aAChB,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC;gBAC5B,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE;oBACJ,MAAM,CAAC,gBAAgB,CAAC;wBACtB,EAAE,EAAE,KAAK;qBACV,CAAC;oBACF,MAAM,CAAC,gBAAgB,CAAC;wBACtB,EAAE,EAAE,KAAK;qBACV,CAAC;iBACH;aACF,CAAC;SACH,CAAC,CAAC;QAEH,mCAAmC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACxB,mBAAmB,EAAE,MAAM,CAAC,gBAAgB,CAAC;gBAC3C,UAAU,EAAE,GAAG;aAChB,CAAC;SACH,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAClC,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;YACzC,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC/C,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAEhF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,4CAA4C;QAC5C,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,4BAA4B,CAAC;YAClE,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,MAAM,GAA8B;YACxC,WAAW;YACX,aAAa;YACb,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;YACrE,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO;YACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;YACnE,gBAAgB,EAAE,KAAK;SACxB,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAErD,oEAAoE;QACpE,gCAAgC;QAChC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC9B,UAAU,EAAE,MAAM,CAAC,gBAAgB,CAAC;gBAClC,UAAU,EAAE,GAAG;gBACf,gBAAgB,EAAE,SAAS;aAC5B,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,8CAA8C;QAC9C,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,wEAAwE;QACxE,2CAA2C;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC9B,UAAU,EAAE,MAAM,CAAC,gBAAgB,CAAC;gBAClC,UAAU,EAAE,GAAG;gBACf,gBAAgB,EAAE,GAAG,UAAU,EAAE;aAClC,CAAC;SACH,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC9D,YAAY,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;QAChC,6FAA6F;QAC7F,wFAAwF;QACxF,MAAM,KAAK,GAAG;YACZ;;;;;;;;CAQL;YACK;;;;;;;;CAQL;SACI,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE;gBACzC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;aAClB,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC/C,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAEhF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAE3F,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,MAAM,CAAC,IAAI,CAAC;gBAChB,WAAW,EAAE,SAAS;gBACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;gBACpC,KAAK,EAAE;oBACL,EAAE,EAAE,IAAI;oBACR,WAAW,EAAE,QAAQ;iBACtB;gBACD,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;gBACjC,WAAW;gBACX,aAAa,EAAE,aAAa;gBAC5B,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;gBACrE,MAAM,EAAE;oBACN,OAAO,EAAE,EAAE;oBACX,gBAAgB,EAAE,IAAI;oBACtB,QAAQ,EAAE,IAAI;iBACf;gBACD,OAAO;gBACP,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;gBAC/D,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAC5B,IAAsB,EACtB,OAA4D;IAE5D,IAAI,KAAK,GAAQ,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACzG,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC7B,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;YACD,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,MAAM;YACR,CAAC;QACH,CAAC;QACD,UAAU,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAClB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,oDAAoD;YACpD,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,kBAAkB,CAC/B,IAA4D,EAC5D,OAA+B;IAE/B,OAAO,eAAe,CAAC,IAAI,EAAE;QAC3B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAE,IAAY,EAAE,mBAAmB;KACrD,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,sBAAsB,CACnC,QAAgE;IAEhE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"register-sync-tests.js","sourceRoot":"","sources":["../../src/tests/register-sync-tests.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  import { storage } from '@powersync/service-core';
2
2
  import { ParameterIndexLookupCreator, ParameterLookupScope } from '@powersync/service-sync-rules';
3
- export declare function bucketRequestMap(syncRules: storage.PersistedSyncRulesContent, buckets: Iterable<readonly [string, bigint]>): storage.BucketDataRequest[];
4
- export declare function bucketRequests(syncRules: storage.PersistedSyncRulesContent, bucketNames: string[]): storage.BucketChecksumRequest[];
3
+ /**
4
+ * Resolve storage again after test writes activate the sync config. The storage
5
+ * instance used by the writer retains its original PROCESSING stream snapshot,
6
+ * while compact() expects an instance constructed with the current state.
7
+ */
8
+ export declare function compactActive(factory: storage.BucketStorageFactory, options: storage.CompactOptions): Promise<void>;
9
+ export declare function bucketRequestMap(syncRules: storage.PersistedSyncConfigContent, buckets: Iterable<readonly [string, bigint]>): storage.BucketDataRequest[];
10
+ export declare function bucketRequests(syncRules: storage.PersistedSyncConfigContent, bucketNames: string[]): storage.BucketChecksumRequest[];
5
11
  export declare function parameterLookupScope(lookupName: string, queryId: string, source?: ParameterIndexLookupCreator): ParameterLookupScope;
@@ -1,4 +1,16 @@
1
1
  import { bucketRequest } from '../test-utils/general-utils.js';
2
+ /**
3
+ * Resolve storage again after test writes activate the sync config. The storage
4
+ * instance used by the writer retains its original PROCESSING stream snapshot,
5
+ * while compact() expects an instance constructed with the current state.
6
+ */
7
+ export async function compactActive(factory, options) {
8
+ const active = await factory.getActiveSyncConfig();
9
+ if (active == null) {
10
+ throw new Error('Expected an active sync config before compacting');
11
+ }
12
+ await active.storage.compact(options);
13
+ }
2
14
  export function bucketRequestMap(syncRules, buckets) {
3
15
  return Array.from(buckets, ([bucketName, opId]) => bucketRequest(syncRules, bucketName, opId));
4
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/tests/util.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,MAAM,UAAU,gBAAgB,CAC9B,SAA4C,EAC5C,OAA4C;IAE5C,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,SAA4C,EAC5C,WAAqB;IAErB,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACpC,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,mBAAmB,GAAgC;IACvD,IAAI,QAAQ;QACV,OAAO;YACL,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,GAAG;SACb,CAAC;IACJ,CAAC;IACD,eAAe;QACb,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,eAAe,CAAC,KAAK;QACnB,OAAO;YACL,oBAAoB,CAAC,WAAW,EAAE,GAAG;gBACnC,OAAO,EAAE,CAAC;YACZ,CAAC;SACF,CAAC;IACJ,CAAC;IACD,oBAAoB,CAAC,MAAsB;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAClC,UAAkB,EAClB,OAAe,EACf,SAAsC,mBAAmB;IAEzD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/tests/util.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAqC,EAAE,OAA+B;IACxG,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACnD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,SAA6C,EAC7C,OAA4C;IAE5C,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,SAA6C,EAC7C,WAAqB;IAErB,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACpC,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,mBAAmB,GAAgC;IACvD,IAAI,QAAQ;QACV,OAAO;YACL,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,GAAG;SACb,CAAC;IACJ,CAAC;IACD,eAAe;QACb,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,eAAe,CAAC,KAAK;QACnB,OAAO;YACL,oBAAoB,CAAC,WAAW,EAAE,GAAG;gBACnC,OAAO,EAAE,CAAC;YACZ,CAAC;SACF,CAAC;IACJ,CAAC;IACD,oBAAoB,CAAC,MAAsB;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAClC,UAAkB,EAClB,OAAe,EACf,SAAsC,mBAAmB;IAEzD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACzC,CAAC"}
package/package.json CHANGED
@@ -1,19 +1,18 @@
1
1
  {
2
2
  "name": "@powersync/service-core-tests",
3
3
  "repository": "https://github.com/powersync-ja/powersync-service",
4
- "types": "dist/index.d.ts",
5
4
  "publishConfig": {
6
5
  "access": "public"
7
6
  },
8
- "version": "0.0.0-dev-20260602073133",
9
- "main": "dist/index.js",
7
+ "version": "0.0.0-dev-20260909133214",
8
+ "exports": "./dist/index.js",
10
9
  "license": "FSL-1.1-ALv2",
11
10
  "type": "module",
12
11
  "dependencies": {
13
- "@powersync/lib-services-framework": "^0.0.0-dev-20260602073133",
14
- "@powersync/service-core": "^0.0.0-dev-20260602073133",
12
+ "@powersync/service-core": "^0.0.0-dev-20260909133214",
15
13
  "@powersync/service-jsonbig": "^0.17.13",
16
- "@powersync/service-sync-rules": "^0.0.0-dev-20260602073133"
14
+ "@powersync/lib-services-framework": "^0.0.0-dev-20260909133214",
15
+ "@powersync/service-sync-rules": "^0.0.0-dev-20260909133214"
17
16
  },
18
17
  "peerDependencies": {
19
18
  "vitest": "^4.1.5"
@@ -2,6 +2,7 @@ import { ReplicationAbortedError } from '@powersync/lib-services-framework';
2
2
  import {
3
3
  BucketStorageFactory,
4
4
  InternalOpId,
5
+ ReplicationCheckpoint,
5
6
  settledPromise,
6
7
  storage,
7
8
  SyncRulesBucketStorage,
@@ -9,12 +10,12 @@ import {
9
10
  updateSyncRulesFromYaml
10
11
  } from '@powersync/service-core';
11
12
  import { StorageDataHelpers } from './StorageDataHelpers.js';
12
- import { bucketRequest } from './general-utils.js';
13
- import { fromAsync } from './stream_utils.js';
13
+ import { bucketRequest, getBatchArray } from './general-utils.js';
14
14
 
15
15
  export abstract class AbstractStreamTestContext implements AsyncDisposable {
16
16
  protected abortController = new AbortController();
17
- protected syncRulesContent?: storage.PersistedSyncRulesContent;
17
+ protected syncRulesContent?: storage.PersistedSyncConfigContent;
18
+ protected replicationStream?: storage.PersistedReplicationStream;
18
19
  public storage?: SyncRulesBucketStorage;
19
20
  protected settledReplicationPromise?: Promise<PromiseSettledResult<void>>;
20
21
 
@@ -44,39 +45,42 @@ export abstract class AbstractStreamTestContext implements AsyncDisposable {
44
45
  }
45
46
 
46
47
  async updateSyncRules(content: string) {
47
- const syncRules = await this.factory.updateSyncRules(
48
+ const stream = await this.factory.updateSyncRules(
48
49
  updateSyncRulesFromYaml(content, { validate: true, storageVersion: this.storageVersion })
49
50
  );
50
- this.syncRulesContent = syncRules;
51
- this.storage = this.factory.getInstance(syncRules);
51
+ this.replicationStream = stream;
52
+ this.syncRulesContent = stream.syncConfigContent[0];
53
+ this.storage = this.factory.getInstance(stream);
52
54
  return this.storage!;
53
55
  }
54
56
 
55
57
  async loadNextSyncRules() {
56
- const syncRules = await this.factory.getNextSyncRulesContent();
57
- if (syncRules == null) {
58
- throw new Error(`Next sync rules not available`);
58
+ const syncConfig = await this.factory.getDeployingSyncConfig();
59
+ if (syncConfig == null) {
60
+ throw new Error(`Next sync config not available`);
59
61
  }
60
62
 
61
- this.syncRulesContent = syncRules;
62
- this.storage = this.factory.getInstance(syncRules);
63
+ this.syncRulesContent = syncConfig.content;
64
+ this.replicationStream = syncConfig.replicationStream;
65
+ this.storage = syncConfig.storage;
63
66
  return this.storage!;
64
67
  }
65
68
 
66
69
  async loadActiveSyncRules() {
67
- const syncRules = await this.factory.getActiveSyncRulesContent();
68
- if (syncRules == null) {
69
- throw new Error(`Active sync rules not available`);
70
+ const syncConfig = await this.factory.getActiveSyncConfig();
71
+ if (syncConfig == null) {
72
+ throw new Error(`Active sync config not available`);
70
73
  }
71
74
 
72
- this.syncRulesContent = syncRules;
73
- this.storage = this.factory.getInstance(syncRules);
75
+ this.syncRulesContent = syncConfig.content;
76
+ this.replicationStream = syncConfig.replicationStream;
77
+ this.storage = syncConfig.storage;
74
78
  return this.storage!;
75
79
  }
76
80
 
77
- private getSyncRulesContent(): storage.PersistedSyncRulesContent {
81
+ private getSyncConfigContent(): storage.PersistedSyncConfigContent {
78
82
  if (this.syncRulesContent == null) {
79
- throw new Error('Sync rules not configured - call updateSyncRules() first');
83
+ throw new Error('Sync config not configured - call updateSyncRules() first');
80
84
  }
81
85
  return this.syncRulesContent;
82
86
  }
@@ -112,7 +116,7 @@ export abstract class AbstractStreamTestContext implements AsyncDisposable {
112
116
  }
113
117
  }
114
118
 
115
- abstract getClientCheckpoint(options?: { timeout?: number }): Promise<bigint>;
119
+ abstract getClientCheckpoint(options?: { timeout?: number }): Promise<ReplicationCheckpoint>;
116
120
 
117
121
  async getCheckpoint(options?: { timeout?: number }) {
118
122
  let checkpoint = await Promise.race([
@@ -128,7 +132,7 @@ export abstract class AbstractStreamTestContext implements AsyncDisposable {
128
132
  }
129
133
 
130
134
  async getBucketsDataBatch(buckets: Record<string, InternalOpId>, options?: { timeout?: number }) {
131
- const helpers = new StorageDataHelpers(this.storage!, this.getSyncRulesContent());
135
+ const helpers = new StorageDataHelpers(this.storage!, this.getSyncConfigContent());
132
136
  const checkpoint = await this.getCheckpoint(options);
133
137
  return helpers.getBucketsDataBatch(buckets, checkpoint);
134
138
  }
@@ -137,15 +141,15 @@ export abstract class AbstractStreamTestContext implements AsyncDisposable {
137
141
  * This waits for a client checkpoint.
138
142
  */
139
143
  async getBucketData(bucket: string, start?: InternalOpId | string | undefined, options?: { timeout?: number }) {
140
- const helpers = new StorageDataHelpers(this.storage!, this.getSyncRulesContent());
144
+ const helpers = new StorageDataHelpers(this.storage!, this.getSyncConfigContent());
141
145
  const checkpoint = await this.getCheckpoint(options);
142
146
  return helpers.getBucketData(bucket, checkpoint, start);
143
147
  }
144
148
 
145
149
  async getChecksums(buckets: string[], options?: { timeout?: number }) {
146
150
  const checkpoint = await this.getCheckpoint(options);
147
- const syncRules = this.getSyncRulesContent();
148
- const versionedBuckets = buckets.map((bucket) => bucketRequest(syncRules, bucket, 0n));
151
+ const syncConfigContent = this.getSyncConfigContent();
152
+ const versionedBuckets = buckets.map((bucket) => bucketRequest(syncConfigContent, bucket, 0n));
149
153
  const checksums = await this.storage!.getChecksums(checkpoint, versionedBuckets);
150
154
 
151
155
  const unversioned = new Map();
@@ -169,11 +173,11 @@ export abstract class AbstractStreamTestContext implements AsyncDisposable {
169
173
  if (typeof start == 'string') {
170
174
  start = BigInt(start);
171
175
  }
172
- const syncRules = this.getSyncRulesContent();
173
- const { checkpoint } = await this.storage!.getCheckpoint();
174
- const map = [bucketRequest(syncRules, bucket, start)];
176
+ const syncConfigContent = this.getSyncConfigContent();
177
+ const checkpoint = await this.storage!.getCheckpoint();
178
+ const map = [bucketRequest(syncConfigContent, bucket, start)];
175
179
  const batch = this.storage!.getBucketDataBatch(checkpoint, map);
176
- const batches = await fromAsync(batch);
180
+ const batches = await getBatchArray(batch);
177
181
  return batches[0]?.chunkData.data ?? [];
178
182
  }
179
183
  }
@@ -1,23 +1,28 @@
1
1
  import {
2
+ BucketDataBatchOptions,
3
+ BucketDataRequest,
2
4
  InternalOpId,
5
+ isBatchEnd,
3
6
  OplogEntry,
4
- PersistedSyncRules,
5
- PersistedSyncRulesContent,
7
+ ParsedSyncConfigSet,
8
+ PersistedSyncConfigContent,
9
+ ReplicationCheckpoint,
10
+ SyncBucketDataChunk,
6
11
  SyncRulesBucketStorage
7
12
  } from '@powersync/service-core';
8
- import { bucketRequest } from './general-utils.js';
13
+ import { bucketRequest, getBatchArray } from './general-utils.js';
9
14
  import { fromAsync } from './stream_utils.js';
10
15
 
11
16
  export class StorageDataHelpers {
12
17
  storage: SyncRulesBucketStorage;
13
- syncRules: PersistedSyncRulesContent | PersistedSyncRules;
18
+ syncRules: PersistedSyncConfigContent | ParsedSyncConfigSet;
14
19
 
15
- constructor(storage: SyncRulesBucketStorage, syncRules: PersistedSyncRulesContent | PersistedSyncRules) {
20
+ constructor(storage: SyncRulesBucketStorage, syncRules: PersistedSyncConfigContent | ParsedSyncConfigSet) {
16
21
  this.storage = storage;
17
22
  this.syncRules = syncRules;
18
23
  }
19
24
 
20
- async getBucketData(bucket: string, checkpoint: InternalOpId, start?: InternalOpId | string | undefined) {
25
+ async getBucketData(bucket: string, checkpoint: ReplicationCheckpoint, start?: InternalOpId | string | undefined) {
21
26
  start ??= 0n;
22
27
  if (typeof start == 'string') {
23
28
  start = BigInt(start);
@@ -27,7 +32,7 @@ export class StorageDataHelpers {
27
32
  while (true) {
28
33
  const batch = this.storage!.getBucketDataBatch(checkpoint, map);
29
34
 
30
- const batches = await fromAsync(batch);
35
+ const batches = await getBatchArray(batch);
31
36
  data = data.concat(batches[0]?.chunkData.data ?? []);
32
37
  if (batches.length == 0 || !batches[0]!.chunkData.has_more) {
33
38
  break;
@@ -37,8 +42,47 @@ export class StorageDataHelpers {
37
42
  return data;
38
43
  }
39
44
 
40
- async getBucketsDataBatch(buckets: Record<string, InternalOpId>, checkpoint: InternalOpId) {
45
+ async getBucketsDataBatch(buckets: Record<string, InternalOpId>, checkpoint: ReplicationCheckpoint) {
41
46
  const map = Object.entries(buckets).map(([bucket, start]) => bucketRequest(this.syncRules, bucket, start));
42
47
  return fromAsync(this.storage!.getBucketDataBatch(checkpoint, map));
43
48
  }
49
+
50
+ async getAllBucketData(
51
+ requests: BucketDataRequest[],
52
+ checkpoint: ReplicationCheckpoint,
53
+ options?: BucketDataBatchOptions
54
+ ): Promise<SyncBucketDataChunk[]> {
55
+ let remainingBuckets = new Map(requests.map((r) => [r.bucket, r]));
56
+ let chunks: SyncBucketDataChunk[] = [];
57
+ while (true) {
58
+ let hasMore = false;
59
+ for await (let chunk of this.storage!.getBucketDataBatch(checkpoint, [...remainingBuckets.values()], options)) {
60
+ if (isBatchEnd(chunk)) {
61
+ if (chunk.hasMore) {
62
+ hasMore = true;
63
+ break;
64
+ } else {
65
+ return chunks;
66
+ }
67
+ } else {
68
+ chunks.push(chunk);
69
+ if (chunk.chunkData.has_more) {
70
+ hasMore = true;
71
+ const r = remainingBuckets.get(chunk.chunkData.bucket)!;
72
+ remainingBuckets.set(chunk.chunkData.bucket, {
73
+ start: BigInt(chunk.chunkData.next_after),
74
+ bucket: chunk.chunkData.bucket,
75
+ source: r.source
76
+ });
77
+ } else {
78
+ remainingBuckets.delete(chunk.chunkData.bucket);
79
+ }
80
+ }
81
+ }
82
+ if (!hasMore) {
83
+ break;
84
+ }
85
+ }
86
+ return chunks;
87
+ }
44
88
  }
@@ -9,7 +9,7 @@ import { expect } from 'vitest';
9
9
  * All other operations are replaced with a single CLEAR operation,
10
10
  * summing their checksums, and using a 0 as an op_id.
11
11
  *
12
- * This is the function $r(B)$, as described in /docs/bucket-properties.md.
12
+ * This is the function $r(B)$, as described in /docs/storage/bucket-properties.md.
13
13
  */
14
14
  export function reduceBucket(operations: utils.OplogEntry[]) {
15
15
  let rowState = new Map<string, utils.OplogEntry>();
@@ -63,7 +63,7 @@ import { reduceBucket } from '@/util/utils.js';
63
63
  import { expect } from 'vitest';
64
64
 
65
65
  /**
66
- * Validate this property, as described in /docs/bucket-properties.md:
66
+ * Validate this property, as described in /docs/storage/bucket-properties.md:
67
67
  *
68
68
  * $r(B_{[..id_n]}) = r(r(B_{[..id_i]}) \cup B_{[id_{i+1}..id_n]}) \;\forall\; i \in [1..n]$
69
69
  *
@@ -87,7 +87,7 @@ export function validateBucket(bucket: utils.OplogEntry[]) {
87
87
 
88
88
  /**
89
89
  * Validate these properties for a bucket $B$ and its compacted version $B'$,:
90
- * as described in /docs/bucket-properties.md:
90
+ * as described in /docs/storage/bucket-properties.md:
91
91
  *
92
92
  * 1. $r(B) = r(B')$
93
93
  * 2. $r(B_{[..c]}) = r(r(B_{[..c_i]}) \cup B'_{[c_i+1..c]}) \;\forall\; c_i \in B$
@@ -1,10 +1,11 @@
1
- import { BucketDataRequest, InternalOpId, JwtPayload, storage, utils } from '@powersync/service-core';
1
+ import { BucketDataRequest, InternalOpId, isBatchEnd, JwtPayload, storage, utils } from '@powersync/service-core';
2
2
  import { GetQuerierOptions, RequestParameters } from '@powersync/service-sync-rules';
3
3
  import * as bson from 'bson';
4
+ import { fromAsync } from './stream_utils.js';
4
5
 
5
6
  export const ZERO_LSN = '0/0';
6
7
 
7
- export const PARSE_OPTIONS: storage.ParseSyncRulesOptions = {
8
+ export const PARSE_OPTIONS: storage.ParseSyncConfigOptions = {
8
9
  defaultSchema: 'public'
9
10
  };
10
11
 
@@ -14,6 +15,31 @@ export const BATCH_OPTIONS: storage.CreateWriterOptions = {
14
15
  storeCurrentData: true
15
16
  };
16
17
 
18
+ export function testCheckpoint(checkpoint: InternalOpId, lsn: string | null = null): storage.ReplicationCheckpoint {
19
+ return {
20
+ checkpoint,
21
+ lsn,
22
+ async getParameterSets() {
23
+ return [];
24
+ }
25
+ };
26
+ }
27
+
28
+ /**
29
+ * Deploy a sync config and return both the replication stream (for {@link storage.BucketStorageFactory.getInstance})
30
+ * and the deployed config content (for parsing / bucket requests).
31
+ *
32
+ * Replication streams and sync config content are separate concerns since one stream can hold multiple configs.
33
+ */
34
+ export async function deploySyncRules(
35
+ factory: storage.BucketStorageFactory,
36
+ options: storage.UpdateSyncRulesOptions
37
+ ): Promise<{ stream: storage.PersistedReplicationStream; content: storage.PersistedSyncConfigContent }> {
38
+ const stream = await factory.updateSyncRules(options);
39
+ const content = stream.syncConfigContent[0];
40
+ return { stream, content };
41
+ }
42
+
17
43
  /**
18
44
  * With newer storage versions, we need actual test tables, resolved via the writer.
19
45
  */
@@ -61,7 +87,10 @@ export async function resolveTestTable(
61
87
  }
62
88
 
63
89
  export function getBatchData(
64
- batch: utils.SyncBucketData[] | storage.SyncBucketDataChunk[] | storage.SyncBucketDataChunk
90
+ batch:
91
+ | utils.SyncBucketData[]
92
+ | (storage.SyncBucketDataChunk | storage.SyncBucketDataBatchEnd)[]
93
+ | storage.SyncBucketDataChunk
65
94
  ) {
66
95
  const first = getFirst(batch);
67
96
  if (first == null) {
@@ -78,9 +107,9 @@ export function getBatchData(
78
107
  }
79
108
 
80
109
  function isParsedSyncRules(
81
- syncRules: storage.PersistedSyncRulesContent | storage.PersistedSyncRules
82
- ): syncRules is storage.PersistedSyncRules {
83
- return (syncRules as storage.PersistedSyncRules).syncConfigWithErrors !== undefined;
110
+ syncRules: storage.PersistedSyncConfigContent | storage.ParsedSyncConfigSet
111
+ ): syncRules is storage.ParsedSyncConfigSet {
112
+ return (syncRules as storage.ParsedSyncConfigSet).syncConfigs !== undefined;
84
113
  }
85
114
 
86
115
  /**
@@ -88,7 +117,7 @@ function isParsedSyncRules(
88
117
  * This converts a bucket name like "global[]" into the actual bucket name, for use in tests.
89
118
  */
90
119
  export function bucketRequest(
91
- syncRules: storage.PersistedSyncRulesContent | storage.PersistedSyncRules,
120
+ syncRules: storage.PersistedSyncConfigContent | storage.ParsedSyncConfigSet,
92
121
  bucket: string,
93
122
  start?: InternalOpId | string | number
94
123
  ): BucketDataRequest {
@@ -97,10 +126,13 @@ export function bucketRequest(
97
126
  const parameterStart = bucket.indexOf('[');
98
127
  const definitionName = bucket.substring(0, parameterStart);
99
128
  const parameters = bucket.substring(parameterStart);
100
- const source = parsed.syncConfigWithErrors.config.bucketDataSources.find((b) => b.uniqueName === definitionName);
129
+ const availableSources = parsed.syncConfigs.flatMap((config) => config.config.bucketDataSources);
130
+ const source = availableSources.find((b) => b.uniqueName === definitionName);
101
131
 
102
132
  if (source == null) {
103
- throw new Error(`Failed to find global bucket ${bucket}`);
133
+ throw new Error(
134
+ `Failed to find global bucket ${bucket}. Available: ${availableSources.map((s) => s.uniqueName).join(',')}`
135
+ );
104
136
  }
105
137
  const bucketName = hydrationState.getBucketSourceScope(source).bucketPrefix + parameters;
106
138
  return {
@@ -124,8 +156,28 @@ export function getBatchMeta(
124
156
  };
125
157
  }
126
158
 
159
+ export async function getBatchArray(
160
+ data: AsyncIterable<storage.SyncBucketDataChunk | storage.SyncBucketDataBatchEnd>
161
+ ): Promise<storage.SyncBucketDataChunk[]> {
162
+ const array = await fromAsync(data);
163
+ return array.filter((c) => !isBatchEnd(c) && c.chunkData.data.length > 0) as storage.SyncBucketDataChunk[];
164
+ }
165
+
166
+ export async function getSingleBatchItem(
167
+ data: AsyncIterable<storage.SyncBucketDataChunk | storage.SyncBucketDataBatchEnd>
168
+ ): Promise<storage.SyncBucketDataChunk> {
169
+ const array = await getBatchArray(data);
170
+ if (array.length != 1) {
171
+ throw new Error(`Expected a single batch item, got ${array.length}`);
172
+ }
173
+ return array[0];
174
+ }
175
+
127
176
  function getFirst(
128
- batch: utils.SyncBucketData[] | storage.SyncBucketDataChunk[] | storage.SyncBucketDataChunk
177
+ batch:
178
+ | utils.SyncBucketData[]
179
+ | (storage.SyncBucketDataChunk | storage.SyncBucketDataBatchEnd)[]
180
+ | storage.SyncBucketDataChunk
129
181
  ): utils.SyncBucketData | null {
130
182
  if (!Array.isArray(batch)) {
131
183
  return batch.chunkData;