@syncular/client 0.0.1-60

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 (176) hide show
  1. package/dist/blobs/index.d.ts +7 -0
  2. package/dist/blobs/index.d.ts.map +1 -0
  3. package/dist/blobs/index.js +7 -0
  4. package/dist/blobs/index.js.map +1 -0
  5. package/dist/blobs/manager.d.ts +345 -0
  6. package/dist/blobs/manager.d.ts.map +1 -0
  7. package/dist/blobs/manager.js +749 -0
  8. package/dist/blobs/manager.js.map +1 -0
  9. package/dist/blobs/migrate.d.ts +14 -0
  10. package/dist/blobs/migrate.d.ts.map +1 -0
  11. package/dist/blobs/migrate.js +59 -0
  12. package/dist/blobs/migrate.js.map +1 -0
  13. package/dist/blobs/types.d.ts +62 -0
  14. package/dist/blobs/types.d.ts.map +1 -0
  15. package/dist/blobs/types.js +5 -0
  16. package/dist/blobs/types.js.map +1 -0
  17. package/dist/client.d.ts +338 -0
  18. package/dist/client.d.ts.map +1 -0
  19. package/dist/client.js +834 -0
  20. package/dist/client.js.map +1 -0
  21. package/dist/conflicts.d.ts +31 -0
  22. package/dist/conflicts.d.ts.map +1 -0
  23. package/dist/conflicts.js +118 -0
  24. package/dist/conflicts.js.map +1 -0
  25. package/dist/create-client.d.ts +115 -0
  26. package/dist/create-client.d.ts.map +1 -0
  27. package/dist/create-client.js +162 -0
  28. package/dist/create-client.js.map +1 -0
  29. package/dist/engine/SyncEngine.d.ts +215 -0
  30. package/dist/engine/SyncEngine.d.ts.map +1 -0
  31. package/dist/engine/SyncEngine.js +1066 -0
  32. package/dist/engine/SyncEngine.js.map +1 -0
  33. package/dist/engine/index.d.ts +6 -0
  34. package/dist/engine/index.d.ts.map +1 -0
  35. package/dist/engine/index.js +6 -0
  36. package/dist/engine/index.js.map +1 -0
  37. package/dist/engine/types.d.ts +230 -0
  38. package/dist/engine/types.d.ts.map +1 -0
  39. package/dist/engine/types.js +7 -0
  40. package/dist/engine/types.js.map +1 -0
  41. package/dist/handlers/create-handler.d.ts +110 -0
  42. package/dist/handlers/create-handler.d.ts.map +1 -0
  43. package/dist/handlers/create-handler.js +140 -0
  44. package/dist/handlers/create-handler.js.map +1 -0
  45. package/dist/handlers/registry.d.ts +15 -0
  46. package/dist/handlers/registry.d.ts.map +1 -0
  47. package/dist/handlers/registry.js +29 -0
  48. package/dist/handlers/registry.js.map +1 -0
  49. package/dist/handlers/types.d.ts +83 -0
  50. package/dist/handlers/types.d.ts.map +1 -0
  51. package/dist/handlers/types.js +5 -0
  52. package/dist/handlers/types.js.map +1 -0
  53. package/dist/index.d.ts +24 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +24 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/migrate.d.ts +19 -0
  58. package/dist/migrate.d.ts.map +1 -0
  59. package/dist/migrate.js +106 -0
  60. package/dist/migrate.js.map +1 -0
  61. package/dist/mutations.d.ts +138 -0
  62. package/dist/mutations.d.ts.map +1 -0
  63. package/dist/mutations.js +611 -0
  64. package/dist/mutations.js.map +1 -0
  65. package/dist/outbox.d.ts +112 -0
  66. package/dist/outbox.d.ts.map +1 -0
  67. package/dist/outbox.js +304 -0
  68. package/dist/outbox.js.map +1 -0
  69. package/dist/plugins/incrementing-version.d.ts +34 -0
  70. package/dist/plugins/incrementing-version.d.ts.map +1 -0
  71. package/dist/plugins/incrementing-version.js +83 -0
  72. package/dist/plugins/incrementing-version.js.map +1 -0
  73. package/dist/plugins/index.d.ts +3 -0
  74. package/dist/plugins/index.d.ts.map +1 -0
  75. package/dist/plugins/index.js +3 -0
  76. package/dist/plugins/index.js.map +1 -0
  77. package/dist/plugins/types.d.ts +49 -0
  78. package/dist/plugins/types.d.ts.map +1 -0
  79. package/dist/plugins/types.js +15 -0
  80. package/dist/plugins/types.js.map +1 -0
  81. package/dist/proxy/connection.d.ts +33 -0
  82. package/dist/proxy/connection.d.ts.map +1 -0
  83. package/dist/proxy/connection.js +153 -0
  84. package/dist/proxy/connection.js.map +1 -0
  85. package/dist/proxy/dialect.d.ts +46 -0
  86. package/dist/proxy/dialect.d.ts.map +1 -0
  87. package/dist/proxy/dialect.js +58 -0
  88. package/dist/proxy/dialect.js.map +1 -0
  89. package/dist/proxy/driver.d.ts +42 -0
  90. package/dist/proxy/driver.d.ts.map +1 -0
  91. package/dist/proxy/driver.js +78 -0
  92. package/dist/proxy/driver.js.map +1 -0
  93. package/dist/proxy/index.d.ts +10 -0
  94. package/dist/proxy/index.d.ts.map +1 -0
  95. package/dist/proxy/index.js +10 -0
  96. package/dist/proxy/index.js.map +1 -0
  97. package/dist/proxy/mutations.d.ts +9 -0
  98. package/dist/proxy/mutations.d.ts.map +1 -0
  99. package/dist/proxy/mutations.js +11 -0
  100. package/dist/proxy/mutations.js.map +1 -0
  101. package/dist/pull-engine.d.ts +45 -0
  102. package/dist/pull-engine.d.ts.map +1 -0
  103. package/dist/pull-engine.js +391 -0
  104. package/dist/pull-engine.js.map +1 -0
  105. package/dist/push-engine.d.ts +18 -0
  106. package/dist/push-engine.d.ts.map +1 -0
  107. package/dist/push-engine.js +155 -0
  108. package/dist/push-engine.js.map +1 -0
  109. package/dist/query/FingerprintCollector.d.ts +18 -0
  110. package/dist/query/FingerprintCollector.d.ts.map +1 -0
  111. package/dist/query/FingerprintCollector.js +28 -0
  112. package/dist/query/FingerprintCollector.js.map +1 -0
  113. package/dist/query/QueryContext.d.ts +33 -0
  114. package/dist/query/QueryContext.d.ts.map +1 -0
  115. package/dist/query/QueryContext.js +16 -0
  116. package/dist/query/QueryContext.js.map +1 -0
  117. package/dist/query/fingerprint.d.ts +61 -0
  118. package/dist/query/fingerprint.d.ts.map +1 -0
  119. package/dist/query/fingerprint.js +91 -0
  120. package/dist/query/fingerprint.js.map +1 -0
  121. package/dist/query/index.d.ts +7 -0
  122. package/dist/query/index.d.ts.map +1 -0
  123. package/dist/query/index.js +7 -0
  124. package/dist/query/index.js.map +1 -0
  125. package/dist/query/tracked-select.d.ts +18 -0
  126. package/dist/query/tracked-select.d.ts.map +1 -0
  127. package/dist/query/tracked-select.js +90 -0
  128. package/dist/query/tracked-select.js.map +1 -0
  129. package/dist/schema.d.ts +83 -0
  130. package/dist/schema.d.ts.map +1 -0
  131. package/dist/schema.js +7 -0
  132. package/dist/schema.js.map +1 -0
  133. package/dist/sync-loop.d.ts +32 -0
  134. package/dist/sync-loop.d.ts.map +1 -0
  135. package/dist/sync-loop.js +249 -0
  136. package/dist/sync-loop.js.map +1 -0
  137. package/dist/utils/id.d.ts +8 -0
  138. package/dist/utils/id.d.ts.map +1 -0
  139. package/dist/utils/id.js +19 -0
  140. package/dist/utils/id.js.map +1 -0
  141. package/package.json +58 -0
  142. package/src/blobs/index.ts +7 -0
  143. package/src/blobs/manager.ts +1027 -0
  144. package/src/blobs/migrate.ts +67 -0
  145. package/src/blobs/types.ts +84 -0
  146. package/src/client.ts +1222 -0
  147. package/src/conflicts.ts +180 -0
  148. package/src/create-client.ts +297 -0
  149. package/src/engine/SyncEngine.ts +1337 -0
  150. package/src/engine/index.ts +6 -0
  151. package/src/engine/types.ts +268 -0
  152. package/src/handlers/create-handler.ts +287 -0
  153. package/src/handlers/registry.ts +36 -0
  154. package/src/handlers/types.ts +102 -0
  155. package/src/index.ts +25 -0
  156. package/src/migrate.ts +122 -0
  157. package/src/mutations.ts +926 -0
  158. package/src/outbox.ts +397 -0
  159. package/src/plugins/incrementing-version.ts +133 -0
  160. package/src/plugins/index.ts +2 -0
  161. package/src/plugins/types.ts +63 -0
  162. package/src/proxy/connection.ts +191 -0
  163. package/src/proxy/dialect.ts +76 -0
  164. package/src/proxy/driver.ts +126 -0
  165. package/src/proxy/index.ts +10 -0
  166. package/src/proxy/mutations.ts +18 -0
  167. package/src/pull-engine.ts +518 -0
  168. package/src/push-engine.ts +201 -0
  169. package/src/query/FingerprintCollector.ts +29 -0
  170. package/src/query/QueryContext.ts +54 -0
  171. package/src/query/fingerprint.ts +109 -0
  172. package/src/query/index.ts +10 -0
  173. package/src/query/tracked-select.ts +139 -0
  174. package/src/schema.ts +94 -0
  175. package/src/sync-loop.ts +368 -0
  176. package/src/utils/id.ts +20 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AASjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,aAAa,CAAC;AA8MrB,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,MAAM;IACA,OAAO,CAAoB;IACpC,MAAM,GAA0B,IAAI,CAAC;IACrC,OAAO,GAAG,KAAK,CAAC;IAChB,SAAS,GAAG,KAAK,CAAC;IAClB,cAAc,GAAG,IAAI,GAAG,EAG7B,CAAC;IACI,WAAW,GAAgB;QACjC,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;KACT,CAAC;IAEF,uCAAuC;IACvB,SAAS,CAAmB;IAE5C,6DAA6D;IAC7C,KAAK,CAAyB;IAE9C,YAAY,OAA0B,EAAE;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,uBAAuB;QACvB,MAAM,QAAQ,GAAG,kBAAkB,CAAC;YAClC,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAClC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,gBAAgB;YACxD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC,QAAQ,CAAqB,CAAC;QAElE,yCAAyC;QACzC,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACnD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAChC,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,SAAS,CAClB,CAAC;QACJ,CAAC;IAAA,CACF;IAED,8EAA8E;IAC9E,mBAAmB;IACnB,8EAA8E;IAE9E,gBAAgB;IAChB,IAAI,QAAQ,GAAW;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAAA,CAC9B;IAED,eAAe;IACf,IAAI,OAAO,GAAW;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAAA,CAC7B;IAED,wBAAwB;IACxB,IAAI,EAAE,GAAe;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAAA,CACxB;IAED,8EAA8E;IAC9E,YAAY;IACZ,8EAA8E;IAE9E;;;OAGG;IACH,KAAK,CAAC,KAAK,GAAkB;QAC3B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,iBAAiB;QACjB,MAAM,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC;YAC3B,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YACnB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;YAClC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpD,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;gBACtB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;aACvB,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;YAC7C,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;YAC3C,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,OAAO,EAAE,SAAS,EAAE,4BAA4B;SACjD,CAAC,CAAC;QAEH,yCAAyC;QACzC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IAAA,CACrB;IAED;;OAEG;IACH,IAAI,GAAS;QACX,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IAAA,CACrB;IAED;;OAEG;IACH,OAAO,GAAS;QACd,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAAA,CACvB;IAED,8EAA8E;IAC9E,OAAO;IACP,8EAA8E;IAE9E;;OAEG;IACH,KAAK,CAAC,IAAI,GAAwB;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAAA,CAC3B;IAED,8EAA8E;IAC9E,gBAAgB;IAChB,8EAA8E;IAE9E;;OAEG;IACH,mBAAmB,CACjB,aAKE,EACI;QACN,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;QAC3C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAC7B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;gBACtB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;aACvB,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC;IAAA,CACF;IAED;;OAEG;IACH,gBAAgB,GAKb;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;YACtB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;SACvB,CAAC,CAAC,CAAC;IAAA,CACL;IAED,8EAA8E;IAC9E,QAAQ;IACR,8EAA8E;IAE9E;;OAEG;IACH,QAAQ,GAAgB;QACtB,MAAM,WAAW,GACf,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC7D,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,KAAK,EAAE,WAAW,CAAC,KAAK;gBACtB,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;gBACtE,CAAC,CAAC,IAAI;YACR,MAAM,EAAE,IAAI,CAAC,WAAW;SACzB,CAAC;IAAA,CACH;IAED;;OAEG;IACH,SAAS,CAAC,QAAoB,EAAc;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,oDAAoD;YACpD,OAAO,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAAA,CACxC;IAED,8EAA8E;IAC9E,SAAS;IACT,8EAA8E;IAE9E;;OAEG;IACH,EAAE,CACA,KAAQ,EACR,OAA8B,EAClB;QACZ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE7C,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAAA,CACjD,CAAC;IAAA,CACH;IAEO,IAAI,CACV,KAAQ,EACR,OAA+B,EACzB;QACN,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,qBAAqB,KAAK,YAAY,EAAE,GAAG,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;IAAA,CACF;IAED,8EAA8E;IAC9E,YAAY;IACZ,8EAA8E;IAE9E;;OAEG;IACH,KAAK,CAAC,YAAY,GAAwB;QACxC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,CACtD;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,EAAU,EACV,UAA8B,EACf;QACf,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAExD,+DAA+D;QAC/D,uEAAuE;QACvE,+DAA+D;QAC/D,MAAM,aAAa,GACjB,UAAU,CAAC,QAAQ,KAAK,QAAQ;YAC9B,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAChD,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;QAE1B,MAAM,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;QAE1E,iCAAiC;QACjC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;IAAA,CACF;IAED,8EAA8E;IAC9E,SAAS;IACT,8EAA8E;IAE9E;;OAEG;IACH,KAAK,CAAC,cAAc,GAAyB;QAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,WAAW,CAAC;IAAA,CACzB;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,GAAoB;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;IAAA,CACzC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,GAAoB;QAC1C,kDAAkD;QAClD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAA;eACb,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC;;UAErC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;UACzC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;UACxC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;cAC/B,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;KACjD,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE3B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,KAAK,CAAC;IAAA,CACd;IAED,8EAA8E;IAC9E,WAAW;IACX,8EAA8E;IAE9E;;OAEG;IACH,WAAW,CACT,QAAgB,EACY;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAY,QAAQ,CAAC,CAAC;IAAA,CACrD;IAED;;OAEG;IACH,YAAY,CAAC,QAAgB,EAAE,QAAkC,EAAQ;QACvE,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAAA,CAC/C;IAED;;OAEG;IACH,aAAa,CAAC,QAAgB,EAAQ;QACpC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAAA,CACtC;IAED;;OAEG;IACH,sBAAsB,CACpB,QAAgB,EAChB,QAAiC,EAC3B;QACN,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAAA,CACzD;IAED,8EAA8E;IAC9E,iBAAiB;IACjB,8EAA8E;IAE9E;;OAEG;IACH,KAAK,CAAC,gBAAgB,GAA2B;QAC/C,6BAA6B;QAC7B,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;iBAClB,UAAU,CAAC,qBAAqB,CAAC;iBACjC,SAAS,EAAE;iBACX,KAAK,CAAC,CAAC,CAAC;iBACR,OAAO,EAAE,CAAC;YACb,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,GAAG,KAAK,CAAC;QACvB,CAAC;QAED,6BAA6B;QAC7B,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;iBAClB,UAAU,CAAC,iBAAiB,CAAC;iBAC7B,SAAS,EAAE;iBACX,KAAK,CAAC,CAAC,CAAC;iBACR,OAAO,EAAE,CAAC;YACb,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,aAAa,GAAG,KAAK,CAAC;QACxB,CAAC;QAED,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;IAAA,CACxC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAC1B,EAAc,EAKb;QACD,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,aAAa,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1E,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,GAAG,KAAK,CAAC;QACvB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACtE,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,aAAa,GAAG,KAAK,CAAC;QACxB,CAAC;QAED,OAAO;YACL,cAAc,EAAE,CAAC,YAAY;YAC7B,YAAY;YACZ,aAAa;SACd,CAAC;IAAA,CACH;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,EAAc,EACd,OAA6B,EACd;QACf,MAAM,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,MAAM,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IAAA,CACF;IAED,8EAA8E;IAC9E,kBAAkB;IAClB,8EAA8E;IAEtE,wBAAwB,GAAoB;QAClD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,KAAK;YAChB,eAAe,EAAE,cAAc;YAC/B,aAAa,EAAE,SAAS;YACxB,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,KAAK;SAClB,CAAC;IAAA,CACH;IAEO,gBAAgB,GAAS;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAAA,CAClC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACzB,OAAO,EAAE,IAAI;gBACb,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;aACnC,CAAC,CAAC;QAAA,CACJ,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAEtE,2CAA2C;YAC3C,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAAA,CAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAAA,CACzC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAAA,CACnC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG;gBACjB,OAAO,EAAE,OAAO,CAAC,YAAY;gBAC7B,OAAO,EAAE,OAAO,CAAC,YAAY;gBAC7B,MAAM,EAAE,OAAO,CAAC,WAAW;gBAC3B,KAAK,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;gBAC9B,KAAK,EACH,OAAO,CAAC,YAAY;oBACpB,OAAO,CAAC,YAAY;oBACpB,OAAO,CAAC,WAAW;oBACnB,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;aAC5B,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAAA,CAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAAA,CACvC,CAAC,CAAC;IAAA,CACJ;IAEO,KAAK,CAAC,oBAAoB,GAAkB;QAClD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;IAAA,CACF;IAEO,eAAe,CAAC,IAAkB,EAAY;QACpD,IAAI,aAAa,GAAmC,IAAI,CAAC;QACzD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa;YACb,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IAAA,CACH;IAEO,gBAAgB,CACtB,OAA0B,EAC1B,SAAwB,EACZ;QACZ,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAM,CAAC;QAE/B,OAAO;YACL,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;gBACzB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,QAAQ,GACZ,IAAI,YAAY,IAAI;oBAClB,CAAC,CAAC,IAAI,CAAC,IAAI;oBACX,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,0BAA0B,CAAC,CAAC;gBAExD,eAAe;gBACf,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC9C,MAAM,IAAI,GAAG,UAAU,OAAO,EAAE,CAAC;gBAEjC,gBAAgB;gBAChB,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAEjC,iBAAiB;gBACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,MAAM,GAAG,CAAA;wBACO,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;cACtC,GAAG,CAAC,IAAI,CAAC;oBACT,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;oBACf,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;oBACf,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;oBACpB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;oBACpB,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC;oBAC3B,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;oBACpB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACjB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;iBAChB,CAAC;;cAEA,GAAG,CAAC,IAAI,CAAC;oBACT,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;oBACb,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;oBACrB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACjB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;oBACZ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;oBACZ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACV,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;oBACb,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;iBACf,CAAC;;yBAEW,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;SAC/B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAEd,yCAAyC;gBACzC,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;oBACvB,kBAAkB;oBAClB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC;wBAC5C,IAAI;wBACJ,IAAI,EAAE,KAAK,CAAC,MAAM;wBAClB,QAAQ;qBACT,CAAC,CAAC;oBAEH,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;wBAC/C,0BAA0B;wBAC1B,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE;4BACvD,MAAM,EAAE,UAAU,CAAC,YAAY,IAAI,KAAK;4BACxC,IAAI,EAAE,KAAK,CAAC,MAAqB;4BACjC,OAAO,EAAE,UAAU,CAAC,aAAa;yBAClC,CAAC,CAAC;wBAEH,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;4BACvB,MAAM,IAAI,KAAK,CAAC,kBAAkB,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC;wBACjE,CAAC;wBAED,kBAAkB;wBAClB,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,yBAAyB;oBACzB,MAAM,GAAG,CAAA;0BACO,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC;gBACvC,GAAG,CAAC,IAAI,CAAC;wBACT,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;wBACf,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;wBACf,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;wBACpB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;wBACjB,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC;wBACrB,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC;wBACrB,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC;wBACxB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;wBAChB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;wBACpB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;wBACjB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;qBAChB,CAAC;;gBAEA,GAAG,CAAC,IAAI,CAAC;wBACT,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;wBACb,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;wBACrB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;wBACjB,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;wBAClB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;wBACZ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;wBACZ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;wBACV,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;wBACb,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;wBACV,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;wBACb,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;qBACf,CAAC;;2BAEW,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;WAC/B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChB,CAAC;gBAED,OAAO;oBACL,IAAI;oBACJ,IAAI,EAAE,KAAK,CAAC,MAAM;oBAClB,QAAQ;iBACT,CAAC;YAAA,CACH;YAED,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;gBAClB,4BAA4B;gBAC5B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,KAAK,EAAE,CAAC;oBACV,qBAAqB;oBACrB,MAAM,GAAG,CAAA;qBACE,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;kBAC/B,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBAClD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;WAC/C,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACd,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,oBAAoB;gBACpB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC7D,CAAC;gBAED,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;gBAE3D,gBAAgB;gBAChB,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,MAAM,GAAG,CAAA;wBACO,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;cACtC,GAAG,CAAC,IAAI,CAAC;oBACT,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;oBACf,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;oBACf,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;oBACpB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;oBACpB,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC;oBAC3B,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;oBACpB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACjB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;iBAChB,CAAC;;cAEA,GAAG,CAAC,IAAI,CAAC;oBACT,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;oBACjB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;oBACrB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACrB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;oBACZ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;oBACZ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACV,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;oBACb,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;iBACf,CAAC;;yBAEW,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;SAC/B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAEd,OAAO,KAAK,CAAC;YAAA,CACd;YAED,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;gBAClB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAA,CAC7B;YAED,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;gBAClB,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAA,CAC1D;YAED,KAAK,CAAC,kBAAkB,GAAG;gBACzB,IAAI,QAAQ,GAAG,CAAC,CAAC;gBACjB,IAAI,MAAM,GAAG,CAAC,CAAC;gBAEf,MAAM,aAAa,GAAG,MAAM,GAAG,CAK7B;;cAEI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;cACf,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;cACf,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;cACpB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;iBACZ,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC;kBAC5B,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;kBACzC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;SACpB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACd,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC;gBAEnC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;oBAC3B,IAAI,CAAC;wBACH,oBAAoB;wBACpB,MAAM,GAAG,CAAA;uBACE,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC;;kBAElC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;kBAC3C,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;sBAC1C,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;aAChD,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAEd,kBAAkB;wBAClB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC;4BAC5C,IAAI,EAAE,IAAI,CAAC,IAAI;4BACf,IAAI,EAAE,IAAI,CAAC,IAAI;4BACf,QAAQ,EAAE,IAAI,CAAC,SAAS;yBACzB,CAAC,CAAC;wBAEH,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;4BAC5D,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;4BACzD,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAE1C,SAAS;4BACT,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE;gCACvD,MAAM,EAAE,UAAU,CAAC,YAAY,IAAI,KAAK;gCACxC,IAAI,EAAE,UAAU;gCAChB,OAAO,EAAE,UAAU,CAAC,aAAa;6BAClC,CAAC,CAAC;4BAEH,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;gCACvB,MAAM,IAAI,KAAK,CAAC,kBAAkB,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC;4BACjE,CAAC;4BAED,WAAW;4BACX,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACxC,CAAC;wBAED,mBAAmB;wBACnB,MAAM,GAAG,CAAA;4BACO,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC;sBACnC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;aAChD,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAEd,QAAQ,EAAE,CAAC;oBACb,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,iBAAiB;wBACjB,MAAM,GAAG,CAAA;uBACE,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC;;kBAElC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;kBACxC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAC7B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CACrD;kBACC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,CACnE,CAAC,CACF;kBACC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;sBAC1C,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;aAChD,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAEd,MAAM,EAAE,CAAC;oBACX,CAAC;gBACH,CAAC;gBAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YAAA,CAC7B;YAED,KAAK,CAAC,mBAAmB,GAAG;gBAC1B,MAAM,UAAU,GAAG,MAAM,GAAG,CAG1B;;cAEI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACX,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;iBAClB,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC;qBACzB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;SAC7B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAEd,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;gBACtD,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;oBAClC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;wBAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAChE,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW;wBAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACpE,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ;wBAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAChE,CAAC;gBACD,OAAO,KAAK,CAAC;YAAA,CACd;YAED,KAAK,CAAC,aAAa,GAAG;gBACpB,MAAM,MAAM,GAAG,MAAM,GAAG,CAGtB;;oBAEU,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;kBACjB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;iBAChB,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;SACpC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACd,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAE3B,OAAO;oBACL,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;oBAC9B,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,UAAU,IAAI,CAAC,CAAC;iBACzC,CAAC;YAAA,CACH;YAED,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;gBACzB,IAAI,CAAC,QAAQ;oBAAE,OAAO,CAAC,CAAC;gBAExB,mBAAmB;gBACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBACzC,IAAI,KAAK,CAAC,UAAU,IAAI,QAAQ;oBAAE,OAAO,CAAC,CAAC;gBAE3C,+BAA+B;gBAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;gBAC3C,IAAI,KAAK,GAAG,CAAC,CAAC;gBAEd,MAAM,gBAAgB,GAAG,MAAM,GAAG,CAAgC;mBACvD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;iBACrC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;qBACxB,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC;SACvC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACd,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC;gBAEzC,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;oBAC/B,IAAI,KAAK,IAAI,MAAM;wBAAE,MAAM;oBAE3B,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACjC,MAAM,GAAG,CAAA;0BACO,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;oBAClC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;WACjD,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACd,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC;gBACtB,CAAC;gBAED,OAAO,KAAK,CAAC;YAAA,CACd;YAED,KAAK,CAAC,UAAU,GAAG;gBACjB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAClB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,iCAAiC;oBACjC,MAAM,aAAa,GAAG,MAAM,GAAG,CAAkB;qBACtC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;mBACjB,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;WACpC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBAEd,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;wBACvC,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC;gBAED,MAAM,GAAG,CAAA,eAAe,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAAA,CACpE;SACF,CAAC;IAAA,CACH;CACF;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,KAAK,UAAU,YAAY,CACzB,IAA8B,EACT;IACrB,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IACxC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAAA,CAC/B;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAgB,EAAmB;IACjE,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAC3C,SAAS,EACT,IAAI,CAAC,MAAqB,CAC3B,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;AAAA,CACb"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @syncular/client - Sync conflict storage helpers
3
+ */
4
+ import type { SyncPushResponse } from '@syncular/core';
5
+ import type { Kysely } from 'kysely';
6
+ import type { SyncClientDb } from './schema';
7
+ export declare function upsertConflictsForRejectedCommit<DB extends SyncClientDb>(db: Kysely<DB>, args: {
8
+ outboxCommitId: string;
9
+ clientCommitId: string;
10
+ response: SyncPushResponse;
11
+ nowMs?: number;
12
+ }): Promise<number>;
13
+ export type PendingConflictRow = {
14
+ id: string;
15
+ outbox_commit_id: string;
16
+ client_commit_id: string;
17
+ op_index: number;
18
+ result_status: string;
19
+ message: string;
20
+ code: string | null;
21
+ server_version: number | null;
22
+ server_row_json: string | null;
23
+ created_at: number;
24
+ };
25
+ export declare function listPendingConflicts<DB extends SyncClientDb>(db: Kysely<DB>): Promise<PendingConflictRow[]>;
26
+ export declare function resolveConflict<DB extends SyncClientDb>(db: Kysely<DB>, args: {
27
+ id: string;
28
+ resolution: string;
29
+ nowMs?: number;
30
+ }): Promise<void>;
31
+ //# sourceMappingURL=conflicts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflicts.d.ts","sourceRoot":"","sources":["../src/conflicts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAuB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAqC7C,wBAAsB,gCAAgC,CAAC,EAAE,SAAS,YAAY,EAC5E,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,IAAI,EAAE;IACJ,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CAAC,MAAM,CAAC,CA6EjB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,EAAE,SAAS,YAAY,EAChE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GACb,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAmB/B;AAED,wBAAsB,eAAe,CAAC,EAAE,SAAS,YAAY,EAC3D,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACvD,OAAO,CAAC,IAAI,CAAC,CASf"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * @syncular/client - Sync conflict storage helpers
3
+ */
4
+ import { sql } from 'kysely';
5
+ function randomId() {
6
+ if (typeof crypto !== 'undefined' &&
7
+ typeof crypto.randomUUID === 'function') {
8
+ return crypto.randomUUID();
9
+ }
10
+ return `${Date.now()}-${Math.random().toString(16).slice(2)}`;
11
+ }
12
+ function messageFromResult(r) {
13
+ if (r.status === 'conflict') {
14
+ return {
15
+ message: r.message,
16
+ code: 'CONFLICT',
17
+ serverVersion: r.server_version,
18
+ serverRowJson: JSON.stringify(r.server_row),
19
+ };
20
+ }
21
+ return {
22
+ message: r.error,
23
+ code: r.code ?? null,
24
+ serverVersion: null,
25
+ serverRowJson: null,
26
+ };
27
+ }
28
+ export async function upsertConflictsForRejectedCommit(db, args) {
29
+ const now = args.nowMs ?? Date.now();
30
+ // Remove any previous conflict rows for this outbox commit.
31
+ await sql `
32
+ delete from ${sql.table('sync_conflicts')}
33
+ where ${sql.ref('outbox_commit_id')} = ${sql.val(args.outboxCommitId)}
34
+ `.execute(db);
35
+ const conflictResults = args.response.results.filter((r) => r.status === 'conflict' || r.status === 'error');
36
+ if (conflictResults.length === 0)
37
+ return 0;
38
+ const rows = conflictResults.map((r) => {
39
+ const info = messageFromResult(r);
40
+ return {
41
+ id: randomId(),
42
+ outbox_commit_id: args.outboxCommitId,
43
+ client_commit_id: args.clientCommitId,
44
+ op_index: r.opIndex,
45
+ result_status: r.status,
46
+ message: info.message,
47
+ code: info.code,
48
+ server_version: info.serverVersion,
49
+ server_row_json: info.serverRowJson,
50
+ created_at: now,
51
+ resolved_at: null,
52
+ resolution: null,
53
+ };
54
+ });
55
+ const insertColumns = [
56
+ 'id',
57
+ 'outbox_commit_id',
58
+ 'client_commit_id',
59
+ 'op_index',
60
+ 'result_status',
61
+ 'message',
62
+ 'code',
63
+ 'server_version',
64
+ 'server_row_json',
65
+ 'created_at',
66
+ 'resolved_at',
67
+ 'resolution',
68
+ ];
69
+ await sql `
70
+ insert into ${sql.table('sync_conflicts')} (
71
+ ${sql.join(insertColumns.map((c) => sql.ref(c)))}
72
+ ) values ${sql.join(rows.map((row) => sql `(${sql.join([
73
+ sql.val(row.id),
74
+ sql.val(row.outbox_commit_id),
75
+ sql.val(row.client_commit_id),
76
+ sql.val(row.op_index),
77
+ sql.val(row.result_status),
78
+ sql.val(row.message),
79
+ sql.val(row.code),
80
+ sql.val(row.server_version),
81
+ sql.val(row.server_row_json),
82
+ sql.val(row.created_at),
83
+ sql.val(row.resolved_at),
84
+ sql.val(row.resolution),
85
+ ], sql `, `)})`), sql `, `)}
86
+ `.execute(db);
87
+ return conflictResults.length;
88
+ }
89
+ export async function listPendingConflicts(db) {
90
+ const res = await sql `
91
+ select
92
+ ${sql.ref('id')},
93
+ ${sql.ref('outbox_commit_id')},
94
+ ${sql.ref('client_commit_id')},
95
+ ${sql.ref('op_index')},
96
+ ${sql.ref('result_status')},
97
+ ${sql.ref('message')},
98
+ ${sql.ref('code')},
99
+ ${sql.ref('server_version')},
100
+ ${sql.ref('server_row_json')},
101
+ ${sql.ref('created_at')}
102
+ from ${sql.table('sync_conflicts')}
103
+ where ${sql.ref('resolved_at')} is null
104
+ order by ${sql.ref('created_at')} desc
105
+ `.execute(db);
106
+ return res.rows;
107
+ }
108
+ export async function resolveConflict(db, args) {
109
+ const now = args.nowMs ?? Date.now();
110
+ await sql `
111
+ update ${sql.table('sync_conflicts')}
112
+ set
113
+ ${sql.ref('resolved_at')} = ${sql.val(now)},
114
+ ${sql.ref('resolution')} = ${sql.val(args.resolution)}
115
+ where ${sql.ref('id')} = ${sql.val(args.id)}
116
+ `.execute(db);
117
+ }
118
+ //# sourceMappingURL=conflicts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../src/conflicts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Simplified client factory
3
+ *
4
+ * Breaking changes from legacy Client:
5
+ * - handlers: array instead of ClientTableRegistry
6
+ * - url: string instead of transport (transport auto-created)
7
+ * - subscriptions: derived from handler.subscribe (no separate param)
8
+ * - clientId: auto-generated (no longer required)
9
+ */
10
+ import type { SyncTransport } from '@syncular/core';
11
+ import type { Kysely } from 'kysely';
12
+ import { Client } from './client';
13
+ import type { ClientTableHandler } from './handlers/types';
14
+ import type { SyncClientDb } from './schema';
15
+ interface CreateClientOptions<DB extends SyncClientDb> {
16
+ /** Kysely database instance */
17
+ db: Kysely<DB>;
18
+ /**
19
+ * Server URL (e.g., '/api/sync' or 'https://api.example.com').
20
+ * Defaults to '/api/sync' if not provided.
21
+ * Ignored if transport is provided.
22
+ */
23
+ url?: string;
24
+ /**
25
+ * Table handlers for applying snapshots and changes.
26
+ * Array is auto-converted to ClientTableRegistry.
27
+ * Handlers with `subscribe: true` (or an object) are synced.
28
+ * Handlers with `subscribe: false` are local-only.
29
+ * Either handlers or tables must be provided.
30
+ */
31
+ handlers?: Array<ClientTableHandler<DB>>;
32
+ /**
33
+ * Table names to auto-generate handlers for.
34
+ * Uses default scopes and primary key 'id'.
35
+ * Either handlers or tables must be provided.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * tables: ['tasks', 'notes', 'projects']
40
+ * ```
41
+ */
42
+ tables?: string[];
43
+ /**
44
+ * Default scopes for auto-generated table handlers.
45
+ * Required when using tables option.
46
+ * Ignored when handlers are provided.
47
+ */
48
+ scopes?: string[];
49
+ /** Current actor/user identifier */
50
+ actorId: string;
51
+ /** Optional: Custom client ID (auto-generated UUID if not provided) */
52
+ clientId?: string;
53
+ /** Optional: Custom transport (overrides url) */
54
+ transport?: SyncTransport;
55
+ /** Optional: Function to get auth headers */
56
+ getHeaders?: () => Record<string, string> | Promise<Record<string, string>>;
57
+ /** Optional: Sync configuration */
58
+ sync?: {
59
+ /** Enable realtime/WebSocket mode (default: true) */
60
+ realtime?: boolean;
61
+ /** Polling interval in ms (default: 10000) */
62
+ pollIntervalMs?: number;
63
+ };
64
+ /** Optional: Local blob storage adapter */
65
+ blobStorage?: import('./client').ClientBlobStorage;
66
+ /** Optional: Sync plugins */
67
+ plugins?: import('./plugins').SyncClientPlugin[];
68
+ /** Optional: State ID for multi-tenant scenarios */
69
+ stateId?: string;
70
+ /** Optional: Auto-start sync (default: true) */
71
+ autoStart?: boolean;
72
+ }
73
+ interface CreateClientResult<DB extends SyncClientDb> {
74
+ /** The client instance */
75
+ client: Client<DB>;
76
+ /** Stop sync */
77
+ stop: () => void;
78
+ /** Destroy client and cleanup */
79
+ destroy: () => void;
80
+ }
81
+ /**
82
+ * Create a simplified sync client.
83
+ *
84
+ * Auto-generates clientId, creates transport from URL (default: '/api/sync'),
85
+ * builds subscriptions from handlers.
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * // Auto-generate handlers for simple tables (default URL: '/api/sync')
90
+ * const { client } = await createClient({
91
+ * db,
92
+ * actorId: 'user-123',
93
+ * tables: ['tasks', 'notes'],
94
+ * scopes: ['user:{user_id}'],
95
+ * });
96
+ *
97
+ * // With custom handlers for advanced cases
98
+ * const { client } = await createClient({
99
+ * db,
100
+ * actorId: 'user-123',
101
+ * handlers: [
102
+ * tasksHandler, // subscribe: true by default
103
+ * notesHandler, // subscribe: true by default
104
+ * draftsHandler, // subscribe: false (local-only)
105
+ * ],
106
+ * });
107
+ *
108
+ * // Listen for events
109
+ * client.on('sync:error', (err) => console.error(err));
110
+ * client.on('data:change', (scopes) => console.log('Data changed:', scopes));
111
+ * ```
112
+ */
113
+ export declare function createClient<DB extends SyncClientDb>(options: CreateClientOptions<DB>): Promise<CreateClientResult<DB>>;
114
+ export {};
115
+ //# sourceMappingURL=create-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAGV,aAAa,EACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA4C7C,UAAU,mBAAmB,CAAC,EAAE,SAAS,YAAY;IACnD,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAEf;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzC;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAEhB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iDAAiD;IACjD,SAAS,CAAC,EAAE,aAAa,CAAC;IAE1B,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5E,mCAAmC;IACnC,IAAI,CAAC,EAAE;QACL,qDAAqD;QACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,8CAA8C;QAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IAEF,2CAA2C;IAC3C,WAAW,CAAC,EAAE,OAAO,UAAU,EAAE,iBAAiB,CAAC;IAEnD,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAEjD,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,kBAAkB,CAAC,EAAE,SAAS,YAAY;IAClD,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACnB,gBAAgB;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,iCAAiC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,YAAY,CAAC,EAAE,SAAS,YAAY,EACxD,OAAO,EAAE,mBAAmB,CAAC,EAAE,CAAC,GAC/B,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAmHjC"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Simplified client factory
3
+ *
4
+ * Breaking changes from legacy Client:
5
+ * - handlers: array instead of ClientTableRegistry
6
+ * - url: string instead of transport (transport auto-created)
7
+ * - subscriptions: derived from handler.subscribe (no separate param)
8
+ * - clientId: auto-generated (no longer required)
9
+ */
10
+ import { extractScopeVars } from '@syncular/core';
11
+ import { createHttpTransport } from '@syncular/transport-http';
12
+ import { Client } from './client';
13
+ import { createClientHandler } from './handlers/create-handler';
14
+ import { ClientTableRegistry } from './handlers/registry';
15
+ import { randomUUID } from './utils/id';
16
+ function deriveDefaultSubscriptionScopes(args) {
17
+ const patterns = args.handler.scopePatterns ?? [];
18
+ const vars = new Set();
19
+ for (const pattern of patterns) {
20
+ for (const v of extractScopeVars(pattern)) {
21
+ vars.add(v);
22
+ }
23
+ }
24
+ const allVars = Array.from(vars);
25
+ if (allVars.length !== 1) {
26
+ throw new Error(`Handler "${args.handler.table}" has subscribe=true but no explicit subscription scopes. ` +
27
+ 'Set subscribe: { scopes: { ... } } on the handler. ' +
28
+ `(Cannot infer defaults from scopePatterns: ${patterns.length > 0 ? patterns.join(', ') : '(none)'})`);
29
+ }
30
+ const varName = allVars[0];
31
+ return { [varName]: args.actorId };
32
+ }
33
+ /**
34
+ * Auto-generate a simple handler for a table.
35
+ * Uses 'id' as primary key and provided scopes.
36
+ */
37
+ function createAutoHandler(table, scopes) {
38
+ return createClientHandler({
39
+ table: table,
40
+ scopes: scopes,
41
+ });
42
+ }
43
+ /**
44
+ * Create a simplified sync client.
45
+ *
46
+ * Auto-generates clientId, creates transport from URL (default: '/api/sync'),
47
+ * builds subscriptions from handlers.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * // Auto-generate handlers for simple tables (default URL: '/api/sync')
52
+ * const { client } = await createClient({
53
+ * db,
54
+ * actorId: 'user-123',
55
+ * tables: ['tasks', 'notes'],
56
+ * scopes: ['user:{user_id}'],
57
+ * });
58
+ *
59
+ * // With custom handlers for advanced cases
60
+ * const { client } = await createClient({
61
+ * db,
62
+ * actorId: 'user-123',
63
+ * handlers: [
64
+ * tasksHandler, // subscribe: true by default
65
+ * notesHandler, // subscribe: true by default
66
+ * draftsHandler, // subscribe: false (local-only)
67
+ * ],
68
+ * });
69
+ *
70
+ * // Listen for events
71
+ * client.on('sync:error', (err) => console.error(err));
72
+ * client.on('data:change', (scopes) => console.log('Data changed:', scopes));
73
+ * ```
74
+ */
75
+ export async function createClient(options) {
76
+ const { db, url = '/api/sync', handlers: providedHandlers, tables, scopes, actorId, clientId = randomUUID(), transport: customTransport, getHeaders, sync = {}, blobStorage, plugins, stateId, autoStart = true, } = options;
77
+ // Validate options
78
+ if (!providedHandlers && !tables) {
79
+ throw new Error('Either handlers or tables must be provided');
80
+ }
81
+ if (tables && !scopes) {
82
+ throw new Error('scopes is required when using tables option');
83
+ }
84
+ // Auto-generate handlers from tables if needed
85
+ const handlers = providedHandlers ??
86
+ tables.map((table) => createAutoHandler(table, scopes));
87
+ // Build registry from handlers array
88
+ const tableHandlers = new ClientTableRegistry();
89
+ for (const handler of handlers) {
90
+ tableHandlers.register(handler);
91
+ }
92
+ // Create transport from URL if not provided
93
+ let transport = customTransport;
94
+ if (!transport && url) {
95
+ transport = createHttpTransport({
96
+ baseUrl: url,
97
+ getHeaders,
98
+ });
99
+ }
100
+ if (!transport) {
101
+ throw new Error('Either url or transport must be provided');
102
+ }
103
+ // Build subscriptions from handlers
104
+ const subscriptions = handlers
105
+ .map((handler) => {
106
+ const sub = handler.subscribe;
107
+ // Skip handlers that are explicitly disabled
108
+ if (sub === false)
109
+ return null;
110
+ if (sub === true || sub === undefined) {
111
+ // Default: subscribe to the handler's single scope var using actorId.
112
+ // This avoids sending `{}` which would be treated as revoked by the server.
113
+ const scopes = deriveDefaultSubscriptionScopes({
114
+ handler,
115
+ actorId,
116
+ });
117
+ return {
118
+ id: handler.table,
119
+ shape: handler.table,
120
+ scopes,
121
+ params: {},
122
+ };
123
+ }
124
+ // Custom subscription config
125
+ const scopes = sub.scopes ?? {};
126
+ if (Object.keys(scopes).length === 0) {
127
+ throw new Error(`Handler "${handler.table}" subscription scopes cannot be empty. ` +
128
+ 'Set subscribe: false or provide subscribe.scopes.');
129
+ }
130
+ return {
131
+ id: handler.table,
132
+ shape: handler.table,
133
+ scopes,
134
+ params: sub.params ?? {},
135
+ };
136
+ })
137
+ .filter((sub) => sub !== null);
138
+ // Create client
139
+ const client = new Client({
140
+ db,
141
+ transport,
142
+ tableHandlers,
143
+ clientId,
144
+ actorId,
145
+ subscriptions,
146
+ blobStorage,
147
+ plugins,
148
+ stateId,
149
+ realtimeEnabled: sync.realtime ?? true,
150
+ pollIntervalMs: sync.pollIntervalMs,
151
+ });
152
+ // Auto-start
153
+ if (autoStart) {
154
+ await client.start();
155
+ }
156
+ return {
157
+ client,
158
+ stop: () => client.stop(),
159
+ destroy: () => client.destroy(),
160
+ };
161
+ }
162
+ //# sourceMappingURL=create-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-client.js","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"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"}