velocious 1.0.667 → 1.0.668

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 (87) hide show
  1. package/README.md +27 -7
  2. package/build/configuration.js +23 -1
  3. package/build/environment-handlers/node/cli/commands/test/timing-manifest/merge.js +2 -48
  4. package/build/environment-handlers/node/cli/commands/test.js +17 -69
  5. package/build/frontend-models/websocket-channel.js +18 -0
  6. package/build/http-server/client/websocket-session.js +41 -4
  7. package/build/http-server/websocket-channel.js +14 -0
  8. package/build/http-server/websocket-event-log-store.js +85 -12
  9. package/build/http-server/websocket-events-host.js +14 -6
  10. package/build/src/configuration.d.ts +18 -1
  11. package/build/src/configuration.d.ts.map +1 -1
  12. package/build/src/configuration.js +22 -2
  13. package/build/src/environment-handlers/node/cli/commands/test/timing-manifest/merge.d.ts.map +1 -1
  14. package/build/src/environment-handlers/node/cli/commands/test/timing-manifest/merge.js +3 -47
  15. package/build/src/environment-handlers/node/cli/commands/test.d.ts +2 -28
  16. package/build/src/environment-handlers/node/cli/commands/test.d.ts.map +1 -1
  17. package/build/src/environment-handlers/node/cli/commands/test.js +10 -61
  18. package/build/src/frontend-models/websocket-channel.d.ts +9 -0
  19. package/build/src/frontend-models/websocket-channel.d.ts.map +1 -1
  20. package/build/src/frontend-models/websocket-channel.js +16 -1
  21. package/build/src/http-server/client/websocket-session.d.ts +25 -2
  22. package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
  23. package/build/src/http-server/client/websocket-session.js +40 -5
  24. package/build/src/http-server/websocket-channel.d.ts +11 -0
  25. package/build/src/http-server/websocket-channel.d.ts.map +1 -1
  26. package/build/src/http-server/websocket-channel.js +14 -1
  27. package/build/src/http-server/websocket-event-log-store.d.ts +60 -41
  28. package/build/src/http-server/websocket-event-log-store.d.ts.map +1 -1
  29. package/build/src/http-server/websocket-event-log-store.js +79 -12
  30. package/build/src/http-server/websocket-events-host.d.ts +10 -3
  31. package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
  32. package/build/src/http-server/websocket-events-host.js +14 -7
  33. package/build/src/testing/test-files-finder.d.ts +13 -116
  34. package/build/src/testing/test-files-finder.d.ts.map +1 -1
  35. package/build/src/testing/test-files-finder.js +26 -296
  36. package/build/src/testing/test-filter-parser.d.ts +32 -22
  37. package/build/src/testing/test-filter-parser.d.ts.map +1 -1
  38. package/build/src/testing/test-filter-parser.js +25 -217
  39. package/build/src/testing/test-profile-activity.d.ts +1 -6
  40. package/build/src/testing/test-profile-activity.d.ts.map +1 -1
  41. package/build/src/testing/test-profile-activity.js +2 -12
  42. package/build/src/testing/test-profile-output.d.ts +1 -40
  43. package/build/src/testing/test-profile-output.d.ts.map +1 -1
  44. package/build/src/testing/test-profile-output.js +2 -217
  45. package/build/src/testing/test-profiler.d.ts +15 -659
  46. package/build/src/testing/test-profiler.d.ts.map +1 -1
  47. package/build/src/testing/test-profiler.js +35 -833
  48. package/build/src/testing/test-runner.d.ts +10 -1
  49. package/build/src/testing/test-runner.d.ts.map +1 -1
  50. package/build/src/testing/test-runner.js +26 -4
  51. package/build/src/testing/test-suite-splitter.d.ts +1 -128
  52. package/build/src/testing/test-suite-splitter.d.ts.map +1 -1
  53. package/build/src/testing/test-suite-splitter.js +2 -259
  54. package/build/src/testing/timing-manifest.d.ts +5 -93
  55. package/build/src/testing/timing-manifest.d.ts.map +1 -1
  56. package/build/src/testing/timing-manifest.js +4 -283
  57. package/build/src/testing/velocious-attempt-executor.d.ts.map +1 -1
  58. package/build/src/testing/velocious-attempt-executor.js +8 -2
  59. package/build/testing/test-files-finder.js +29 -345
  60. package/build/testing/test-filter-parser.js +29 -248
  61. package/build/testing/test-profile-activity.js +1 -12
  62. package/build/testing/test-profile-output.js +8 -253
  63. package/build/testing/test-profiler.js +38 -895
  64. package/build/testing/test-runner.js +33 -9
  65. package/build/testing/test-suite-splitter.js +1 -301
  66. package/build/testing/timing-manifest.js +10 -344
  67. package/build/testing/velocious-attempt-executor.js +7 -1
  68. package/package.json +3 -3
  69. package/scripts/test-browser.js +29 -6
  70. package/scripts/verify-docker-dev-environment.js +13 -1
  71. package/src/configuration.js +23 -1
  72. package/src/environment-handlers/node/cli/commands/test/timing-manifest/merge.js +2 -48
  73. package/src/environment-handlers/node/cli/commands/test.js +17 -69
  74. package/src/frontend-models/websocket-channel.js +18 -0
  75. package/src/http-server/client/websocket-session.js +41 -4
  76. package/src/http-server/websocket-channel.js +14 -0
  77. package/src/http-server/websocket-event-log-store.js +85 -12
  78. package/src/http-server/websocket-events-host.js +14 -6
  79. package/src/testing/test-files-finder.js +29 -345
  80. package/src/testing/test-filter-parser.js +29 -248
  81. package/src/testing/test-profile-activity.js +1 -12
  82. package/src/testing/test-profile-output.js +8 -253
  83. package/src/testing/test-profiler.js +38 -895
  84. package/src/testing/test-runner.js +33 -9
  85. package/src/testing/test-suite-splitter.js +1 -301
  86. package/src/testing/timing-manifest.js +10 -344
  87. package/src/testing/velocious-attempt-executor.js +7 -1
@@ -92,6 +92,17 @@ export default class VelociousWebsocketChannel {
92
92
  * @returns {boolean} - True to deliver the broadcast to this subscriber.
93
93
  */
94
94
  matches(..._broadcastArgs: WebsocketJsonValue[]): boolean;
95
+ /**
96
+ * Returns the broadcast params that may be persisted for replay.
97
+ * Persisted params are re-applied through `matches(broadcastParams)`
98
+ * when replaying missed events, so they must be JSON-serializable and
99
+ * safe to store. Override when `broadcastParams` carries server-only
100
+ * values that must never reach the event log (e.g. authorization
101
+ * snapshots).
102
+ * @param {WebsocketParams | null | undefined} broadcastParams - Params passed to `broadcastToChannel`.
103
+ * @returns {WebsocketParams | null} - Params to persist, or null to store none.
104
+ */
105
+ static replayableBroadcastParams(broadcastParams: WebsocketParams | null | undefined): WebsocketParams | null;
95
106
  /**
96
107
  * Whether replaying a persisted broadcast would require a client resync.
97
108
  * Subclasses override this when replay storage deliberately omits metadata
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-channel.d.ts","sourceRoot":"","sources":["../../../src/http-server/websocket-channel.js"],"names":[],"mappings":"AAIG,YAAqD,kBAAkB,GAA7D,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAoB;AAIvE,YAA8C,eAAe,GAAnD,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAiB;AAI7D,YAAiE,0BAA0B,GAAjF;IAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAC,CAA4B;AAV9F;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,yBAAyB;IASrC,cAAc;IACd,MAAM;IACN,OAAO;IACP,OAAO;IAXd;;;;;;OAMG;IACH,YAAY,EAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAC,EAJ1C;QAAqB,cAAc,EAA3B,MAAM,CACd;QAA8B,MAAM,EAA5B,eAAe,CACvB;QAA8D,OAAO,EAA7D,OAAO,+BAA+B,EAAE,OAAO,CACzD;KAC4C,EAK5C;IAED;;;;;OAKG;IACH,YAAY,IAFC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAER;IAE/B;;;;;OAKG;IACH,UAAU,IAFG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAElB;IAEf;;;;OAIG;IACH,YAAY,IAFC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhB;IAEjB;;;;;;OAMG;IACH,YAAY,IAFC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhB;IAEjB;;;;OAIG;IACH,QAAQ,IAFK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpB;IAEb;;;;;;OAMG;IACH,iBAAiB,CAAC,SAAS,EAHhB,eAGgB,GAFd,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEF;IAE/B;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,cAAc,EAHX,kBAAkB,EAGP,GAFZ,OAAO,CAEsB;IAE1C;;;;;;OAMG;IACH,kBAAkB,CAAC,KAAK,EAHb,kBAGa,GAFX,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAEG;IAE1C;;;;OAIG;IACH,aAAa,IAFA,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAE7B;IAE7B;;;;;;;OAOG;IACH,gBAAgB,CAAC,IAAI,EAJV,kBAIU,EAAE,IAAI,AAHxB,CACA,EADQ,0BAGgB,GAFd,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,IAAI,EAJL,kBAIK,EAAE,IAAI,AAHnB,CACA,EADQ,0BAGW,GAFT,IAAI,CAahB;IAED;;;OAGG;IACH,QAAQ,IAFK,OAAO,CAEc;CACnC"}
1
+ {"version":3,"file":"websocket-channel.d.ts","sourceRoot":"","sources":["../../../src/http-server/websocket-channel.js"],"names":[],"mappings":"AAIG,YAAqD,kBAAkB,GAA7D,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAoB;AAIvE,YAA8C,eAAe,GAAnD,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAiB;AAI7D,YAAiE,0BAA0B,GAAjF;IAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAC,CAA4B;AAV9F;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,yBAAyB;IASrC,cAAc;IACd,MAAM;IACN,OAAO;IACP,OAAO;IAXd;;;;;;OAMG;IACH,YAAY,EAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAC,EAJ1C;QAAqB,cAAc,EAA3B,MAAM,CACd;QAA8B,MAAM,EAA5B,eAAe,CACvB;QAA8D,OAAO,EAA7D,OAAO,+BAA+B,EAAE,OAAO,CACzD;KAC4C,EAK5C;IAED;;;;;OAKG;IACH,YAAY,IAFC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAER;IAE/B;;;;;OAKG;IACH,UAAU,IAFG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAElB;IAEf;;;;OAIG;IACH,YAAY,IAFC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhB;IAEjB;;;;;;OAMG;IACH,YAAY,IAFC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhB;IAEjB;;;;OAIG;IACH,QAAQ,IAFK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpB;IAEb;;;;;;OAMG;IACH,iBAAiB,CAAC,SAAS,EAHhB,eAGgB,GAFd,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEF;IAE/B;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,cAAc,EAHX,kBAAkB,EAGP,GAFZ,OAAO,CAEsB;IAE1C;;;;;;;;;OASG;IACH,MAAM,CAAC,yBAAyB,CAAC,eAAe,EAHrC,eAAe,GAAG,IAAI,GAAG,SAGY,GAFnC,eAAe,GAAG,IAAI,CAIlC;IAED;;;;;;OAMG;IACH,kBAAkB,CAAC,KAAK,EAHb,kBAGa,GAFX,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAEG;IAE1C;;;;OAIG;IACH,aAAa,IAFA,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAE7B;IAE7B;;;;;;;OAOG;IACH,gBAAgB,CAAC,IAAI,EAJV,kBAIU,EAAE,IAAI,AAHxB,CACA,EADQ,0BAGgB,GAFd,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,IAAI,EAJL,kBAIK,EAAE,IAAI,AAHnB,CACA,EADQ,0BAGW,GAFT,IAAI,CAahB;IAED;;;OAGG;IACH,QAAQ,IAFK,OAAO,CAEc;CACnC"}
@@ -84,6 +84,19 @@ export default class VelociousWebsocketChannel {
84
84
  * @returns {boolean} - True to deliver the broadcast to this subscriber.
85
85
  */
86
86
  matches(..._broadcastArgs) { return true; }
87
+ /**
88
+ * Returns the broadcast params that may be persisted for replay.
89
+ * Persisted params are re-applied through `matches(broadcastParams)`
90
+ * when replaying missed events, so they must be JSON-serializable and
91
+ * safe to store. Override when `broadcastParams` carries server-only
92
+ * values that must never reach the event log (e.g. authorization
93
+ * snapshots).
94
+ * @param {WebsocketParams | null | undefined} broadcastParams - Params passed to `broadcastToChannel`.
95
+ * @returns {WebsocketParams | null} - Params to persist, or null to store none.
96
+ */
97
+ static replayableBroadcastParams(broadcastParams) {
98
+ return broadcastParams ?? null;
99
+ }
87
100
  /**
88
101
  * Whether replaying a persisted broadcast would require a client resync.
89
102
  * Subclasses override this when replay storage deliberately omits metadata
@@ -134,4 +147,4 @@ export default class VelociousWebsocketChannel {
134
147
  */
135
148
  isClosed() { return this._closed; }
136
149
  }
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LWNoYW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1zZXJ2ZXIvd2Vic29ja2V0LWNoYW5uZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaOzs7R0FHRztBQUNIOzs7R0FHRztBQUNIOzs7R0FHRztBQUVIOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLHlCQUF5QjtJQUM1Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUE7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUksRUFBRSxDQUFBO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksS0FBSyxPQUFPLEtBQUssQ0FBQSxDQUFDLENBQUM7SUFFL0I7Ozs7O09BS0c7SUFDSCxVQUFVLEtBQUksQ0FBQztJQUVmOzs7O09BSUc7SUFDSCxZQUFZLEtBQUksQ0FBQztJQUVqQjs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQUksQ0FBQztJQUVqQjs7OztPQUlHO0lBQ0gsUUFBUSxLQUFJLENBQUM7SUFFYjs7Ozs7O09BTUc7SUFDSCxpQkFBaUIsQ0FBQyxTQUFTLElBQUcsQ0FBQztJQUUvQjs7Ozs7OztPQU9HO0lBQ0gsT0FBTyxDQUFDLEdBQUcsY0FBYyxJQUFJLE9BQU8sSUFBSSxDQUFBLENBQUMsQ0FBQztJQUUxQzs7Ozs7O09BTUc7SUFDSCxrQkFBa0IsQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLENBQUEsQ0FBQyxDQUFDO0lBRTFDOzs7O09BSUc7SUFDSCxhQUFhLEtBQUssT0FBTyxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBRTdCOzs7Ozs7O09BT0c7SUFDSCxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSTtRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSTtRQUNwQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQTtRQUNyRixDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDcEIsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsSUFBSTtZQUNKLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNsRCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQSxDQUFDLENBQUM7Q0FDbkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyoqXG4gKiBXZWJzb2NrZXRKc29uVmFsdWUgdHlwZS5cbiAqIEB0eXBlZGVmIHtudWxsIHwgYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZyB8IG9iamVjdH0gV2Vic29ja2V0SnNvblZhbHVlXG4gKi9cbi8qKlxuICogV2Vic29ja2V0UGFyYW1zIHR5cGUuXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgV2Vic29ja2V0SnNvblZhbHVlPn0gV2Vic29ja2V0UGFyYW1zXG4gKi9cbi8qKlxuICogU2VydmVyLXNpZGUgbWV0YWRhdGEgYWNjb21wYW55aW5nIGEgbWF0Y2hlZCBicm9hZGNhc3QuXG4gKiBAdHlwZWRlZiB7e2Jyb2FkY2FzdFBhcmFtcz86IFdlYnNvY2tldFBhcmFtcywgZXZlbnRJZD86IHN0cmluZ319IFdlYnNvY2tldEJyb2FkY2FzdE1ldGFkYXRhXG4gKi9cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhcHAtZGVmaW5lZCAxOk4gcHViL3N1YiBjaGFubmVscy5cbiAqXG4gKiBTdWJjbGFzc2VzIG92ZXJyaWRlOlxuICogIC0gYGNhblN1YnNjcmliZSgpYCDigJQgc3Vic2NyaWJlLXRpbWUgYXV0aCAoZGVmYXVsdCBgZmFsc2VgKS5cbiAqICAtIGBzdWJzY3JpYmVkKClgIC8gYHVuc3Vic2NyaWJlZCgpYCDigJQgb3B0aW9uYWwgbGlmZWN5Y2xlIGhvb2tzLlxuICogIC0gYG1hdGNoZXMoYnJvYWRjYXN0UGFyYW1zKWAg4oCUIGJyb2FkY2FzdCByb3V0aW5nIGZpbHRlci5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzV2Vic29ja2V0Q2hhbm5lbCB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIFNlc3Npb24sIGNoYW5uZWwgcGFyYW1ldGVycywgYW5kIGNsaWVudCBzdWJzY3JpcHRpb24gaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3Muc3Vic2NyaXB0aW9uSWQgLSBDbGllbnQtYXNzaWduZWQgaWQsIHVuaXF1ZSB3aXRoaW4gdGhlIHNlc3Npb24uXG4gICAqIEBwYXJhbSB7V2Vic29ja2V0UGFyYW1zfSBhcmdzLnBhcmFtcyAtIFN1YnNjcmliZSBwYXJhbXMuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jbGllbnQvd2Vic29ja2V0LXNlc3Npb24uanNcIikuZGVmYXVsdH0gYXJncy5zZXNzaW9uIC0gT3duaW5nIHNlc3Npb24uXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7c3Vic2NyaXB0aW9uSWQsIHBhcmFtcywgc2Vzc2lvbn0pIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbklkID0gc3Vic2NyaXB0aW9uSWRcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcyB8fCB7fVxuICAgIHRoaXMuc2Vzc2lvbiA9IHNlc3Npb25cbiAgICB0aGlzLl9jbG9zZWQgPSBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZS10aW1lIGF1dGguIERlZmF1bHQgaXMgYGZhbHNlYCAoZGVueSkuIENoYW5uZWwgYXV0aG9yc1xuICAgKiBNVVNUIG92ZXJyaWRlIHRvIGFsbG93IHN1YnNjcmlwdGlvbnMuIFJldHVybmluZyBhIFByb21pc2UgZGVmZXJzXG4gICAqIHRoZSBgY2hhbm5lbC1zdWJzY3JpYmVkYCBjb25maXJtYXRpb24gdW50aWwgaXQgcmVzb2x2ZXMuXG4gICAqIEByZXR1cm5zIHtib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPn0gLSBXaGV0aGVyIHRoZSBzdWJzY3JpcHRpb24gaXMgYXV0aG9yaXplZC5cbiAgICovXG4gIGNhblN1YnNjcmliZSgpIHsgcmV0dXJuIGZhbHNlIH1cblxuICAvKipcbiAgICogT3B0aW9uYWwg4oCUIGNhbGxlZCBvbmNlIGFmdGVyIGBjYW5TdWJzY3JpYmVgIHJlc29sdmVzIHRydXRoeSBhbmRcbiAgICogYmVmb3JlIGBjaGFubmVsLXN1YnNjcmliZWRgIGlzIHNlbnQgdG8gdGhlIGNsaWVudC4gVXNlIGZvclxuICAgKiBpbml0aWFsIHNuYXBzaG90IGRlbGl2ZXJ5LlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59IC0gQ29tcGxldGVzIGFmdGVyIHN1YnNjcmlwdGlvbiBzZXR1cC5cbiAgICovXG4gIHN1YnNjcmliZWQoKSB7fVxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCDigJQgY2FsbGVkIG9uY2Ugd2hlbiB0aGUgc3Vic2NyaXB0aW9uIGVuZHMuIEZpcmVzIG9uXG4gICAqIGNsaWVudC1pbml0aWF0ZWQgYGNoYW5uZWwtdW5zdWJzY3JpYmVgIG9yIG9uIHNlc3Npb24gdGVhcmRvd24uXG4gICAqIEByZXR1cm5zIHt2b2lkIHwgUHJvbWlzZTx2b2lkPn0gLSBDb21wbGV0ZXMgYWZ0ZXIgc3Vic2NyaXB0aW9uIHRlYXJkb3duLlxuICAgKi9cbiAgdW5zdWJzY3JpYmVkKCkge31cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHVuZGVybHlpbmcgc29ja2V0IGRyb3BzIGFuZCB0aGUgc2Vzc2lvbiBpc1xuICAgKiBtb3ZlZCBpbnRvIHRoZSBwYXVzZWQvZ3JhY2UgcmVnaXN0cnkuIEVpdGhlciBgb25SZXN1bWVgIGZpcmVzXG4gICAqIG9uIHN1Y2Nlc3NmdWwgY2xpZW50IHJlY29ubmVjdCwgb3IgYHVuc3Vic2NyaWJlZCgpYCBmaXJlcyB3aGVuXG4gICAqIHRoZSBncmFjZSB3aW5kb3cgZXhwaXJlcy5cbiAgICogQHJldHVybnMge3ZvaWQgfCBQcm9taXNlPHZvaWQ+fSAtIENvbXBsZXRlcyBhZnRlciBkaXNjb25uZWN0IGhhbmRsaW5nLlxuICAgKi9cbiAgb25EaXNjb25uZWN0KCkge31cblxuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIGEgY2xpZW50IHJlY29ubmVjdCArIGBzZXNzaW9uLXJlc3VtZWAgcmViaW5kcyB0aGlzXG4gICAqIHN1YnNjcmlwdGlvbiB0byBhIG5ldyBzb2NrZXQuXG4gICAqIEByZXR1cm5zIHt2b2lkIHwgUHJvbWlzZTx2b2lkPn0gLSBDb21wbGV0ZXMgYWZ0ZXIgcmVzdW1lIGhhbmRsaW5nLlxuICAgKi9cbiAgb25SZXN1bWUoKSB7fVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgY2xpZW50IHNlbmRzIHVwZGF0ZWQgbWV0YWRhdGEgKGUuZy4gYWZ0ZXJcbiAgICogc2lnbi1pbiAvIGxvY2FsZSBjaGFuZ2UpLiBPdmVycmlkZSB0byByZWFjdCB0byBzZXNzaW9uLWxldmVsXG4gICAqIG1ldGFkYXRhIHVwZGF0ZXMuXG4gICAqIEBwYXJhbSB7V2Vic29ja2V0UGFyYW1zfSBfbWV0YWRhdGEgLSBVcGRhdGVkIG1ldGFkYXRhLlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59IC0gQ29tcGxldGVzIGFmdGVyIG1ldGFkYXRhLWNoYW5nZSBoYW5kbGluZy5cbiAgICovXG4gIG9uTWV0YWRhdGFDaGFuZ2VkKF9tZXRhZGF0YSkge31cblxuICAvKipcbiAgICogQnJvYWRjYXN0IHJvdXRpbmcgZmlsdGVyLiBDYWxsZWQgYnkgYGJyb2FkY2FzdFRvQ2hhbm5lbGAgZm9yXG4gICAqIGVhY2ggbGl2ZSBzdWJzY3JpcHRpb24g4oCUIHJldHVybmluZyB0cnVlIGRlbGl2ZXJzIHRoZSBib2R5IHZpYVxuICAgKiBgc2VuZE1lc3NhZ2VgLiBEZWZhdWx0IG1hdGNoZXMgYWxsIGJyb2FkY2FzdHMgcmVnYXJkbGVzcyBvZlxuICAgKiBwYXJhbXM7IG92ZXJyaWRlIGZvciBwZXItc3Vic2NyaWJlciBmaWx0ZXJpbmcuXG4gICAqIEBwYXJhbSB7Li4uV2Vic29ja2V0SnNvblZhbHVlfSBfYnJvYWRjYXN0QXJncyAtIFBhcmFtcyBmb3J3YXJkZWQgZnJvbSBgYnJvYWRjYXN0VG9DaGFubmVsYCAoaWdub3JlZCBieSBkZWZhdWx0KS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gVHJ1ZSB0byBkZWxpdmVyIHRoZSBicm9hZGNhc3QgdG8gdGhpcyBzdWJzY3JpYmVyLlxuICAgKi9cbiAgbWF0Y2hlcyguLi5fYnJvYWRjYXN0QXJncykgeyByZXR1cm4gdHJ1ZSB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgcmVwbGF5aW5nIGEgcGVyc2lzdGVkIGJyb2FkY2FzdCB3b3VsZCByZXF1aXJlIGEgY2xpZW50IHJlc3luYy5cbiAgICogU3ViY2xhc3NlcyBvdmVycmlkZSB0aGlzIHdoZW4gcmVwbGF5IHN0b3JhZ2UgZGVsaWJlcmF0ZWx5IG9taXRzIG1ldGFkYXRhXG4gICAqIHJlcXVpcmVkIHRvIGRlbGl2ZXIgYW4gZXZlbnQgc2FmZWx5LlxuICAgKiBAcGFyYW0ge1dlYnNvY2tldEpzb25WYWx1ZX0gX2JvZHkgLSBQZXJzaXN0ZWQgYnJvYWRjYXN0IHBheWxvYWQuXG4gICAqIEByZXR1cm5zIHtib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPn0gLSBXaGV0aGVyIHRoZSBzZXNzaW9uIG11c3QgcmVwb3J0IGEgcmVwbGF5IGdhcC5cbiAgICovXG4gIF9yZXF1aXJlc1JlcGxheUdhcChfYm9keSkgeyByZXR1cm4gZmFsc2UgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHNhbml0aXplZCBkaWFnbm9zdGljcyBmb3IgZGVidWcgc25hcHNob3RzLlxuICAgKiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0byBleHBvc2Ugbm9uLXNlbnNpdGl2ZSByb3V0aW5nIGRldGFpbHMuXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IERlYnVnLXNhZmUgc3Vic2NyaXB0aW9uIGRldGFpbHMuXG4gICAqL1xuICBkZWJ1Z1NuYXBzaG90KCkgeyByZXR1cm4ge30gfVxuXG4gIC8qKlxuICAgKiBEZWxpdmVycyBhIG1hdGNoZWQgYnJvYWRjYXN0IHRvIHRoaXMgc3Vic2NyaWJlci4gU3ViY2xhc3NlcyBjYW5cbiAgICogb3ZlcnJpZGUgd2hlbiB0aGUgb3V0Ym91bmQgYm9keSBtdXN0IGJlIHRhaWxvcmVkIHRvIHN1YnNjcmlwdGlvblxuICAgKiBwYXJhbXMgYmVmb3JlIHNlbmRpbmcuXG4gICAqIEBwYXJhbSB7V2Vic29ja2V0SnNvblZhbHVlfSBib2R5IC0gQnJvYWRjYXN0IHBheWxvYWQgb2ZmZXJlZCB0byB0aGlzIHN1YnNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHtXZWJzb2NrZXRCcm9hZGNhc3RNZXRhZGF0YX0gW21ldGFdIC0gT3B0aW9uYWwgc2VydmVyLXNpZGUgYnJvYWRjYXN0IG1ldGFkYXRhLlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59IC0gQ29tcGxldGVzIGFmdGVyIGJyb2FkY2FzdCBkZWxpdmVyeS5cbiAgICovXG4gIGRlbGl2ZXJCcm9hZGNhc3QoYm9keSwgbWV0YSkge1xuICAgIHRoaXMuc2VuZE1lc3NhZ2UoYm9keSwgbWV0YSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIGBjaGFubmVsLW1lc3NhZ2VgIGZyYW1lIHRvIFRISVMgc3Vic2NyaWJlciBvbmx5LlxuICAgKiBXaGVuIGBtZXRhLmV2ZW50SWRgIGlzIHByb3ZpZGVkLCB0aGUgY2xpZW50IHJlY2VpdmVzIGl0IHNvIGl0XG4gICAqIGNhbiB0cmFjayBpdHMgY2hlY2twb2ludCBmb3IgYGxhc3RFdmVudElkYCByZXBsYXkgb24gcmVjb25uZWN0LlxuICAgKiBAcGFyYW0ge1dlYnNvY2tldEpzb25WYWx1ZX0gYm9keSAtIENoYW5uZWwgcGF5bG9hZCB0byBzZW5kIHRvIHRoZSBzdWJzY3JpYmVkIGNsaWVudC5cbiAgICogQHBhcmFtIHtXZWJzb2NrZXRCcm9hZGNhc3RNZXRhZGF0YX0gW21ldGFdIC0gT3B0aW9uYWwgc2VydmVyLXNpZGUgYnJvYWRjYXN0IG1ldGFkYXRhLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHNlbmRNZXNzYWdlKGJvZHksIG1ldGEpIHtcbiAgICBpZiAodGhpcy5fY2xvc2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzZW5kTWVzc2FnZSBvbiBjbG9zZWQgc3Vic2NyaXB0aW9uICR7dGhpcy5zdWJzY3JpcHRpb25JZH1gKVxuICAgIH1cblxuICAgIHRoaXMuc2Vzc2lvbi5zZW5kSnNvbih7XG4gICAgICB0eXBlOiBcImNoYW5uZWwtbWVzc2FnZVwiLFxuICAgICAgc3Vic2NyaXB0aW9uSWQ6IHRoaXMuc3Vic2NyaXB0aW9uSWQsXG4gICAgICBib2R5LFxuICAgICAgLi4uKG1ldGE/LmV2ZW50SWQgPyB7ZXZlbnRJZDogbWV0YS5ldmVudElkfSA6IHt9KVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBpcyBjbG9zZWQuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgdGhlIGNoYW5uZWwgaXMgY2xvc2VkLlxuICAgKi9cbiAgaXNDbG9zZWQoKSB7IHJldHVybiB0aGlzLl9jbG9zZWQgfVxufVxuIl19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LWNoYW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1zZXJ2ZXIvd2Vic29ja2V0LWNoYW5uZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaOzs7R0FHRztBQUNIOzs7R0FHRztBQUNIOzs7R0FHRztBQUVIOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLHlCQUF5QjtJQUM1Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUE7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUksRUFBRSxDQUFBO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksS0FBSyxPQUFPLEtBQUssQ0FBQSxDQUFDLENBQUM7SUFFL0I7Ozs7O09BS0c7SUFDSCxVQUFVLEtBQUksQ0FBQztJQUVmOzs7O09BSUc7SUFDSCxZQUFZLEtBQUksQ0FBQztJQUVqQjs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQUksQ0FBQztJQUVqQjs7OztPQUlHO0lBQ0gsUUFBUSxLQUFJLENBQUM7SUFFYjs7Ozs7O09BTUc7SUFDSCxpQkFBaUIsQ0FBQyxTQUFTLElBQUcsQ0FBQztJQUUvQjs7Ozs7OztPQU9HO0lBQ0gsT0FBTyxDQUFDLEdBQUcsY0FBYyxJQUFJLE9BQU8sSUFBSSxDQUFBLENBQUMsQ0FBQztJQUUxQzs7Ozs7Ozs7O09BU0c7SUFDSCxNQUFNLENBQUMseUJBQXlCLENBQUMsZUFBZTtRQUM5QyxPQUFPLGVBQWUsSUFBSSxJQUFJLENBQUE7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGtCQUFrQixDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssQ0FBQSxDQUFDLENBQUM7SUFFMUM7Ozs7T0FJRztJQUNILGFBQWEsS0FBSyxPQUFPLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFFN0I7Ozs7Ozs7T0FPRztJQUNILGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzlCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJO1FBQ3BCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFBO1FBQ3JGLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNwQixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxJQUFJO1lBQ0osR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ2xELENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQztDQUNuQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKipcbiAqIFdlYnNvY2tldEpzb25WYWx1ZSB0eXBlLlxuICogQHR5cGVkZWYge251bGwgfCBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nIHwgb2JqZWN0fSBXZWJzb2NrZXRKc29uVmFsdWVcbiAqL1xuLyoqXG4gKiBXZWJzb2NrZXRQYXJhbXMgdHlwZS5cbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBXZWJzb2NrZXRKc29uVmFsdWU+fSBXZWJzb2NrZXRQYXJhbXNcbiAqL1xuLyoqXG4gKiBTZXJ2ZXItc2lkZSBtZXRhZGF0YSBhY2NvbXBhbnlpbmcgYSBtYXRjaGVkIGJyb2FkY2FzdC5cbiAqIEB0eXBlZGVmIHt7YnJvYWRjYXN0UGFyYW1zPzogV2Vic29ja2V0UGFyYW1zLCBldmVudElkPzogc3RyaW5nfX0gV2Vic29ja2V0QnJvYWRjYXN0TWV0YWRhdGFcbiAqL1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGFwcC1kZWZpbmVkIDE6TiBwdWIvc3ViIGNoYW5uZWxzLlxuICpcbiAqIFN1YmNsYXNzZXMgb3ZlcnJpZGU6XG4gKiAgLSBgY2FuU3Vic2NyaWJlKClgIOKAlCBzdWJzY3JpYmUtdGltZSBhdXRoIChkZWZhdWx0IGBmYWxzZWApLlxuICogIC0gYHN1YnNjcmliZWQoKWAgLyBgdW5zdWJzY3JpYmVkKClgIOKAlCBvcHRpb25hbCBsaWZlY3ljbGUgaG9va3MuXG4gKiAgLSBgbWF0Y2hlcyhicm9hZGNhc3RQYXJhbXMpYCDigJQgYnJvYWRjYXN0IHJvdXRpbmcgZmlsdGVyLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNXZWJzb2NrZXRDaGFubmVsIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gU2Vzc2lvbiwgY2hhbm5lbCBwYXJhbWV0ZXJzLCBhbmQgY2xpZW50IHN1YnNjcmlwdGlvbiBpZGVudGlmaWVyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5zdWJzY3JpcHRpb25JZCAtIENsaWVudC1hc3NpZ25lZCBpZCwgdW5pcXVlIHdpdGhpbiB0aGUgc2Vzc2lvbi5cbiAgICogQHBhcmFtIHtXZWJzb2NrZXRQYXJhbXN9IGFyZ3MucGFyYW1zIC0gU3Vic2NyaWJlIHBhcmFtcy5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2NsaWVudC93ZWJzb2NrZXQtc2Vzc2lvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLnNlc3Npb24gLSBPd25pbmcgc2Vzc2lvbi5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtzdWJzY3JpcHRpb25JZCwgcGFyYW1zLCBzZXNzaW9ufSkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBzdWJzY3JpcHRpb25JZFxuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zIHx8IHt9XG4gICAgdGhpcy5zZXNzaW9uID0gc2Vzc2lvblxuICAgIHRoaXMuX2Nsb3NlZCA9IGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlLXRpbWUgYXV0aC4gRGVmYXVsdCBpcyBgZmFsc2VgIChkZW55KS4gQ2hhbm5lbCBhdXRob3JzXG4gICAqIE1VU1Qgb3ZlcnJpZGUgdG8gYWxsb3cgc3Vic2NyaXB0aW9ucy4gUmV0dXJuaW5nIGEgUHJvbWlzZSBkZWZlcnNcbiAgICogdGhlIGBjaGFubmVsLXN1YnNjcmliZWRgIGNvbmZpcm1hdGlvbiB1bnRpbCBpdCByZXNvbHZlcy5cbiAgICogQHJldHVybnMge2Jvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+fSAtIFdoZXRoZXIgdGhlIHN1YnNjcmlwdGlvbiBpcyBhdXRob3JpemVkLlxuICAgKi9cbiAgY2FuU3Vic2NyaWJlKCkgeyByZXR1cm4gZmFsc2UgfVxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCDigJQgY2FsbGVkIG9uY2UgYWZ0ZXIgYGNhblN1YnNjcmliZWAgcmVzb2x2ZXMgdHJ1dGh5IGFuZFxuICAgKiBiZWZvcmUgYGNoYW5uZWwtc3Vic2NyaWJlZGAgaXMgc2VudCB0byB0aGUgY2xpZW50LiBVc2UgZm9yXG4gICAqIGluaXRpYWwgc25hcHNob3QgZGVsaXZlcnkuXG4gICAqIEByZXR1cm5zIHt2b2lkIHwgUHJvbWlzZTx2b2lkPn0gLSBDb21wbGV0ZXMgYWZ0ZXIgc3Vic2NyaXB0aW9uIHNldHVwLlxuICAgKi9cbiAgc3Vic2NyaWJlZCgpIHt9XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIOKAlCBjYWxsZWQgb25jZSB3aGVuIHRoZSBzdWJzY3JpcHRpb24gZW5kcy4gRmlyZXMgb25cbiAgICogY2xpZW50LWluaXRpYXRlZCBgY2hhbm5lbC11bnN1YnNjcmliZWAgb3Igb24gc2Vzc2lvbiB0ZWFyZG93bi5cbiAgICogQHJldHVybnMge3ZvaWQgfCBQcm9taXNlPHZvaWQ+fSAtIENvbXBsZXRlcyBhZnRlciBzdWJzY3JpcHRpb24gdGVhcmRvd24uXG4gICAqL1xuICB1bnN1YnNjcmliZWQoKSB7fVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgdW5kZXJseWluZyBzb2NrZXQgZHJvcHMgYW5kIHRoZSBzZXNzaW9uIGlzXG4gICAqIG1vdmVkIGludG8gdGhlIHBhdXNlZC9ncmFjZSByZWdpc3RyeS4gRWl0aGVyIGBvblJlc3VtZWAgZmlyZXNcbiAgICogb24gc3VjY2Vzc2Z1bCBjbGllbnQgcmVjb25uZWN0LCBvciBgdW5zdWJzY3JpYmVkKClgIGZpcmVzIHdoZW5cbiAgICogdGhlIGdyYWNlIHdpbmRvdyBleHBpcmVzLlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59IC0gQ29tcGxldGVzIGFmdGVyIGRpc2Nvbm5lY3QgaGFuZGxpbmcuXG4gICAqL1xuICBvbkRpc2Nvbm5lY3QoKSB7fVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYWZ0ZXIgYSBjbGllbnQgcmVjb25uZWN0ICsgYHNlc3Npb24tcmVzdW1lYCByZWJpbmRzIHRoaXNcbiAgICogc3Vic2NyaXB0aW9uIHRvIGEgbmV3IHNvY2tldC5cbiAgICogQHJldHVybnMge3ZvaWQgfCBQcm9taXNlPHZvaWQ+fSAtIENvbXBsZXRlcyBhZnRlciByZXN1bWUgaGFuZGxpbmcuXG4gICAqL1xuICBvblJlc3VtZSgpIHt9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBjbGllbnQgc2VuZHMgdXBkYXRlZCBtZXRhZGF0YSAoZS5nLiBhZnRlclxuICAgKiBzaWduLWluIC8gbG9jYWxlIGNoYW5nZSkuIE92ZXJyaWRlIHRvIHJlYWN0IHRvIHNlc3Npb24tbGV2ZWxcbiAgICogbWV0YWRhdGEgdXBkYXRlcy5cbiAgICogQHBhcmFtIHtXZWJzb2NrZXRQYXJhbXN9IF9tZXRhZGF0YSAtIFVwZGF0ZWQgbWV0YWRhdGEuXG4gICAqIEByZXR1cm5zIHt2b2lkIHwgUHJvbWlzZTx2b2lkPn0gLSBDb21wbGV0ZXMgYWZ0ZXIgbWV0YWRhdGEtY2hhbmdlIGhhbmRsaW5nLlxuICAgKi9cbiAgb25NZXRhZGF0YUNoYW5nZWQoX21ldGFkYXRhKSB7fVxuXG4gIC8qKlxuICAgKiBCcm9hZGNhc3Qgcm91dGluZyBmaWx0ZXIuIENhbGxlZCBieSBgYnJvYWRjYXN0VG9DaGFubmVsYCBmb3JcbiAgICogZWFjaCBsaXZlIHN1YnNjcmlwdGlvbiDigJQgcmV0dXJuaW5nIHRydWUgZGVsaXZlcnMgdGhlIGJvZHkgdmlhXG4gICAqIGBzZW5kTWVzc2FnZWAuIERlZmF1bHQgbWF0Y2hlcyBhbGwgYnJvYWRjYXN0cyByZWdhcmRsZXNzIG9mXG4gICAqIHBhcmFtczsgb3ZlcnJpZGUgZm9yIHBlci1zdWJzY3JpYmVyIGZpbHRlcmluZy5cbiAgICogQHBhcmFtIHsuLi5XZWJzb2NrZXRKc29uVmFsdWV9IF9icm9hZGNhc3RBcmdzIC0gUGFyYW1zIGZvcndhcmRlZCBmcm9tIGBicm9hZGNhc3RUb0NoYW5uZWxgIChpZ25vcmVkIGJ5IGRlZmF1bHQpLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUcnVlIHRvIGRlbGl2ZXIgdGhlIGJyb2FkY2FzdCB0byB0aGlzIHN1YnNjcmliZXIuXG4gICAqL1xuICBtYXRjaGVzKC4uLl9icm9hZGNhc3RBcmdzKSB7IHJldHVybiB0cnVlIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYnJvYWRjYXN0IHBhcmFtcyB0aGF0IG1heSBiZSBwZXJzaXN0ZWQgZm9yIHJlcGxheS5cbiAgICogUGVyc2lzdGVkIHBhcmFtcyBhcmUgcmUtYXBwbGllZCB0aHJvdWdoIGBtYXRjaGVzKGJyb2FkY2FzdFBhcmFtcylgXG4gICAqIHdoZW4gcmVwbGF5aW5nIG1pc3NlZCBldmVudHMsIHNvIHRoZXkgbXVzdCBiZSBKU09OLXNlcmlhbGl6YWJsZSBhbmRcbiAgICogc2FmZSB0byBzdG9yZS4gT3ZlcnJpZGUgd2hlbiBgYnJvYWRjYXN0UGFyYW1zYCBjYXJyaWVzIHNlcnZlci1vbmx5XG4gICAqIHZhbHVlcyB0aGF0IG11c3QgbmV2ZXIgcmVhY2ggdGhlIGV2ZW50IGxvZyAoZS5nLiBhdXRob3JpemF0aW9uXG4gICAqIHNuYXBzaG90cykuXG4gICAqIEBwYXJhbSB7V2Vic29ja2V0UGFyYW1zIHwgbnVsbCB8IHVuZGVmaW5lZH0gYnJvYWRjYXN0UGFyYW1zIC0gUGFyYW1zIHBhc3NlZCB0byBgYnJvYWRjYXN0VG9DaGFubmVsYC5cbiAgICogQHJldHVybnMge1dlYnNvY2tldFBhcmFtcyB8IG51bGx9IC0gUGFyYW1zIHRvIHBlcnNpc3QsIG9yIG51bGwgdG8gc3RvcmUgbm9uZS5cbiAgICovXG4gIHN0YXRpYyByZXBsYXlhYmxlQnJvYWRjYXN0UGFyYW1zKGJyb2FkY2FzdFBhcmFtcykge1xuICAgIHJldHVybiBicm9hZGNhc3RQYXJhbXMgPz8gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgcmVwbGF5aW5nIGEgcGVyc2lzdGVkIGJyb2FkY2FzdCB3b3VsZCByZXF1aXJlIGEgY2xpZW50IHJlc3luYy5cbiAgICogU3ViY2xhc3NlcyBvdmVycmlkZSB0aGlzIHdoZW4gcmVwbGF5IHN0b3JhZ2UgZGVsaWJlcmF0ZWx5IG9taXRzIG1ldGFkYXRhXG4gICAqIHJlcXVpcmVkIHRvIGRlbGl2ZXIgYW4gZXZlbnQgc2FmZWx5LlxuICAgKiBAcGFyYW0ge1dlYnNvY2tldEpzb25WYWx1ZX0gX2JvZHkgLSBQZXJzaXN0ZWQgYnJvYWRjYXN0IHBheWxvYWQuXG4gICAqIEByZXR1cm5zIHtib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPn0gLSBXaGV0aGVyIHRoZSBzZXNzaW9uIG11c3QgcmVwb3J0IGEgcmVwbGF5IGdhcC5cbiAgICovXG4gIF9yZXF1aXJlc1JlcGxheUdhcChfYm9keSkgeyByZXR1cm4gZmFsc2UgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHNhbml0aXplZCBkaWFnbm9zdGljcyBmb3IgZGVidWcgc25hcHNob3RzLlxuICAgKiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0byBleHBvc2Ugbm9uLXNlbnNpdGl2ZSByb3V0aW5nIGRldGFpbHMuXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IERlYnVnLXNhZmUgc3Vic2NyaXB0aW9uIGRldGFpbHMuXG4gICAqL1xuICBkZWJ1Z1NuYXBzaG90KCkgeyByZXR1cm4ge30gfVxuXG4gIC8qKlxuICAgKiBEZWxpdmVycyBhIG1hdGNoZWQgYnJvYWRjYXN0IHRvIHRoaXMgc3Vic2NyaWJlci4gU3ViY2xhc3NlcyBjYW5cbiAgICogb3ZlcnJpZGUgd2hlbiB0aGUgb3V0Ym91bmQgYm9keSBtdXN0IGJlIHRhaWxvcmVkIHRvIHN1YnNjcmlwdGlvblxuICAgKiBwYXJhbXMgYmVmb3JlIHNlbmRpbmcuXG4gICAqIEBwYXJhbSB7V2Vic29ja2V0SnNvblZhbHVlfSBib2R5IC0gQnJvYWRjYXN0IHBheWxvYWQgb2ZmZXJlZCB0byB0aGlzIHN1YnNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHtXZWJzb2NrZXRCcm9hZGNhc3RNZXRhZGF0YX0gW21ldGFdIC0gT3B0aW9uYWwgc2VydmVyLXNpZGUgYnJvYWRjYXN0IG1ldGFkYXRhLlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59IC0gQ29tcGxldGVzIGFmdGVyIGJyb2FkY2FzdCBkZWxpdmVyeS5cbiAgICovXG4gIGRlbGl2ZXJCcm9hZGNhc3QoYm9keSwgbWV0YSkge1xuICAgIHRoaXMuc2VuZE1lc3NhZ2UoYm9keSwgbWV0YSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIGBjaGFubmVsLW1lc3NhZ2VgIGZyYW1lIHRvIFRISVMgc3Vic2NyaWJlciBvbmx5LlxuICAgKiBXaGVuIGBtZXRhLmV2ZW50SWRgIGlzIHByb3ZpZGVkLCB0aGUgY2xpZW50IHJlY2VpdmVzIGl0IHNvIGl0XG4gICAqIGNhbiB0cmFjayBpdHMgY2hlY2twb2ludCBmb3IgYGxhc3RFdmVudElkYCByZXBsYXkgb24gcmVjb25uZWN0LlxuICAgKiBAcGFyYW0ge1dlYnNvY2tldEpzb25WYWx1ZX0gYm9keSAtIENoYW5uZWwgcGF5bG9hZCB0byBzZW5kIHRvIHRoZSBzdWJzY3JpYmVkIGNsaWVudC5cbiAgICogQHBhcmFtIHtXZWJzb2NrZXRCcm9hZGNhc3RNZXRhZGF0YX0gW21ldGFdIC0gT3B0aW9uYWwgc2VydmVyLXNpZGUgYnJvYWRjYXN0IG1ldGFkYXRhLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHNlbmRNZXNzYWdlKGJvZHksIG1ldGEpIHtcbiAgICBpZiAodGhpcy5fY2xvc2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzZW5kTWVzc2FnZSBvbiBjbG9zZWQgc3Vic2NyaXB0aW9uICR7dGhpcy5zdWJzY3JpcHRpb25JZH1gKVxuICAgIH1cblxuICAgIHRoaXMuc2Vzc2lvbi5zZW5kSnNvbih7XG4gICAgICB0eXBlOiBcImNoYW5uZWwtbWVzc2FnZVwiLFxuICAgICAgc3Vic2NyaXB0aW9uSWQ6IHRoaXMuc3Vic2NyaXB0aW9uSWQsXG4gICAgICBib2R5LFxuICAgICAgLi4uKG1ldGE/LmV2ZW50SWQgPyB7ZXZlbnRJZDogbWV0YS5ldmVudElkfSA6IHt9KVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBpcyBjbG9zZWQuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgdGhlIGNoYW5uZWwgaXMgY2xvc2VkLlxuICAgKi9cbiAgaXNDbG9zZWQoKSB7IHJldHVybiB0aGlzLl9jbG9zZWQgfVxufVxuIl19
@@ -16,6 +16,10 @@ export type WebsocketEventRow = {
16
16
  * - Serialized payload.
17
17
  */
18
18
  payload_json: string;
19
+ /**
20
+ * - Serialized broadcast params, or null when the publish carried none.
21
+ */
22
+ params_json: string | null;
19
23
  /**
20
24
  * - Sequence number.
21
25
  */
@@ -27,6 +31,32 @@ export type WebsocketReplayChannelRow = {
27
31
  */
28
32
  channel: string;
29
33
  };
34
+ export type WebsocketPersistedEvent = {
35
+ /**
36
+ * - Channel name.
37
+ */
38
+ channel: string;
39
+ /**
40
+ * - ISO creation time.
41
+ */
42
+ createdAt: string;
43
+ /**
44
+ * - Event id.
45
+ */
46
+ id: string;
47
+ /**
48
+ * - Persisted broadcast params, or null when the publish carried none.
49
+ */
50
+ params: Record<string, ReturnType<typeof JSON.parse>> | null;
51
+ /**
52
+ * - Event payload.
53
+ */
54
+ payload: ReturnType<typeof JSON.parse>;
55
+ /**
56
+ * - Sequence number.
57
+ */
58
+ sequence: number;
59
+ };
30
60
  /**
31
61
  * Runs the websocketEventLogStoreForConfiguration helper.
32
62
  * @param {import("../configuration.js").default} configuration - Configuration.
@@ -68,29 +98,35 @@ export default class VelociousHttpServerWebsocketEventLogStore {
68
98
  _schemaReady(): Promise<boolean>;
69
99
  /**
70
100
  * Runs schema present.
71
- * @returns {Promise<boolean>} - Whether both event-log tables physically exist.
101
+ * @returns {Promise<boolean>} - Whether both event-log tables exist and the events table carries every required column.
72
102
  */
73
103
  _schemaPresent(): Promise<boolean>;
104
+ /**
105
+ * Runs column present.
106
+ * @param {import("../database/drivers/base.js").default} db - Database connection.
107
+ * @param {string} tableName - Table name.
108
+ * @param {string} columnName - Column name.
109
+ * @returns {Promise<boolean>} - Whether the column exists on the table.
110
+ */
111
+ _columnPresent(db: import("../database/drivers/base.js").default, tableName: string, columnName: string): Promise<boolean>;
74
112
  /**
75
113
  * Runs append event.
76
114
  * @param {object} args - Options.
77
115
  * @param {string} args.channel - Channel name.
78
116
  * @param {ReturnType<typeof JSON.parse>} args.payload - Event payload.
79
- * @returns {Promise<{channel: string, createdAt: string, id: string, payload: ReturnType<typeof JSON.parse>}>} - Persisted event row.
117
+ * @param {Record<string, ReturnType<typeof JSON.parse>> | null} [args.params] - Broadcast params to persist for stream-scoped replay, or null when the publish carried none.
118
+ * @returns {Promise<WebsocketPersistedEvent>} - Persisted event row.
80
119
  */
81
- appendEvent({ channel, payload }: {
120
+ appendEvent({ channel, params, payload }: {
82
121
  channel: string;
83
122
  payload: ReturnType<typeof JSON.parse>;
84
- }): Promise<{
85
- channel: string;
86
- createdAt: string;
87
- id: string;
88
- payload: ReturnType<typeof JSON.parse>;
89
- }>;
123
+ params?: Record<string, ReturnType<typeof JSON.parse>> | null;
124
+ }): Promise<WebsocketPersistedEvent>;
90
125
  /**
91
126
  * Runs mark channel interested.
92
127
  * @param {string} channel - Channel name.
93
128
  * @returns {Promise<void>} - Resolves when the channel interest was persisted.
129
+ * @throws {Error} When the channel is registered live-only, which forbids replay persistence.
94
130
  */
95
131
  markChannelInterested(channel: string): Promise<void>;
96
132
  /**
@@ -110,18 +146,12 @@ export default class VelociousHttpServerWebsocketEventLogStore {
110
146
  * @param {object} args - Options.
111
147
  * @param {string} args.channel - Channel name.
112
148
  * @param {string} args.id - Event id.
113
- * @returns {Promise<{channel: string, createdAt: string, id: string, payload: ReturnType<typeof JSON.parse>, sequence: number} | null>} - Event row or null.
149
+ * @returns {Promise<WebsocketPersistedEvent | null>} - Event row or null.
114
150
  */
115
151
  getEventById({ channel, id }: {
116
152
  channel: string;
117
153
  id: string;
118
- }): Promise<{
119
- channel: string;
120
- createdAt: string;
121
- id: string;
122
- payload: ReturnType<typeof JSON.parse>;
123
- sequence: number;
124
- } | null>;
154
+ }): Promise<WebsocketPersistedEvent | null>;
125
155
  /**
126
156
  * Runs latest sequence.
127
157
  * @param {string} channel - Channel name.
@@ -134,19 +164,13 @@ export default class VelociousHttpServerWebsocketEventLogStore {
134
164
  * @param {string} args.channel - Channel name.
135
165
  * @param {number} args.sequence - Lower bound sequence.
136
166
  * @param {number | null | undefined} [args.upToSequence] - Inclusive ceiling sequence.
137
- * @returns {Promise<Array<{channel: string, createdAt: string, id: string, payload: ReturnType<typeof JSON.parse>, sequence: number}>>} - Ordered events.
167
+ * @returns {Promise<WebsocketPersistedEvent[]>} - Ordered events.
138
168
  */
139
169
  getEventsAfter({ channel, sequence, upToSequence }: {
140
170
  channel: string;
141
171
  sequence: number;
142
172
  upToSequence?: number | null | undefined;
143
- }): Promise<Array<{
144
- channel: string;
145
- createdAt: string;
146
- id: string;
147
- payload: ReturnType<typeof JSON.parse>;
148
- sequence: number;
149
- }>>;
173
+ }): Promise<WebsocketPersistedEvent[]>;
150
174
  /**
151
175
  * Runs cleanup expired.
152
176
  * @param {object} [args] - Options.
@@ -163,6 +187,13 @@ export default class VelociousHttpServerWebsocketEventLogStore {
163
187
  * @returns {Promise<void>} - Resolves when complete.
164
188
  */
165
189
  _ensureEventsTable(db: import("../database/drivers/base.js").default): Promise<void>;
190
+ /**
191
+ * Adds columns the current schema requires to an events table created by an
192
+ * older framework version, so upgrades keep working without a manual ALTER.
193
+ * @param {import("../database/drivers/base.js").default} db - Database connection.
194
+ * @returns {Promise<void>} - Resolves when the events table schema is current.
195
+ */
196
+ _ensureEventsTableColumns(db: import("../database/drivers/base.js").default): Promise<void>;
166
197
  /**
167
198
  * Runs ensure replay channels table.
168
199
  * @param {import("../database/drivers/base.js").default} db - Database connection.
@@ -175,31 +206,19 @@ export default class VelociousHttpServerWebsocketEventLogStore {
175
206
  * @param {string} args.channel - Channel name.
176
207
  * @param {import("../database/drivers/base.js").default} args.db - Database connection.
177
208
  * @param {string} args.id - Event id.
178
- * @returns {Promise<{channel: string, createdAt: string, id: string, payload: ReturnType<typeof JSON.parse>, sequence: number} | null>} - Event row or null.
209
+ * @returns {Promise<WebsocketPersistedEvent | null>} - Event row or null.
179
210
  */
180
211
  _getEventById({ channel, db, id }: {
181
212
  channel: string;
182
213
  db: import("../database/drivers/base.js").default;
183
214
  id: string;
184
- }): Promise<{
185
- channel: string;
186
- createdAt: string;
187
- id: string;
188
- payload: ReturnType<typeof JSON.parse>;
189
- sequence: number;
190
- } | null>;
215
+ }): Promise<WebsocketPersistedEvent | null>;
191
216
  /**
192
217
  * Runs normalize event row.
193
218
  * @param {WebsocketEventRow} row - Raw row.
194
- * @returns {{channel: string, createdAt: string, id: string, payload: ReturnType<typeof JSON.parse>, sequence: number}} - Normalized row.
219
+ * @returns {WebsocketPersistedEvent} - Normalized row.
195
220
  */
196
- _normalizeEventRow(row: WebsocketEventRow): {
197
- channel: string;
198
- createdAt: string;
199
- id: string;
200
- payload: ReturnType<typeof JSON.parse>;
201
- sequence: number;
202
- };
221
+ _normalizeEventRow(row: WebsocketEventRow): WebsocketPersistedEvent;
203
222
  /**
204
223
  * Runs upsert replay channel interest.
205
224
  * @param {import("../database/drivers/base.js").default} db - Database connection.
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-event-log-store.d.ts","sourceRoot":"","sources":["../../../src/http-server/websocket-event-log-store.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket-event-log-store.d.ts","sourceRoot":"","sources":["../../../src/http-server/websocket-event-log-store.js"],"names":[],"mappings":"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"}