velocious 1.0.501 → 1.0.503

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 (46) hide show
  1. package/build/application.js +2 -0
  2. package/build/src/application.d.ts.map +1 -1
  3. package/build/src/application.js +3 -1
  4. package/build/src/sync/sync-change-fanout.d.ts +71 -0
  5. package/build/src/sync/sync-change-fanout.d.ts.map +1 -0
  6. package/build/src/sync/sync-change-fanout.js +54 -0
  7. package/build/src/sync/sync-client-types.d.ts +6 -2
  8. package/build/src/sync/sync-client-types.d.ts.map +1 -1
  9. package/build/src/sync/sync-client-types.js +1 -1
  10. package/build/src/sync/sync-client.d.ts +71 -4
  11. package/build/src/sync/sync-client.d.ts.map +1 -1
  12. package/build/src/sync/sync-client.js +126 -18
  13. package/build/src/sync/sync-envelope-replay-service.d.ts +15 -4
  14. package/build/src/sync/sync-envelope-replay-service.d.ts.map +1 -1
  15. package/build/src/sync/sync-envelope-replay-service.js +60 -42
  16. package/build/src/sync/sync-publish-suppression.d.ts +31 -0
  17. package/build/src/sync/sync-publish-suppression.d.ts.map +1 -0
  18. package/build/src/sync/sync-publish-suppression.js +54 -0
  19. package/build/src/sync/sync-publisher-types.d.ts +146 -0
  20. package/build/src/sync/sync-publisher-types.d.ts.map +1 -0
  21. package/build/src/sync/sync-publisher-types.js +3 -0
  22. package/build/src/sync/sync-publisher.d.ts +137 -0
  23. package/build/src/sync/sync-publisher.d.ts.map +1 -0
  24. package/build/src/sync/sync-publisher.js +305 -0
  25. package/build/src/testing/test-runner.d.ts +8 -0
  26. package/build/src/testing/test-runner.d.ts.map +1 -1
  27. package/build/src/testing/test-runner.js +64 -2
  28. package/build/sync/sync-change-fanout.js +58 -0
  29. package/build/sync/sync-client-types.js +3 -2
  30. package/build/sync/sync-client.js +136 -18
  31. package/build/sync/sync-envelope-replay-service.js +60 -41
  32. package/build/sync/sync-publish-suppression.js +59 -0
  33. package/build/sync/sync-publisher-types.js +64 -0
  34. package/build/sync/sync-publisher.js +351 -0
  35. package/build/testing/test-runner.js +69 -1
  36. package/build/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +1 -1
  38. package/src/application.js +2 -0
  39. package/src/sync/sync-change-fanout.js +58 -0
  40. package/src/sync/sync-client-types.js +3 -2
  41. package/src/sync/sync-client.js +136 -18
  42. package/src/sync/sync-envelope-replay-service.js +60 -41
  43. package/src/sync/sync-publish-suppression.js +59 -0
  44. package/src/sync/sync-publisher-types.js +64 -0
  45. package/src/sync/sync-publisher.js +351 -0
  46. package/src/testing/test-runner.js +69 -1
@@ -5,6 +5,7 @@ import Logger from "./logger.js"
5
5
  import HttpServer from "./http-server/index.js"
6
6
  import HttpServerLock from "./http-server/server-lock.js"
7
7
  import SyncApiController from "./sync/sync-api-controller.js"
8
+ import SyncPublisher from "./sync/sync-publisher.js"
8
9
  import websocketEventsHost from "./http-server/websocket-events-host.js"
9
10
  import restArgsError from "./utils/rest-args-error.js"
10
11
 
@@ -56,6 +57,7 @@ export default class VelociousApplication {
56
57
  await this.configuration.initialize({type: this.getType()})
57
58
 
58
59
  SyncApiController.mountFromConfiguration(this.configuration)
60
+ await SyncPublisher.startFromConfiguration(this.configuration)
59
61
 
60
62
  this.configuration.setRoutes(routes)
61
63
 
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/application.js"],"names":[],"mappings":"AAUA;;mGAEmG;AAEnG;IACE;;;;;;OAMG;IACH,8DAJG;QAAmD,aAAa,EAAxD,OAAO,oBAAoB,EAAE,OAAO;QACL,UAAU;QAC5B,IAAI,EAAjB,MAAM;KAChB,EAmBA;IAbC,oDAAkC;IAElC;;yCAEqC;IACrC,yBADU,uBAAuB,CACc;IAE/C,eAA8B;IAC9B,cAAiB;IACjB;;4CAEwC;IACxC,gBADU,cAAc,GAAG,SAAS,CACL;IAGjC;;;OAGG;IACH,WAFa,MAAM,CAEY;IAE/B;;;OAGG;IACH,cAFa,OAAO,CAAC,IAAI,CAAC,CAezB;IAED;;;OAGG;IACH,YAFa,OAAO,CAQnB;IAED;;;;OAIG;IACH,cAHW,MAAa,IAAI,GACf,OAAO,CAAC,IAAI,CAAC,CAUzB;IAED;;;OAGG;IACH,mBAFa,OAAO,CAAC,IAAI,CAAC,CAczB;IAED;;;;;;;;OAQG;IACH,8EANG;QAAmD,aAAa,EAAxD,OAAO,oBAAoB,EAAE,OAAO;QACtB,IAAI;QACM,uBAAuB,EAA/C,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;QACJ,IAAI,EAAjB,MAAM;KACd,GAAU,OAAO,CAAC,IAAI,CAAC,CA4BzB;IAlBG,mCAOE;IAaN;;;;;;;OAOG;IACH,qDALG;QAAmD,aAAa,EAAxD,OAAO,oBAAoB,EAAE,OAAO;QACvB,IAAI,EAAjB,MAAM;QACO,IAAI,EAAjB,MAAM;KACd,GAAU,OAAO,CAAC,IAAI,CAAC,CAQzB;IAED;;;;;;;;;;OAUG;IACH,gFARG;QAAmD,aAAa,EAAxD,OAAO,oBAAoB,EAAE,OAAO;QACtB,IAAI;QACH,SAAS;QACV,UAAU;QACX,IAAI,EAAjB,MAAM;QACQ,OAAO;KAC7B,GAAU,UAAU,CAItB;IAED;;;OAGG;IACH,QAFa,OAAO,CAAC,IAAI,CAAC,CAazB;IAED;;;OAGG;IACH,yBAFa,OAAO,CAAC,IAAI,CAAC,CAOzB;IAED;;;OAGG;IACH,yBAFa,IAAI,CAQhB;IAED;;;OAGG;IACH,QAFa,OAAO,CAAC,IAAI,CAAC,CAMzB;IAFG,qEAA0B;CAG/B;;;;sCAzNY,OAAO,0BAA0B,EAAE,uBAAuB;mBATpD,aAAa;2BAEL,8BAA8B;uBADlC,wBAAwB"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/application.js"],"names":[],"mappings":"AAWA;;mGAEmG;AAEnG;IACE;;;;;;OAMG;IACH,8DAJG;QAAmD,aAAa,EAAxD,OAAO,oBAAoB,EAAE,OAAO;QACL,UAAU;QAC5B,IAAI,EAAjB,MAAM;KAChB,EAmBA;IAbC,oDAAkC;IAElC;;yCAEqC;IACrC,yBADU,uBAAuB,CACc;IAE/C,eAA8B;IAC9B,cAAiB;IACjB;;4CAEwC;IACxC,gBADU,cAAc,GAAG,SAAS,CACL;IAGjC;;;OAGG;IACH,WAFa,MAAM,CAEY;IAE/B;;;OAGG;IACH,cAFa,OAAO,CAAC,IAAI,CAAC,CAgBzB;IAED;;;OAGG;IACH,YAFa,OAAO,CAQnB;IAED;;;;OAIG;IACH,cAHW,MAAa,IAAI,GACf,OAAO,CAAC,IAAI,CAAC,CAUzB;IAED;;;OAGG;IACH,mBAFa,OAAO,CAAC,IAAI,CAAC,CAczB;IAED;;;;;;;;OAQG;IACH,8EANG;QAAmD,aAAa,EAAxD,OAAO,oBAAoB,EAAE,OAAO;QACtB,IAAI;QACM,uBAAuB,EAA/C,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;QACJ,IAAI,EAAjB,MAAM;KACd,GAAU,OAAO,CAAC,IAAI,CAAC,CA4BzB;IAlBG,mCAOE;IAaN;;;;;;;OAOG;IACH,qDALG;QAAmD,aAAa,EAAxD,OAAO,oBAAoB,EAAE,OAAO;QACvB,IAAI,EAAjB,MAAM;QACO,IAAI,EAAjB,MAAM;KACd,GAAU,OAAO,CAAC,IAAI,CAAC,CAQzB;IAED;;;;;;;;;;OAUG;IACH,gFARG;QAAmD,aAAa,EAAxD,OAAO,oBAAoB,EAAE,OAAO;QACtB,IAAI;QACH,SAAS;QACV,UAAU;QACX,IAAI,EAAjB,MAAM;QACQ,OAAO;KAC7B,GAAU,UAAU,CAItB;IAED;;;OAGG;IACH,QAFa,OAAO,CAAC,IAAI,CAAC,CAazB;IAED;;;OAGG;IACH,yBAFa,OAAO,CAAC,IAAI,CAAC,CAOzB;IAED;;;OAGG;IACH,yBAFa,IAAI,CAQhB;IAED;;;OAGG;IACH,QAFa,OAAO,CAAC,IAAI,CAAC,CAMzB;IAFG,qEAA0B;CAG/B;;;;sCA1NY,OAAO,0BAA0B,EAAE,uBAAuB;mBAVpD,aAAa;2BAEL,8BAA8B;uBADlC,wBAAwB"}
@@ -4,6 +4,7 @@ import Logger from "./logger.js";
4
4
  import HttpServer from "./http-server/index.js";
5
5
  import HttpServerLock from "./http-server/server-lock.js";
6
6
  import SyncApiController from "./sync/sync-api-controller.js";
7
+ import SyncPublisher from "./sync/sync-publisher.js";
7
8
  import websocketEventsHost from "./http-server/websocket-events-host.js";
8
9
  import restArgsError from "./utils/rest-args-error.js";
9
10
  /**
@@ -46,6 +47,7 @@ export default class VelociousApplication {
46
47
  const routes = await AppRoutes.getRoutes(this.configuration);
47
48
  await this.configuration.initialize({ type: this.getType() });
48
49
  SyncApiController.mountFromConfiguration(this.configuration);
50
+ await SyncPublisher.startFromConfiguration(this.configuration);
49
51
  this.configuration.setRoutes(routes);
50
52
  if (!this.configuration.isDatabasePoolInitialized()) {
51
53
  await this.configuration.initializeDatabasePool();
@@ -199,4 +201,4 @@ export default class VelociousApplication {
199
201
  });
200
202
  }
201
203
  }
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwbGljYXRpb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sU0FBUyxNQUFNLHdCQUF3QixDQUFBO0FBQzlDLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQTtBQUMvQyxPQUFPLGNBQWMsTUFBTSw4QkFBOEIsQ0FBQTtBQUN6RCxPQUFPLGlCQUFpQixNQUFNLCtCQUErQixDQUFBO0FBQzdELE9BQU8sbUJBQW1CLE1BQU0sd0NBQXdDLENBQUE7QUFDeEUsT0FBTyxhQUFhLE1BQU0sNEJBQTRCLENBQUE7QUFFdEQ7O21HQUVtRztBQUVuRyxNQUFNLENBQUMsT0FBTyxPQUFPLG9CQUFvQjtJQUN2Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEVBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxRQUFRLEVBQUM7UUFDeEQsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZCLElBQUksQ0FBQyxhQUFhO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO1FBRWhFLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO1FBRWxDOzs2Q0FFcUM7UUFDckMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUE7UUFFL0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtRQUNqQjs7Z0RBRXdDO1FBQ3hDLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFBO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxPQUFPLEtBQUssT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQztJQUUvQjs7O09BR0c7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QUUxQyxJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUE7WUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUE7WUFDbEQsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUE7WUFDM0MsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLHdCQUF3QixFQUFFLENBQUE7UUFDckQsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxxQkFBcUI7UUFDekIsTUFBTSxFQUFDLGNBQWMsRUFBQyxHQUFHLElBQUksQ0FBQTtRQUU3QixJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQTtRQUMvQixJQUFJLGNBQWM7WUFBRSxNQUFNLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNwRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsaUJBQWlCLEdBQUcsR0FBRyxFQUFFO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFFdkMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3BCLENBQUM7SUFDSCxDQUFDLENBQUE7SUFFRDs7O09BR0c7SUFDSCxJQUFJO1FBQ0YsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFBO1FBQzVCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBBcHBSb3V0ZXMgZnJvbSBcIi4vcm91dGVzL2FwcC1yb3V0ZXMuanNcIlxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi9sb2dnZXIuanNcIlxuaW1wb3J0IEh0dHBTZXJ2ZXIgZnJvbSBcIi4vaHR0cC1zZXJ2ZXIvaW5kZXguanNcIlxuaW1wb3J0IEh0dHBTZXJ2ZXJMb2NrIGZyb20gXCIuL2h0dHAtc2VydmVyL3NlcnZlci1sb2NrLmpzXCJcbmltcG9ydCBTeW5jQXBpQ29udHJvbGxlciBmcm9tIFwiLi9zeW5jL3N5bmMtYXBpLWNvbnRyb2xsZXIuanNcIlxuaW1wb3J0IHdlYnNvY2tldEV2ZW50c0hvc3QgZnJvbSBcIi4vaHR0cC1zZXJ2ZXIvd2Vic29ja2V0LWV2ZW50cy1ob3N0LmpzXCJcbmltcG9ydCByZXN0QXJnc0Vycm9yIGZyb20gXCIuL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5cbi8qKlxuICogSHR0cFNlcnZlckNvbmZpZ3VyYXRpb24gdHlwZS5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuSHR0cFNlcnZlckNvbmZpZ3VyYXRpb259IEh0dHBTZXJ2ZXJDb25maWd1cmF0aW9uICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0FwcGxpY2F0aW9uIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7SHR0cFNlcnZlckNvbmZpZ3VyYXRpb259IFthcmdzLmh0dHBTZXJ2ZXJdIC0gSHR0cCBzZXJ2ZXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnR5cGUgLSBUeXBlIGlkZW50aWZpZXIuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7Y29uZmlndXJhdGlvbiwgaHR0cFNlcnZlciwgdHlwZSwgLi4ucmVzdEFyZ3N9KSB7XG4gICAgcmVzdEFyZ3NFcnJvcihyZXN0QXJncylcblxuICAgIGlmICghY29uZmlndXJhdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZFwiKVxuXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblxuXG4gICAgLyoqXG4gICAgICogU3RvcmVzIHRoZSBodHRwIHNlcnZlciBjb25maWd1cmF0aW9uIHZhbHVlLlxuICAgICAqIEB0eXBlIHtIdHRwU2VydmVyQ29uZmlndXJhdGlvbn0gKi9cbiAgICB0aGlzLmh0dHBTZXJ2ZXJDb25maWd1cmF0aW9uID0gaHR0cFNlcnZlciA/PyB7fVxuXG4gICAgdGhpcy5sb2dnZXIgPSBuZXcgTG9nZ2VyKHRoaXMpXG4gICAgdGhpcy5fdHlwZSA9IHR5cGVcbiAgICAvKipcbiAgICAgKiBTdG9yZXMgdGhlIGh0dHAgc2VydmVyIGxvY2sgdmFsdWUuXG4gICAgICogQHR5cGUge0h0dHBTZXJ2ZXJMb2NrIHwgdW5kZWZpbmVkfSAqL1xuICAgIHRoaXMuaHR0cFNlcnZlckxvY2sgPSB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCB0eXBlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSB0eXBlLlxuICAgKi9cbiAgZ2V0VHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGUgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGluaXRpYWxpemUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplKCkge1xuICAgIGNvbnN0IHJvdXRlcyA9IGF3YWl0IEFwcFJvdXRlcy5nZXRSb3V0ZXModGhpcy5jb25maWd1cmF0aW9uKVxuXG4gICAgYXdhaXQgdGhpcy5jb25maWd1cmF0aW9uLmluaXRpYWxpemUoe3R5cGU6IHRoaXMuZ2V0VHlwZSgpfSlcblxuICAgIFN5bmNBcGlDb250cm9sbGVyLm1vdW50RnJvbUNvbmZpZ3VyYXRpb24odGhpcy5jb25maWd1cmF0aW9uKVxuXG4gICAgdGhpcy5jb25maWd1cmF0aW9uLnNldFJvdXRlcyhyb3V0ZXMpXG5cbiAgICBpZiAoIXRoaXMuY29uZmlndXJhdGlvbi5pc0RhdGFiYXNlUG9vbEluaXRpYWxpemVkKCkpIHtcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlndXJhdGlvbi5pbml0aWFsaXplRGF0YWJhc2VQb29sKClcbiAgICB9XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGlzIGFjdGl2ZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gV2hldGhlciBhY3RpdmUuXG4gICAqL1xuICBpc0FjdGl2ZSgpIHtcbiAgICBpZiAodGhpcy5odHRwU2VydmVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwU2VydmVyPy5pc0FjdGl2ZSgpXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogUnVucyBydW4uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oKSA6IHZvaWR9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgZnVuY3Rpb24uXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBydW4oY2FsbGJhY2spIHtcbiAgICBhd2FpdCB0aGlzLnN0YXJ0SHR0cFNlcnZlcigpXG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgY2FsbGJhY2soKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCB0aGlzLnN0b3AoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHN0YXJ0IGh0dHAgc2VydmVyLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgc3RhcnRIdHRwU2VydmVyKCkge1xuICAgIGNvbnN0IHtjb25maWd1cmF0aW9ufSA9IHRoaXNcbiAgICBjb25zdCBodHRwU2VydmVyQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgIC4uLmNvbmZpZ3VyYXRpb24uaHR0cFNlcnZlcixcbiAgICAgIC4uLnRoaXMuaHR0cFNlcnZlckNvbmZpZ3VyYXRpb25cbiAgICB9XG4gICAgY29uc3QgcG9ydCA9IGh0dHBTZXJ2ZXJDb25maWd1cmF0aW9uLnBvcnQgPz8gMzAwNlxuICAgIGNvbnN0IGhvc3QgPSBodHRwU2VydmVyQ29uZmlndXJhdGlvbi5ob3N0XG5cbiAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZyhgU3RhcnRpbmcgc2VydmVyIG9uIHBvcnQgJHtwb3J0fWApXG4gICAgYXdhaXQgdGhpcy5hY3F1aXJlSHR0cFNlcnZlckxvY2soe2NvbmZpZ3VyYXRpb24sIGhvc3Q6IGhvc3QgPz8gXCIwLjAuMC4wXCIsIHBvcnR9KVxuICAgIGF3YWl0IHRoaXMuc3RhcnRMb2NrZWRIdHRwU2VydmVyKHtjb25maWd1cmF0aW9uLCBob3N0LCBodHRwU2VydmVyQ29uZmlndXJhdGlvbiwgcG9ydH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzdGFydCBsb2NrZWQgaHR0cCBzZXJ2ZXIuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gSFRUUCBzZXJ2ZXIgc3RhcnR1cCBhcmd1bWVudHMuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbYXJncy5ob3N0XSAtIEhUVFAgc2VydmVyIGhvc3QuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgPz59IGFyZ3MuaHR0cFNlcnZlckNvbmZpZ3VyYXRpb24gLSBNZXJnZWQgSFRUUCBzZXJ2ZXIgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGFyZ3MucG9ydCAtIEhUVFAgc2VydmVyIHBvcnQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIGFmdGVyIHRoZSBIVFRQIHNlcnZlciBoYXMgc3RhcnRlZC5cbiAgICovXG4gIGFzeW5jIHN0YXJ0TG9ja2VkSHR0cFNlcnZlcih7Y29uZmlndXJhdGlvbiwgaG9zdCwgaHR0cFNlcnZlckNvbmZpZ3VyYXRpb24sIHBvcnR9KSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghY29uZmlndXJhdGlvbi5nZXRXZWJzb2NrZXRFdmVudHMoKSkge1xuICAgICAgICBjb25maWd1cmF0aW9uLnNldFdlYnNvY2tldEV2ZW50cygvKiogQHR5cGUgez99ICovICh3ZWJzb2NrZXRFdmVudHNIb3N0KSlcbiAgICAgIH1cblxuICAgICAgYXdhaXQgY29uZmlndXJhdGlvbi5jb25uZWN0QmVhY29uKHtwZWVyVHlwZTogXCJzZXJ2ZXJcIn0pXG5cbiAgICAgIHRoaXMuaHR0cFNlcnZlciA9IHRoaXMuY3JlYXRlSHR0cFNlcnZlcih7XG4gICAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICAgIGhvc3QsXG4gICAgICAgIGluUHJvY2VzczogaHR0cFNlcnZlckNvbmZpZ3VyYXRpb24uaW5Qcm9jZXNzLFxuICAgICAgICBtYXhXb3JrZXJzOiBodHRwU2VydmVyQ29uZmlndXJhdGlvbi5tYXhXb3JrZXJzLFxuICAgICAgICBwb3J0LFxuICAgICAgICB3b3JrZXJzOiBodHRwU2VydmVyQ29uZmlndXJhdGlvbi53b3JrZXJzXG4gICAgICB9KVxuICAgICAgdGhpcy5odHRwU2VydmVyLmV2ZW50cy5vbihcImNsb3NlXCIsIHRoaXMub25IdHRwU2VydmVyQ2xvc2UpXG4gICAgICBjb25maWd1cmF0aW9uLl9odHRwU2VydmVySW5zdGFuY2UgPSB0aGlzLmh0dHBTZXJ2ZXJcblxuICAgICAgYXdhaXQgdGhpcy5odHRwU2VydmVyLnN0YXJ0KClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgYXdhaXQgdGhpcy5yZWxlYXNlSHR0cFNlcnZlckxvY2soKVxuICAgICAgY29uZmlndXJhdGlvbi5faHR0cFNlcnZlckluc3RhbmNlID0gdW5kZWZpbmVkXG5cbiAgICAgIHRocm93IGVycm9yXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYWNxdWlyZSBodHRwIHNlcnZlciBsb2NrLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIExvY2sgYWNxdWlzaXRpb24gYXJndW1lbnRzLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5ob3N0IC0gSFRUUCBzZXJ2ZXIgaG9zdC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGFyZ3MucG9ydCAtIEhUVFAgc2VydmVyIHBvcnQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIGFmdGVyIGFjcXVpcmluZyB0aGUgc2VydmVyIGxvY2sgd2hlbiBuZWVkZWQuXG4gICAqL1xuICBhc3luYyBhY3F1aXJlSHR0cFNlcnZlckxvY2soe2NvbmZpZ3VyYXRpb24sIGhvc3QsIHBvcnR9KSB7XG4gICAgaWYgKHRoaXMuZ2V0VHlwZSgpID09PSBcInRlc3QtcnVubmVyXCIpIHJldHVyblxuXG4gICAgY29uc3QgaHR0cFNlcnZlckxvY2sgPSBuZXcgSHR0cFNlcnZlckxvY2soe2NvbmZpZ3VyYXRpb24sIGhvc3QsIHBvcnR9KVxuICAgIGF3YWl0IGh0dHBTZXJ2ZXJMb2NrLmFjcXVpcmUoKVxuICAgIHRoaXMuaHR0cFNlcnZlckxvY2sgPSBodHRwU2VydmVyTG9ja1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgY3JlYXRlIGh0dHAgc2VydmVyLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIEhUVFAgc2VydmVyIGFyZ3VtZW50cy5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFthcmdzLmhvc3RdIC0gSG9zdC5cbiAgICogQHBhcmFtIHtib29sZWFufSBbYXJncy5pblByb2Nlc3NdIC0gUnVuIEhUVFAgaGFuZGxlcnMgaW4gdGhlIG1haW4gdGhyZWFkLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW2FyZ3MubWF4V29ya2Vyc10gLSBNYXggd29ya2Vycy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGFyZ3MucG9ydCAtIFBvcnQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJncy53b3JrZXJzXSAtIFdvcmtlciBjb3VudC5cbiAgICogQHJldHVybnMge0h0dHBTZXJ2ZXJ9IC0gSFRUUCBzZXJ2ZXIgaW5zdGFuY2UuXG4gICAqL1xuICBjcmVhdGVIdHRwU2VydmVyKHtjb25maWd1cmF0aW9uLCBob3N0LCBpblByb2Nlc3MsIG1heFdvcmtlcnMsIHBvcnQsIHdvcmtlcnN9KSB7XG4gICAgcmV0dXJuIG5ldyBIdHRwU2VydmVyKHtjb25maWd1cmF0aW9uLCBob3N0LCBpblByb2Nlc3MsIG1heFdvcmtlcnMsIHBvcnQsIHdvcmtlcnN9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc3RvcC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIHN0b3AoKSB7XG4gICAgYXdhaXQgdGhpcy5sb2dnZXIuZGVidWcoXCJTdG9wcGluZyBzZXJ2ZXJcIilcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmh0dHBTZXJ2ZXI/LnN0b3AoKVxuICAgICAgdGhpcy5jb25maWd1cmF0aW9uLl9odHRwU2VydmVySW5zdGFuY2UgPSB1bmRlZmluZWRcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlndXJhdGlvbi5kaXNjb25uZWN0QmVhY29uKClcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlndXJhdGlvbi5jbG9zZURhdGFiYXNlQ29ubmVjdGlvbnMoKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCB0aGlzLnJlbGVhc2VIdHRwU2VydmVyTG9jaygpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgcmVsZWFzZSBodHRwIHNlcnZlciBsb2NrLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciB0aGUgSFRUUCBzZXJ2ZXIgbG9jayBoYXMgYmVlbiByZWxlYXNlZC5cbiAgICovXG4gIGFzeW5jIHJlbGVhc2VIdHRwU2VydmVyTG9jaygpIHtcbiAgICBjb25zdCB7aHR0cFNlcnZlckxvY2t9ID0gdGhpc1xuXG4gICAgdGhpcy5odHRwU2VydmVyTG9jayA9IHVuZGVmaW5lZFxuICAgIGlmIChodHRwU2VydmVyTG9jaykgYXdhaXQgaHR0cFNlcnZlckxvY2sucmVsZWFzZSgpXG4gIH1cblxuICAvKipcbiAgICogT24gaHR0cCBzZXJ2ZXIgY2xvc2UuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIG9uSHR0cFNlcnZlckNsb3NlID0gKCkgPT4ge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiSFRUUCBzZXJ2ZXIgY2xvc2VkXCIpXG5cbiAgICBpZiAodGhpcy53YWl0UmVzb2x2ZSkge1xuICAgICAgdGhpcy53YWl0UmVzb2x2ZSgpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgd2FpdC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIHdhaXQoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICB0aGlzLndhaXRSZXNvbHZlID0gcmVzb2x2ZVxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwbGljYXRpb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sU0FBUyxNQUFNLHdCQUF3QixDQUFBO0FBQzlDLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQTtBQUMvQyxPQUFPLGNBQWMsTUFBTSw4QkFBOEIsQ0FBQTtBQUN6RCxPQUFPLGlCQUFpQixNQUFNLCtCQUErQixDQUFBO0FBQzdELE9BQU8sYUFBYSxNQUFNLDBCQUEwQixDQUFBO0FBQ3BELE9BQU8sbUJBQW1CLE1BQU0sd0NBQXdDLENBQUE7QUFDeEUsT0FBTyxhQUFhLE1BQU0sNEJBQTRCLENBQUE7QUFFdEQ7O21HQUVtRztBQUVuRyxNQUFNLENBQUMsT0FBTyxPQUFPLG9CQUFvQjtJQUN2Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEVBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxRQUFRLEVBQUM7UUFDeEQsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZCLElBQUksQ0FBQyxhQUFhO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO1FBRWhFLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO1FBRWxDOzs2Q0FFcUM7UUFDckMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUE7UUFFL0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtRQUNqQjs7Z0RBRXdDO1FBQ3hDLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFBO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxPQUFPLEtBQUssT0FBTyxJQUFJLENBQUMs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aGVja1xuXG5pbXBvcnQgQXBwUm91dGVzIGZyb20gXCIuL3JvdXRlcy9hcHAtcm91dGVzLmpzXCJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4vbG9nZ2VyLmpzXCJcbmltcG9ydCBIdHRwU2VydmVyIGZyb20gXCIuL2h0dHAtc2VydmVyL2luZGV4LmpzXCJcbmltcG9ydCBIdHRwU2VydmVyTG9jayBmcm9tIFwiLi9odHRwLXNlcnZlci9zZXJ2ZXItbG9jay5qc1wiXG5pbXBvcnQgU3luY0FwaUNvbnRyb2xsZXIgZnJvbSBcIi4vc3luYy9zeW5jLWFwaS1jb250cm9sbGVyLmpzXCJcbmltcG9ydCBTeW5jUHVibGlzaGVyIGZyb20gXCIuL3N5bmMvc3luYy1wdWJsaXNoZXIuanNcIlxuaW1wb3J0IHdlYnNvY2tldEV2ZW50c0hvc3QgZnJvbSBcIi4vaHR0cC1zZXJ2ZXIvd2Vic29ja2V0LWV2ZW50cy1ob3N0LmpzXCJcbmltcG9ydCByZXN0QXJnc0Vycm9yIGZyb20gXCIuL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5cbi8qKlxuICogSHR0cFNlcnZlckNvbmZpZ3VyYXRpb24gdHlwZS5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuSHR0cFNlcnZlckNvbmZpZ3VyYXRpb259IEh0dHBTZXJ2ZXJDb25maWd1cmF0aW9uICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0FwcGxpY2F0aW9uIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7SHR0cFNlcnZlckNvbmZpZ3VyYXRpb259IFthcmdzLmh0dHBTZXJ2ZXJdIC0gSHR0cCBzZXJ2ZXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnR5cGUgLSBUeXBlIGlkZW50aWZpZXIuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7Y29uZmlndXJhdGlvbiwgaHR0cFNlcnZlciwgdHlwZSwgLi4ucmVzdEFyZ3N9KSB7XG4gICAgcmVzdEFyZ3NFcnJvcihyZXN0QXJncylcblxuICAgIGlmICghY29uZmlndXJhdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZFwiKVxuXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblxuXG4gICAgLyoqXG4gICAgICogU3RvcmVzIHRoZSBodHRwIHNlcnZlciBjb25maWd1cmF0aW9uIHZhbHVlLlxuICAgICAqIEB0eXBlIHtIdHRwU2VydmVyQ29uZmlndXJhdGlvbn0gKi9cbiAgICB0aGlzLmh0dHBTZXJ2ZXJDb25maWd1cmF0aW9uID0gaHR0cFNlcnZlciA/PyB7fVxuXG4gICAgdGhpcy5sb2dnZXIgPSBuZXcgTG9nZ2VyKHRoaXMpXG4gICAgdGhpcy5fdHlwZSA9IHR5cGVcbiAgICAvKipcbiAgICAgKiBTdG9yZXMgdGhlIGh0dHAgc2VydmVyIGxvY2sgdmFsdWUuXG4gICAgICogQHR5cGUge0h0dHBTZXJ2ZXJMb2NrIHwgdW5kZWZpbmVkfSAqL1xuICAgIHRoaXMuaHR0cFNlcnZlckxvY2sgPSB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCB0eXBlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSB0eXBlLlxuICAgKi9cbiAgZ2V0VHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGUgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGluaXRpYWxpemUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplKCkge1xuICAgIGNvbnN0IHJvdXRlcyA9IGF3YWl0IEFwcFJvdXRlcy5nZXRSb3V0ZXModGhpcy5jb25maWd1cmF0aW9uKVxuXG4gICAgYXdhaXQgdGhpcy5jb25maWd1cmF0aW9uLmluaXRpYWxpemUoe3R5cGU6IHRoaXMuZ2V0VHlwZSgpfSlcblxuICAgIFN5bmNBcGlDb250cm9sbGVyLm1vdW50RnJvbUNvbmZpZ3VyYXRpb24odGhpcy5jb25maWd1cmF0aW9uKVxuICAgIGF3YWl0IFN5bmNQdWJsaXNoZXIuc3RhcnRGcm9tQ29uZmlndXJhdGlvbih0aGlzLmNvbmZpZ3VyYXRpb24pXG5cbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24uc2V0Um91dGVzKHJvdXRlcylcblxuICAgIGlmICghdGhpcy5jb25maWd1cmF0aW9uLmlzRGF0YWJhc2VQb29sSW5pdGlhbGl6ZWQoKSkge1xuICAgICAgYXdhaXQgdGhpcy5jb25maWd1cmF0aW9uLmluaXRpYWxpemVEYXRhYmFzZVBvb2woKVxuICAgIH1cblxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgaXMgYWN0aXZlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIGFjdGl2ZS5cbiAgICovXG4gIGlzQWN0aXZlKCkge1xuICAgIGlmICh0aGlzLmh0dHBTZXJ2ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2ZXI/LmlzQWN0aXZlKClcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHJ1bi5cbiAgICogQHBhcmFtIHtmdW5jdGlvbigpIDogdm9pZH0gY2FsbGJhY2sgLSBDYWxsYmFjayBmdW5jdGlvbi5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIHJ1bihjYWxsYmFjaykge1xuICAgIGF3YWl0IHRoaXMuc3RhcnRIdHRwU2VydmVyKClcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjYWxsYmFjaygpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHRoaXMuc3RvcCgpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc3RhcnQgaHR0cCBzZXJ2ZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBzdGFydEh0dHBTZXJ2ZXIoKSB7XG4gICAgY29uc3Qge2NvbmZpZ3VyYXRpb259ID0gdGhpc1xuICAgIGNvbnN0IGh0dHBTZXJ2ZXJDb25maWd1cmF0aW9uID0ge1xuICAgICAgLi4uY29uZmlndXJhdGlvbi5odHRwU2VydmVyLFxuICAgICAgLi4udGhpcy5odHRwU2VydmVyQ29uZmlndXJhdGlvblxuICAgIH1cbiAgICBjb25zdCBwb3J0ID0gaHR0cFNlcnZlckNvbmZpZ3VyYXRpb24ucG9ydCA/PyAzMDA2XG4gICAgY29uc3QgaG9zdCA9IGh0dHBTZXJ2ZXJDb25maWd1cmF0aW9uLmhvc3RcblxuICAgIGF3YWl0IHRoaXMubG9nZ2VyLmRlYnVnKGBTdGFydGluZyBzZXJ2ZXIgb24gcG9ydCAke3BvcnR9YClcbiAgICBhd2FpdCB0aGlzLmFjcXVpcmVIdHRwU2VydmVyTG9jayh7Y29uZmlndXJhdGlvbiwgaG9zdDogaG9zdCA/PyBcIjAuMC4wLjBcIiwgcG9ydH0pXG4gICAgYXdhaXQgdGhpcy5zdGFydExvY2tlZEh0dHBTZXJ2ZXIoe2NvbmZpZ3VyYXRpb24sIGhvc3QsIGh0dHBTZXJ2ZXJDb25maWd1cmF0aW9uLCBwb3J0fSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHN0YXJ0IGxvY2tlZCBodHRwIHNlcnZlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBIVFRQIHNlcnZlciBzdGFydHVwIGFyZ3VtZW50cy5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFthcmdzLmhvc3RdIC0gSFRUUCBzZXJ2ZXIgaG9zdC5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCA/Pn0gYXJncy5odHRwU2VydmVyQ29uZmlndXJhdGlvbiAtIE1lcmdlZCBIVFRQIHNlcnZlciBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0ge251bWJlcn0gYXJncy5wb3J0IC0gSFRUUCBzZXJ2ZXIgcG9ydC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgdGhlIEhUVFAgc2VydmVyIGhhcyBzdGFydGVkLlxuICAgKi9cbiAgYXN5bmMgc3RhcnRMb2NrZWRIdHRwU2VydmVyKHtjb25maWd1cmF0aW9uLCBob3N0LCBodHRwU2VydmVyQ29uZmlndXJhdGlvbiwgcG9ydH0pIHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFjb25maWd1cmF0aW9uLmdldFdlYnNvY2tldEV2ZW50cygpKSB7XG4gICAgICAgIGNvbmZpZ3VyYXRpb24uc2V0V2Vic29ja2V0RXZlbnRzKC8qKiBAdHlwZSB7P30gKi8gKHdlYnNvY2tldEV2ZW50c0hvc3QpKVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBjb25maWd1cmF0aW9uLmNvbm5lY3RCZWFjb24oe3BlZXJUeXBlOiBcInNlcnZlclwifSlcblxuICAgICAgdGhpcy5odHRwU2VydmVyID0gdGhpcy5jcmVhdGVIdHRwU2VydmVyKHtcbiAgICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgICAgaG9zdCxcbiAgICAgICAgaW5Qcm9jZXNzOiBodHRwU2VydmVyQ29uZmlndXJhdGlvbi5pblByb2Nlc3MsXG4gICAgICAgIG1heFdvcmtlcnM6IGh0dHBTZXJ2ZXJDb25maWd1cmF0aW9uLm1heFdvcmtlcnMsXG4gICAgICAgIHBvcnQsXG4gICAgICAgIHdvcmtlcnM6IGh0dHBTZXJ2ZXJDb25maWd1cmF0aW9uLndvcmtlcnNcbiAgICAgIH0pXG4gICAgICB0aGlzLmh0dHBTZXJ2ZXIuZXZlbnRzLm9uKFwiY2xvc2VcIiwgdGhpcy5vbkh0dHBTZXJ2ZXJDbG9zZSlcbiAgICAgIGNvbmZpZ3VyYXRpb24uX2h0dHBTZXJ2ZXJJbnN0YW5jZSA9IHRoaXMuaHR0cFNlcnZlclxuXG4gICAgICBhd2FpdCB0aGlzLmh0dHBTZXJ2ZXIuc3RhcnQoKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlbGVhc2VIdHRwU2VydmVyTG9jaygpXG4gICAgICBjb25maWd1cmF0aW9uLl9odHRwU2VydmVySW5zdGFuY2UgPSB1bmRlZmluZWRcblxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyBhY3F1aXJlIGh0dHAgc2VydmVyIGxvY2suXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gTG9jayBhY3F1aXNpdGlvbiBhcmd1bWVudHMuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmhvc3QgLSBIVFRQIHNlcnZlciBob3N0LlxuICAgKiBAcGFyYW0ge251bWJlcn0gYXJncy5wb3J0IC0gSFRUUCBzZXJ2ZXIgcG9ydC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgYWNxdWlyaW5nIHRoZSBzZXJ2ZXIgbG9jayB3aGVuIG5lZWRlZC5cbiAgICovXG4gIGFzeW5jIGFjcXVpcmVIdHRwU2VydmVyTG9jayh7Y29uZmlndXJhdGlvbiwgaG9zdCwgcG9ydH0pIHtcbiAgICBpZiAodGhpcy5nZXRUeXBlKCkgPT09IFwidGVzdC1ydW5uZXJcIikgcmV0dXJuXG5cbiAgICBjb25zdCBodHRwU2VydmVyTG9jayA9IG5ldyBIdHRwU2VydmVyTG9jayh7Y29uZmlndXJhdGlvbiwgaG9zdCwgcG9ydH0pXG4gICAgYXdhaXQgaHR0cFNlcnZlckxvY2suYWNxdWlyZSgpXG4gICAgdGhpcy5odHRwU2VydmVyTG9jayA9IGh0dHBTZXJ2ZXJMb2NrXG4gIH1cblxuICAvKipcbiAgICogUnVucyBjcmVhdGUgaHR0cCBzZXJ2ZXIuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gSFRUUCBzZXJ2ZXIgYXJndW1lbnRzLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3MuaG9zdF0gLSBIb3N0LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmluUHJvY2Vzc10gLSBSdW4gSFRUUCBoYW5kbGVycyBpbiB0aGUgbWFpbiB0aHJlYWQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJncy5tYXhXb3JrZXJzXSAtIE1heCB3b3JrZXJzLlxuICAgKiBAcGFyYW0ge251bWJlcn0gYXJncy5wb3J0IC0gUG9ydC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFthcmdzLndvcmtlcnNdIC0gV29ya2VyIGNvdW50LlxuICAgKiBAcmV0dXJucyB7SHR0cFNlcnZlcn0gLSBIVFRQIHNlcnZlciBpbnN0YW5jZS5cbiAgICovXG4gIGNyZWF0ZUh0dHBTZXJ2ZXIoe2NvbmZpZ3VyYXRpb24sIGhvc3QsIGluUHJvY2VzcywgbWF4V29ya2VycywgcG9ydCwgd29ya2Vyc30pIHtcbiAgICByZXR1cm4gbmV3IEh0dHBTZXJ2ZXIoe2NvbmZpZ3VyYXRpb24sIGhvc3QsIGluUHJvY2VzcywgbWF4V29ya2VycywgcG9ydCwgd29ya2Vyc30pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzdG9wLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgc3RvcCgpIHtcbiAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZyhcIlN0b3BwaW5nIHNlcnZlclwiKVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuaHR0cFNlcnZlcj8uc3RvcCgpXG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uX2h0dHBTZXJ2ZXJJbnN0YW5jZSA9IHVuZGVmaW5lZFxuICAgICAgYXdhaXQgdGhpcy5jb25maWd1cmF0aW9uLmRpc2Nvbm5lY3RCZWFjb24oKVxuICAgICAgYXdhaXQgdGhpcy5jb25maWd1cmF0aW9uLmNsb3NlRGF0YWJhc2VDb25uZWN0aW9ucygpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHRoaXMucmVsZWFzZUh0dHBTZXJ2ZXJMb2NrKClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyByZWxlYXNlIGh0dHAgc2VydmVyIGxvY2suXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIGFmdGVyIHRoZSBIVFRQIHNlcnZlciBsb2NrIGhhcyBiZWVuIHJlbGVhc2VkLlxuICAgKi9cbiAgYXN5bmMgcmVsZWFzZUh0dHBTZXJ2ZXJMb2NrKCkge1xuICAgIGNvbnN0IHtodHRwU2VydmVyTG9ja30gPSB0aGlzXG5cbiAgICB0aGlzLmh0dHBTZXJ2ZXJMb2NrID0gdW5kZWZpbmVkXG4gICAgaWYgKGh0dHBTZXJ2ZXJMb2NrKSBhd2FpdCBodHRwU2VydmVyTG9jay5yZWxlYXNlKClcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBodHRwIHNlcnZlciBjbG9zZS5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgb25IdHRwU2VydmVyQ2xvc2UgPSAoKSA9PiB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJIVFRQIHNlcnZlciBjbG9zZWRcIilcblxuICAgIGlmICh0aGlzLndhaXRSZXNvbHZlKSB7XG4gICAgICB0aGlzLndhaXRSZXNvbHZlKClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyB3YWl0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgd2FpdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMud2FpdFJlc29sdmUgPSByZXNvbHZlXG4gICAgfSlcbiAgfVxufVxuIl19
@@ -0,0 +1,71 @@
1
+ /**
2
+ * One declarative broadcast delivered through an injected broadcaster. The
3
+ * replay service resolves it with replay args ({actor, applyResult, mutation,
4
+ * ...}) and the sync publisher with publish args
5
+ * ({@link import("./sync-publisher-types.js").SyncPublishBroadcastArgs}).
6
+ * @template [Args=Record<string, ?>]
7
+ * @typedef {object} DeclaredBroadcast
8
+ * @property {string | ((args: Args) => string)} channel - Channel name or resolver.
9
+ * @property {(args: Args) => Record<string, ?>} broadcastParams - Channel routing params.
10
+ * @property {(args: Args) => ?} body - Broadcast body.
11
+ * @property {(args: Args) => boolean} [when] - Optional gate; skipped when it returns false.
12
+ */
13
+ /**
14
+ * Upserts one sync/change row through the shared sync-model contract: an
15
+ * existing row for the resource identity is reassigned and re-sequenced
16
+ * through `advanceServerSequence()` (the change-feed sequence contract) so
17
+ * feed cursors pick the change up again; otherwise a new row is created
18
+ * (creates allocate their sequence through the model's own hooks). Shared by
19
+ * the replay service's model-backed persistence and the server sync
20
+ * publisher.
21
+ * @param {{attributes: Record<string, ?>, existingSync: ?, syncModel: ?}} args - Row attributes, existing row for the resource identity, and the sync model.
22
+ * @returns {Promise<?>} Upserted sync row.
23
+ */
24
+ export function upsertSyncRow({ attributes, existingSync, syncModel }: {
25
+ attributes: Record<string, unknown>;
26
+ existingSync: unknown;
27
+ syncModel: unknown;
28
+ }): Promise<unknown>;
29
+ /**
30
+ * Delivers declarative broadcasts through an injected broadcaster: each
31
+ * broadcast's `when` gate is checked, then channel/params/body are resolved
32
+ * from the caller's args. Shared by the replay service's default
33
+ * afterReplayMutation and the server sync publisher.
34
+ * @template Args
35
+ * @param {{args: Args, broadcaster: (broadcast: {channel: string, params: Record<string, ?>, body: ?}) => Promise<void>, broadcasts: Array<DeclaredBroadcast<Args>>}} deliveryArgs - Broadcast resolver args, broadcaster, and declared broadcasts.
36
+ * @returns {Promise<void>}
37
+ */
38
+ export function deliverDeclaredBroadcasts<Args>({ args, broadcaster, broadcasts }: {
39
+ args: Args;
40
+ broadcaster: (broadcast: {
41
+ channel: string;
42
+ params: Record<string, unknown>;
43
+ body: unknown;
44
+ }) => Promise<void>;
45
+ broadcasts: Array<DeclaredBroadcast<Args>>;
46
+ }): Promise<void>;
47
+ /**
48
+ * One declarative broadcast delivered through an injected broadcaster. The
49
+ * replay service resolves it with replay args ({actor, applyResult, mutation,
50
+ * ...}) and the sync publisher with publish args
51
+ * ({@link import ("./sync-publisher-types.js").SyncPublishBroadcastArgs}).
52
+ */
53
+ export type DeclaredBroadcast<Args = Record<string, any>> = {
54
+ /**
55
+ * - Channel name or resolver.
56
+ */
57
+ channel: string | ((args: Args) => string);
58
+ /**
59
+ * - Channel routing params.
60
+ */
61
+ broadcastParams: (args: Args) => Record<string, unknown>;
62
+ /**
63
+ * - Broadcast body.
64
+ */
65
+ body: (args: Args) => unknown;
66
+ /**
67
+ * - Optional gate; skipped when it returns false.
68
+ */
69
+ when?: ((args: Args) => boolean) | undefined;
70
+ };
71
+ //# sourceMappingURL=sync-change-fanout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-change-fanout.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-change-fanout.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;GAUG;AACH,uEAHW;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,CAAC;IAAC,YAAY,EAAE,OAAC,CAAC;IAAC,SAAS,EAAE,OAAC,CAAA;CAAC,GAC5D,OAAO,CAAC,OAAC,CAAC,CAYtB;AAED;;;;;;;;GAQG;AACH,0CAJa,IAAI,qCACN;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,CAAC,SAAS,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,CAAC;QAAC,IAAI,EAAE,OAAC,CAAA;KAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;CAAC,GACxJ,OAAO,CAAC,IAAI,CAAC,CAYzB;;;;;;;8BAlDa,IAAI;;;;aAEJ,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;;;;qBACjC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;;;;UACjC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAC;;;;mBACV,IAAI,KAAK,OAAO"}
@@ -0,0 +1,54 @@
1
+ // @ts-check
2
+ /**
3
+ * One declarative broadcast delivered through an injected broadcaster. The
4
+ * replay service resolves it with replay args ({actor, applyResult, mutation,
5
+ * ...}) and the sync publisher with publish args
6
+ * ({@link import("./sync-publisher-types.js").SyncPublishBroadcastArgs}).
7
+ * @template [Args=Record<string, ?>]
8
+ * @typedef {object} DeclaredBroadcast
9
+ * @property {string | ((args: Args) => string)} channel - Channel name or resolver.
10
+ * @property {(args: Args) => Record<string, ?>} broadcastParams - Channel routing params.
11
+ * @property {(args: Args) => ?} body - Broadcast body.
12
+ * @property {(args: Args) => boolean} [when] - Optional gate; skipped when it returns false.
13
+ */
14
+ /**
15
+ * Upserts one sync/change row through the shared sync-model contract: an
16
+ * existing row for the resource identity is reassigned and re-sequenced
17
+ * through `advanceServerSequence()` (the change-feed sequence contract) so
18
+ * feed cursors pick the change up again; otherwise a new row is created
19
+ * (creates allocate their sequence through the model's own hooks). Shared by
20
+ * the replay service's model-backed persistence and the server sync
21
+ * publisher.
22
+ * @param {{attributes: Record<string, ?>, existingSync: ?, syncModel: ?}} args - Row attributes, existing row for the resource identity, and the sync model.
23
+ * @returns {Promise<?>} Upserted sync row.
24
+ */
25
+ export async function upsertSyncRow({ attributes, existingSync, syncModel }) {
26
+ if (existingSync) {
27
+ existingSync.assign(attributes);
28
+ await existingSync.advanceServerSequence();
29
+ await existingSync.save();
30
+ return existingSync;
31
+ }
32
+ return await syncModel.create(attributes);
33
+ }
34
+ /**
35
+ * Delivers declarative broadcasts through an injected broadcaster: each
36
+ * broadcast's `when` gate is checked, then channel/params/body are resolved
37
+ * from the caller's args. Shared by the replay service's default
38
+ * afterReplayMutation and the server sync publisher.
39
+ * @template Args
40
+ * @param {{args: Args, broadcaster: (broadcast: {channel: string, params: Record<string, ?>, body: ?}) => Promise<void>, broadcasts: Array<DeclaredBroadcast<Args>>}} deliveryArgs - Broadcast resolver args, broadcaster, and declared broadcasts.
41
+ * @returns {Promise<void>}
42
+ */
43
+ export async function deliverDeclaredBroadcasts({ args, broadcaster, broadcasts }) {
44
+ for (const broadcast of broadcasts) {
45
+ if (broadcast.when && !broadcast.when(args))
46
+ continue;
47
+ await broadcaster({
48
+ body: broadcast.body(args),
49
+ channel: typeof broadcast.channel === "function" ? broadcast.channel(args) : broadcast.channel,
50
+ params: broadcast.broadcastParams(args)
51
+ });
52
+ }
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1jaGFuZ2UtZmFub3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N5bmMvc3luYy1jaGFuZ2UtZmFub3V0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWjs7Ozs7Ozs7Ozs7R0FXRztBQUVIOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFDO0lBQ3ZFLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUMvQixNQUFNLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO1FBQzFDLE1BQU0sWUFBWSxDQUFDLElBQUksRUFBRSxDQUFBO1FBRXpCLE9BQU8sWUFBWSxDQUFBO0lBQ3JCLENBQUM7SUFFRCxPQUFPLE1BQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QixDQUFDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUM7SUFDN0UsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNuQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUFFLFNBQVE7UUFFckQsTUFBTSxXQUFXLENBQUM7WUFDaEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxPQUFPLFNBQVMsQ0FBQyxPQUFPLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTztZQUM5RixNQUFNLEVBQUUsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7U0FDeEMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyoqXG4gKiBPbmUgZGVjbGFyYXRpdmUgYnJvYWRjYXN0IGRlbGl2ZXJlZCB0aHJvdWdoIGFuIGluamVjdGVkIGJyb2FkY2FzdGVyLiBUaGVcbiAqIHJlcGxheSBzZXJ2aWNlIHJlc29sdmVzIGl0IHdpdGggcmVwbGF5IGFyZ3MgKHthY3RvciwgYXBwbHlSZXN1bHQsIG11dGF0aW9uLFxuICogLi4ufSkgYW5kIHRoZSBzeW5jIHB1Ymxpc2hlciB3aXRoIHB1Ymxpc2ggYXJnc1xuICogKHtAbGluayBpbXBvcnQoXCIuL3N5bmMtcHVibGlzaGVyLXR5cGVzLmpzXCIpLlN5bmNQdWJsaXNoQnJvYWRjYXN0QXJnc30pLlxuICogQHRlbXBsYXRlIFtBcmdzPVJlY29yZDxzdHJpbmcsID8+XVxuICogQHR5cGVkZWYge29iamVjdH0gRGVjbGFyZWRCcm9hZGNhc3RcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgKChhcmdzOiBBcmdzKSA9PiBzdHJpbmcpfSBjaGFubmVsIC0gQ2hhbm5lbCBuYW1lIG9yIHJlc29sdmVyLlxuICogQHByb3BlcnR5IHsoYXJnczogQXJncykgPT4gUmVjb3JkPHN0cmluZywgPz59IGJyb2FkY2FzdFBhcmFtcyAtIENoYW5uZWwgcm91dGluZyBwYXJhbXMuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiBBcmdzKSA9PiA/fSBib2R5IC0gQnJvYWRjYXN0IGJvZHkuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiBBcmdzKSA9PiBib29sZWFufSBbd2hlbl0gLSBPcHRpb25hbCBnYXRlOyBza2lwcGVkIHdoZW4gaXQgcmV0dXJucyBmYWxzZS5cbiAqL1xuXG4vKipcbiAqIFVwc2VydHMgb25lIHN5bmMvY2hhbmdlIHJvdyB0aHJvdWdoIHRoZSBzaGFyZWQgc3luYy1tb2RlbCBjb250cmFjdDogYW5cbiAqIGV4aXN0aW5nIHJvdyBmb3IgdGhlIHJlc291cmNlIGlkZW50aXR5IGlzIHJlYXNzaWduZWQgYW5kIHJlLXNlcXVlbmNlZFxuICogdGhyb3VnaCBgYWR2YW5jZVNlcnZlclNlcXVlbmNlKClgICh0aGUgY2hhbmdlLWZlZWQgc2VxdWVuY2UgY29udHJhY3QpIHNvXG4gKiBmZWVkIGN1cnNvcnMgcGljayB0aGUgY2hhbmdlIHVwIGFnYWluOyBvdGhlcndpc2UgYSBuZXcgcm93IGlzIGNyZWF0ZWRcbiAqIChjcmVhdGVzIGFsbG9jYXRlIHRoZWlyIHNlcXVlbmNlIHRocm91Z2ggdGhlIG1vZGVsJ3Mgb3duIGhvb2tzKS4gU2hhcmVkIGJ5XG4gKiB0aGUgcmVwbGF5IHNlcnZpY2UncyBtb2RlbC1iYWNrZWQgcGVyc2lzdGVuY2UgYW5kIHRoZSBzZXJ2ZXIgc3luY1xuICogcHVibGlzaGVyLlxuICogQHBhcmFtIHt7YXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgPz4sIGV4aXN0aW5nU3luYzogPywgc3luY01vZGVsOiA/fX0gYXJncyAtIFJvdyBhdHRyaWJ1dGVzLCBleGlzdGluZyByb3cgZm9yIHRoZSByZXNvdXJjZSBpZGVudGl0eSwgYW5kIHRoZSBzeW5jIG1vZGVsLlxuICogQHJldHVybnMge1Byb21pc2U8Pz59IFVwc2VydGVkIHN5bmMgcm93LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBzZXJ0U3luY1Jvdyh7YXR0cmlidXRlcywgZXhpc3RpbmdTeW5jLCBzeW5jTW9kZWx9KSB7XG4gIGlmIChleGlzdGluZ1N5bmMpIHtcbiAgICBleGlzdGluZ1N5bmMuYXNzaWduKGF0dHJpYnV0ZXMpXG4gICAgYXdhaXQgZXhpc3RpbmdTeW5jLmFkdmFuY2VTZXJ2ZXJTZXF1ZW5jZSgpXG4gICAgYXdhaXQgZXhpc3RpbmdTeW5jLnNhdmUoKVxuXG4gICAgcmV0dXJuIGV4aXN0aW5nU3luY1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IHN5bmNNb2RlbC5jcmVhdGUoYXR0cmlidXRlcylcbn1cblxuLyoqXG4gKiBEZWxpdmVycyBkZWNsYXJhdGl2ZSBicm9hZGNhc3RzIHRocm91Z2ggYW4gaW5qZWN0ZWQgYnJvYWRjYXN0ZXI6IGVhY2hcbiAqIGJyb2FkY2FzdCdzIGB3aGVuYCBnYXRlIGlzIGNoZWNrZWQsIHRoZW4gY2hhbm5lbC9wYXJhbXMvYm9keSBhcmUgcmVzb2x2ZWRcbiAqIGZyb20gdGhlIGNhbGxlcidzIGFyZ3MuIFNoYXJlZCBieSB0aGUgcmVwbGF5IHNlcnZpY2UncyBkZWZhdWx0XG4gKiBhZnRlclJlcGxheU11dGF0aW9uIGFuZCB0aGUgc2VydmVyIHN5bmMgcHVibGlzaGVyLlxuICogQHRlbXBsYXRlIEFyZ3NcbiAqIEBwYXJhbSB7e2FyZ3M6IEFyZ3MsIGJyb2FkY2FzdGVyOiAoYnJvYWRjYXN0OiB7Y2hhbm5lbDogc3RyaW5nLCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsID8+LCBib2R5OiA/fSkgPT4gUHJvbWlzZTx2b2lkPiwgYnJvYWRjYXN0czogQXJyYXk8RGVjbGFyZWRCcm9hZGNhc3Q8QXJncz4+fX0gZGVsaXZlcnlBcmdzIC0gQnJvYWRjYXN0IHJlc29sdmVyIGFyZ3MsIGJyb2FkY2FzdGVyLCBhbmQgZGVjbGFyZWQgYnJvYWRjYXN0cy5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsaXZlckRlY2xhcmVkQnJvYWRjYXN0cyh7YXJncywgYnJvYWRjYXN0ZXIsIGJyb2FkY2FzdHN9KSB7XG4gIGZvciAoY29uc3QgYnJvYWRjYXN0IG9mIGJyb2FkY2FzdHMpIHtcbiAgICBpZiAoYnJvYWRjYXN0LndoZW4gJiYgIWJyb2FkY2FzdC53aGVuKGFyZ3MpKSBjb250aW51ZVxuXG4gICAgYXdhaXQgYnJvYWRjYXN0ZXIoe1xuICAgICAgYm9keTogYnJvYWRjYXN0LmJvZHkoYXJncyksXG4gICAgICBjaGFubmVsOiB0eXBlb2YgYnJvYWRjYXN0LmNoYW5uZWwgPT09IFwiZnVuY3Rpb25cIiA/IGJyb2FkY2FzdC5jaGFubmVsKGFyZ3MpIDogYnJvYWRjYXN0LmNoYW5uZWwsXG4gICAgICBwYXJhbXM6IGJyb2FkY2FzdC5icm9hZGNhc3RQYXJhbXMoYXJncylcbiAgICB9KVxuICB9XG59XG4iXX0=
@@ -77,7 +77,7 @@ export type SyncClientResourceConfig = {
77
77
  record: unknown;
78
78
  }) => Record<string, unknown>) | undefined;
79
79
  /**
80
- * - Enables automatic mutation tracking through model lifecycle callbacks.
80
+ * - Automatic mutation tracking policy. On by default (creates and updates queue automatically); `false` opts the resource out, `true` adds destroys, `{operations}` narrows the tracked operations.
81
81
  */
82
82
  track?: boolean | {
83
83
  operations: Array<"create" | "update" | "destroy">;
@@ -121,6 +121,10 @@ export type ModelSyncDeclarationConfig = {
121
121
  * - Extra local-only attributes merged with the derived primary key, createdAt/updatedAt, and sync bookkeeping attributes.
122
122
  */
123
123
  localOnlyAttributes?: string[] | undefined;
124
+ /**
125
+ * - Server-side publish declaration consumed by `SyncPublisher.fromConfiguration(...)` on the backend; ignored by the client.
126
+ */
127
+ publish?: import("./sync-publisher-types.js").SyncPublishDeclaration | undefined;
124
128
  /**
125
129
  * - Sync type flag or mapper (see SyncClientResourceConfig).
126
130
  */
@@ -129,7 +133,7 @@ export type ModelSyncDeclarationConfig = {
129
133
  record: unknown;
130
134
  }) => string) | undefined;
131
135
  /**
132
- * - Enables automatic mutation tracking; an array is shorthand for {operations}.
136
+ * - Automatic mutation tracking policy; an array is shorthand for {operations}. On by default (creates and updates queue automatically); `false` opts the model out (for models written by non-user flows), `true` adds destroys.
133
137
  */
134
138
  track?: boolean | ("update" | "destroy" | "create")[] | {
135
139
  operations: Array<"create" | "update" | "destroy">;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-client-types.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client-types.js"],"names":[],"mappings":";;;;;;;gBAKc,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;;;;kBACjB,MAAM;;;;;;;;;;;aAQN,MAAM;;;;;;;;;;;;;gBAON,OAAC;;;;;;;;;;;;iBAED,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;0BACrE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,qBAAqB,CAAC;;;;iBAC9E,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;;;;;;;;;kCAGlD;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM;;;;0BAC9E;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;;;;;oBAC7D,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;iBAS7D,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;iBAGrE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;0BACrE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,qBAAqB,CAAC;;;;;;;;kCAE3D;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM;;;;;oBACrB,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;;;;;0BAC/F;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;;;;;;mCAIpF,OAAO,GAAG,0BAA0B;;;;;;;;;;;;;;2BAQ7B;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAC,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;;;;;;;gBAE9E,OAAC;;;;;;;;;;yBAOD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;;;;;;;;mBAE9B,OAAO,qBAAqB,EAAE,OAAO;;;;sBAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;;;;2BACzB;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAC,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;;;uBACtE,KAAK,KAAK,IAAI;;;;iBACtB,CAAC,OAAO,EAAE,OAAO,4BAA4B,EAAE,kBAAkB,GAAG;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAC,KAAK,OAAO,CAAC,OAAO,4BAA4B,EAAE,mBAAmB,CAAC;;;;gBACtK,CAAC,OAAO,EAAE;QAAC,mBAAmB,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,CAAC,CAAA;KAAC,KAAK,OAAO,CAAC,OAAO,4BAA4B,EAAE,kBAAkB,CAAC;;;;;;;;eAE7I,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC;;;;eACxC,OAAC"}
1
+ {"version":3,"file":"sync-client-types.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client-types.js"],"names":[],"mappings":";;;;;;;gBAKc,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;;;;kBACjB,MAAM;;;;;;;;;;;aAQN,MAAM;;;;;;;;;;;;;gBAON,OAAC;;;;;;;;;;;;iBAED,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;0BACrE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,qBAAqB,CAAC;;;;iBAC9E,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;;;;;;;;;kCAGlD;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM;;;;0BAC9E;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;;;;;oBAC7D,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;iBAS7D,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;iBAGrE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,YAAY,CAAC;;;;0BACrE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,qBAAqB,CAAC;;;;;;;;;;;;kCAG3D;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM;;;;;oBACrB,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;;;;;0BAC/F;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;;;;;;mCAIpF,OAAO,GAAG,0BAA0B;;;;;;;;;;;;;;2BAQ7B;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAC,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;;;;;;;gBAE9E,OAAC;;;;;;;;;;yBAOD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;;;;;;;;mBAE9B,OAAO,qBAAqB,EAAE,OAAO;;;;sBAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;;;;2BACzB;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAC,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;;;uBACtE,KAAK,KAAK,IAAI;;;;iBACtB,CAAC,OAAO,EAAE,OAAO,4BAA4B,EAAE,kBAAkB,GAAG;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAC,KAAK,OAAO,CAAC,OAAO,4BAA4B,EAAE,mBAAmB,CAAC;;;;gBACtK,CAAC,OAAO,EAAE;QAAC,mBAAmB,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,CAAC,CAAA;KAAC,KAAK,OAAO,CAAC,OAAO,4BAA4B,EAAE,kBAAkB,CAAC;;;;;;;;eAE7I,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC;;;;eACxC,OAAC"}
@@ -1,3 +1,3 @@
1
1
  // @ts-check
2
2
  export {};
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1jbGllbnQtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3luYy9zeW5jLWNsaWVudC10eXBlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogQ2xpZW50LWRlY2xhcmVkIHN5bmMgc2NvcGUgc2VyaWFsaXplZCBmcm9tIGEgbW9kZWwgcXVlcnkuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTZXJpYWxpemVkU3luY1Njb3BlXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsID8+fSBjb25kaXRpb25zIC0gUGxhaW4gYXR0cmlidXRlIGNvbmRpdGlvbnMgZnJvbSB0aGUgcXVlcnkuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcmVzb3VyY2VUeXBlIC0gUmVzb3VyY2UvbW9kZWwgbmFtZSB0aGUgc2NvcGUgd2FzIGRlY2xhcmVkIGZvci5cbiAqL1xuXG4vKipcbiAqIFN0YXRpYyByZWFsdGltZSBjaGFubmVsIGRlY2xhcmF0aW9uIG9uIGEgbW9kZWwncyBgc3RhdGljIHN5bmNgLCBmb3IgY2hhbm5lbHNcbiAqIHdob3NlIG5hbWUgYW5kIHBhcmFtcyBhcmUgc3RhdGljLiBDaGFubmVscyBuZWVkaW5nIHJ1bnRpbWUgcGFyYW1zIChsaWtlXG4gKiBldmVudElkKSBiZWxvbmcgaW4gdGhlIGBzeW5jLmNsaWVudC5yZWFsdGltZS5jaGFubmVsc2AgY2FsbGJhY2sgaW5zdGVhZC5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IE1vZGVsU3luY1JlYWx0aW1lRGVjbGFyYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjaGFubmVsIC0gU2VydmVyIGNoYW5uZWwgbmFtZSB0byBzdWJzY3JpYmUuXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsID8+fSBbcGFyYW1zXSAtIFN0YXRpYyBzdWJzY3JpYmUgcGFyYW1zLiBUaGUgZnJhbWV3b3JrIGluamVjdHMgYGF1dGhlbnRpY2F0aW9uVG9rZW5gIGF1dG9tYXRpY2FsbHkuXG4gKi9cblxuLyoqXG4gKiBEZWNsYXJhdGl2ZSBwZXItcmVzb3VyY2Ugc3luYyBwb2xpY3kuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTeW5jQ2xpZW50UmVzb3VyY2VDb25maWdcbiAqIEBwcm9wZXJ0eSB7P30gbW9kZWxDbGFzcyAtIExvY2FsIG1vZGVsIGNsYXNzIGZvciB0aGlzIHJlc291cmNlLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJhdHRyaWJ1dGVzXCJdfSBbYXR0cmlidXRlc10gLSBQdWxsLWFwcGx5IGF0dHJpYnV0ZSBtYXBwZXIuIFJlcXVpcmVkIGZvciByZXNvdXJjZXMgdGhhdCByZWNlaXZlIHB1bGxlZCBjaGFuZ2VzLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJmaW5kUmVjb3JkXCJdfSBbZmluZFJlY29yZF0gLSBDdXN0b20gcHVsbC1hcHBseSByZWNvcmQgcmVzb2x2ZXIuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImZpbmRSZWNvcmRGb3JEZWxldGVcIl19IFtmaW5kUmVjb3JkRm9yRGVsZXRlXSAtIEN1c3RvbSBwdWxsLWFwcGx5IGRlbGV0ZSByZXNvbHZlci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiYWZ0ZXJBcHBseVwiXX0gW2FmdGVyQXBwbHldIC0gUG9zdC1hcHBseSBob29rLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2Jvb2xlYW5BdHRyaWJ1dGVzXSAtIEF0dHJpYnV0ZXMgY29lcmNlZCB0aHJvdWdoIHN5bmMgYm9vbGVhbiBwYXJzaW5nIHdoZW4gcXVldWVpbmcuXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBbbG9jYWxPbmx5QXR0cmlidXRlc10gLSBBdHRyaWJ1dGVzIHN0cmlwcGVkIGZyb20gcXVldWVkIHBheWxvYWRzLlxuICogQHByb3BlcnR5IHtcInVwc2VydFwiIHwgKChhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6ID99KSA9PiBzdHJpbmcpfSBbc3luY1R5cGVdIC0gTWFwcyBhIG11dGF0aW9uIG9wZXJhdGlvbiB0byBhIHN5bmMgdHlwZS4gVGhlIFwidXBzZXJ0XCIgZmxhZyBxdWV1ZXMgY3JlYXRlcyBhbmQgdXBkYXRlcyBhcyBcInVwZGF0ZVwiIHJvd3MgKHRoZSBzZXJ2ZXIgdXBzZXJ0cyBieSByZXNvdXJjZSBpZCkgYW5kIGRlc3Ryb3lzIGFzIFwiZGVsZXRlXCIuIERlZmF1bHRzIHRvIHRoZSBvcGVyYXRpb24gbmFtZSB3aXRoIGRlc3Ryb3kgbWFwcGVkIHRvIFwiZGVsZXRlXCIuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6ID99KSA9PiBSZWNvcmQ8c3RyaW5nLCA/Pn0gW3RyYWNrZWREYXRhXSAtIEN1c3RvbSBxdWV1ZWQtcGF5bG9hZCBidWlsZGVyIGZvciB0cmFja2VkIG11dGF0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IHtvcGVyYXRpb25zOiBBcnJheTxcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiPn19IFt0cmFja10gLSBFbmFibGVzIGF1dG9tYXRpYyBtdXRhdGlvbiB0cmFja2luZyB0aHJvdWdoIG1vZGVsIGxpZmVjeWNsZSBjYWxsYmFja3MuXG4gKiBAcHJvcGVydHkge01vZGVsU3luY1JlYWx0aW1lRGVjbGFyYXRpb259IFtyZWFsdGltZV0gLSBTdGF0aWMgcmVhbHRpbWUgY2hhbm5lbCB0aGlzIHJlc291cmNlIHN1YnNjcmliZXMgdGhyb3VnaCBgc3Vic2NyaWJlUmVhbHRpbWUoLi4uKWAuXG4gKi9cblxuLyoqXG4gKiBNb2RlbC1sZXZlbCBjbGllbnQgc3luYyBkZWNsYXJhdGlvbiByZWFkIGZyb20gYHN0YXRpYyBzeW5jYCBieVxuICogYFN5bmNDbGllbnQuZnJvbUNvbmZpZ3VyYXRpb24oLi4uKWAuIGB0cnVlYCBvcHRzIHRoZSBtb2RlbCBpbiB3aXRoIGFsbFxuICogZGVmYXVsdHM7IGFuIG9iamVjdCBjdXN0b21pemVzIHRoZSBkZXJpdmVkIHJlc291cmNlIGNvbmZpZy5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IE1vZGVsU3luY0RlY2xhcmF0aW9uQ29uZmlnXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImFmdGVyQXBwbHlcIl19IFthZnRlckFwcGx5XSAtIFBvc3QtYXBwbHkgaG9vay5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiYXR0cmlidXRlc1wiXX0gW2F0dHJpYnV0ZXNdIC0gUHVsbC1hcHBseSBhdHRyaWJ1dGUgbWFwcGVyLiBSZXF1aXJlZCBmb3IgcmVzb3VyY2VzIHRoYXQgcmVjZWl2ZSBwdWxsZWQgY2hhbmdlcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IFtib29sZWFuQXR0cmlidXRlc10gLSBFeHRyYSBib29sZWFuIGF0dHJpYnV0ZXMgbWVyZ2VkIHdpdGggdGhlIGJvb2xlYW4gY29sdW1ucyBkZXJpdmVkIGZyb20gY29sdW1uIHR5cGVzLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJmaW5kUmVjb3JkXCJdfSBbZmluZFJlY29yZF0gLSBDdXN0b20gcHVsbC1hcHBseSByZWNvcmQgcmVzb2x2ZXIuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImZpbmRSZWNvcmRGb3JEZWxldGVcIl19IFtmaW5kUmVjb3JkRm9yRGVsZXRlXSAtIEN1c3RvbSBwdWxsLWFwcGx5IGRlbGV0ZSByZXNvbHZlci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IFtsb2NhbE9ubHlBdHRyaWJ1dGVzXSAtIEV4dHJhIGxvY2FsLW9ubHkgYXR0cmlidXRlcyBtZXJnZWQgd2l0aCB0aGUgZGVyaXZlZCBwcmltYXJ5IGtleSwgY3JlYXRlZEF0L3VwZGF0ZWRBdCwgYW5kIHN5bmMgYm9va2tlZXBpbmcgYXR0cmlidXRlcy5cbiAqIEBwcm9wZXJ0eSB7XCJ1cHNlcnRcIiB8ICgoYXJnczoge29wZXJhdGlvbjogXCJjcmVhdGVcIiB8IFwidXBkYXRlXCIgfCBcImRlc3Ryb3lcIiwgcmVjb3JkOiA/fSkgPT4gc3RyaW5nKX0gW3N5bmNUeXBlXSAtIFN5bmMgdHlwZSBmbGFnIG9yIG1hcHBlciAoc2VlIFN5bmNDbGllbnRSZXNvdXJjZUNvbmZpZykuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBBcnJheTxcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiPiB8IHtvcGVyYXRpb25zOiBBcnJheTxcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiPn19IFt0cmFja10gLSBFbmFibGVzIGF1dG9tYXRpYyBtdXRhdGlvbiB0cmFja2luZzsgYW4gYXJyYXkgaXMgc2hvcnRoYW5kIGZvciB7b3BlcmF0aW9uc30uXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6ID99KSA9PiBSZWNvcmQ8c3RyaW5nLCA/Pn0gW3RyYWNrZWREYXRhXSAtIEN1c3RvbSBxdWV1ZWQtcGF5bG9hZCBidWlsZGVyIGZvciB0cmFja2VkIG11dGF0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7TW9kZWxTeW5jUmVhbHRpbWVEZWNsYXJhdGlvbn0gW3JlYWx0aW1lXSAtIFN0YXRpYyByZWFsdGltZSBjaGFubmVsIHRoaXMgcmVzb3VyY2Ugc3Vic2NyaWJlcyB0aHJvdWdoIGBzdWJzY3JpYmVSZWFsdGltZSguLi4pYDsgdXNlIHRoZSBgc3luYy5jbGllbnQucmVhbHRpbWUuY2hhbm5lbHNgIGNhbGxiYWNrIGZvciBjaGFubmVscyBuZWVkaW5nIHJ1bnRpbWUgcGFyYW1zLlxuICovXG5cbi8qKiBAdHlwZWRlZiB7Ym9vbGVhbiB8IE1vZGVsU3luY0RlY2xhcmF0aW9uQ29uZmlnfSBNb2RlbFN5bmNEZWNsYXJhdGlvbiAqL1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGJ1aWxkaW5nIGEgc3luYyBjbGllbnQuIEV2ZXJ5dGhpbmcgZWxzZSDigJQgcmVzb3VyY2VzLCB0cmFuc3BvcnRcbiAqIFBPU1RlcnMsIGF1dGgsIGNvbm5lY3Rpdml0eSwgYmF0Y2ggc2l6ZSDigJQgaXMgZGVyaXZlZCBmcm9tIHRoZSBjb25maWd1cmF0aW9uJ3NcbiAqIHJlZ2lzdGVyZWQgbW9kZWxzIChgc3RhdGljIHN5bmNgKSBhbmQgaXRzIGBzeW5jLmNsaWVudGAgYmxvY2suXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTeW5jQ2xpZW50T3B0aW9uc1xuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IFtjb25maWd1cmF0aW9uXSAtIENvbmZpZ3VyYXRpb24gb3duaW5nIHRoZSByZWdpc3RlcmVkIG1vZGVscywgdGhlIGBzeW5jLmNsaWVudGAgYmxvY2ssIGFuZCB0aGUgc2NvcGUtc3RvcmUgZGF0YWJhc2UuIERlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7c2NvcGU6IFNlcmlhbGl6ZWRTeW5jU2NvcGV9KSA9PiBzdHJpbmcgfCBudWxsIHwgUHJvbWlzZTxzdHJpbmcgfCBudWxsPn0gW2xlZ2FjeUN1cnNvcl0gLSBTZWVkcyBhIG5ld2x5IGRlY2xhcmVkIHNjb3BlJ3MgY3Vyc29yIChlLmcuIGZyb20gYSBwcmUtc2NvcGUgY3Vyc29yIHN0b3JlKSBzbyBkZXZpY2VzIGRvbid0IHJlLXB1bGwgZXZlcnl0aGluZy5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLXNjb3BlLXN0b3JlLmpzXCIpLmRlZmF1bHR9IFtzY29wZVN0b3JlXSAtIFNjb3BlIHN0b3JlIG92ZXJyaWRlICh0ZXN0cykuXG4gKiBAcHJvcGVydHkgez99IFtzeW5jTW9kZWxdIC0gUGVuZGluZy1zeW5jIG1vZGVsIG92ZXJyaWRlLiBEZWZhdWx0cyB0byB0aGUgcmVnaXN0ZXJlZCBcIlN5bmNcIiBtb2RlbC5cbiAqL1xuXG4vKipcbiAqIEludGVybmFsIGRlcml2ZWQgc3luYyBjbGllbnQgY29uZmlndXJhdGlvbiBidWlsdCBieSB0aGUgU3luY0NsaWVudFxuICogY29uc3RydWN0b3Ig4oCUIG5vdCBhbiBhcHAtZmFjaW5nIEFQSS5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IFN5bmNDbGllbnRDb25maWdcbiAqIEBwcm9wZXJ0eSB7KCkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+fSBhdXRoZW50aWNhdGlvblRva2VuIC0gUmVzb2x2ZXMgdGhlIGF1dGggdG9rZW4gc2VudCB3aXRoIHN5bmMgcmVxdWVzdHMuXG4gKiBAcHJvcGVydHkge251bWJlcn0gW2JhdGNoU2l6ZV0gLSBNYXggc3luY3MgcGVyIHJlcXVlc3QuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gb3duaW5nIHRoZSBzY29wZS1zdG9yZSBkYXRhYmFzZS5cbiAqIEBwcm9wZXJ0eSB7KCkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj59IFtpc09ubGluZV0gLSBDb25uZWN0aXZpdHkgZ2F0ZSBmb3IgcHVsbHMgYW5kIHJlcGxheXMuIERlZmF1bHRzIHRvIGFsd2F5cyBvbmxpbmUuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7c2NvcGU6IFNlcmlhbGl6ZWRTeW5jU2NvcGV9KSA9PiBzdHJpbmcgfCBudWxsIHwgUHJvbWlzZTxzdHJpbmcgfCBudWxsPn0gW2xlZ2FjeUN1cnNvcl0gLSBTZWVkcyBhIG5ld2x5IGRlY2xhcmVkIHNjb3BlJ3MgY3Vyc29yIChlLmcuIGZyb20gYSBwcmUtc2NvcGUgY3Vyc29yIHN0b3JlKSBzbyBkZXZpY2VzIGRvbid0IHJlLXB1bGwgZXZlcnl0aGluZy5cbiAqIEBwcm9wZXJ0eSB7KGVycm9yOiBFcnJvcikgPT4gdm9pZH0gW29uRXJyb3JdIC0gUmVwb3J0cyBiYWNrZ3JvdW5kIHJlcGxheS9wdWxsIGZhaWx1cmVzLiBEZWZhdWx0cyB0byByZXRocm93aW5nLlxuICogQHByb3BlcnR5IHsocGF5bG9hZDogaW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY0NoYW5nZXNSZXF1ZXN0ICYge3Njb3BlOiBTZXJpYWxpemVkU3luY1Njb3BlfSkgPT4gUHJvbWlzZTxpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jQ2hhbmdlc1Jlc3BvbnNlPn0gcG9zdENoYW5nZXMgLSBQb3N0cyBvbmUgY2hhbmdlcyByZXF1ZXN0LlxuICogQHByb3BlcnR5IHsocGF5bG9hZDoge2F1dGhlbnRpY2F0aW9uVG9rZW46IHN0cmluZywgc3luY3M6IEFycmF5PFJlY29yZDxzdHJpbmcsID8+Pn0pID0+IFByb21pc2U8aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1JlcGxheVJlc3BvbnNlPn0gcG9zdFJlcGxheSAtIFBvc3RzIG9uZSByZXBsYXkgcmVxdWVzdC5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5WZWxvY2lvdXNTeW5jQ2xpZW50UmVhbHRpbWVDb25maWd1cmF0aW9ufSBbcmVhbHRpbWVdIC0gUmVhbHRpbWUgcHVzaCBjb25maWd1cmF0aW9uIGNvbnN1bWVkIGJ5IGBzdWJzY3JpYmVSZWFsdGltZSguLi4pYC5cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgU3luY0NsaWVudFJlc291cmNlQ29uZmlnPn0gcmVzb3VyY2VzIC0gRGVyaXZlZCByZXNvdXJjZSBwb2xpY2llcyBrZXllZCBieSByZXNvdXJjZS9tb2RlbCBuYW1lLlxuICogQHByb3BlcnR5IHs/fSBzeW5jTW9kZWwgLSBMb2NhbCBwZW5kaW5nLXN5bmMgbW9kZWwgY2xhc3MuXG4gKi9cblxuZXhwb3J0IHt9XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1jbGllbnQtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3luYy9zeW5jLWNsaWVudC10eXBlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogQ2xpZW50LWRlY2xhcmVkIHN5bmMgc2NvcGUgc2VyaWFsaXplZCBmcm9tIGEgbW9kZWwgcXVlcnkuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTZXJpYWxpemVkU3luY1Njb3BlXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsID8+fSBjb25kaXRpb25zIC0gUGxhaW4gYXR0cmlidXRlIGNvbmRpdGlvbnMgZnJvbSB0aGUgcXVlcnkuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcmVzb3VyY2VUeXBlIC0gUmVzb3VyY2UvbW9kZWwgbmFtZSB0aGUgc2NvcGUgd2FzIGRlY2xhcmVkIGZvci5cbiAqL1xuXG4vKipcbiAqIFN0YXRpYyByZWFsdGltZSBjaGFubmVsIGRlY2xhcmF0aW9uIG9uIGEgbW9kZWwncyBgc3RhdGljIHN5bmNgLCBmb3IgY2hhbm5lbHNcbiAqIHdob3NlIG5hbWUgYW5kIHBhcmFtcyBhcmUgc3RhdGljLiBDaGFubmVscyBuZWVkaW5nIHJ1bnRpbWUgcGFyYW1zIChsaWtlXG4gKiBldmVudElkKSBiZWxvbmcgaW4gdGhlIGBzeW5jLmNsaWVudC5yZWFsdGltZS5jaGFubmVsc2AgY2FsbGJhY2sgaW5zdGVhZC5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IE1vZGVsU3luY1JlYWx0aW1lRGVjbGFyYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjaGFubmVsIC0gU2VydmVyIGNoYW5uZWwgbmFtZSB0byBzdWJzY3JpYmUuXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsID8+fSBbcGFyYW1zXSAtIFN0YXRpYyBzdWJzY3JpYmUgcGFyYW1zLiBUaGUgZnJhbWV3b3JrIGluamVjdHMgYGF1dGhlbnRpY2F0aW9uVG9rZW5gIGF1dG9tYXRpY2FsbHkuXG4gKi9cblxuLyoqXG4gKiBEZWNsYXJhdGl2ZSBwZXItcmVzb3VyY2Ugc3luYyBwb2xpY3kuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTeW5jQ2xpZW50UmVzb3VyY2VDb25maWdcbiAqIEBwcm9wZXJ0eSB7P30gbW9kZWxDbGFzcyAtIExvY2FsIG1vZGVsIGNsYXNzIGZvciB0aGlzIHJlc291cmNlLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJhdHRyaWJ1dGVzXCJdfSBbYXR0cmlidXRlc10gLSBQdWxsLWFwcGx5IGF0dHJpYnV0ZSBtYXBwZXIuIFJlcXVpcmVkIGZvciByZXNvdXJjZXMgdGhhdCByZWNlaXZlIHB1bGxlZCBjaGFuZ2VzLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJmaW5kUmVjb3JkXCJdfSBbZmluZFJlY29yZF0gLSBDdXN0b20gcHVsbC1hcHBseSByZWNvcmQgcmVzb2x2ZXIuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImZpbmRSZWNvcmRGb3JEZWxldGVcIl19IFtmaW5kUmVjb3JkRm9yRGVsZXRlXSAtIEN1c3RvbSBwdWxsLWFwcGx5IGRlbGV0ZSByZXNvbHZlci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiYWZ0ZXJBcHBseVwiXX0gW2FmdGVyQXBwbHldIC0gUG9zdC1hcHBseSBob29rLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2Jvb2xlYW5BdHRyaWJ1dGVzXSAtIEF0dHJpYnV0ZXMgY29lcmNlZCB0aHJvdWdoIHN5bmMgYm9vbGVhbiBwYXJzaW5nIHdoZW4gcXVldWVpbmcuXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBbbG9jYWxPbmx5QXR0cmlidXRlc10gLSBBdHRyaWJ1dGVzIHN0cmlwcGVkIGZyb20gcXVldWVkIHBheWxvYWRzLlxuICogQHByb3BlcnR5IHtcInVwc2VydFwiIHwgKChhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6ID99KSA9PiBzdHJpbmcpfSBbc3luY1R5cGVdIC0gTWFwcyBhIG11dGF0aW9uIG9wZXJhdGlvbiB0byBhIHN5bmMgdHlwZS4gVGhlIFwidXBzZXJ0XCIgZmxhZyBxdWV1ZXMgY3JlYXRlcyBhbmQgdXBkYXRlcyBhcyBcInVwZGF0ZVwiIHJvd3MgKHRoZSBzZXJ2ZXIgdXBzZXJ0cyBieSByZXNvdXJjZSBpZCkgYW5kIGRlc3Ryb3lzIGFzIFwiZGVsZXRlXCIuIERlZmF1bHRzIHRvIHRoZSBvcGVyYXRpb24gbmFtZSB3aXRoIGRlc3Ryb3kgbWFwcGVkIHRvIFwiZGVsZXRlXCIuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6ID99KSA9PiBSZWNvcmQ8c3RyaW5nLCA/Pn0gW3RyYWNrZWREYXRhXSAtIEN1c3RvbSBxdWV1ZWQtcGF5bG9hZCBidWlsZGVyIGZvciB0cmFja2VkIG11dGF0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IHtvcGVyYXRpb25zOiBBcnJheTxcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiPn19IFt0cmFja10gLSBBdXRvbWF0aWMgbXV0YXRpb24gdHJhY2tpbmcgcG9saWN5LiBPbiBieSBkZWZhdWx0IChjcmVhdGVzIGFuZCB1cGRhdGVzIHF1ZXVlIGF1dG9tYXRpY2FsbHkpOyBgZmFsc2VgIG9wdHMgdGhlIHJlc291cmNlIG91dCwgYHRydWVgIGFkZHMgZGVzdHJveXMsIGB7b3BlcmF0aW9uc31gIG5hcnJvd3MgdGhlIHRyYWNrZWQgb3BlcmF0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7TW9kZWxTeW5jUmVhbHRpbWVEZWNsYXJhdGlvbn0gW3JlYWx0aW1lXSAtIFN0YXRpYyByZWFsdGltZSBjaGFubmVsIHRoaXMgcmVzb3VyY2Ugc3Vic2NyaWJlcyB0aHJvdWdoIGBzdWJzY3JpYmVSZWFsdGltZSguLi4pYC5cbiAqL1xuXG4vKipcbiAqIE1vZGVsLWxldmVsIGNsaWVudCBzeW5jIGRlY2xhcmF0aW9uIHJlYWQgZnJvbSBgc3RhdGljIHN5bmNgIGJ5XG4gKiBgU3luY0NsaWVudC5mcm9tQ29uZmlndXJhdGlvbiguLi4pYC4gYHRydWVgIG9wdHMgdGhlIG1vZGVsIGluIHdpdGggYWxsXG4gKiBkZWZhdWx0czsgYW4gb2JqZWN0IGN1c3RvbWl6ZXMgdGhlIGRlcml2ZWQgcmVzb3VyY2UgY29uZmlnLlxuICogQHR5cGVkZWYge29iamVjdH0gTW9kZWxTeW5jRGVjbGFyYXRpb25Db25maWdcbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiYWZ0ZXJBcHBseVwiXX0gW2FmdGVyQXBwbHldIC0gUG9zdC1hcHBseSBob29rLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJhdHRyaWJ1dGVzXCJdfSBbYXR0cmlidXRlc10gLSBQdWxsLWFwcGx5IGF0dHJpYnV0ZSBtYXBwZXIuIFJlcXVpcmVkIGZvciByZXNvdXJjZXMgdGhhdCByZWNlaXZlIHB1bGxlZCBjaGFuZ2VzLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2Jvb2xlYW5BdHRyaWJ1dGVzXSAtIEV4dHJhIGJvb2xlYW4gYXR0cmlidXRlcyBtZXJnZWQgd2l0aCB0aGUgYm9vbGVhbiBjb2x1bW5zIGRlcml2ZWQgZnJvbSBjb2x1bW4gdHlwZXMuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImZpbmRSZWNvcmRcIl19IFtmaW5kUmVjb3JkXSAtIEN1c3RvbSBwdWxsLWFwcGx5IHJlY29yZCByZXNvbHZlci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiZmluZFJlY29yZEZvckRlbGV0ZVwiXX0gW2ZpbmRSZWNvcmRGb3JEZWxldGVdIC0gQ3VzdG9tIHB1bGwtYXBwbHkgZGVsZXRlIHJlc29sdmVyLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2xvY2FsT25seUF0dHJpYnV0ZXNdIC0gRXh0cmEgbG9jYWwtb25seSBhdHRyaWJ1dGVzIG1lcmdlZCB3aXRoIHRoZSBkZXJpdmVkIHByaW1hcnkga2V5LCBjcmVhdGVkQXQvdXBkYXRlZEF0LCBhbmQgc3luYyBib29ra2VlcGluZyBhdHRyaWJ1dGVzLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtcHVibGlzaGVyLXR5cGVzLmpzXCIpLlN5bmNQdWJsaXNoRGVjbGFyYXRpb259IFtwdWJsaXNoXSAtIFNlcnZlci1zaWRlIHB1Ymxpc2ggZGVjbGFyYXRpb24gY29uc3VtZWQgYnkgYFN5bmNQdWJsaXNoZXIuZnJvbUNvbmZpZ3VyYXRpb24oLi4uKWAgb24gdGhlIGJhY2tlbmQ7IGlnbm9yZWQgYnkgdGhlIGNsaWVudC5cbiAqIEBwcm9wZXJ0eSB7XCJ1cHNlcnRcIiB8ICgoYXJnczoge29wZXJhdGlvbjogXCJjcmVhdGVcIiB8IFwidXBkYXRlXCIgfCBcImRlc3Ryb3lcIiwgcmVjb3JkOiA/fSkgPT4gc3RyaW5nKX0gW3N5bmNUeXBlXSAtIFN5bmMgdHlwZSBmbGFnIG9yIG1hcHBlciAoc2VlIFN5bmNDbGllbnRSZXNvdXJjZUNvbmZpZykuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBBcnJheTxcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiPiB8IHtvcGVyYXRpb25zOiBBcnJheTxcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiPn19IFt0cmFja10gLSBBdXRvbWF0aWMgbXV0YXRpb24gdHJhY2tpbmcgcG9saWN5OyBhbiBhcnJheSBpcyBzaG9ydGhhbmQgZm9yIHtvcGVyYXRpb25zfS4gT24gYnkgZGVmYXVsdCAoY3JlYXRlcyBhbmQgdXBkYXRlcyBxdWV1ZSBhdXRvbWF0aWNhbGx5KTsgYGZhbHNlYCBvcHRzIHRoZSBtb2RlbCBvdXQgKGZvciBtb2RlbHMgd3JpdHRlbiBieSBub24tdXNlciBmbG93cyksIGB0cnVlYCBhZGRzIGRlc3Ryb3lzLlxuICogQHByb3BlcnR5IHsoYXJnczoge29wZXJhdGlvbjogXCJjcmVhdGVcIiB8IFwidXBkYXRlXCIgfCBcImRlc3Ryb3lcIiwgcmVjb3JkOiA/fSkgPT4gUmVjb3JkPHN0cmluZywgPz59IFt0cmFja2VkRGF0YV0gLSBDdXN0b20gcXVldWVkLXBheWxvYWQgYnVpbGRlciBmb3IgdHJhY2tlZCBtdXRhdGlvbnMuXG4gKiBAcHJvcGVydHkge01vZGVsU3luY1JlYWx0aW1lRGVjbGFyYXRpb259IFtyZWFsdGltZV0gLSBTdGF0aWMgcmVhbHRpbWUgY2hhbm5lbCB0aGlzIHJlc291cmNlIHN1YnNjcmliZXMgdGhyb3VnaCBgc3Vic2NyaWJlUmVhbHRpbWUoLi4uKWA7IHVzZSB0aGUgYHN5bmMuY2xpZW50LnJlYWx0aW1lLmNoYW5uZWxzYCBjYWxsYmFjayBmb3IgY2hhbm5lbHMgbmVlZGluZyBydW50aW1lIHBhcmFtcy5cbiAqL1xuXG4vKiogQHR5cGVkZWYge2Jvb2xlYW4gfCBNb2RlbFN5bmNEZWNsYXJhdGlvbkNvbmZpZ30gTW9kZWxTeW5jRGVjbGFyYXRpb24gKi9cblxuLyoqXG4gKiBPcHRpb25zIGZvciBidWlsZGluZyBhIHN5bmMgY2xpZW50LiBFdmVyeXRoaW5nIGVsc2Ug4oCUIHJlc291cmNlcywgdHJhbnNwb3J0XG4gKiBQT1NUZXJzLCBhdXRoLCBjb25uZWN0aXZpdHksIGJhdGNoIHNpemUg4oCUIGlzIGRlcml2ZWQgZnJvbSB0aGUgY29uZmlndXJhdGlvbidzXG4gKiByZWdpc3RlcmVkIG1vZGVscyAoYHN0YXRpYyBzeW5jYCkgYW5kIGl0cyBgc3luYy5jbGllbnRgIGJsb2NrLlxuICogQHR5cGVkZWYge29iamVjdH0gU3luY0NsaWVudE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBbY29uZmlndXJhdGlvbl0gLSBDb25maWd1cmF0aW9uIG93bmluZyB0aGUgcmVnaXN0ZXJlZCBtb2RlbHMsIHRoZSBgc3luYy5jbGllbnRgIGJsb2NrLCBhbmQgdGhlIHNjb3BlLXN0b3JlIGRhdGFiYXNlLiBEZWZhdWx0cyB0byB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHsoYXJnczoge3Njb3BlOiBTZXJpYWxpemVkU3luY1Njb3BlfSkgPT4gc3RyaW5nIHwgbnVsbCB8IFByb21pc2U8c3RyaW5nIHwgbnVsbD59IFtsZWdhY3lDdXJzb3JdIC0gU2VlZHMgYSBuZXdseSBkZWNsYXJlZCBzY29wZSdzIGN1cnNvciAoZS5nLiBmcm9tIGEgcHJlLXNjb3BlIGN1cnNvciBzdG9yZSkgc28gZGV2aWNlcyBkb24ndCByZS1wdWxsIGV2ZXJ5dGhpbmcuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1zY29wZS1zdG9yZS5qc1wiKS5kZWZhdWx0fSBbc2NvcGVTdG9yZV0gLSBTY29wZSBzdG9yZSBvdmVycmlkZSAodGVzdHMpLlxuICogQHByb3BlcnR5IHs/fSBbc3luY01vZGVsXSAtIFBlbmRpbmctc3luYyBtb2RlbCBvdmVycmlkZS4gRGVmYXVsdHMgdG8gdGhlIHJlZ2lzdGVyZWQgXCJTeW5jXCIgbW9kZWwuXG4gKi9cblxuLyoqXG4gKiBJbnRlcm5hbCBkZXJpdmVkIHN5bmMgY2xpZW50IGNvbmZpZ3VyYXRpb24gYnVpbHQgYnkgdGhlIFN5bmNDbGllbnRcbiAqIGNvbnN0cnVjdG9yIOKAlCBub3QgYW4gYXBwLWZhY2luZyBBUEkuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTeW5jQ2xpZW50Q29uZmlnXG4gKiBAcHJvcGVydHkgeygpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPn0gYXV0aGVudGljYXRpb25Ub2tlbiAtIFJlc29sdmVzIHRoZSBhdXRoIHRva2VuIHNlbnQgd2l0aCBzeW5jIHJlcXVlc3RzLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IFtiYXRjaFNpemVdIC0gTWF4IHN5bmNzIHBlciByZXF1ZXN0LlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIG93bmluZyB0aGUgc2NvcGUtc3RvcmUgZGF0YWJhc2UuXG4gKiBAcHJvcGVydHkgeygpID0+IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+fSBbaXNPbmxpbmVdIC0gQ29ubmVjdGl2aXR5IGdhdGUgZm9yIHB1bGxzIGFuZCByZXBsYXlzLiBEZWZhdWx0cyB0byBhbHdheXMgb25saW5lLlxuICogQHByb3BlcnR5IHsoYXJnczoge3Njb3BlOiBTZXJpYWxpemVkU3luY1Njb3BlfSkgPT4gc3RyaW5nIHwgbnVsbCB8IFByb21pc2U8c3RyaW5nIHwgbnVsbD59IFtsZWdhY3lDdXJzb3JdIC0gU2VlZHMgYSBuZXdseSBkZWNsYXJlZCBzY29wZSdzIGN1cnNvciAoZS5nLiBmcm9tIGEgcHJlLXNjb3BlIGN1cnNvciBzdG9yZSkgc28gZGV2aWNlcyBkb24ndCByZS1wdWxsIGV2ZXJ5dGhpbmcuXG4gKiBAcHJvcGVydHkgeyhlcnJvcjogRXJyb3IpID0+IHZvaWR9IFtvbkVycm9yXSAtIFJlcG9ydHMgYmFja2dyb3VuZCByZXBsYXkvcHVsbCBmYWlsdXJlcy4gRGVmYXVsdHMgdG8gcmV0aHJvd2luZy5cbiAqIEBwcm9wZXJ0eSB7KHBheWxvYWQ6IGltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNDaGFuZ2VzUmVxdWVzdCAmIHtzY29wZTogU2VyaWFsaXplZFN5bmNTY29wZX0pID0+IFByb21pc2U8aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY0NoYW5nZXNSZXNwb25zZT59IHBvc3RDaGFuZ2VzIC0gUG9zdHMgb25lIGNoYW5nZXMgcmVxdWVzdC5cbiAqIEBwcm9wZXJ0eSB7KHBheWxvYWQ6IHthdXRoZW50aWNhdGlvblRva2VuOiBzdHJpbmcsIHN5bmNzOiBBcnJheTxSZWNvcmQ8c3RyaW5nLCA/Pj59KSA9PiBQcm9taXNlPGltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXBsYXlSZXNwb25zZT59IHBvc3RSZXBsYXkgLSBQb3N0cyBvbmUgcmVwbGF5IHJlcXVlc3QuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuVmVsb2Npb3VzU3luY0NsaWVudFJlYWx0aW1lQ29uZmlndXJhdGlvbn0gW3JlYWx0aW1lXSAtIFJlYWx0aW1lIHB1c2ggY29uZmlndXJhdGlvbiBjb25zdW1lZCBieSBgc3Vic2NyaWJlUmVhbHRpbWUoLi4uKWAuXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIFN5bmNDbGllbnRSZXNvdXJjZUNvbmZpZz59IHJlc291cmNlcyAtIERlcml2ZWQgcmVzb3VyY2UgcG9saWNpZXMga2V5ZWQgYnkgcmVzb3VyY2UvbW9kZWwgbmFtZS5cbiAqIEBwcm9wZXJ0eSB7P30gc3luY01vZGVsIC0gTG9jYWwgcGVuZGluZy1zeW5jIG1vZGVsIGNsYXNzLlxuICovXG5cbmV4cG9ydCB7fVxuIl19
@@ -71,11 +71,18 @@ export default class SyncClient {
71
71
  }>;
72
72
  /** @type {WeakSet<object>} */
73
73
  _remoteApplyRecords: WeakSet<object>;
74
+ _withoutTrackingDepth: number;
75
+ /** @type {Logger | {error: (...messages: Array<?>) => Promise<void>} | null} */
76
+ _logger: Logger | {
77
+ error: (...messages: Array<unknown>) => Promise<void>;
78
+ } | null;
74
79
  _started: boolean;
75
80
  /**
76
- * Registers automatic mutation tracking for every resource with `track` enabled:
77
- * local model creates/updates/destroys queue pending sync rows and schedule an
78
- * immediate replay attempt, without app-side queue calls.
81
+ * Registers automatic mutation tracking for every declared resource (on by
82
+ * default: local creates and updates queue pending sync rows once their
83
+ * transaction commits and schedule an immediate replay attempt, without
84
+ * app-side queue calls). `track: false` resources are skipped; `track: true`
85
+ * adds destroys; an operations list narrows the tracked operations.
79
86
  * @returns {Promise<void>}
80
87
  */
81
88
  start(): Promise<void>;
@@ -86,6 +93,9 @@ export default class SyncClient {
86
93
  stop(): void;
87
94
  /**
88
95
  * Resolves and validates the tracked operations for a resource config.
96
+ * Tracking is on by default: models declaring `static sync` without a `track`
97
+ * key queue local creates and updates automatically; `track: false` opts a
98
+ * model out (for models written by non-user flows).
89
99
  * @param {{resourceConfig: import("./sync-client-types.js").SyncClientResourceConfig, resourceType: string}} args - Resource config and name.
90
100
  * @returns {Array<"create" | "update" | "destroy">} Tracked operations.
91
101
  */
@@ -94,7 +104,15 @@ export default class SyncClient {
94
104
  resourceType: string;
95
105
  }): Array<"create" | "update" | "destroy">;
96
106
  /**
97
- * Builds the lifecycle callback queueing one tracked mutation.
107
+ * Builds the lifecycle callback queueing one tracked mutation. The queued
108
+ * payload and sync type are snapshotted at mutation-callback time, so
109
+ * afterSave hooks assigning unsaved attributes (or any later drift on the
110
+ * record) cannot change what gets queued vs what was committed. Queueing is
111
+ * deferred through the model connection's afterCommit hook so it only runs
112
+ * once the mutation's transaction has committed (immediately when no
113
+ * transaction is open) - queued syncs never reference rolled-back rows.
114
+ * Post-commit queue failures are reported without rethrowing into the
115
+ * driver's afterCommit chain (see reportAfterCommitError).
98
116
  * @param {{operation: "create" | "update" | "destroy", resourceConfig: import("./sync-client-types.js").SyncClientResourceConfig}} args - Operation and resource config.
99
117
  * @returns {(record: ?) => Promise<void>} Lifecycle callback.
100
118
  */
@@ -102,12 +120,60 @@ export default class SyncClient {
102
120
  operation: "create" | "update" | "destroy";
103
121
  resourceConfig: import("./sync-client-types.js").SyncClientResourceConfig;
104
122
  }): (record: unknown) => Promise<void>;
123
+ /**
124
+ * Reports a post-commit tracked-queueing failure. The transaction has already
125
+ * committed when afterCommit callbacks run, so rethrowing here would poison
126
+ * the driver's awaited afterCommit chain (breaking unrelated callbacks) -
127
+ * instead the failure goes to the configured sync.client.onError hook, or is
128
+ * logged loudly through the client's logger when none is configured.
129
+ * @param {Error} error - Post-commit queueing failure.
130
+ * @returns {Promise<void>}
131
+ */
132
+ reportAfterCommitError(error: Error): Promise<void>;
133
+ /**
134
+ * Returns the lazily built client logger.
135
+ * @returns {Logger | {error: (...messages: Array<?>) => Promise<void>}} Client logger.
136
+ */
137
+ logger(): Logger | {
138
+ error: (...messages: Array<unknown>) => Promise<void>;
139
+ };
105
140
  /**
106
141
  * Whether a record is currently being written by pull-apply (echo suppression).
107
142
  * @param {?} record - Local model record.
108
143
  * @returns {boolean} Whether the record write originates from a remote change.
109
144
  */
110
145
  isRemoteApply(record: unknown): boolean;
146
+ /**
147
+ * Whether tracked mutation queueing is currently suppressed for a record:
148
+ * either the record was marked as a remote apply (`markRemoteApply`, used by
149
+ * pull and realtime applies) or a `withoutTracking` callback is running on
150
+ * this client.
151
+ * @param {?} record - Local model record.
152
+ * @returns {boolean} Whether tracked queueing is suppressed for the record.
153
+ */
154
+ isTrackingSuppressed(record: unknown): boolean;
155
+ /**
156
+ * Runs a callback with tracked mutation queueing suppressed on this client -
157
+ * for code applying server-originated data outside the derived pull/realtime
158
+ * appliers (legacy pull paths, importers, sign-in backfills), so their writes
159
+ * are not echoed back to the server as device changes. Suppression covers the
160
+ * whole async duration of the callback (nested calls stack) and is
161
+ * client-wide while it runs: mutations from concurrently running tasks are
162
+ * also suppressed for that window, so prefer `markRemoteApply(record)` when
163
+ * writes from other flows can interleave.
164
+ * @template T
165
+ * @param {() => Promise<T> | T} callback - Work whose model writes should not queue tracked syncs.
166
+ * @returns {Promise<T>} The callback result.
167
+ */
168
+ withoutTracking<T>(callback: () => Promise<T> | T): Promise<T>;
169
+ /**
170
+ * Marks one record as being written from server-originated data so tracked
171
+ * mutation queueing skips it (record-precise suppression). The derived pull
172
+ * and realtime appliers use this internally around every applied write.
173
+ * @param {?} record - Local model record about to be written.
174
+ * @returns {() => void} Release callback re-enabling tracking for the record.
175
+ */
176
+ markRemoteApply(record: unknown): () => void;
111
177
  /**
112
178
  * Registers this client as the app's current sync client.
113
179
  * @returns {void}
@@ -242,4 +308,5 @@ export default class SyncClient {
242
308
  }
243
309
  import Configuration from "../configuration.js";
244
310
  import SyncRealtimeBridge from "./sync-realtime-bridge.js";
311
+ import Logger from "../logger.js";
245
312
  //# sourceMappingURL=sync-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client.js"],"names":[],"mappings":"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"}