velocious 1.0.514 → 1.0.516

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 (255) hide show
  1. package/README.md +4 -3
  2. package/build/background-jobs/cron-expression.js +9 -9
  3. package/build/background-jobs/forked-runner-child.js +1 -1
  4. package/build/background-jobs/job-runner.js +21 -15
  5. package/build/background-jobs/json-socket.js +4 -0
  6. package/build/background-jobs/main.js +180 -18
  7. package/build/background-jobs/status-reporter.js +12 -5
  8. package/build/background-jobs/store.js +132 -50
  9. package/build/background-jobs/types.js +11 -3
  10. package/build/background-jobs/worker.js +9 -5
  11. package/build/beacon/client.js +13 -6
  12. package/build/configuration.js +54 -29
  13. package/build/controller.js +9 -3
  14. package/build/database/drivers/sqlite/base.js +1 -1
  15. package/build/database/drivers/sqlite/index.js +15 -14
  16. package/build/database/migrations-ledger.js +16 -16
  17. package/build/database/pool/async-tracked-multi-connection.js +16 -0
  18. package/build/database/pool/base.js +26 -0
  19. package/build/database/query/where-model-class-hash.js +2 -0
  20. package/build/database/query/with-count.js +1 -1
  21. package/build/database/record/acts-as-list.js +2 -2
  22. package/build/database/record/auditing.js +23 -6
  23. package/build/database/record/index.js +7 -7
  24. package/build/database/record/validators/uniqueness.js +3 -3
  25. package/build/database/tenants/data-copier.js +23 -23
  26. package/build/database/tenants/schema-cloner.js +27 -27
  27. package/build/environment-handlers/browser.js +0 -1
  28. package/build/environment-handlers/node/cli/commands/background-jobs-runner.js +2 -1
  29. package/build/environment-handlers/node/cli/commands/lint/relationships.js +2 -2
  30. package/build/environment-handlers/node.js +1 -1
  31. package/build/frontend-model-controller.js +26 -18
  32. package/build/frontend-model-resource/base-resource.js +4 -4
  33. package/build/frontend-models/base.js +5 -5
  34. package/build/frontend-models/query.js +12 -12
  35. package/build/http-server/client/index.js +61 -15
  36. package/build/http-server/client/request-runner.js +7 -1
  37. package/build/http-server/client/response.js +17 -1
  38. package/build/http-server/client/websocket-session.js +13 -13
  39. package/build/http-server/server-client.js +96 -0
  40. package/build/http-server/websocket-channel.js +12 -11
  41. package/build/http-server/websocket-connection.js +12 -11
  42. package/build/http-server/websocket-events-host.js +1 -1
  43. package/build/http-server/worker-handler/in-process.js +48 -9
  44. package/build/http-server/worker-handler/index.js +67 -7
  45. package/build/http-server/worker-handler/worker-thread.js +68 -0
  46. package/build/src/background-jobs/cron-expression.d.ts +2 -2
  47. package/build/src/background-jobs/cron-expression.js +10 -10
  48. package/build/src/background-jobs/forked-runner-child.js +2 -2
  49. package/build/src/background-jobs/job-runner.d.ts +5 -1
  50. package/build/src/background-jobs/job-runner.d.ts.map +1 -1
  51. package/build/src/background-jobs/job-runner.js +22 -16
  52. package/build/src/background-jobs/json-socket.d.ts +4 -0
  53. package/build/src/background-jobs/json-socket.d.ts.map +1 -1
  54. package/build/src/background-jobs/json-socket.js +5 -1
  55. package/build/src/background-jobs/main.d.ts +62 -10
  56. package/build/src/background-jobs/main.d.ts.map +1 -1
  57. package/build/src/background-jobs/main.js +171 -19
  58. package/build/src/background-jobs/status-reporter.d.ts +6 -2
  59. package/build/src/background-jobs/status-reporter.d.ts.map +1 -1
  60. package/build/src/background-jobs/status-reporter.js +13 -6
  61. package/build/src/background-jobs/store.d.ts +48 -25
  62. package/build/src/background-jobs/store.d.ts.map +1 -1
  63. package/build/src/background-jobs/store.js +123 -50
  64. package/build/src/background-jobs/types.d.ts +36 -3
  65. package/build/src/background-jobs/types.d.ts.map +1 -1
  66. package/build/src/background-jobs/types.js +12 -4
  67. package/build/src/background-jobs/worker.d.ts +7 -5
  68. package/build/src/background-jobs/worker.d.ts.map +1 -1
  69. package/build/src/background-jobs/worker.js +10 -6
  70. package/build/src/beacon/client.d.ts +6 -3
  71. package/build/src/beacon/client.d.ts.map +1 -1
  72. package/build/src/beacon/client.js +14 -7
  73. package/build/src/configuration-types.d.ts +1 -1
  74. package/build/src/configuration.d.ts +42 -29
  75. package/build/src/configuration.d.ts.map +1 -1
  76. package/build/src/configuration.js +52 -30
  77. package/build/src/controller.d.ts +3 -0
  78. package/build/src/controller.d.ts.map +1 -1
  79. package/build/src/controller.js +9 -4
  80. package/build/src/database/drivers/sqlite/base.js +2 -2
  81. package/build/src/database/drivers/sqlite/index.d.ts +7 -6
  82. package/build/src/database/drivers/sqlite/index.d.ts.map +1 -1
  83. package/build/src/database/drivers/sqlite/index.js +16 -15
  84. package/build/src/database/migrations-ledger.d.ts +16 -16
  85. package/build/src/database/migrations-ledger.js +17 -17
  86. package/build/src/database/pool/async-tracked-multi-connection.d.ts +0 -11
  87. package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
  88. package/build/src/database/pool/async-tracked-multi-connection.js +16 -1
  89. package/build/src/database/pool/base.d.ts +21 -0
  90. package/build/src/database/pool/base.d.ts.map +1 -1
  91. package/build/src/database/pool/base.js +24 -1
  92. package/build/src/database/query/where-model-class-hash.d.ts.map +1 -1
  93. package/build/src/database/query/where-model-class-hash.js +3 -1
  94. package/build/src/database/query/with-count.js +2 -2
  95. package/build/src/database/record/acts-as-list.js +3 -3
  96. package/build/src/database/record/auditing.d.ts +1 -1
  97. package/build/src/database/record/auditing.d.ts.map +1 -1
  98. package/build/src/database/record/auditing.js +24 -7
  99. package/build/src/database/record/index.d.ts +7 -7
  100. package/build/src/database/record/index.js +8 -8
  101. package/build/src/database/record/validators/uniqueness.d.ts +3 -3
  102. package/build/src/database/record/validators/uniqueness.js +4 -4
  103. package/build/src/database/tenants/data-copier.d.ts +18 -18
  104. package/build/src/database/tenants/data-copier.js +24 -24
  105. package/build/src/database/tenants/schema-cloner.d.ts +27 -27
  106. package/build/src/database/tenants/schema-cloner.js +28 -28
  107. package/build/src/environment-handlers/browser.d.ts +9 -0
  108. package/build/src/environment-handlers/browser.d.ts.map +1 -1
  109. package/build/src/environment-handlers/browser.js +1 -2
  110. package/build/src/environment-handlers/node/cli/commands/background-jobs-runner.d.ts.map +1 -1
  111. package/build/src/environment-handlers/node/cli/commands/background-jobs-runner.js +3 -2
  112. package/build/src/environment-handlers/node/cli/commands/lint/relationships.js +3 -3
  113. package/build/src/environment-handlers/node.js +2 -2
  114. package/build/src/frontend-model-controller.d.ts +9 -8
  115. package/build/src/frontend-model-controller.d.ts.map +1 -1
  116. package/build/src/frontend-model-controller.js +26 -19
  117. package/build/src/frontend-model-resource/base-resource.js +5 -5
  118. package/build/src/frontend-models/base.d.ts +4 -4
  119. package/build/src/frontend-models/base.d.ts.map +1 -1
  120. package/build/src/frontend-models/base.js +6 -6
  121. package/build/src/frontend-models/query.d.ts +7 -7
  122. package/build/src/frontend-models/query.js +13 -13
  123. package/build/src/http-server/client/index.d.ts +23 -1
  124. package/build/src/http-server/client/index.d.ts.map +1 -1
  125. package/build/src/http-server/client/index.js +55 -17
  126. package/build/src/http-server/client/request-runner.d.ts.map +1 -1
  127. package/build/src/http-server/client/request-runner.js +8 -2
  128. package/build/src/http-server/client/response.d.ts +11 -1
  129. package/build/src/http-server/client/response.d.ts.map +1 -1
  130. package/build/src/http-server/client/response.js +16 -2
  131. package/build/src/http-server/client/websocket-session.d.ts +13 -13
  132. package/build/src/http-server/client/websocket-session.js +14 -14
  133. package/build/src/http-server/server-client.d.ts +13 -0
  134. package/build/src/http-server/server-client.d.ts.map +1 -1
  135. package/build/src/http-server/server-client.js +94 -1
  136. package/build/src/http-server/websocket-channel.d.ts +12 -11
  137. package/build/src/http-server/websocket-channel.d.ts.map +1 -1
  138. package/build/src/http-server/websocket-channel.js +13 -12
  139. package/build/src/http-server/websocket-connection.d.ts +12 -11
  140. package/build/src/http-server/websocket-connection.d.ts.map +1 -1
  141. package/build/src/http-server/websocket-connection.js +13 -12
  142. package/build/src/http-server/websocket-events-host.d.ts +1 -1
  143. package/build/src/http-server/websocket-events-host.js +2 -2
  144. package/build/src/http-server/worker-handler/in-process.d.ts +2 -0
  145. package/build/src/http-server/worker-handler/in-process.d.ts.map +1 -1
  146. package/build/src/http-server/worker-handler/in-process.js +42 -11
  147. package/build/src/http-server/worker-handler/index.d.ts +21 -0
  148. package/build/src/http-server/worker-handler/index.d.ts.map +1 -1
  149. package/build/src/http-server/worker-handler/index.js +61 -7
  150. package/build/src/http-server/worker-handler/worker-thread.d.ts +30 -0
  151. package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
  152. package/build/src/http-server/worker-handler/worker-thread.js +61 -1
  153. package/build/src/sync/device-identity.d.ts +2 -2
  154. package/build/src/sync/device-identity.d.ts.map +1 -1
  155. package/build/src/sync/device-identity.js +4 -4
  156. package/build/src/sync/local-mutation-log.d.ts +0 -1
  157. package/build/src/sync/local-mutation-log.d.ts.map +1 -1
  158. package/build/src/sync/local-mutation-log.js +1 -2
  159. package/build/src/sync/query-scope.d.ts +5 -0
  160. package/build/src/sync/query-scope.d.ts.map +1 -1
  161. package/build/src/sync/query-scope.js +7 -2
  162. package/build/src/sync/sync-client-types.d.ts +2 -2
  163. package/build/src/sync/sync-client-types.d.ts.map +1 -1
  164. package/build/src/sync/sync-client-types.js +1 -1
  165. package/build/src/sync/sync-client.d.ts +17 -2
  166. package/build/src/sync/sync-client.d.ts.map +1 -1
  167. package/build/src/sync/sync-client.js +28 -14
  168. package/build/src/sync/sync-realtime-bridge.d.ts +6 -2
  169. package/build/src/sync/sync-realtime-bridge.d.ts.map +1 -1
  170. package/build/src/sync/sync-realtime-bridge.js +14 -3
  171. package/build/src/sync/sync-resource-base.d.ts +14 -3
  172. package/build/src/sync/sync-resource-base.d.ts.map +1 -1
  173. package/build/src/sync/sync-resource-base.js +20 -4
  174. package/build/src/sync/sync-scope-store.d.ts +3 -3
  175. package/build/src/sync/sync-scope-store.d.ts.map +1 -1
  176. package/build/src/sync/sync-scope-store.js +7 -5
  177. package/build/src/sync/sync-websocket-channel.d.ts +10 -0
  178. package/build/src/sync/sync-websocket-channel.d.ts.map +1 -1
  179. package/build/src/sync/sync-websocket-channel.js +20 -3
  180. package/build/src/tenants/tenant-iterator.d.ts +8 -8
  181. package/build/src/tenants/tenant-iterator.js +9 -9
  182. package/build/src/tenants/tenant.d.ts +6 -6
  183. package/build/src/tenants/tenant.js +7 -7
  184. package/build/src/testing/test-runner.d.ts +16 -0
  185. package/build/src/testing/test-runner.d.ts.map +1 -1
  186. package/build/src/testing/test-runner.js +79 -19
  187. package/build/sync/device-identity.js +3 -3
  188. package/build/sync/local-mutation-log.js +0 -1
  189. package/build/sync/query-scope.js +6 -1
  190. package/build/sync/sync-client-types.js +1 -1
  191. package/build/sync/sync-client.js +28 -15
  192. package/build/sync/sync-realtime-bridge.js +13 -2
  193. package/build/sync/sync-resource-base.js +20 -3
  194. package/build/sync/sync-scope-store.js +6 -4
  195. package/build/sync/sync-websocket-channel.js +18 -2
  196. package/build/tenants/tenant-iterator.js +8 -8
  197. package/build/tenants/tenant.js +6 -6
  198. package/build/testing/test-runner.js +86 -20
  199. package/package.json +2 -2
  200. package/src/background-jobs/cron-expression.js +9 -9
  201. package/src/background-jobs/forked-runner-child.js +1 -1
  202. package/src/background-jobs/job-runner.js +21 -15
  203. package/src/background-jobs/json-socket.js +4 -0
  204. package/src/background-jobs/main.js +180 -18
  205. package/src/background-jobs/status-reporter.js +12 -5
  206. package/src/background-jobs/store.js +132 -50
  207. package/src/background-jobs/types.js +11 -3
  208. package/src/background-jobs/worker.js +9 -5
  209. package/src/beacon/client.js +13 -6
  210. package/src/configuration.js +54 -29
  211. package/src/controller.js +9 -3
  212. package/src/database/drivers/sqlite/base.js +1 -1
  213. package/src/database/drivers/sqlite/index.js +15 -14
  214. package/src/database/migrations-ledger.js +16 -16
  215. package/src/database/pool/async-tracked-multi-connection.js +16 -0
  216. package/src/database/pool/base.js +26 -0
  217. package/src/database/query/where-model-class-hash.js +2 -0
  218. package/src/database/query/with-count.js +1 -1
  219. package/src/database/record/acts-as-list.js +2 -2
  220. package/src/database/record/auditing.js +23 -6
  221. package/src/database/record/index.js +7 -7
  222. package/src/database/record/validators/uniqueness.js +3 -3
  223. package/src/database/tenants/data-copier.js +23 -23
  224. package/src/database/tenants/schema-cloner.js +27 -27
  225. package/src/environment-handlers/browser.js +0 -1
  226. package/src/environment-handlers/node/cli/commands/background-jobs-runner.js +2 -1
  227. package/src/environment-handlers/node/cli/commands/lint/relationships.js +2 -2
  228. package/src/environment-handlers/node.js +1 -1
  229. package/src/frontend-model-controller.js +26 -18
  230. package/src/frontend-model-resource/base-resource.js +4 -4
  231. package/src/frontend-models/base.js +5 -5
  232. package/src/frontend-models/query.js +12 -12
  233. package/src/http-server/client/index.js +61 -15
  234. package/src/http-server/client/request-runner.js +7 -1
  235. package/src/http-server/client/response.js +17 -1
  236. package/src/http-server/client/websocket-session.js +13 -13
  237. package/src/http-server/server-client.js +96 -0
  238. package/src/http-server/websocket-channel.js +12 -11
  239. package/src/http-server/websocket-connection.js +12 -11
  240. package/src/http-server/websocket-events-host.js +1 -1
  241. package/src/http-server/worker-handler/in-process.js +48 -9
  242. package/src/http-server/worker-handler/index.js +67 -7
  243. package/src/http-server/worker-handler/worker-thread.js +68 -0
  244. package/src/sync/device-identity.js +3 -3
  245. package/src/sync/local-mutation-log.js +0 -1
  246. package/src/sync/query-scope.js +6 -1
  247. package/src/sync/sync-client-types.js +1 -1
  248. package/src/sync/sync-client.js +28 -15
  249. package/src/sync/sync-realtime-bridge.js +13 -2
  250. package/src/sync/sync-resource-base.js +20 -3
  251. package/src/sync/sync-scope-store.js +6 -4
  252. package/src/sync/sync-websocket-channel.js +18 -2
  253. package/src/tenants/tenant-iterator.js +8 -8
  254. package/src/tenants/tenant.js +6 -6
  255. package/src/testing/test-runner.js +86 -20
@@ -31,14 +31,16 @@ export default class BeaconClient extends BeaconClient_base {
31
31
  * @param {string} [args.peerId] - Optional explicit peer id (defaults to a random UUID).
32
32
  * @param {number} [args.reconnectDelayMs] - Starting reconnect delay in ms.
33
33
  * @param {number} [args.maxReconnectDelayMs] - Maximum reconnect delay in ms.
34
+ * @param {number} [args.closeTimeoutMs] - Maximum graceful socket close wait in ms.
34
35
  */
35
- constructor({ host, port, peerType, peerId, reconnectDelayMs, maxReconnectDelayMs }: {
36
+ constructor({ host, port, peerType, peerId, reconnectDelayMs, maxReconnectDelayMs, closeTimeoutMs }: {
36
37
  host: string;
37
38
  port: number;
38
39
  peerType?: string | undefined;
39
40
  peerId?: string | undefined;
40
41
  reconnectDelayMs?: number | undefined;
41
42
  maxReconnectDelayMs?: number | undefined;
43
+ closeTimeoutMs?: number | undefined;
42
44
  });
43
45
  host: string;
44
46
  port: number;
@@ -47,6 +49,7 @@ export default class BeaconClient extends BeaconClient_base {
47
49
  _initialReconnectDelayMs: number;
48
50
  _maxReconnectDelayMs: number;
49
51
  _reconnectDelayMs: number;
52
+ _closeTimeoutMs: number;
50
53
  /**
51
54
  * Narrows the runtime value to the documented type.
52
55
  * @type {JsonSocket | undefined} */
@@ -60,8 +63,8 @@ export default class BeaconClient extends BeaconClient_base {
60
63
  _closed: boolean;
61
64
  /**
62
65
  * Narrows the runtime value to the documented type.
63
- * @type {NodeJS.Timeout | undefined} */
64
- _reconnectTimer: NodeJS.Timeout | undefined;
66
+ * @type {ReturnType<typeof setTimeout> | undefined} */
67
+ _reconnectTimer: ReturnType<typeof setTimeout> | undefined;
65
68
  /**
66
69
  * Narrows the runtime value to the documented type.
67
70
  * @type {Promise<void> | undefined} */
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/beacon/client.js"],"names":[],"mappings":";AAYA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH;IACE;;;;;;;;;OASG;IACH,qFAPG;QAAqB,IAAI,EAAjB,MAAM;QACO,IAAI,EAAjB,MAAM;QACQ,QAAQ;QACR,MAAM;QACN,gBAAgB;QAChB,mBAAmB;KAC3C,EAkCA;IA/BC,aAAgB;IAChB,aAAgB;IAChB,6BAAwB;IACxB,eAAoC;IACpC,iCAA8E;IAC9E,6BAAyE;IACzE,0BAAsD;IACtD;;wCAEoC;IACpC,aADU,UAAU,GAAG,SAAS,CACJ;IAC5B;;wCAEoC;IACpC,SADU,GAAG,CAAC,MAAM,GAAG,SAAS,CACR;IACxB,oBAAuB;IACvB,gBAAmB;IACnB,iBAAoB;IACpB;;4CAEwC;IACxC,iBADU,MAAM,CAAC,OAAO,GAAG,SAAS,CACJ;IAChC;;2CAEuC;IACvC,iBADU,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CACH;IAChC;;;OAGG;IACH,kBAFU,KAAK,GAAG,SAAS,CAEM;IAGnC;;;OAGG;IACH,aAFa,MAAM,CAEe;IAElC;;;OAGG;IACH,eAFa,OAAO,CAEoB;IAExC;;;OAGG;IACH,WAFa,OAAO,CAEY;IAEhC;;;;;;;;OAQG;IACH,WAFa,OAAO,CAAC,IAAI,CAAC,CAyBzB;IAED;;;;;;;;OAQG;IACH,6BAHG;QAAsB,SAAS;KAC/B,GAAU,OAAO,CAAC,IAAI,CAAC,CA+BzB;IAED;;;;;;;;OAQG;IACH,4CALG;QAAqB,OAAO,EAApB,MAAM;QACkB,eAAe,EAAvC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;QACT,IAAI,EAAZ,OAAC;KACT,GAAU,OAAO,CAsBnB;IAED;;;;;;OAMG;IACH,qBAHW,sBAAsB,GACpB,MAAM,IAAI,CAKtB;IAED;;;OAGG;IACH,SAFa,OAAO,CAAC,IAAI,CAAC,CAwBzB;IAED;;;OAGG;IACH,eAFa,IAAI,CAuEhB;IAED;;;OAGG;IACH,sBAFa,IAAI,CAYhB;CACF;;;;qCAhUY,CAAS,IAA2C,EAA3C,OAAO,YAAY,EAAE,sBAAsB,KAAG,IAAI;uBARjD,mCAAmC;gBAH1C,UAAU"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/beacon/client.js"],"names":[],"mappings":";AAaA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH;IACE;;;;;;;;;;OAUG;IACH,qGARG;QAAqB,IAAI,EAAjB,MAAM;QACO,IAAI,EAAjB,MAAM;QACQ,QAAQ;QACR,MAAM;QACN,gBAAgB;QAChB,mBAAmB;QACnB,cAAc;KACtC,EAmCA;IAhCC,aAAgB;IAChB,aAAgB;IAChB,6BAAwB;IACxB,eAAoC;IACpC,iCAA8E;IAC9E,6BAAyE;IACzE,0BAAsD;IACtD,wBAAiE;IACjE;;wCAEoC;IACpC,aADU,UAAU,GAAG,SAAS,CACJ;IAC5B;;wCAEoC;IACpC,SADU,GAAG,CAAC,MAAM,GAAG,SAAS,CACR;IACxB,oBAAuB;IACvB,gBAAmB;IACnB,iBAAoB;IACpB;;2DAEuD;IACvD,iBADU,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,SAAS,CACnB;IAChC;;2CAEuC;IACvC,iBADU,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CACH;IAChC;;;OAGG;IACH,kBAFU,KAAK,GAAG,SAAS,CAEM;IAGnC;;;OAGG;IACH,aAFa,MAAM,CAEe;IAElC;;;OAGG;IACH,eAFa,OAAO,CAEoB;IAExC;;;OAGG;IACH,WAFa,OAAO,CAEY;IAEhC;;;;;;;;OAQG;IACH,WAFa,OAAO,CAAC,IAAI,CAAC,CAyBzB;IAED;;;;;;;;OAQG;IACH,6BAHG;QAAsB,SAAS;KAC/B,GAAU,OAAO,CAAC,IAAI,CAAC,CA+BzB;IAED;;;;;;;;OAQG;IACH,4CALG;QAAqB,OAAO,EAApB,MAAM;QACkB,eAAe,EAAvC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;QACT,IAAI,EAAZ,OAAC;KACT,GAAU,OAAO,CAsBnB;IAED;;;;;;OAMG;IACH,qBAHW,sBAAsB,GACpB,MAAM,IAAI,CAKtB;IAED;;;OAGG;IACH,SAFa,OAAO,CAAC,IAAI,CAAC,CA4BzB;IAED;;;OAGG;IACH,eAFa,IAAI,CAuEhB;IAED;;;OAGG;IACH,sBAFa,IAAI,CAYhB;CACF;;;;qCAtUY,CAAS,IAA2C,EAA3C,OAAO,YAAY,EAAE,sBAAsB,KAAG,IAAI;uBATjD,mCAAmC;gBAH1C,UAAU"}
@@ -6,6 +6,7 @@ import JsonSocket from "../background-jobs/json-socket.js";
6
6
  import EventEmitter from "../utils/event-emitter.js";
7
7
  const DEFAULT_RECONNECT_DELAY_MS = 1000;
8
8
  const MAX_RECONNECT_DELAY_MS = 30_000;
9
+ const DEFAULT_CLOSE_TIMEOUT_MS = 1000;
9
10
  /**
10
11
  * BeaconBroadcastHandler type.
11
12
  * @typedef {function(import("./types.js").BeaconBroadcastMessage): void} BeaconBroadcastHandler
@@ -38,8 +39,9 @@ export default class BeaconClient extends EventEmitter {
38
39
  * @param {string} [args.peerId] - Optional explicit peer id (defaults to a random UUID).
39
40
  * @param {number} [args.reconnectDelayMs] - Starting reconnect delay in ms.
40
41
  * @param {number} [args.maxReconnectDelayMs] - Maximum reconnect delay in ms.
42
+ * @param {number} [args.closeTimeoutMs] - Maximum graceful socket close wait in ms.
41
43
  */
42
- constructor({ host, port, peerType, peerId, reconnectDelayMs, maxReconnectDelayMs }) {
44
+ constructor({ host, port, peerType, peerId, reconnectDelayMs, maxReconnectDelayMs, closeTimeoutMs }) {
43
45
  super();
44
46
  this.host = host;
45
47
  this.port = port;
@@ -48,6 +50,7 @@ export default class BeaconClient extends EventEmitter {
48
50
  this._initialReconnectDelayMs = reconnectDelayMs ?? DEFAULT_RECONNECT_DELAY_MS;
49
51
  this._maxReconnectDelayMs = maxReconnectDelayMs ?? MAX_RECONNECT_DELAY_MS;
50
52
  this._reconnectDelayMs = this._initialReconnectDelayMs;
53
+ this._closeTimeoutMs = closeTimeoutMs ?? DEFAULT_CLOSE_TIMEOUT_MS;
51
54
  /**
52
55
  * Narrows the runtime value to the documented type.
53
56
  * @type {JsonSocket | undefined} */
@@ -61,7 +64,7 @@ export default class BeaconClient extends EventEmitter {
61
64
  this._closed = false;
62
65
  /**
63
66
  * Narrows the runtime value to the documented type.
64
- * @type {NodeJS.Timeout | undefined} */
67
+ * @type {ReturnType<typeof setTimeout> | undefined} */
65
68
  this._reconnectTimer = undefined;
66
69
  /**
67
70
  * Narrows the runtime value to the documented type.
@@ -216,10 +219,14 @@ export default class BeaconClient extends EventEmitter {
216
219
  this._jsonSocket = undefined;
217
220
  if (socket.destroyed)
218
221
  return;
219
- await new Promise((resolve) => {
220
- socket.once("close", () => resolve(undefined));
221
- socket.end();
222
- socket.destroySoon();
222
+ await timeout({ timeout: this._closeTimeoutMs }, async () => {
223
+ await new Promise((resolve) => {
224
+ socket.once("close", () => resolve(undefined));
225
+ socket.end();
226
+ socket.destroySoon();
227
+ });
228
+ }).catch(() => {
229
+ socket.destroy();
223
230
  });
224
231
  }
225
232
  /**
@@ -302,4 +309,4 @@ export default class BeaconClient extends EventEmitter {
302
309
  }, delay);
303
310
  }
304
311
  }
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JlYWNvbi9jbGllbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxhQUFhLENBQUE7QUFDdEMsT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFBO0FBQzFCLE9BQU8sT0FBTyxNQUFNLDJCQUEyQixDQUFBO0FBRS9DLE9BQU8sVUFBVSxNQUFNLG1DQUFtQyxDQUFBO0FBQzFELE9BQU8sWUFBWSxNQUFNLDJCQUEyQixDQUFBO0FBRXBELE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxDQUFBO0FBQ3ZDLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFBO0FBRXJDOzs7R0FHRztBQUVIOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sWUFBYSxTQUFRLFlBQVk7SUFDcEQ7Ozs7Ozs7OztPQVNHO0lBQ0gsWUFBWSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBQztRQUMvRSxLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFBO1FBQ3BDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxnQkFBZ0IsSUFBSSwwQkFBMEIsQ0FBQTtRQUM5RSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLElBQUksc0JBQXNCLENBQUE7UUFDekUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQTtRQUN0RDs7NENBRW9DO1FBQ3BDLElBQUksQ0FB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Q0FBQyxHQUFHLEVBQUU7WUFDckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUE7WUFDaEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtZQUN2RSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDcEIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ1gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCB7cmFuZG9tVVVJRH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCJcbmltcG9ydCBuZXQgZnJvbSBcIm5vZGU6bmV0XCJcbmltcG9ydCB0aW1lb3V0IGZyb20gXCJhd2FpdGVyeS9idWlsZC90aW1lb3V0LmpzXCJcblxuaW1wb3J0IEpzb25Tb2NrZXQgZnJvbSBcIi4uL2JhY2tncm91bmQtam9icy9qc29uLXNvY2tldC5qc1wiXG5pbXBvcnQgRXZlbnRFbWl0dGVyIGZyb20gXCIuLi91dGlscy9ldmVudC1lbWl0dGVyLmpzXCJcblxuY29uc3QgREVGQVVMVF9SRUNPTk5FQ1RfREVMQVlfTVMgPSAxMDAwXG5jb25zdCBNQVhfUkVDT05ORUNUX0RFTEFZX01TID0gMzBfMDAwXG5cbi8qKlxuICogQmVhY29uQnJvYWRjYXN0SGFuZGxlciB0eXBlLlxuICogQHR5cGVkZWYge2Z1bmN0aW9uKGltcG9ydChcIi4vdHlwZXMuanNcIikuQmVhY29uQnJvYWRjYXN0TWVzc2FnZSk6IHZvaWR9IEJlYWNvbkJyb2FkY2FzdEhhbmRsZXJcbiAqL1xuXG4vKipcbiAqIEJlYWNvbkNsaWVudCBjb25uZWN0cyB0byBhIGB2ZWxvY2lvdXMgYmVhY29uYCBkYWVtb24gYW5kIGV4Y2hhbmdlc1xuICogYnJvYWRjYXN0cyB3aXRoIGFsbCBwZWVyIHByb2Nlc3NlcyBjb25uZWN0ZWQgdG8gdGhlIHNhbWUgZGFlbW9uLlxuICpcbiAqIExpZmVjeWNsZTpcbiAqICAgY29uc3QgY2xpZW50ID0gbmV3IEJlYWNvbkNsaWVudCh7aG9zdCwgcG9ydCwgcGVlclR5cGU6IFwic2VydmVyXCJ9KVxuICogICBhd2FpdCBjbGllbnQuY29ubmVjdCgpICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlc29sdmVzIG9uIGZpcnN0IHN1Y2Nlc3NmdWwgY29ubmVjdFxuICogICBhd2FpdCBjbGllbnQud2FpdEZvclJlYWR5KHt0aW1lb3V0TXM6IDEwMDB9KSAgIC8vIHJlc29sdmVzIGFmdGVyIHRoZSBkYWVtb24gaGVsbG8tYWNrXG4gKiAgIGNsaWVudC5vbkJyb2FkY2FzdCgobWVzc2FnZSkgPT4geyAuLi4gfSkgICAgICAgLy8gZXZlcnkgZmFuLW91dFxuICogICBjbGllbnQucHVibGlzaCh7Y2hhbm5lbCwgYnJvYWRjYXN0UGFyYW1zLCBib2R5fSlcbiAqICAgYXdhaXQgY2xpZW50LmNsb3NlKClcbiAqXG4gKiBSZWNvbm5lY3Q6IG9uIHNvY2tldCBjbG9zZSAod2l0aG91dCBhbiBleHBsaWNpdCBgY2xvc2UoKWAgY2FsbCkgdGhlXG4gKiBjbGllbnQgc2NoZWR1bGVzIGEgcmVjb25uZWN0IHdpdGggZXhwb25lbnRpYWwgYmFja29mZi4gV2hpbGUgdGhlXG4gKiB1bmRlcmx5aW5nIHNvY2tldCBpcyBkb3duLCBgcHVibGlzaCguLi4pYCByZXR1cm5zIGZhbHNlIGFuZCB0aGVcbiAqIGNhbGxlciBjYW4gZmFsbCBiYWNrIHRvIGxvY2FsLW9ubHkgZGVsaXZlcnk7IHN1YnNlcXVlbnQgcmVjb25uZWN0cyBkb1xuICogbm90IHJlcGxheSBtaXNzZWQgcHVibGlzaGVzIChCZWFjb24gaXMgcHVic3ViLCBub3QgYSBxdWV1ZSkuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJlYWNvbkNsaWVudCBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmhvc3QgLSBCZWFjb24gaG9zdC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGFyZ3MucG9ydCAtIEJlYWNvbiBwb3J0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3MucGVlclR5cGVdIC0gT3B0aW9uYWwgaHVtYW4tcmVhZGFibGUgcGVlciBsYWJlbC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFthcmdzLnBlZXJJZF0gLSBPcHRpb25hbCBleHBsaWNpdCBwZWVyIGlkIChkZWZhdWx0cyB0byBhIHJhbmRvbSBVVUlEKS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFthcmdzLnJlY29ubmVjdERlbGF5TXNdIC0gU3RhcnRpbmcgcmVjb25uZWN0IGRlbGF5IGluIG1zLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW2FyZ3MubWF4UmVjb25uZWN0RGVsYXlNc10gLSBNYXhpbXVtIHJlY29ubmVjdCBkZWxheSBpbiBtcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtob3N0LCBwb3J0LCBwZWVyVHlwZSwgcGVlcklkLCByZWNvbm5lY3REZWxheU1zLCBtYXhSZWNvbm5lY3REZWxheU1zfSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmhvc3QgPSBob3N0XG4gICAgdGhpcy5wb3J0ID0gcG9ydFxuICAgIHRoaXMucGVlclR5cGUgPSBwZWVyVHlwZVxuICAgIHRoaXMucGVlcklkID0gcGVlcklkIHx8IHJhbmRvbVVVSUQoKVxuICAgIHRoaXMuX2luaXRpYWxSZWNvbm5lY3REZWxheU1zID0gcmVjb25uZWN0RGVsYXlNcyA/PyBERUZBVUxUX1JFQ09OTkVDVF9ERUxBWV9NU1xuICAgIHRoaXMuX21heFJlY29ubmVjdERlbGF5TXMgPSBtYXhSZWNvbm5lY3REZWxheU1zID8/IE1BWF9SRUNPTk5FQ1RfREVMQVlfTVNcbiAgICB0aGlzLl9yZWNvbm5lY3REZWxheU1zID0gdGhpcy5faW5pdGlhbFJlY29ubmVjdERlbGF5TXNcbiAgICAvKipcbiAgICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAgICogQHR5cGUge0pzb25Tb2NrZXQgfCB1bmRlZmluZWR9ICovXG4gICAgdGhpcy5fanNvblNvY2tldCA9IHVuZGVmaW5lZFxuICAgIC8qKlxuICAgICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICAgKiBAdHlwZSB7bmV0LlNvY2tldCB8IHVuZGVmaW5lZH0gKi9cbiAgICB0aGlzLl9zb2NrZXQgPSB1bmRlZmluZWRcbiAgICB0aGlzLl9jb25uZWN0ZWQgPSBmYWxzZVxuICAgIHRoaXMuX3JlYWR5ID0gZmFsc2VcbiAgICB0aGlzLl9jbG9zZWQgPSBmYWxzZVxuICAgIC8qKlxuICAgICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICAgKiBAdHlwZSB7Tm9kZUpTLlRpbWVvdXQgfCB1bmRlZmluZWR9ICovXG4gICAgdGhpcy5fcmVjb25uZWN0VGltZXIgPSB1bmRlZmluZWRcbiAgICAvKipcbiAgICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAgICogQHR5cGUge1Byb21pc2U8dm9pZD4gfCB1bmRlZmluZWR9ICovXG4gICAgdGhpcy5fY29ubmVjdFByb21pc2UgPSB1bmRlZmluZWRcbiAgICAvKipcbiAgICAgKiBMYXN0IHNvY2tldCBlcnJvciBvYnNlcnZlZCB3aGlsZSBjb25uZWN0ZWQsIHN1cmZhY2VkIGFzIHRoZSBkaXNjb25uZWN0IHJlYXNvbi5cbiAgICAgKiBAdHlwZSB7RXJyb3IgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5fbGFzdFNvY2tldEVycm9yID0gdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgcGVlciBpZC5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgcGVlciBpZCBzZW50IG9uIHRoZSBoZWxsbyBoYW5kc2hha2UuXG4gICAqL1xuICBnZXRQZWVySWQoKSB7IHJldHVybiB0aGlzLnBlZXJJZCB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgaXMgY29ubmVjdGVkLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIHRoZSB1bmRlcmx5aW5nIHNvY2tldCBpcyBjdXJyZW50bHkgY29ubmVjdGVkLlxuICAgKi9cbiAgaXNDb25uZWN0ZWQoKSB7IHJldHVybiB0aGlzLl9jb25uZWN0ZWQgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGlzIHJlYWR5LlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIHRoZSBkYWVtb24gaGFzIGFja25vd2xlZGdlZCB0aGlzIHBlZXIgcmVnaXN0cmF0aW9uLlxuICAgKi9cbiAgaXNSZWFkeSgpIHsgcmV0dXJuIHRoaXMuX3JlYWR5IH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgb24gdGhlIGZpcnN0IHN1Y2Nlc3NmdWwgY29ubmVjdC4gU3Vic2VxdWVudCBjYWxscyByZXR1cm5cbiAgICogdGhlIHNhbWUgcHJvbWlzZS4gU3Vic2VxdWVudCByZWNvbm5lY3RzIGFmdGVyIGEgZHJvcCBhcmUgc2lsZW50IOKAlFxuICAgKiB1c2UgYG9uKFwiY29ubmVjdFwiKWAgLyBgb24oXCJkaXNjb25uZWN0XCIsIHJlYXNvbilgIHRvIG9ic2VydmUgdGhlbS5cbiAgICogVGhlIGBkaXNjb25uZWN0YCBsaXN0ZW5lciByZWNlaXZlcyBhbiBgRXJyb3JgIHJlYXNvbjogZWl0aGVyIHRoZVxuICAgKiB1bmRlcmx5aW5nIHNvY2tldCBlcnJvciwgb3IgYEVycm9yKFwiQmVhY29uIGJyb2tlciBkaXNjb25uZWN0ZWRcIilgXG4gICAqIHdoZW4gdGhlIGNsb3NlIGhhZCBubyBwcmVjZWRpbmcgZXJyb3IuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgY29ubmVjdCgpIHtcbiAgICBpZiAodGhpcy5fY2xvc2VkKSB0aHJvdyBuZXcgRXJyb3IoXCJCZWFjb25DbGllbnQgaGFzIGJlZW4gY2xvc2VkXCIpXG4gICAgaWYgKHRoaXMuX2Nvbm5lY3RQcm9taXNlKSByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdFByb21pc2VcblxuICAgIHRoaXMuX2Nvbm5lY3RQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgb25Db25uZWN0ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm9mZihcImNvbm5lY3RcIiwgb25Db25uZWN0KVxuICAgICAgICB0aGlzLm9mZihcImNvbm5lY3QtZXJyb3JcIiwgb25FcnJvcilcbiAgICAgICAgcmVzb2x2ZSgpXG4gICAgICB9XG4gICAgICBjb25zdCBvbkVycm9yID0gKC8qKiBAdHlwZSB7RXJyb3J9ICovIGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMub2ZmKFwiY29ubmVjdFwiLCBvbkNvbm5lY3QpXG4gICAgICAgIHRoaXMub2ZmKFwiY29ubmVjdC1lcnJvclwiLCBvbkVycm9yKVxuICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICB9XG5cbiAgICAgIHRoaXMub24oXCJjb25uZWN0XCIsIG9uQ29ubmVjdClcbiAgICAgIHRoaXMub24oXCJjb25uZWN0LWVycm9yXCIsIG9uRXJyb3IpXG4gICAgfSlcblxuICAgIHRoaXMuX29wZW5Tb2NrZXQoKVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3RQcm9taXNlXG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgYWZ0ZXIgdGhlIEJlYWNvbiBkYWVtb24gaGFzIGFja25vd2xlZGdlZCB0aGlzIHBlZXInc1xuICAgKiBoZWxsbyBoYW5kc2hha2UuIFRoaXMgaXMgc3Ryb25nZXIgdGhhbiBgaXNDb25uZWN0ZWQoKWA6IGNvbm5lY3RlZFxuICAgKiBtZWFucyB0aGUgVENQIHNvY2tldCBpcyBvcGVuLCByZWFkeSBtZWFucyB0aGUgZGFlbW9uIGhhcyByZWdpc3RlcmVkXG4gICAqIHRoZSBwZWVyIGFuZCBicm9hZGNhc3RzIGNhbiBiZSByb3V0ZWQgdGhyb3VnaCB0aGUgYnVzLlxuICAgKiBAcGFyYW0ge29iamVjdH0gW2FyZ3NdIC0gT3B0aW9ucy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFthcmdzLnRpbWVvdXRNc10gLSBPcHRpb25hbCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyB3YWl0Rm9yUmVhZHkoe3RpbWVvdXRNc30gPSB7fSkge1xuICAgIGlmICh0aGlzLl9yZWFkeSkgcmV0dXJuXG5cbiAgICAvKipcbiAgICAgKiBDbGVhbnMgdXAgdGhlIHJlYWR5IGxpc3RlbmVyIGFuZCB0aW1lb3V0LlxuICAgICAqIEB0eXBlIHsoKSA9PiB2b2lkfVxuICAgICAqL1xuICAgIGxldCBjbGVhbnVwID0gKCkgPT4ge31cbiAgICBjb25zdCByZWFkeVByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3Qgb25SZWFkeSA9ICgpID0+IHtcbiAgICAgICAgY2xlYW51cCgpXG4gICAgICAgIHJlc29sdmUodW5kZWZpbmVkKVxuICAgICAgfVxuXG4gICAgICBjbGVhbnVwID0gKCkgPT4gdGhpcy5vZmYoXCJyZWFkeVwiLCBvblJlYWR5KVxuICAgICAgdGhpcy5vbihcInJlYWR5XCIsIG9uUmVhZHkpXG4gICAgfSlcblxuICAgIHRyeSB7XG4gICAgICBpZiAodHlwZW9mIHRpbWVvdXRNcyA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICBhd2FpdCB0aW1lb3V0KHt0aW1lb3V0OiB0aW1lb3V0TXN9LCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQgcmVhZHlQcm9taXNlXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCByZWFkeVByb21pc2VcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgY2xlYW51cCgpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2hlcyBhIGJyb2FkY2FzdCBtZXNzYWdlIHRvIGFsbCBwZWVycyAoaW5jbHVkaW5nIHRoaXMgb25lLFxuICAgKiB1bmxlc3MgdGhlIGRhZW1vbiBpcyByZXN0YXJ0ZWQgbWlkLXB1Ymxpc2gpLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIEJyb2FkY2FzdCBhcmdzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5jaGFubmVsIC0gQ2hhbm5lbCBuYW1lLlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsID8+fSBhcmdzLmJyb2FkY2FzdFBhcmFtcyAtIFJvdXRpbmcgcGFyYW1zLlxuICAgKiBAcGFyYW0gez99IGFyZ3MuYm9keSAtIE1lc3NhZ2UgYm9keS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gVHJ1ZSBpZiB0aGUgcHVibGlzaCB3YXMgd3JpdHRlbiB0byB0aGUgc29ja2V0LiBGYWxzZSBpZiB0aGUgY2xpZW50IGlzIGN1cnJlbnRseSBkaXNjb25uZWN0ZWQuXG4gICAqL1xuICBwdWJsaXNoKHtjaGFubmVsLCBicm9hZGNhc3RQYXJhbXMsIGJvZHl9KSB7XG4gICAgaWYgKCF0aGlzLl9jb25uZWN0ZWQgfHwgIXRoaXMuX2pzb25Tb2NrZXQpIHJldHVybiBmYWxzZVxuXG4gICAgLyoqXG4gICAgICogTWVzc2FnZS5cbiAgICAgKiBAdHlwZSB7aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CZWFjb25Ccm9hZGNhc3RNZXNzYWdlfSAqL1xuICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICB0eXBlOiBcImJyb2FkY2FzdFwiLFxuICAgICAgY2hhbm5lbCxcbiAgICAgIGJyb2FkY2FzdFBhcmFtcyxcbiAgICAgIGJvZHksXG4gICAgICBvcmlnaW5QZWVySWQ6IHRoaXMucGVlcklkXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuX2pzb25Tb2NrZXQuc2VuZChtZXNzYWdlKVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBoYW5kbGVyIGNhbGxlZCBvbmNlIGZvciBldmVyeSBgYnJvYWRjYXN0YCBtZXNzYWdlXG4gICAqIHJlY2VpdmVkIGZyb20gdGhlIGRhZW1vbiAoaW5jbHVkaW5nIGVjaG9lcyBvZiB0aGlzIGNsaWVudCdzIG93blxuICAgKiBwdWJsaXNoZXMg4oCUIHN5bmFwc2Utc3R5bGUgZmFuLW91dCkuXG4gICAqIEBwYXJhbSB7QmVhY29uQnJvYWRjYXN0SGFuZGxlcn0gaGFuZGxlciAtIEhhbmRsZXIuXG4gICAqIEByZXR1cm5zIHsoKSA9PiB2b2lkfSAtIFVucmVnaXN0ZXIgZnVuY3Rpb24uXG4gICAqL1xuICBvbkJyb2FkY2FzdChoYW5kbGVyKSB7XG4gICAgdGhpcy5vbihcImJyb2FkY2FzdFwiLCBoYW5kbGVyKVxuICAgIHJldHVybiAoKSA9PiB0aGlzLm9mZihcImJyb2FkY2FzdFwiLCBoYW5kbGVyKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgY2xvc2UuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIG9uY2UgdGhlIHNvY2tldCBpcyBjbG9zZWQuXG4gICAqL1xuICBhc3luYyBjbG9zZSgpIHtcbiAgICB0aGlzLl9jbG9zZWQgPSB0cnVlXG5cbiAgICBpZiAodGhpcy5fcmVjb25uZWN0VGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9yZWNvbm5lY3RUaW1lcilcbiAgICAgIHRoaXMuX3JlY29ubmVjdFRpbWVyID0gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3Qgc29ja2V0ID0gdGhpcy5fc29ja2V0XG5cbiAgICBpZiAoIXNvY2tldCkgcmV0dXJuXG5cbiAgICB0aGlzLl9zb2NrZXQgPSB1bmRlZmluZWRcbiAgICB0aGlzLl9qc29uU29ja2V0ID0gdW5kZWZpbmVkXG5cbiAgICBpZiAoc29ja2V0LmRlc3Ryb3llZCkgcmV0dXJuXG5cbiAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgc29ja2V0Lm9uY2UoXCJjbG9zZVwiLCAoKSA9PiByZXNvbHZlKHVuZGVmaW5lZCkpXG4gICAgICBzb2NrZXQuZW5kKClcbiAgICAgIHNvY2tldC5kZXN0cm95U29vbigpXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIG9wZW4gc29ja2V0LlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIF9vcGVuU29ja2V0KCkge1xuICAgIGlmICh0aGlzLl9jbG9zZWQpIHJldHVyblxuXG4gICAgY29uc3Qgc29ja2V0ID0gbmV0LmNyZWF0ZUNvbm5lY3Rpb24oe2hvc3Q6IHRoaXMuaG9zdCwgcG9ydDogdGhpcy5wb3J0fSlcbiAgICB0aGlzLl9zb2NrZXQgPSBzb2NrZXRcbiAgICBjb25zdCBqc29uU29ja2V0ID0gbmV3IEpzb25Tb2NrZXQoc29ja2V0KVxuICAgIHRoaXMuX2pzb25Tb2NrZXQgPSBqc29uU29ja2V0XG5cbiAgICBzb2NrZXQub24oXCJjb25uZWN0XCIsICgpID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3RlZCA9IHRydWVcbiAgICAgIHRoaXMuX3JlYWR5ID0gZmFsc2VcbiAgICAgIHRoaXMuX3JlY29ubmVjdERlbGF5TXMgPSB0aGlzLl9pbml0aWFsUmVjb25uZWN0RGVsYXlNc1xuXG4gICAgICBqc29uU29ja2V0LnNlbmQoe1xuICAgICAgICB0eXBlOiBcImhlbGxvXCIsXG4gICAgICAgIHJvbGU6IFwiY2xpZW50XCIsXG4gICAgICAgIHBlZXJJZDogdGhpcy5wZWVySWQsXG4gICAgICAgIHBlZXJUeXBlOiB0aGlzLnBlZXJUeXBlXG4gICAgICB9KVxuXG4gICAgICB0aGlzLmVtaXQoXCJjb25uZWN0XCIpXG4gICAgfSlcblxuICAgIGpzb25Tb2NrZXQub24oXCJtZXNzYWdlXCIsICgvKiogQHR5cGUge2ltcG9ydChcIi4vdHlwZXMuanNcIikuQmVhY29uU29ja2V0TWVzc2FnZX0gKi8gbWVzc2FnZSkgPT4ge1xuICAgICAgaWYgKG1lc3NhZ2U/LnR5cGUgPT09IFwiaGVsbG8tYWNrXCIgJiYgbWVzc2FnZS5wZWVySWQgPT09IHRoaXMucGVlcklkKSB7XG4gICAgICAgIHRoaXMuX3JlYWR5ID0gdHJ1ZVxuICAgICAgICB0aGlzLmVtaXQoXCJyZWFkeVwiKVxuICAgICAgfSBlbHNlIGlmIChtZXNzYWdlPy50eXBlID09PSBcImJyb2FkY2FzdFwiKSB7XG4gICAgICAgIHRoaXMuZW1pdChcImJyb2FkY2FzdFwiLCBtZXNzYWdlKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBqc29uU29ja2V0Lm9uKFwiZXJyb3JcIiwgKGVycm9yKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX2Nvbm5lY3RlZCkge1xuICAgICAgICAvLyBJbml0aWFsIGNvbm5lY3QgZmFpbGVkIOKAlCBzdXJmYWNlIHRvIGBjb25uZWN0KClgJ3MgcHJvbWlzZSB2aWEgYGNvbm5lY3QtZXJyb3JgLlxuICAgICAgICAvLyBObyBgZXJyb3JgIGVtaXQ6IHRoYXQgY2hhbm5lbCBpcyBmb3IgZXN0YWJsaXNoZWQtc2Vzc2lvbiBlcnJvcnM7IHRoZVxuICAgICAgICAvLyBpbml0aWFsLWNvbm5lY3QgcGF0aCBpcyBvd25lZCBieSBgY29ubmVjdC1lcnJvcmAuXG4gICAgICAgIHRoaXMuZW1pdChcImNvbm5lY3QtZXJyb3JcIiwgZXJyb3IpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBFc3RhYmxpc2hlZCBzZXNzaW9uIGVycm9yLiBDYWNoZSBzbyB0aGUgdXBjb21pbmcgYGNsb3NlYCBldmVudCBjYW5cbiAgICAgICAgLy8gc3VyZmFjZSBpdCBhcyB0aGUgZGlzY29ubmVjdCByZWFzb24uXG4gICAgICAgIHRoaXMuX2xhc3RTb2NrZXRFcnJvciA9IGVycm9yXG4gICAgICAgIHRoaXMuZW1pdChcImVycm9yXCIsIGVycm9yKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBqc29uU29ja2V0Lm9uKFwiY2xvc2VcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgd2FzQ29ubmVjdGVkID0gdGhpcy5fY29ubmVjdGVkXG5cbiAgICAgIHRoaXMuX2Nvbm5lY3RlZCA9IGZhbHNlXG4gICAgICB0aGlzLl9yZWFkeSA9IGZhbHNlXG4gICAgICB0aGlzLl9qc29uU29ja2V0ID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLl9zb2NrZXQgPSB1bmRlZmluZWRcblxuICAgICAgLy8gRXhwbGljaXQgY2xvc2UoKSBzZXRzIGBfY2xvc2VkID0gdHJ1ZWAgYmVmb3JlIGVuZGluZyB0aGUgc29ja2V0LlxuICAgICAgLy8gRG9uJ3Qgc3VyZmFjZSB1c2VyLWluaXRpYXRlZCB0ZWFyZG93biBhcyBhIGRpc2Nvbm5lY3QgXCJlcnJvclwiIOKAlFxuICAgICAgLy8gb25seSBuZXR3b3JrLWRyaXZlbiBkcm9wcyBzaG91bGQgYmUgcmVwb3J0ZWQuXG4gICAgICBpZiAod2FzQ29ubmVjdGVkICYmICF0aGlzLl9jbG9zZWQpIHtcbiAgICAgICAgY29uc3QgcmVhc29uID0gdGhpcy5fbGFzdFNvY2tldEVycm9yIHx8IG5ldyBFcnJvcihcIkJlYWNvbiBicm9rZXIgZGlzY29ubmVjdGVkXCIpXG5cbiAgICAgICAgdGhpcy5lbWl0KFwiZGlzY29ubmVjdFwiLCByZWFzb24pXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2xhc3RTb2NrZXRFcnJvciA9IHVuZGVmaW5lZFxuXG4gICAgICBpZiAodGhpcy5fY2xvc2VkKSByZXR1cm5cblxuICAgICAgdGhpcy5fc2NoZWR1bGVSZWNvbm5lY3QoKVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzY2hlZHVsZSByZWNvbm5lY3QuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgX3NjaGVkdWxlUmVjb25uZWN0KCkge1xuICAgIGlmICh0aGlzLl9yZWNvbm5lY3RUaW1lcikgcmV0dXJuXG5cbiAgICBjb25zdCBkZWxheSA9IHRoaXMuX3JlY29ubmVjdERlbGF5TXNcblxuICAgIHRoaXMuX3JlY29ubmVjdFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9yZWNvbm5lY3RUaW1lciA9IHVuZGVmaW5lZFxuICAgICAgdGhpcy5fcmVjb25uZWN0RGVsYXlNcyA9IE1hdGgubWluKGRlbGF5ICogMiwgdGhpcy5fbWF4UmVjb25uZWN0RGVsYXlNcylcbiAgICAgIHRoaXMuX29wZW5Tb2NrZXQoKVxuICAgIH0sIGRlbGF5KVxuICB9XG59XG4iXX0=
312
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JlYWNvbi9jbGllbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxhQUFhLENBQUE7QUFDdEMsT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFBO0FBQzFCLE9BQU8sT0FBTyxNQUFNLDJCQUEyQixDQUFBO0FBRS9DLE9BQU8sVUFBVSxNQUFNLG1DQUFtQyxDQUFBO0FBQzFELE9BQU8sWUFBWSxNQUFNLDJCQUEyQixDQUFBO0FBRXBELE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxDQUFBO0FBQ3ZDLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFBO0FBQ3JDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFBO0FBRXJDOzs7R0FHRztBQUVIOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sWUFBYSxTQUFRLFlBQVk7SUFDcEQ7Ozs7Ozs7Ozs7T0FVRztJQUNILFlBQVksRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFDO1FBQy9GLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUksVUFBVSxFQUFFLENBQUE7UUFDcEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLGdCQUFnQixJQUFJLDBCQUEwQixDQUFBO1FBQzlFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxtQkFBbUIsSUFBSSxzQkFBc0IsQ0FBQTtRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxD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Q0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUE7WUFFakMsSUFBSSxJQUFJLENBQUMsT0FBTztnQkFBRSxPQUFNO1lBRXhCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBQzNCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxlQUFlO1lBQUUsT0FBTTtRQUVoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUE7UUFFcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFBO1lBQ2hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUE7WUFDdkUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3BCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNYLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQge3JhbmRvbVVVSUR9IGZyb20gXCJub2RlOmNyeXB0b1wiXG5pbXBvcnQgbmV0IGZyb20gXCJub2RlOm5ldFwiXG5pbXBvcnQgdGltZW91dCBmcm9tIFwiYXdhaXRlcnkvYnVpbGQvdGltZW91dC5qc1wiXG5cbmltcG9ydCBKc29uU29ja2V0IGZyb20gXCIuLi9iYWNrZ3JvdW5kLWpvYnMvanNvbi1zb2NrZXQuanNcIlxuaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tIFwiLi4vdXRpbHMvZXZlbnQtZW1pdHRlci5qc1wiXG5cbmNvbnN0IERFRkFVTFRfUkVDT05ORUNUX0RFTEFZX01TID0gMTAwMFxuY29uc3QgTUFYX1JFQ09OTkVDVF9ERUxBWV9NUyA9IDMwXzAwMFxuY29uc3QgREVGQVVMVF9DTE9TRV9USU1FT1VUX01TID0gMTAwMFxuXG4vKipcbiAqIEJlYWNvbkJyb2FkY2FzdEhhbmRsZXIgdHlwZS5cbiAqIEB0eXBlZGVmIHtmdW5jdGlvbihpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJlYWNvbkJyb2FkY2FzdE1lc3NhZ2UpOiB2b2lkfSBCZWFjb25Ccm9hZGNhc3RIYW5kbGVyXG4gKi9cblxuLyoqXG4gKiBCZWFjb25DbGllbnQgY29ubmVjdHMgdG8gYSBgdmVsb2Npb3VzIGJlYWNvbmAgZGFlbW9uIGFuZCBleGNoYW5nZXNcbiAqIGJyb2FkY2FzdHMgd2l0aCBhbGwgcGVlciBwcm9jZXNzZXMgY29ubmVjdGVkIHRvIHRoZSBzYW1lIGRhZW1vbi5cbiAqXG4gKiBMaWZlY3ljbGU6XG4gKiAgIGNvbnN0IGNsaWVudCA9IG5ldyBCZWFjb25DbGllbnQoe2hvc3QsIHBvcnQsIHBlZXJUeXBlOiBcInNlcnZlclwifSlcbiAqICAgYXdhaXQgY2xpZW50LmNvbm5lY3QoKSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXNvbHZlcyBvbiBmaXJzdCBzdWNjZXNzZnVsIGNvbm5lY3RcbiAqICAgYXdhaXQgY2xpZW50LndhaXRGb3JSZWFkeSh7dGltZW91dE1zOiAxMDAwfSkgICAvLyByZXNvbHZlcyBhZnRlciB0aGUgZGFlbW9uIGhlbGxvLWFja1xuICogICBjbGllbnQub25Ccm9hZGNhc3QoKG1lc3NhZ2UpID0+IHsgLi4uIH0pICAgICAgIC8vIGV2ZXJ5IGZhbi1vdXRcbiAqICAgY2xpZW50LnB1Ymxpc2goe2NoYW5uZWwsIGJyb2FkY2FzdFBhcmFtcywgYm9keX0pXG4gKiAgIGF3YWl0IGNsaWVudC5jbG9zZSgpXG4gKlxuICogUmVjb25uZWN0OiBvbiBzb2NrZXQgY2xvc2UgKHdpdGhvdXQgYW4gZXhwbGljaXQgYGNsb3NlKClgIGNhbGwpIHRoZVxuICogY2xpZW50IHNjaGVkdWxlcyBhIHJlY29ubmVjdCB3aXRoIGV4cG9uZW50aWFsIGJhY2tvZmYuIFdoaWxlIHRoZVxuICogdW5kZXJseWluZyBzb2NrZXQgaXMgZG93biwgYHB1Ymxpc2goLi4uKWAgcmV0dXJucyBmYWxzZSBhbmQgdGhlXG4gKiBjYWxsZXIgY2FuIGZhbGwgYmFjayB0byBsb2NhbC1vbmx5IGRlbGl2ZXJ5OyBzdWJzZXF1ZW50IHJlY29ubmVjdHMgZG9cbiAqIG5vdCByZXBsYXkgbWlzc2VkIHB1Ymxpc2hlcyAoQmVhY29uIGlzIHB1YnN1Yiwgbm90IGEgcXVldWUpLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCZWFjb25DbGllbnQgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5ob3N0IC0gQmVhY29uIGhvc3QuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBhcmdzLnBvcnQgLSBCZWFjb24gcG9ydC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFthcmdzLnBlZXJUeXBlXSAtIE9wdGlvbmFsIGh1bWFuLXJlYWRhYmxlIHBlZXIgbGFiZWwuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbYXJncy5wZWVySWRdIC0gT3B0aW9uYWwgZXhwbGljaXQgcGVlciBpZCAoZGVmYXVsdHMgdG8gYSByYW5kb20gVVVJRCkuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJncy5yZWNvbm5lY3REZWxheU1zXSAtIFN0YXJ0aW5nIHJlY29ubmVjdCBkZWxheSBpbiBtcy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFthcmdzLm1heFJlY29ubmVjdERlbGF5TXNdIC0gTWF4aW11bSByZWNvbm5lY3QgZGVsYXkgaW4gbXMuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJncy5jbG9zZVRpbWVvdXRNc10gLSBNYXhpbXVtIGdyYWNlZnVsIHNvY2tldCBjbG9zZSB3YWl0IGluIG1zLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2hvc3QsIHBvcnQsIHBlZXJUeXBlLCBwZWVySWQsIHJlY29ubmVjdERlbGF5TXMsIG1heFJlY29ubmVjdERlbGF5TXMsIGNsb3NlVGltZW91dE1zfSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmhvc3QgPSBob3N0XG4gICAgdGhpcy5wb3J0ID0gcG9ydFxuICAgIHRoaXMucGVlclR5cGUgPSBwZWVyVHlwZVxuICAgIHRoaXMucGVlcklkID0gcGVlcklkIHx8IHJhbmRvbVVVSUQoKVxuICAgIHRoaXMuX2luaXRpYWxSZWNvbm5lY3REZWxheU1zID0gcmVjb25uZWN0RGVsYXlNcyA/PyBERUZBVUxUX1JFQ09OTkVDVF9ERUxBWV9NU1xuICAgIHRoaXMuX21heFJlY29ubmVjdERlbGF5TXMgPSBtYXhSZWNvbm5lY3REZWxheU1zID8/IE1BWF9SRUNPTk5FQ1RfREVMQVlfTVNcbiAgICB0aGlzLl9yZWNvbm5lY3REZWxheU1zID0gdGhpcy5faW5pdGlhbFJlY29ubmVjdERlbGF5TXNcbiAgICB0aGlzLl9jbG9zZVRpbWVvdXRNcyA9IGNsb3NlVGltZW91dE1zID8/IERFRkFVTFRfQ0xPU0VfVElNRU9VVF9NU1xuICAgIC8qKlxuICAgICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICAgKiBAdHlwZSB7SnNvblNvY2tldCB8IHVuZGVmaW5lZH0gKi9cbiAgICB0aGlzLl9qc29uU29ja2V0ID0gdW5kZWZpbmVkXG4gICAgLyoqXG4gICAgICogTmFycm93cyB0aGUgcnVudGltZSB2YWx1ZSB0byB0aGUgZG9jdW1lbnRlZCB0eXBlLlxuICAgICAqIEB0eXBlIHtuZXQuU29ja2V0IHwgdW5kZWZpbmVkfSAqL1xuICAgIHRoaXMuX3NvY2tldCA9IHVuZGVmaW5lZFxuICAgIHRoaXMuX2Nvbm5lY3RlZCA9IGZhbHNlXG4gICAgdGhpcy5fcmVhZHkgPSBmYWxzZVxuICAgIHRoaXMuX2Nsb3NlZCA9IGZhbHNlXG4gICAgLyoqXG4gICAgICogTmFycm93cyB0aGUgcnVudGltZSB2YWx1ZSB0byB0aGUgZG9jdW1lbnRlZCB0eXBlLlxuICAgICAqIEB0eXBlIHtSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IHVuZGVmaW5lZH0gKi9cbiAgICB0aGlzLl9yZWNvbm5lY3RUaW1lciA9IHVuZGVmaW5lZFxuICAgIC8qKlxuICAgICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICAgKiBAdHlwZSB7UHJvbWlzZTx2b2lkPiB8IHVuZGVmaW5lZH0gKi9cbiAgICB0aGlzLl9jb25uZWN0UHJvbWlzZSA9IHVuZGVmaW5lZFxuICAgIC8qKlxuICAgICAqIExhc3Qgc29ja2V0IGVycm9yIG9ic2VydmVkIHdoaWxlIGNvbm5lY3RlZCwgc3VyZmFjZWQgYXMgdGhlIGRpc2Nvbm5lY3QgcmVhc29uLlxuICAgICAqIEB0eXBlIHtFcnJvciB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLl9sYXN0U29ja2V0RXJyb3IgPSB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBwZWVyIGlkLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBwZWVyIGlkIHNlbnQgb24gdGhlIGhlbGxvIGhhbmRzaGFrZS5cbiAgICovXG4gIGdldFBlZXJJZCgpIHsgcmV0dXJuIHRoaXMucGVlcklkIH1cblxuICAvKipcbiAgICogUnVucyBpcyBjb25uZWN0ZWQuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgdGhlIHVuZGVybHlpbmcgc29ja2V0IGlzIGN1cnJlbnRseSBjb25uZWN0ZWQuXG4gICAqL1xuICBpc0Nvbm5lY3RlZCgpIHsgcmV0dXJuIHRoaXMuX2Nvbm5lY3RlZCB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgaXMgcmVhZHkuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgdGhlIGRhZW1vbiBoYXMgYWNrbm93bGVkZ2VkIHRoaXMgcGVlciByZWdpc3RyYXRpb24uXG4gICAqL1xuICBpc1JlYWR5KCkgeyByZXR1cm4gdGhpcy5fcmVhZHkgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBvbiB0aGUgZmlyc3Qgc3VjY2Vzc2Z1bCBjb25uZWN0LiBTdWJzZXF1ZW50IGNhbGxzIHJldHVyblxuICAgKiB0aGUgc2FtZSBwcm9taXNlLiBTdWJzZXF1ZW50IHJlY29ubmVjdHMgYWZ0ZXIgYSBkcm9wIGFyZSBzaWxlbnQg4oCUXG4gICAqIHVzZSBgb24oXCJjb25uZWN0XCIpYCAvIGBvbihcImRpc2Nvbm5lY3RcIiwgcmVhc29uKWAgdG8gb2JzZXJ2ZSB0aGVtLlxuICAgKiBUaGUgYGRpc2Nvbm5lY3RgIGxpc3RlbmVyIHJlY2VpdmVzIGFuIGBFcnJvcmAgcmVhc29uOiBlaXRoZXIgdGhlXG4gICAqIHVuZGVybHlpbmcgc29ja2V0IGVycm9yLCBvciBgRXJyb3IoXCJCZWFjb24gYnJva2VyIGRpc2Nvbm5lY3RlZFwiKWBcbiAgICogd2hlbiB0aGUgY2xvc2UgaGFkIG5vIHByZWNlZGluZyBlcnJvci5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBjb25uZWN0KCkge1xuICAgIGlmICh0aGlzLl9jbG9zZWQpIHRocm93IG5ldyBFcnJvcihcIkJlYWNvbkNsaWVudCBoYXMgYmVlbiBjbG9zZWRcIilcbiAgICBpZiAodGhpcy5fY29ubmVjdFByb21pc2UpIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0UHJvbWlzZVxuXG4gICAgdGhpcy5fY29ubmVjdFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBvbkNvbm5lY3QgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMub2ZmKFwiY29ubmVjdFwiLCBvbkNvbm5lY3QpXG4gICAgICAgIHRoaXMub2ZmKFwiY29ubmVjdC1lcnJvclwiLCBvbkVycm9yKVxuICAgICAgICByZXNvbHZlKClcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9uRXJyb3IgPSAoLyoqIEB0eXBlIHtFcnJvcn0gKi8gZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5vZmYoXCJjb25uZWN0XCIsIG9uQ29ubmVjdClcbiAgICAgICAgdGhpcy5vZmYoXCJjb25uZWN0LWVycm9yXCIsIG9uRXJyb3IpXG4gICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgIH1cblxuICAgICAgdGhpcy5vbihcImNvbm5lY3RcIiwgb25Db25uZWN0KVxuICAgICAgdGhpcy5vbihcImNvbm5lY3QtZXJyb3JcIiwgb25FcnJvcilcbiAgICB9KVxuXG4gICAgdGhpcy5fb3BlblNvY2tldCgpXG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdFByb21pc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhZnRlciB0aGUgQmVhY29uIGRhZW1vbiBoYXMgYWNrbm93bGVkZ2VkIHRoaXMgcGVlcidzXG4gICAqIGhlbGxvIGhhbmRzaGFrZS4gVGhpcyBpcyBzdHJvbmdlciB0aGFuIGBpc0Nvbm5lY3RlZCgpYDogY29ubmVjdGVkXG4gICAqIG1lYW5zIHRoZSBUQ1Agc29ja2V0IGlzIG9wZW4sIHJlYWR5IG1lYW5zIHRoZSBkYWVtb24gaGFzIHJlZ2lzdGVyZWRcbiAgICogdGhlIHBlZXIgYW5kIGJyb2FkY2FzdHMgY2FuIGJlIHJvdXRlZCB0aHJvdWdoIHRoZSBidXMuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBbYXJnc10gLSBPcHRpb25zLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW2FyZ3MudGltZW91dE1zXSAtIE9wdGlvbmFsIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHdhaXRGb3JSZWFkeSh7dGltZW91dE1zfSA9IHt9KSB7XG4gICAgaWYgKHRoaXMuX3JlYWR5KSByZXR1cm5cblxuICAgIC8qKlxuICAgICAqIENsZWFucyB1cCB0aGUgcmVhZHkgbGlzdGVuZXIgYW5kIHRpbWVvdXQuXG4gICAgICogQHR5cGUgeygpID0+IHZvaWR9XG4gICAgICovXG4gICAgbGV0IGNsZWFudXAgPSAoKSA9PiB7fVxuICAgIGNvbnN0IHJlYWR5UHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBjb25zdCBvblJlYWR5ID0gKCkgPT4ge1xuICAgICAgICBjbGVhbnVwKClcbiAgICAgICAgcmVzb2x2ZSh1bmRlZmluZWQpXG4gICAgICB9XG5cbiAgICAgIGNsZWFudXAgPSAoKSA9PiB0aGlzLm9mZihcInJlYWR5XCIsIG9uUmVhZHkpXG4gICAgICB0aGlzLm9uKFwicmVhZHlcIiwgb25SZWFkeSlcbiAgICB9KVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICh0eXBlb2YgdGltZW91dE1zID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIGF3YWl0IHRpbWVvdXQoe3RpbWVvdXQ6IHRpbWVvdXRNc30sIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBhd2FpdCByZWFkeVByb21pc2VcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHJlYWR5UHJvbWlzZVxuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBjbGVhbnVwKClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaGVzIGEgYnJvYWRjYXN0IG1lc3NhZ2UgdG8gYWxsIHBlZXJzIChpbmNsdWRpbmcgdGhpcyBvbmUsXG4gICAqIHVubGVzcyB0aGUgZGFlbW9uIGlzIHJlc3RhcnRlZCBtaWQtcHVibGlzaCkuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gQnJvYWRjYXN0IGFyZ3MuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmNoYW5uZWwgLSBDaGFubmVsIG5hbWUuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgPz59IGFyZ3MuYnJvYWRjYXN0UGFyYW1zIC0gUm91dGluZyBwYXJhbXMuXG4gICAqIEBwYXJhbSB7P30gYXJncy5ib2R5IC0gTWVzc2FnZSBib2R5LlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUcnVlIGlmIHRoZSBwdWJsaXNoIHdhcyB3cml0dGVuIHRvIHRoZSBzb2NrZXQuIEZhbHNlIGlmIHRoZSBjbGllbnQgaXMgY3VycmVudGx5IGRpc2Nvbm5lY3RlZC5cbiAgICovXG4gIHB1Ymxpc2goe2NoYW5uZWwsIGJyb2FkY2FzdFBhcmFtcywgYm9keX0pIHtcbiAgICBpZiAoIXRoaXMuX2Nvbm5lY3RlZCB8fCAhdGhpcy5fanNvblNvY2tldCkgcmV0dXJuIGZhbHNlXG5cbiAgICAvKipcbiAgICAgKiBNZXNzYWdlLlxuICAgICAqIEB0eXBlIHtpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJlYWNvbkJyb2FkY2FzdE1lc3NhZ2V9ICovXG4gICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgIHR5cGU6IFwiYnJvYWRjYXN0XCIsXG4gICAgICBjaGFubmVsLFxuICAgICAgYnJvYWRjYXN0UGFyYW1zLFxuICAgICAgYm9keSxcbiAgICAgIG9yaWdpblBlZXJJZDogdGhpcy5wZWVySWRcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5fanNvblNvY2tldC5zZW5kKG1lc3NhZ2UpXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGhhbmRsZXIgY2FsbGVkIG9uY2UgZm9yIGV2ZXJ5IGBicm9hZGNhc3RgIG1lc3NhZ2VcbiAgICogcmVjZWl2ZWQgZnJvbSB0aGUgZGFlbW9uIChpbmNsdWRpbmcgZWNob2VzIG9mIHRoaXMgY2xpZW50J3Mgb3duXG4gICAqIHB1Ymxpc2hlcyDigJQgc3luYXBzZS1zdHlsZSBmYW4tb3V0KS5cbiAgICogQHBhcmFtIHtCZWFjb25Ccm9hZGNhc3RIYW5kbGVyfSBoYW5kbGVyIC0gSGFuZGxlci5cbiAgICogQHJldHVybnMgeygpID0+IHZvaWR9IC0gVW5yZWdpc3RlciBmdW5jdGlvbi5cbiAgICovXG4gIG9uQnJvYWRjYXN0KGhhbmRsZXIpIHtcbiAgICB0aGlzLm9uKFwiYnJvYWRjYXN0XCIsIGhhbmRsZXIpXG4gICAgcmV0dXJuICgpID0+IHRoaXMub2ZmKFwiYnJvYWRjYXN0XCIsIGhhbmRsZXIpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBjbG9zZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgb25jZSB0aGUgc29ja2V0IGlzIGNsb3NlZC5cbiAgICovXG4gIGFzeW5jIGNsb3NlKCkge1xuICAgIHRoaXMuX2Nsb3NlZCA9IHRydWVcblxuICAgIGlmICh0aGlzLl9yZWNvbm5lY3RUaW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3JlY29ubmVjdFRpbWVyKVxuICAgICAgdGhpcy5fcmVjb25uZWN0VGltZXIgPSB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBzb2NrZXQgPSB0aGlzLl9zb2NrZXRcblxuICAgIGlmICghc29ja2V0KSByZXR1cm5cblxuICAgIHRoaXMuX3NvY2tldCA9IHVuZGVmaW5lZFxuICAgIHRoaXMuX2pzb25Tb2NrZXQgPSB1bmRlZmluZWRcblxuICAgIGlmIChzb2NrZXQuZGVzdHJveWVkKSByZXR1cm5cblxuICAgIGF3YWl0IHRpbWVvdXQoe3RpbWVvdXQ6IHRoaXMuX2Nsb3NlVGltZW91dE1zfSwgYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgc29ja2V0Lm9uY2UoXCJjbG9zZVwiLCAoKSA9PiByZXNvbHZlKHVuZGVmaW5lZCkpXG4gICAgICAgIHNvY2tldC5lbmQoKVxuICAgICAgICBzb2NrZXQuZGVzdHJveVNvb24oKVxuICAgICAgfSlcbiAgICB9KS5jYXRjaCgoKSA9PiB7XG4gICAgICBzb2NrZXQuZGVzdHJveSgpXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIG9wZW4gc29ja2V0LlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIF9vcGVuU29ja2V0KCkge1xuICAgIGlmICh0aGlzLl9jbG9zZWQpIHJldHVyblxuXG4gICAgY29uc3Qgc29ja2V0ID0gbmV0LmNyZWF0ZUNvbm5lY3Rpb24oe2hvc3Q6IHRoaXMuaG9zdCwgcG9ydDogdGhpcy5wb3J0fSlcbiAgICB0aGlzLl9zb2NrZXQgPSBzb2NrZXRcbiAgICBjb25zdCBqc29uU29ja2V0ID0gbmV3IEpzb25Tb2NrZXQoc29ja2V0KVxuICAgIHRoaXMuX2pzb25Tb2NrZXQgPSBqc29uU29ja2V0XG5cbiAgICBzb2NrZXQub24oXCJjb25uZWN0XCIsICgpID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3RlZCA9IHRydWVcbiAgICAgIHRoaXMuX3JlYWR5ID0gZmFsc2VcbiAgICAgIHRoaXMuX3JlY29ubmVjdERlbGF5TXMgPSB0aGlzLl9pbml0aWFsUmVjb25uZWN0RGVsYXlNc1xuXG4gICAgICBqc29uU29ja2V0LnNlbmQoe1xuICAgICAgICB0eXBlOiBcImhlbGxvXCIsXG4gICAgICAgIHJvbGU6IFwiY2xpZW50XCIsXG4gICAgICAgIHBlZXJJZDogdGhpcy5wZWVySWQsXG4gICAgICAgIHBlZXJUeXBlOiB0aGlzLnBlZXJUeXBlXG4gICAgICB9KVxuXG4gICAgICB0aGlzLmVtaXQoXCJjb25uZWN0XCIpXG4gICAgfSlcblxuICAgIGpzb25Tb2NrZXQub24oXCJtZXNzYWdlXCIsICgvKiogQHR5cGUge2ltcG9ydChcIi4vdHlwZXMuanNcIikuQmVhY29uU29ja2V0TWVzc2FnZX0gKi8gbWVzc2FnZSkgPT4ge1xuICAgICAgaWYgKG1lc3NhZ2U/LnR5cGUgPT09IFwiaGVsbG8tYWNrXCIgJiYgbWVzc2FnZS5wZWVySWQgPT09IHRoaXMucGVlcklkKSB7XG4gICAgICAgIHRoaXMuX3JlYWR5ID0gdHJ1ZVxuICAgICAgICB0aGlzLmVtaXQoXCJyZWFkeVwiKVxuICAgICAgfSBlbHNlIGlmIChtZXNzYWdlPy50eXBlID09PSBcImJyb2FkY2FzdFwiKSB7XG4gICAgICAgIHRoaXMuZW1pdChcImJyb2FkY2FzdFwiLCBtZXNzYWdlKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBqc29uU29ja2V0Lm9uKFwiZXJyb3JcIiwgKGVycm9yKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX2Nvbm5lY3RlZCkge1xuICAgICAgICAvLyBJbml0aWFsIGNvbm5lY3QgZmFpbGVkIOKAlCBzdXJmYWNlIHRvIGBjb25uZWN0KClgJ3MgcHJvbWlzZSB2aWEgYGNvbm5lY3QtZXJyb3JgLlxuICAgICAgICAvLyBObyBgZXJyb3JgIGVtaXQ6IHRoYXQgY2hhbm5lbCBpcyBmb3IgZXN0YWJsaXNoZWQtc2Vzc2lvbiBlcnJvcnM7IHRoZVxuICAgICAgICAvLyBpbml0aWFsLWNvbm5lY3QgcGF0aCBpcyBvd25lZCBieSBgY29ubmVjdC1lcnJvcmAuXG4gICAgICAgIHRoaXMuZW1pdChcImNvbm5lY3QtZXJyb3JcIiwgZXJyb3IpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBFc3RhYmxpc2hlZCBzZXNzaW9uIGVycm9yLiBDYWNoZSBzbyB0aGUgdXBjb21pbmcgYGNsb3NlYCBldmVudCBjYW5cbiAgICAgICAgLy8gc3VyZmFjZSBpdCBhcyB0aGUgZGlzY29ubmVjdCByZWFzb24uXG4gICAgICAgIHRoaXMuX2xhc3RTb2NrZXRFcnJvciA9IGVycm9yXG4gICAgICAgIHRoaXMuZW1pdChcImVycm9yXCIsIGVycm9yKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBqc29uU29ja2V0Lm9uKFwiY2xvc2VcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgd2FzQ29ubmVjdGVkID0gdGhpcy5fY29ubmVjdGVkXG5cbiAgICAgIHRoaXMuX2Nvbm5lY3RlZCA9IGZhbHNlXG4gICAgICB0aGlzLl9yZWFkeSA9IGZhbHNlXG4gICAgICB0aGlzLl9qc29uU29ja2V0ID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLl9zb2NrZXQgPSB1bmRlZmluZWRcblxuICAgICAgLy8gRXhwbGljaXQgY2xvc2UoKSBzZXRzIGBfY2xvc2VkID0gdHJ1ZWAgYmVmb3JlIGVuZGluZyB0aGUgc29ja2V0LlxuICAgICAgLy8gRG9uJ3Qgc3VyZmFjZSB1c2VyLWluaXRpYXRlZCB0ZWFyZG93biBhcyBhIGRpc2Nvbm5lY3QgXCJlcnJvclwiIOKAlFxuICAgICAgLy8gb25seSBuZXR3b3JrLWRyaXZlbiBkcm9wcyBzaG91bGQgYmUgcmVwb3J0ZWQuXG4gICAgICBpZiAod2FzQ29ubmVjdGVkICYmICF0aGlzLl9jbG9zZWQpIHtcbiAgICAgICAgY29uc3QgcmVhc29uID0gdGhpcy5fbGFzdFNvY2tldEVycm9yIHx8IG5ldyBFcnJvcihcIkJlYWNvbiBicm9rZXIgZGlzY29ubmVjdGVkXCIpXG5cbiAgICAgICAgdGhpcy5lbWl0KFwiZGlzY29ubmVjdFwiLCByZWFzb24pXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2xhc3RTb2NrZXRFcnJvciA9IHVuZGVmaW5lZFxuXG4gICAgICBpZiAodGhpcy5fY2xvc2VkKSByZXR1cm5cblxuICAgICAgdGhpcy5fc2NoZWR1bGVSZWNvbm5lY3QoKVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzY2hlZHVsZSByZWNvbm5lY3QuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgX3NjaGVkdWxlUmVjb25uZWN0KCkge1xuICAgIGlmICh0aGlzLl9yZWNvbm5lY3RUaW1lcikgcmV0dXJuXG5cbiAgICBjb25zdCBkZWxheSA9IHRoaXMuX3JlY29ubmVjdERlbGF5TXNcblxuICAgIHRoaXMuX3JlY29ubmVjdFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9yZWNvbm5lY3RUaW1lciA9IHVuZGVmaW5lZFxuICAgICAgdGhpcy5fcmVjb25uZWN0RGVsYXlNcyA9IE1hdGgubWluKGRlbGF5ICogMiwgdGhpcy5fbWF4UmVjb25uZWN0RGVsYXlNcylcbiAgICAgIHRoaXMuX29wZW5Tb2NrZXQoKVxuICAgIH0sIGRlbGF5KVxuICB9XG59XG4iXX0=
@@ -1473,7 +1473,7 @@ export type VelociousSyncConfiguration = {
1473
1473
  /**
1474
1474
  * - Public backend key used to verify offline device certificates for sync replay.
1475
1475
  */
1476
- deviceCertificateBackendPublicKey?: JsonWebKey | null | undefined;
1476
+ deviceCertificateBackendPublicKey?: import("node:crypto").webcrypto.JsonWebKey | null | undefined;
1477
1477
  /**
1478
1478
  * - Number of accepted server changes retained before clients must refresh from snapshot.
1479
1479
  */
@@ -883,7 +883,8 @@ export default class VelociousConfiguration {
883
883
  _defaultTranslator(msgID: string, args?: Record<string, unknown>): string;
884
884
  /**
885
885
  * Runs get translator.
886
- * @returns {(msgID: string, args?: Record<string, ?>) => string} */
886
+ * @returns {(msgID: string, args?: Record<string, ?>) => string} - The configured translator.
887
+ */
887
888
  getTranslator(): (msgID: string, args?: Record<string, unknown>) => string;
888
889
  _defaultTranslatorBound: ((msgID: string, args?: Record<string, unknown>) => string) | undefined;
889
890
  /**
@@ -928,44 +929,44 @@ export default class VelociousConfiguration {
928
929
  * Registers a `VelociousWebsocketConnection` subclass under a name.
929
930
  * Clients that send `{type: "connection-open", connectionType: name}`
930
931
  * will have this class instantiated for their connection.
931
- * @param {string} name
932
- * @param {typeof import("./http-server/websocket-connection.js").default} ConnectionClass
932
+ * @param {string} name - Client-facing connection type name.
933
+ * @param {typeof import("./http-server/websocket-connection.js").default} ConnectionClass - Websocket connection class.
933
934
  * @returns {void}
934
935
  */
935
936
  registerWebsocketConnection(name: string, ConnectionClass: typeof import("./http-server/websocket-connection.js").default): void;
936
937
  /**
937
938
  * Runs get websocket connection class.
938
- * @param {string} name
939
- * @returns {typeof import("./http-server/websocket-connection.js").default | undefined}
939
+ * @param {string} name - Connection type name to look up.
940
+ * @returns {typeof import("./http-server/websocket-connection.js").default | undefined} - Registered websocket connection class.
940
941
  */
941
942
  getWebsocketConnectionClass(name: string): typeof import("./http-server/websocket-connection.js").default | undefined;
942
943
  /**
943
944
  * Registers a `VelociousWebsocketChannel` subclass under a name.
944
945
  * Clients subscribe via `{type: "channel-subscribe", channelType: name, ...}`.
945
- * @param {string} name
946
- * @param {typeof import("./http-server/websocket-channel.js").default} ChannelClass
946
+ * @param {string} name - Client-facing channel type name.
947
+ * @param {typeof import("./http-server/websocket-channel.js").default} ChannelClass - Websocket channel class.
947
948
  * @returns {void}
948
949
  */
949
950
  registerWebsocketChannel(name: string, ChannelClass: typeof import("./http-server/websocket-channel.js").default): void;
950
951
  /**
951
952
  * Runs get websocket channel class.
952
- * @param {string} name
953
- * @returns {typeof import("./http-server/websocket-channel.js").default | undefined}
953
+ * @param {string} name - Channel type name to look up.
954
+ * @returns {typeof import("./http-server/websocket-channel.js").default | undefined} - Registered websocket channel class.
954
955
  */
955
956
  getWebsocketChannelClass(name: string): typeof import("./http-server/websocket-channel.js").default | undefined;
956
957
  /**
957
958
  * Tracks a live channel subscription in the global routing registry.
958
959
  * Called by the session when `canSubscribe()` resolves truthy; the
959
960
  * session calls `_unregisterWebsocketChannelSubscription` on unsubscribe.
960
- * @param {string} name
961
- * @param {import("./http-server/websocket-channel.js").default} subscription
961
+ * @param {string} name - Channel type used as the routing key.
962
+ * @param {import("./http-server/websocket-channel.js").default} subscription - Live channel subscription to register.
962
963
  * @returns {void}
963
964
  */
964
965
  _registerWebsocketChannelSubscription(name: string, subscription: import("./http-server/websocket-channel.js").default): void;
965
966
  /**
966
967
  * Runs unregister websocket channel subscription.
967
- * @param {string} name
968
- * @param {import("./http-server/websocket-channel.js").default} subscription
968
+ * @param {string} name - Channel type used as the routing key.
969
+ * @param {import("./http-server/websocket-channel.js").default} subscription - Live channel subscription to remove.
969
970
  * @returns {void}
970
971
  */
971
972
  _unregisterWebsocketChannelSubscription(name: string, subscription: import("./http-server/websocket-channel.js").default): void;
@@ -995,13 +996,13 @@ export default class VelociousConfiguration {
995
996
  * connection message / channel dispatch. The wrapper receives the
996
997
  * session and a `next` callback; it must call `next()` to run the
997
998
  * handler. Use it to set up AsyncLocalStorage per request.
998
- * @param {((session: import("./http-server/client/websocket-session.js").default, next: () => Promise<void>) => Promise<void>) | null} wrapper
999
+ * @param {((session: import("./http-server/client/websocket-session.js").default, next: () => Promise<void>) => Promise<void>) | null} wrapper - Per-message session-context wrapper, or null to disable it.
999
1000
  * @returns {void}
1000
1001
  */
1001
1002
  setWebsocketAroundRequest(wrapper: ((session: import("./http-server/client/websocket-session.js").default, next: () => Promise<void>) => Promise<void>) | null): void;
1002
1003
  /**
1003
1004
  * Runs get websocket around request.
1004
- * @returns {((session: import("./http-server/client/websocket-session.js").default, next: () => Promise<void>) => Promise<void>) | null}
1005
+ * @returns {((session: import("./http-server/client/websocket-session.js").default, next: () => Promise<void>) => Promise<void>) | null} - Websocket session wrapper.
1005
1006
  */
1006
1007
  getWebsocketAroundRequest(): ((session: import("./http-server/client/websocket-session.js").default, next: () => Promise<void>) => Promise<void>) | null;
1007
1008
  /**
@@ -1009,7 +1010,7 @@ export default class VelociousConfiguration {
1009
1010
  * HTTP and WS-borne. Receives `{request, response, next}` and must
1010
1011
  * call `next()` to run the action. Use it for per-request context
1011
1012
  * like AsyncLocalStorage-scoped locale or tracing.
1012
- * @param {((context: {request: import("./http-server/client/request.js").default | import("./http-server/client/websocket-request.js").default, response: import("./http-server/client/response.js").default, next: () => Promise<void>}) => Promise<void>) | null} wrapper
1013
+ * @param {((context: {request: import("./http-server/client/request.js").default | import("./http-server/client/websocket-request.js").default, response: import("./http-server/client/response.js").default, next: () => Promise<void>}) => Promise<void>) | null} wrapper - Per-action request-context wrapper, or null to disable it.
1013
1014
  * @returns {void}
1014
1015
  */
1015
1016
  setAroundAction(wrapper: ((context: {
@@ -1019,7 +1020,7 @@ export default class VelociousConfiguration {
1019
1020
  }) => Promise<void>) | null): void;
1020
1021
  /**
1021
1022
  * Runs get around action.
1022
- * @returns {((context: {request: import("./http-server/client/request.js").default | import("./http-server/client/websocket-request.js").default, response: import("./http-server/client/response.js").default, next: () => Promise<void>}) => Promise<void>) | null}
1023
+ * @returns {((context: {request: import("./http-server/client/request.js").default | import("./http-server/client/websocket-request.js").default, response: import("./http-server/client/response.js").default, next: () => Promise<void>}) => Promise<void>) | null} - HTTP request wrapper.
1023
1024
  */
1024
1025
  getAroundAction(): ((context: {
1025
1026
  request: import("./http-server/client/request.js").default | import("./http-server/client/websocket-request.js").default;
@@ -1039,23 +1040,24 @@ export default class VelociousConfiguration {
1039
1040
  *
1040
1041
  * Return `null`/`undefined` to mean "no identity" — resumes still
1041
1042
  * succeed if pause and resume both resolve to a nullish value.
1042
- * @param {((session: import("./http-server/client/websocket-session.js").default) => ? | Promise<?>) | null} resolver
1043
+ * @param {((session: import("./http-server/client/websocket-session.js").default) => ? | Promise<?>) | null} resolver - Authenticated-caller identity resolver, or null to disable identity checks.
1043
1044
  * @returns {void}
1044
1045
  */
1045
1046
  setWebsocketSessionIdentityResolver(resolver: ((session: import("./http-server/client/websocket-session.js").default) => unknown | Promise<unknown>) | null): void;
1046
1047
  /**
1047
1048
  * Runs get websocket session identity resolver.
1048
- * @returns {((session: import("./http-server/client/websocket-session.js").default) => ? | Promise<?>) | null} */
1049
+ * @returns {((session: import("./http-server/client/websocket-session.js").default) => ? | Promise<?>) | null} - The configured identity resolver.
1050
+ */
1049
1051
  getWebsocketSessionIdentityResolver(): ((session: import("./http-server/client/websocket-session.js").default) => unknown | Promise<unknown>) | null;
1050
1052
  /**
1051
1053
  * Runs set websocket session grace seconds.
1052
- * @param {number} seconds
1054
+ * @param {number} seconds - Grace period before a paused session expires.
1053
1055
  * @returns {void}
1054
1056
  */
1055
1057
  setWebsocketSessionGraceSeconds(seconds: number): void;
1056
1058
  /**
1057
1059
  * Runs set websocket session heartbeat seconds.
1058
- * @param {number} seconds
1060
+ * @param {number} seconds - Heartbeat interval, with zero disabling reaping.
1059
1061
  * @returns {void}
1060
1062
  */
1061
1063
  setWebsocketSessionHeartbeatSeconds(seconds: number): void;
@@ -1064,37 +1066,37 @@ export default class VelociousConfiguration {
1064
1066
  * timer. When the timer fires, the session's permanent teardown
1065
1067
  * hook is invoked. Called by the session itself from `_handleClose`
1066
1068
  * when there is resumable state (live Connections / Channel subs).
1067
- * @param {import("./http-server/client/websocket-session.js").default} session
1069
+ * @param {import("./http-server/client/websocket-session.js").default} session - Resumable session to retain during its grace period.
1068
1070
  * @returns {void}
1069
1071
  */
1070
1072
  _pauseWebsocketSession(session: import("./http-server/client/websocket-session.js").default): void;
1071
1073
  /**
1072
1074
  * Looks up a paused session by id (does NOT remove it — caller is
1073
1075
  * expected to call `_resumeWebsocketSession` to complete the handoff).
1074
- * @param {string} sessionId
1075
- * @returns {import("./http-server/client/websocket-session.js").default | null}
1076
+ * @param {string} sessionId - Paused session identifier to look up.
1077
+ * @returns {import("./http-server/client/websocket-session.js").default | null} - Paused session with the requested identifier, if present.
1076
1078
  */
1077
1079
  _findPausedWebsocketSession(sessionId: string): import("./http-server/client/websocket-session.js").default | null;
1078
1080
  /**
1079
1081
  * Removes a paused session from the registry and cancels its grace
1080
1082
  * timer. Called on successful resume handoff and on explicit
1081
1083
  * expiry.
1082
- * @param {string} sessionId
1084
+ * @param {string} sessionId - Paused session identifier to remove and cancel.
1083
1085
  * @returns {void}
1084
1086
  */
1085
1087
  _clearPausedWebsocketSession(sessionId: string): void;
1086
1088
  /**
1087
1089
  * Grace-timer callback. Calls the session's permanent-teardown
1088
1090
  * hook and drops it from the registry.
1089
- * @param {string} sessionId
1091
+ * @param {string} sessionId - Paused session identifier whose grace period expired.
1090
1092
  * @returns {void}
1091
1093
  */
1092
1094
  _expireWebsocketSession(sessionId: string): void;
1093
1095
  /**
1094
1096
  * Runs broadcast to channel.
1095
- * @param {string} name
1096
- * @param {Record<string, ?>} broadcastParams
1097
- * @param {?} body
1097
+ * @param {string} name - Channel type receiving the broadcast.
1098
+ * @param {Record<string, ?>} broadcastParams - Values used to match eligible subscriptions.
1099
+ * @param {?} body - Broadcast payload delivered to matching subscriptions.
1098
1100
  * @returns {void}
1099
1101
  */
1100
1102
  broadcastToChannel(name: string, broadcastParams: Record<string, unknown>, body: unknown): void;
@@ -1274,6 +1276,17 @@ export default class VelociousConfiguration {
1274
1276
  * @returns {T} - Callback result.
1275
1277
  */
1276
1278
  withoutCurrentConnectionContexts<T>(callback: () => T): T;
1279
+ /**
1280
+ * Runs a callback inside every pool's test shared connection context (a no-op for
1281
+ * pools without one). In-process request handling is wrapped in this so a request
1282
+ * runs on the same connection — and open transaction — as the test that issued it,
1283
+ * letting request specs clean up by rolling back instead of truncating. Outside
1284
+ * tests no shared connection is set, so this just runs the callback.
1285
+ * @template T
1286
+ * @param {() => T} callback - Callback to run inside the shared connection contexts.
1287
+ * @returns {T} - Callback result.
1288
+ */
1289
+ runWithTestSharedConnectionContexts<T>(callback: () => T): T;
1277
1290
  /**
1278
1291
  * Runs is missing current connection error.
1279
1292
  * @param {?} error - Error thrown while looking up the current connection.
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/configuration.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/configuration.js"],"names":[],"mappings":"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"}