velocious 1.0.577 → 1.0.579

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 (1676) hide show
  1. package/README.md +12 -6
  2. package/build/application.js +3 -3
  3. package/build/authorization/ability.js +6 -6
  4. package/build/authorization/base-resource.js +1 -1
  5. package/build/background-jobs/client.js +2 -2
  6. package/build/background-jobs/forked-runner-child.js +4 -4
  7. package/build/background-jobs/job-runner.js +2 -2
  8. package/build/background-jobs/job.js +6 -6
  9. package/build/background-jobs/json-socket.js +1 -1
  10. package/build/background-jobs/main.js +13 -13
  11. package/build/background-jobs/normalize-error.js +2 -2
  12. package/build/background-jobs/pooled-runner-child.js +3 -3
  13. package/build/background-jobs/scheduler.js +1 -1
  14. package/build/background-jobs/status-reporter.js +2 -2
  15. package/build/background-jobs/store.js +23 -23
  16. package/build/background-jobs/types.js +6 -6
  17. package/build/background-jobs/web/controller.js +6 -6
  18. package/build/background-jobs/web/counts-channel.js +1 -1
  19. package/build/background-jobs/worker.js +8 -8
  20. package/build/beacon/client.js +3 -3
  21. package/build/beacon/in-process-client.js +3 -3
  22. package/build/beacon/types.js +1 -1
  23. package/build/cli/base-command.js +1 -1
  24. package/build/cli/commands/console.js +1 -1
  25. package/build/cli/commands/db/schema/dump.js +1 -1
  26. package/build/cli/commands/db/schema/load.js +1 -1
  27. package/build/cli/commands/db/seed.js +1 -1
  28. package/build/cli/commands/generate/frontend-models.js +1 -1
  29. package/build/cli/commands/lint/relationships.js +1 -1
  30. package/build/cli/commands/run-script.js +1 -1
  31. package/build/cli/commands/runner.js +1 -1
  32. package/build/cli/index.js +2 -2
  33. package/build/cli/tenant-database-command-helper.js +2 -2
  34. package/build/configuration-types.js +48 -47
  35. package/build/configuration.js +150 -65
  36. package/build/controller.js +11 -8
  37. package/build/current.js +2 -2
  38. package/build/database/annotations-async-hooks.js +3 -3
  39. package/build/database/annotations.js +1 -1
  40. package/build/database/drivers/base-column.js +1 -1
  41. package/build/database/drivers/base-foreign-key.js +1 -1
  42. package/build/database/drivers/base-table.js +1 -1
  43. package/build/database/drivers/base.js +18 -18
  44. package/build/database/drivers/mssql/column.js +1 -1
  45. package/build/database/drivers/mssql/index.js +2 -2
  46. package/build/database/drivers/mssql/options.js +1 -1
  47. package/build/database/drivers/mssql/structure-sql.js +1 -1
  48. package/build/database/drivers/mssql/table.js +1 -1
  49. package/build/database/drivers/mysql/column.js +1 -1
  50. package/build/database/drivers/mysql/index.js +4 -4
  51. package/build/database/drivers/mysql/options.js +1 -1
  52. package/build/database/drivers/mysql/query.js +7 -7
  53. package/build/database/drivers/mysql/structure-sql.js +71 -10
  54. package/build/database/drivers/pgsql/column.js +1 -1
  55. package/build/database/drivers/pgsql/index.js +6 -6
  56. package/build/database/drivers/pgsql/structure-sql.js +1 -1
  57. package/build/database/drivers/sqlite/base.js +7 -7
  58. package/build/database/drivers/sqlite/column.js +1 -1
  59. package/build/database/drivers/sqlite/connection-sql-js.js +1 -1
  60. package/build/database/drivers/sqlite/foreign-key.js +1 -1
  61. package/build/database/drivers/sqlite/index.js +1 -1
  62. package/build/database/drivers/sqlite/index.native.js +2 -2
  63. package/build/database/drivers/sqlite/index.web.js +2 -2
  64. package/build/database/drivers/sqlite/query.js +2 -2
  65. package/build/database/drivers/sqlite/query.native.js +2 -2
  66. package/build/database/drivers/sqlite/query.web.js +2 -2
  67. package/build/database/drivers/sqlite/table-rebuilder.js +1 -1
  68. package/build/database/migration/index.js +2 -2
  69. package/build/database/migrator/types.js +2 -2
  70. package/build/database/operation.js +59 -6
  71. package/build/database/pool/async-tracked-multi-connection.js +75 -24
  72. package/build/database/pool/base-methods-forward.js +2 -2
  73. package/build/database/pool/base.js +48 -17
  74. package/build/database/pool/single-multi-use.js +501 -103
  75. package/build/database/query/delete-base.js +1 -1
  76. package/build/database/query/index.js +3 -3
  77. package/build/database/query/insert-base.js +4 -4
  78. package/build/database/query/model-class-query.js +39 -39
  79. package/build/database/query/preloader/belongs-to.js +2 -2
  80. package/build/database/query/preloader/ensure-model-class-initialized.js +3 -2
  81. package/build/database/query/preloader/has-many.js +3 -3
  82. package/build/database/query/preloader/has-one.js +1 -1
  83. package/build/database/query/preloader.js +9 -2
  84. package/build/database/query/query-data.js +7 -7
  85. package/build/database/query/update-base.js +3 -3
  86. package/build/database/query/upsert-base.js +2 -2
  87. package/build/database/query/where-model-class-hash.js +13 -13
  88. package/build/database/query/with-count.js +12 -12
  89. package/build/database/query-parser/options.js +2 -2
  90. package/build/database/query-parser/select-parser.js +1 -1
  91. package/build/database/record/acts-as-list.js +2 -2
  92. package/build/database/record/attachments/handle.js +6 -6
  93. package/build/database/record/attachments/normalize-input.js +11 -11
  94. package/build/database/record/attachments/storage-drivers/filesystem.js +1 -1
  95. package/build/database/record/attachments/storage-drivers/native.js +5 -5
  96. package/build/database/record/attachments/storage-drivers/s3.js +10 -10
  97. package/build/database/record/attachments/store.js +24 -20
  98. package/build/database/record/auditing.js +123 -29
  99. package/build/database/record/counter-cache-magnitude.js +11 -11
  100. package/build/database/record/index.js +227 -174
  101. package/build/database/record/instance-relationships/base.js +4 -4
  102. package/build/database/record/instance-relationships/belongs-to.js +1 -1
  103. package/build/database/record/instance-relationships/has-many.js +3 -3
  104. package/build/database/record/instance-relationships/has-one.js +1 -1
  105. package/build/database/record/record-not-found-error.js +1 -0
  106. package/build/database/record/relationships/base.js +22 -0
  107. package/build/database/record/state-machine.js +6 -6
  108. package/build/database/record/validators/base.js +1 -1
  109. package/build/database/structure-sql-loader.js +3 -3
  110. package/build/database/table-data/table-column.js +3 -3
  111. package/build/database/use-live-query.js +3 -3
  112. package/build/environment-handlers/base.js +56 -37
  113. package/build/environment-handlers/browser.js +1 -1
  114. package/build/environment-handlers/node/cli/commands/console.js +4 -4
  115. package/build/environment-handlers/node/cli/commands/db/seed.js +2 -2
  116. package/build/environment-handlers/node/cli/commands/generate/base-models.js +1 -1
  117. package/build/environment-handlers/node/cli/commands/run-script.js +2 -2
  118. package/build/environment-handlers/node/cli/commands/runner.js +2 -2
  119. package/build/environment-handlers/node/cli/commands/server.js +1 -1
  120. package/build/environment-handlers/node.js +36 -36
  121. package/build/error-logger.js +2 -2
  122. package/build/error-reporting/request-details.js +32 -32
  123. package/build/frontend-model-controller.js +215 -213
  124. package/build/frontend-model-resource/base-resource.js +44 -44
  125. package/build/frontend-model-resource/velocious-attachment-resource.js +1 -1
  126. package/build/frontend-models/base.js +146 -142
  127. package/build/frontend-models/clear-pending-debounced-callback.js +2 -2
  128. package/build/frontend-models/model-registry.js +4 -4
  129. package/build/frontend-models/outgoing-event-buffer.js +1 -1
  130. package/build/frontend-models/preloader.js +1 -1
  131. package/build/frontend-models/query.js +60 -60
  132. package/build/frontend-models/resource-definition.js +9 -9
  133. package/build/frontend-models/transport-serialization.js +27 -27
  134. package/build/frontend-models/websocket-channel.js +4 -4
  135. package/build/frontend-models/websocket-publishers.js +1 -1
  136. package/build/http-client/request.js +1 -1
  137. package/build/http-client/response.js +1 -1
  138. package/build/http-server/client/index.js +4 -4
  139. package/build/http-server/client/params-to-object.js +16 -16
  140. package/build/http-server/client/request-buffer/index.js +5 -2
  141. package/build/http-server/client/request-parser.js +2 -2
  142. package/build/http-server/client/request-runner.js +2 -2
  143. package/build/http-server/client/request.js +2 -2
  144. package/build/http-server/client/websocket-request.js +6 -6
  145. package/build/http-server/client/websocket-session.js +28 -28
  146. package/build/http-server/cookie.js +2 -2
  147. package/build/http-server/development-reloader.js +1 -1
  148. package/build/http-server/index.js +5 -5
  149. package/build/http-server/remote-address.js +1 -1
  150. package/build/http-server/server-lock.js +4 -4
  151. package/build/http-server/websocket-channel-subscribers.js +4 -4
  152. package/build/http-server/websocket-channel.js +1 -1
  153. package/build/http-server/websocket-connection.js +3 -3
  154. package/build/http-server/websocket-event-log-store.js +9 -9
  155. package/build/http-server/websocket-events-host.js +7 -7
  156. package/build/http-server/websocket-events.js +4 -4
  157. package/build/http-server/worker-handler/channel-subscriber-dispatch.js +1 -1
  158. package/build/http-server/worker-handler/in-process.js +5 -5
  159. package/build/http-server/worker-handler/index.js +10 -10
  160. package/build/http-server/worker-handler/worker-thread.js +8 -8
  161. package/build/index.d.ts.map +1 -1
  162. package/build/logger/base-logger.js +1 -1
  163. package/build/logger.js +12 -12
  164. package/build/mailer/backends/smtp.js +3 -3
  165. package/build/mailer/base.js +14 -14
  166. package/build/mailer/delivery.js +3 -3
  167. package/build/mailer/index.js +1 -1
  168. package/build/mailer.js +1 -1
  169. package/build/plugins/sqljs-wasm-route-controller.js +1 -1
  170. package/build/record-payload-values.js +3 -3
  171. package/build/routes/base-route.js +5 -5
  172. package/build/routes/basic-route.js +4 -4
  173. package/build/routes/get-route.js +2 -2
  174. package/build/routes/hooks/frontend-model-command-route-hook.js +1 -1
  175. package/build/routes/index.js +3 -3
  176. package/build/routes/namespace-route.js +1 -1
  177. package/build/routes/plugin-routes.js +1 -1
  178. package/build/routes/post-route.js +2 -2
  179. package/build/routes/resolver.js +5 -5
  180. package/build/routes/resource-route.js +1 -1
  181. package/build/src/application.d.ts +26 -29
  182. package/build/src/application.d.ts.map +1 -1
  183. package/build/src/application.js +4 -4
  184. package/build/src/authorization/ability.d.ts +47 -53
  185. package/build/src/authorization/ability.d.ts.map +1 -1
  186. package/build/src/authorization/ability.js +7 -7
  187. package/build/src/authorization/base-resource.d.ts +13 -13
  188. package/build/src/authorization/base-resource.d.ts.map +1 -1
  189. package/build/src/authorization/base-resource.js +2 -2
  190. package/build/src/background-jobs/client.d.ts +9 -9
  191. package/build/src/background-jobs/client.d.ts.map +1 -1
  192. package/build/src/background-jobs/client.js +3 -3
  193. package/build/src/background-jobs/cron-expression.d.ts +25 -16
  194. package/build/src/background-jobs/cron-expression.d.ts.map +1 -1
  195. package/build/src/background-jobs/forked-runner-child.js +5 -5
  196. package/build/src/background-jobs/job-record.d.ts +4 -3
  197. package/build/src/background-jobs/job-record.d.ts.map +1 -1
  198. package/build/src/background-jobs/job-registry.d.ts +6 -6
  199. package/build/src/background-jobs/job-registry.d.ts.map +1 -1
  200. package/build/src/background-jobs/job-runner.d.ts +9 -9
  201. package/build/src/background-jobs/job-runner.d.ts.map +1 -1
  202. package/build/src/background-jobs/job-runner.js +3 -3
  203. package/build/src/background-jobs/job.d.ts +14 -14
  204. package/build/src/background-jobs/job.d.ts.map +1 -1
  205. package/build/src/background-jobs/job.js +7 -7
  206. package/build/src/background-jobs/json-socket.d.ts +9 -10
  207. package/build/src/background-jobs/json-socket.d.ts.map +1 -1
  208. package/build/src/background-jobs/json-socket.js +2 -2
  209. package/build/src/background-jobs/main.d.ts +56 -59
  210. package/build/src/background-jobs/main.d.ts.map +1 -1
  211. package/build/src/background-jobs/main.js +14 -14
  212. package/build/src/background-jobs/normalize-error.d.ts +2 -2
  213. package/build/src/background-jobs/normalize-error.d.ts.map +1 -1
  214. package/build/src/background-jobs/normalize-error.js +3 -3
  215. package/build/src/background-jobs/pooled-runner-child.js +4 -4
  216. package/build/src/background-jobs/runner-graceful-shutdown.d.ts +7 -12
  217. package/build/src/background-jobs/runner-graceful-shutdown.d.ts.map +1 -1
  218. package/build/src/background-jobs/runner-process-title.d.ts.map +1 -1
  219. package/build/src/background-jobs/scheduler.d.ts +41 -41
  220. package/build/src/background-jobs/scheduler.d.ts.map +1 -1
  221. package/build/src/background-jobs/scheduler.js +2 -2
  222. package/build/src/background-jobs/socket-request.d.ts +14 -14
  223. package/build/src/background-jobs/socket-request.d.ts.map +1 -1
  224. package/build/src/background-jobs/status-reporter.d.ts +28 -28
  225. package/build/src/background-jobs/status-reporter.d.ts.map +1 -1
  226. package/build/src/background-jobs/status-reporter.js +3 -3
  227. package/build/src/background-jobs/store.d.ts +100 -103
  228. package/build/src/background-jobs/store.d.ts.map +1 -1
  229. package/build/src/background-jobs/store.js +24 -24
  230. package/build/src/background-jobs/types.d.ts +124 -124
  231. package/build/src/background-jobs/types.d.ts.map +1 -1
  232. package/build/src/background-jobs/types.js +7 -7
  233. package/build/src/background-jobs/web/authorization.d.ts +2 -2
  234. package/build/src/background-jobs/web/authorization.d.ts.map +1 -1
  235. package/build/src/background-jobs/web/controller.d.ts +13 -13
  236. package/build/src/background-jobs/web/controller.d.ts.map +1 -1
  237. package/build/src/background-jobs/web/controller.js +7 -7
  238. package/build/src/background-jobs/web/counts-channel.d.ts +8 -8
  239. package/build/src/background-jobs/web/counts-channel.d.ts.map +1 -1
  240. package/build/src/background-jobs/web/counts-channel.js +2 -2
  241. package/build/src/background-jobs/web/index.d.ts +4 -4
  242. package/build/src/background-jobs/web/index.d.ts.map +1 -1
  243. package/build/src/background-jobs/web/path-matcher.d.ts +18 -13
  244. package/build/src/background-jobs/web/path-matcher.d.ts.map +1 -1
  245. package/build/src/background-jobs/web/registry.d.ts +21 -24
  246. package/build/src/background-jobs/web/registry.d.ts.map +1 -1
  247. package/build/src/background-jobs/worker.d.ts +74 -77
  248. package/build/src/background-jobs/worker.d.ts.map +1 -1
  249. package/build/src/background-jobs/worker.js +9 -9
  250. package/build/src/beacon/client.d.ts +30 -34
  251. package/build/src/beacon/client.d.ts.map +1 -1
  252. package/build/src/beacon/client.js +4 -4
  253. package/build/src/beacon/in-process-broker.d.ts +6 -9
  254. package/build/src/beacon/in-process-broker.d.ts.map +1 -1
  255. package/build/src/beacon/in-process-client.d.ts +17 -21
  256. package/build/src/beacon/in-process-client.d.ts.map +1 -1
  257. package/build/src/beacon/in-process-client.js +4 -4
  258. package/build/src/beacon/server.d.ts +15 -15
  259. package/build/src/beacon/server.d.ts.map +1 -1
  260. package/build/src/beacon/types.d.ts +21 -46
  261. package/build/src/beacon/types.d.ts.map +1 -1
  262. package/build/src/beacon/types.js +2 -2
  263. package/build/src/cli/base-command.d.ts +25 -28
  264. package/build/src/cli/base-command.d.ts.map +1 -1
  265. package/build/src/cli/base-command.js +2 -2
  266. package/build/src/cli/browser-cli.d.ts +1 -1
  267. package/build/src/cli/browser-cli.d.ts.map +1 -1
  268. package/build/src/cli/commands/background-jobs-main.d.ts +2 -1
  269. package/build/src/cli/commands/background-jobs-main.d.ts.map +1 -1
  270. package/build/src/cli/commands/background-jobs-runner.d.ts +2 -1
  271. package/build/src/cli/commands/background-jobs-runner.d.ts.map +1 -1
  272. package/build/src/cli/commands/background-jobs-worker.d.ts +2 -1
  273. package/build/src/cli/commands/background-jobs-worker.d.ts.map +1 -1
  274. package/build/src/cli/commands/beacon.d.ts +2 -1
  275. package/build/src/cli/commands/beacon.d.ts.map +1 -1
  276. package/build/src/cli/commands/console.d.ts +6 -1
  277. package/build/src/cli/commands/console.d.ts.map +1 -1
  278. package/build/src/cli/commands/console.js +2 -2
  279. package/build/src/cli/commands/db/base-command.d.ts +1 -1
  280. package/build/src/cli/commands/db/base-command.d.ts.map +1 -1
  281. package/build/src/cli/commands/db/create.d.ts +1 -1
  282. package/build/src/cli/commands/db/create.d.ts.map +1 -1
  283. package/build/src/cli/commands/db/drop.d.ts +1 -1
  284. package/build/src/cli/commands/db/drop.d.ts.map +1 -1
  285. package/build/src/cli/commands/db/migrate.d.ts +1 -1
  286. package/build/src/cli/commands/db/migrate.d.ts.map +1 -1
  287. package/build/src/cli/commands/db/reset.d.ts +1 -1
  288. package/build/src/cli/commands/db/reset.d.ts.map +1 -1
  289. package/build/src/cli/commands/db/rollback.d.ts +1 -1
  290. package/build/src/cli/commands/db/rollback.d.ts.map +1 -1
  291. package/build/src/cli/commands/db/schema/dump.d.ts +6 -1
  292. package/build/src/cli/commands/db/schema/dump.d.ts.map +1 -1
  293. package/build/src/cli/commands/db/schema/dump.js +2 -2
  294. package/build/src/cli/commands/db/schema/load.d.ts +6 -1
  295. package/build/src/cli/commands/db/schema/load.d.ts.map +1 -1
  296. package/build/src/cli/commands/db/schema/load.js +2 -2
  297. package/build/src/cli/commands/db/seed.d.ts +6 -1
  298. package/build/src/cli/commands/db/seed.d.ts.map +1 -1
  299. package/build/src/cli/commands/db/seed.js +2 -2
  300. package/build/src/cli/commands/db/tenants/check.d.ts +1 -1
  301. package/build/src/cli/commands/db/tenants/check.d.ts.map +1 -1
  302. package/build/src/cli/commands/db/tenants/create.d.ts +1 -1
  303. package/build/src/cli/commands/db/tenants/create.d.ts.map +1 -1
  304. package/build/src/cli/commands/db/tenants/drop.d.ts +1 -1
  305. package/build/src/cli/commands/db/tenants/drop.d.ts.map +1 -1
  306. package/build/src/cli/commands/db/tenants/migrate.d.ts +1 -1
  307. package/build/src/cli/commands/db/tenants/migrate.d.ts.map +1 -1
  308. package/build/src/cli/commands/destroy/migration.d.ts +2 -1
  309. package/build/src/cli/commands/destroy/migration.d.ts.map +1 -1
  310. package/build/src/cli/commands/generate/base-models.d.ts +2 -1
  311. package/build/src/cli/commands/generate/base-models.d.ts.map +1 -1
  312. package/build/src/cli/commands/generate/frontend-models.d.ts +6 -1
  313. package/build/src/cli/commands/generate/frontend-models.d.ts.map +1 -1
  314. package/build/src/cli/commands/generate/frontend-models.js +2 -2
  315. package/build/src/cli/commands/generate/migration.d.ts +2 -1
  316. package/build/src/cli/commands/generate/migration.d.ts.map +1 -1
  317. package/build/src/cli/commands/generate/model.d.ts +2 -1
  318. package/build/src/cli/commands/generate/model.d.ts.map +1 -1
  319. package/build/src/cli/commands/init.d.ts +4 -2
  320. package/build/src/cli/commands/init.d.ts.map +1 -1
  321. package/build/src/cli/commands/lint/relationships.d.ts +6 -1
  322. package/build/src/cli/commands/lint/relationships.d.ts.map +1 -1
  323. package/build/src/cli/commands/lint/relationships.js +2 -2
  324. package/build/src/cli/commands/routes.d.ts +2 -1
  325. package/build/src/cli/commands/routes.d.ts.map +1 -1
  326. package/build/src/cli/commands/run-script.d.ts +6 -1
  327. package/build/src/cli/commands/run-script.d.ts.map +1 -1
  328. package/build/src/cli/commands/run-script.js +2 -2
  329. package/build/src/cli/commands/runner.d.ts +6 -1
  330. package/build/src/cli/commands/runner.d.ts.map +1 -1
  331. package/build/src/cli/commands/runner.js +2 -2
  332. package/build/src/cli/commands/server.d.ts +2 -1
  333. package/build/src/cli/commands/server.d.ts.map +1 -1
  334. package/build/src/cli/commands/test.d.ts +2 -1
  335. package/build/src/cli/commands/test.d.ts.map +1 -1
  336. package/build/src/cli/index.d.ts +20 -20
  337. package/build/src/cli/index.d.ts.map +1 -1
  338. package/build/src/cli/index.js +3 -3
  339. package/build/src/cli/tenant-database-command-helper.d.ts +13 -13
  340. package/build/src/cli/tenant-database-command-helper.d.ts.map +1 -1
  341. package/build/src/cli/tenant-database-command-helper.js +3 -3
  342. package/build/src/cli/use-browser-cli.d.ts +1 -1
  343. package/build/src/cli/use-browser-cli.d.ts.map +1 -1
  344. package/build/src/configuration-resolver.d.ts +1 -1
  345. package/build/src/configuration-resolver.d.ts.map +1 -1
  346. package/build/src/configuration-types.d.ts +947 -1038
  347. package/build/src/configuration-types.d.ts.map +1 -1
  348. package/build/src/configuration-types.js +49 -48
  349. package/build/src/configuration.d.ts +145 -139
  350. package/build/src/configuration.d.ts.map +1 -1
  351. package/build/src/configuration.js +149 -66
  352. package/build/src/controller.d.ts +37 -35
  353. package/build/src/controller.d.ts.map +1 -1
  354. package/build/src/controller.js +11 -9
  355. package/build/src/current-configuration.d.ts +5 -4
  356. package/build/src/current-configuration.d.ts.map +1 -1
  357. package/build/src/current.d.ts +3 -3
  358. package/build/src/current.d.ts.map +1 -1
  359. package/build/src/current.js +3 -3
  360. package/build/src/database/advisory-lock-runner.d.ts +61 -60
  361. package/build/src/database/advisory-lock-runner.d.ts.map +1 -1
  362. package/build/src/database/annotations-async-hooks.js +4 -4
  363. package/build/src/database/annotations.d.ts +4 -6
  364. package/build/src/database/annotations.d.ts.map +1 -1
  365. package/build/src/database/annotations.js +2 -2
  366. package/build/src/database/column-types.d.ts +1 -1
  367. package/build/src/database/column-types.d.ts.map +1 -1
  368. package/build/src/database/datetime-storage.d.ts +6 -6
  369. package/build/src/database/datetime-storage.d.ts.map +1 -1
  370. package/build/src/database/drivers/base-column.d.ts +3 -3
  371. package/build/src/database/drivers/base-column.d.ts.map +1 -1
  372. package/build/src/database/drivers/base-column.js +2 -2
  373. package/build/src/database/drivers/base-columns-index.d.ts +2 -2
  374. package/build/src/database/drivers/base-columns-index.d.ts.map +1 -1
  375. package/build/src/database/drivers/base-foreign-key.d.ts +7 -7
  376. package/build/src/database/drivers/base-foreign-key.d.ts.map +1 -1
  377. package/build/src/database/drivers/base-foreign-key.js +2 -2
  378. package/build/src/database/drivers/base-table.d.ts +3 -3
  379. package/build/src/database/drivers/base-table.d.ts.map +1 -1
  380. package/build/src/database/drivers/base-table.js +2 -2
  381. package/build/src/database/drivers/base.d.ts +297 -342
  382. package/build/src/database/drivers/base.d.ts.map +1 -1
  383. package/build/src/database/drivers/base.js +19 -19
  384. package/build/src/database/drivers/index-metadata.d.ts +15 -18
  385. package/build/src/database/drivers/index-metadata.d.ts.map +1 -1
  386. package/build/src/database/drivers/mssql/column.d.ts +10 -5
  387. package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
  388. package/build/src/database/drivers/mssql/column.js +2 -2
  389. package/build/src/database/drivers/mssql/columns-index.d.ts +30 -22
  390. package/build/src/database/drivers/mssql/columns-index.d.ts.map +1 -1
  391. package/build/src/database/drivers/mssql/connect-connection.d.ts.map +1 -1
  392. package/build/src/database/drivers/mssql/foreign-key.d.ts +1 -1
  393. package/build/src/database/drivers/mssql/foreign-key.d.ts.map +1 -1
  394. package/build/src/database/drivers/mssql/index.d.ts +250 -9
  395. package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
  396. package/build/src/database/drivers/mssql/index.js +3 -3
  397. package/build/src/database/drivers/mssql/options.d.ts +31 -1
  398. package/build/src/database/drivers/mssql/options.d.ts.map +1 -1
  399. package/build/src/database/drivers/mssql/options.js +2 -2
  400. package/build/src/database/drivers/mssql/query-parser.d.ts +1 -1
  401. package/build/src/database/drivers/mssql/query-parser.d.ts.map +1 -1
  402. package/build/src/database/drivers/mssql/sql/alter-table.d.ts +1 -1
  403. package/build/src/database/drivers/mssql/sql/alter-table.d.ts.map +1 -1
  404. package/build/src/database/drivers/mssql/sql/create-database.d.ts +3 -2
  405. package/build/src/database/drivers/mssql/sql/create-database.d.ts.map +1 -1
  406. package/build/src/database/drivers/mssql/sql/create-index.d.ts +1 -1
  407. package/build/src/database/drivers/mssql/sql/create-index.d.ts.map +1 -1
  408. package/build/src/database/drivers/mssql/sql/create-table.d.ts +1 -1
  409. package/build/src/database/drivers/mssql/sql/create-table.d.ts.map +1 -1
  410. package/build/src/database/drivers/mssql/sql/delete.d.ts +1 -1
  411. package/build/src/database/drivers/mssql/sql/delete.d.ts.map +1 -1
  412. package/build/src/database/drivers/mssql/sql/drop-database.d.ts +14 -1
  413. package/build/src/database/drivers/mssql/sql/drop-database.d.ts.map +1 -1
  414. package/build/src/database/drivers/mssql/sql/drop-table.d.ts +1 -1
  415. package/build/src/database/drivers/mssql/sql/drop-table.d.ts.map +1 -1
  416. package/build/src/database/drivers/mssql/sql/insert.d.ts +1 -1
  417. package/build/src/database/drivers/mssql/sql/insert.d.ts.map +1 -1
  418. package/build/src/database/drivers/mssql/sql/remove-index.d.ts +1 -1
  419. package/build/src/database/drivers/mssql/sql/remove-index.d.ts.map +1 -1
  420. package/build/src/database/drivers/mssql/sql/update.d.ts +1 -1
  421. package/build/src/database/drivers/mssql/sql/update.d.ts.map +1 -1
  422. package/build/src/database/drivers/mssql/sql/upsert.d.ts +1 -1
  423. package/build/src/database/drivers/mssql/sql/upsert.d.ts.map +1 -1
  424. package/build/src/database/drivers/mssql/structure-sql.d.ts +3 -3
  425. package/build/src/database/drivers/mssql/structure-sql.d.ts.map +1 -1
  426. package/build/src/database/drivers/mssql/structure-sql.js +2 -2
  427. package/build/src/database/drivers/mssql/table.d.ts +39 -29
  428. package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
  429. package/build/src/database/drivers/mssql/table.js +2 -2
  430. package/build/src/database/drivers/mysql/column.d.ts +10 -6
  431. package/build/src/database/drivers/mysql/column.d.ts.map +1 -1
  432. package/build/src/database/drivers/mysql/column.js +2 -2
  433. package/build/src/database/drivers/mysql/columns-index.d.ts +3 -1
  434. package/build/src/database/drivers/mysql/columns-index.d.ts.map +1 -1
  435. package/build/src/database/drivers/mysql/foreign-key.d.ts +1 -1
  436. package/build/src/database/drivers/mysql/foreign-key.d.ts.map +1 -1
  437. package/build/src/database/drivers/mysql/index.d.ts +225 -6
  438. package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
  439. package/build/src/database/drivers/mysql/index.js +5 -5
  440. package/build/src/database/drivers/mysql/options.d.ts +7 -1
  441. package/build/src/database/drivers/mysql/options.d.ts.map +1 -1
  442. package/build/src/database/drivers/mysql/options.js +2 -2
  443. package/build/src/database/drivers/mysql/query-parser.d.ts +1 -1
  444. package/build/src/database/drivers/mysql/query-parser.d.ts.map +1 -1
  445. package/build/src/database/drivers/mysql/query-stream.d.ts.map +1 -1
  446. package/build/src/database/drivers/mysql/query.d.ts +2 -2
  447. package/build/src/database/drivers/mysql/query.d.ts.map +1 -1
  448. package/build/src/database/drivers/mysql/query.js +8 -8
  449. package/build/src/database/drivers/mysql/sql/alter-table.d.ts +12 -1
  450. package/build/src/database/drivers/mysql/sql/alter-table.d.ts.map +1 -1
  451. package/build/src/database/drivers/mysql/sql/create-database.d.ts +6 -1
  452. package/build/src/database/drivers/mysql/sql/create-database.d.ts.map +1 -1
  453. package/build/src/database/drivers/mysql/sql/create-index.d.ts +1 -1
  454. package/build/src/database/drivers/mysql/sql/create-index.d.ts.map +1 -1
  455. package/build/src/database/drivers/mysql/sql/create-table.d.ts +1 -1
  456. package/build/src/database/drivers/mysql/sql/create-table.d.ts.map +1 -1
  457. package/build/src/database/drivers/mysql/sql/delete.d.ts +1 -1
  458. package/build/src/database/drivers/mysql/sql/delete.d.ts.map +1 -1
  459. package/build/src/database/drivers/mysql/sql/drop-database.d.ts +1 -1
  460. package/build/src/database/drivers/mysql/sql/drop-database.d.ts.map +1 -1
  461. package/build/src/database/drivers/mysql/sql/drop-table.d.ts +1 -1
  462. package/build/src/database/drivers/mysql/sql/drop-table.d.ts.map +1 -1
  463. package/build/src/database/drivers/mysql/sql/insert.d.ts +1 -1
  464. package/build/src/database/drivers/mysql/sql/insert.d.ts.map +1 -1
  465. package/build/src/database/drivers/mysql/sql/remove-index.d.ts +1 -1
  466. package/build/src/database/drivers/mysql/sql/remove-index.d.ts.map +1 -1
  467. package/build/src/database/drivers/mysql/sql/update.d.ts +1 -1
  468. package/build/src/database/drivers/mysql/sql/update.d.ts.map +1 -1
  469. package/build/src/database/drivers/mysql/sql/upsert.d.ts +1 -1
  470. package/build/src/database/drivers/mysql/sql/upsert.d.ts.map +1 -1
  471. package/build/src/database/drivers/mysql/structure-sql.d.ts +14 -3
  472. package/build/src/database/drivers/mysql/structure-sql.d.ts.map +1 -1
  473. package/build/src/database/drivers/mysql/structure-sql.js +62 -11
  474. package/build/src/database/drivers/mysql/table.d.ts +11 -6
  475. package/build/src/database/drivers/mysql/table.d.ts.map +1 -1
  476. package/build/src/database/drivers/pgsql/column.d.ts +10 -5
  477. package/build/src/database/drivers/pgsql/column.d.ts.map +1 -1
  478. package/build/src/database/drivers/pgsql/column.js +2 -2
  479. package/build/src/database/drivers/pgsql/columns-index.d.ts +30 -22
  480. package/build/src/database/drivers/pgsql/columns-index.d.ts.map +1 -1
  481. package/build/src/database/drivers/pgsql/foreign-key.d.ts +1 -1
  482. package/build/src/database/drivers/pgsql/foreign-key.d.ts.map +1 -1
  483. package/build/src/database/drivers/pgsql/index.d.ts +157 -6
  484. package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
  485. package/build/src/database/drivers/pgsql/index.js +7 -7
  486. package/build/src/database/drivers/pgsql/options.d.ts +1 -1
  487. package/build/src/database/drivers/pgsql/options.d.ts.map +1 -1
  488. package/build/src/database/drivers/pgsql/query-parser.d.ts +1 -1
  489. package/build/src/database/drivers/pgsql/query-parser.d.ts.map +1 -1
  490. package/build/src/database/drivers/pgsql/sql/alter-table.d.ts +1 -1
  491. package/build/src/database/drivers/pgsql/sql/alter-table.d.ts.map +1 -1
  492. package/build/src/database/drivers/pgsql/sql/create-database.d.ts +2 -1
  493. package/build/src/database/drivers/pgsql/sql/create-database.d.ts.map +1 -1
  494. package/build/src/database/drivers/pgsql/sql/create-index.d.ts +1 -1
  495. package/build/src/database/drivers/pgsql/sql/create-index.d.ts.map +1 -1
  496. package/build/src/database/drivers/pgsql/sql/create-table.d.ts +1 -1
  497. package/build/src/database/drivers/pgsql/sql/create-table.d.ts.map +1 -1
  498. package/build/src/database/drivers/pgsql/sql/delete.d.ts +1 -1
  499. package/build/src/database/drivers/pgsql/sql/delete.d.ts.map +1 -1
  500. package/build/src/database/drivers/pgsql/sql/drop-database.d.ts +1 -1
  501. package/build/src/database/drivers/pgsql/sql/drop-database.d.ts.map +1 -1
  502. package/build/src/database/drivers/pgsql/sql/drop-table.d.ts +1 -1
  503. package/build/src/database/drivers/pgsql/sql/drop-table.d.ts.map +1 -1
  504. package/build/src/database/drivers/pgsql/sql/insert.d.ts +1 -1
  505. package/build/src/database/drivers/pgsql/sql/insert.d.ts.map +1 -1
  506. package/build/src/database/drivers/pgsql/sql/remove-index.d.ts +1 -1
  507. package/build/src/database/drivers/pgsql/sql/remove-index.d.ts.map +1 -1
  508. package/build/src/database/drivers/pgsql/sql/update.d.ts +1 -1
  509. package/build/src/database/drivers/pgsql/sql/update.d.ts.map +1 -1
  510. package/build/src/database/drivers/pgsql/sql/upsert.d.ts +1 -1
  511. package/build/src/database/drivers/pgsql/sql/upsert.d.ts.map +1 -1
  512. package/build/src/database/drivers/pgsql/structure-sql.d.ts +3 -3
  513. package/build/src/database/drivers/pgsql/structure-sql.d.ts.map +1 -1
  514. package/build/src/database/drivers/pgsql/structure-sql.js +2 -2
  515. package/build/src/database/drivers/pgsql/table.d.ts +33 -31
  516. package/build/src/database/drivers/pgsql/table.d.ts.map +1 -1
  517. package/build/src/database/drivers/sqlite/base.d.ts +162 -12
  518. package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
  519. package/build/src/database/drivers/sqlite/base.js +8 -8
  520. package/build/src/database/drivers/sqlite/column.d.ts +12 -6
  521. package/build/src/database/drivers/sqlite/column.d.ts.map +1 -1
  522. package/build/src/database/drivers/sqlite/column.js +2 -2
  523. package/build/src/database/drivers/sqlite/columns-index.d.ts +5 -1
  524. package/build/src/database/drivers/sqlite/columns-index.d.ts.map +1 -1
  525. package/build/src/database/drivers/sqlite/connection-sql-js.d.ts +9 -9
  526. package/build/src/database/drivers/sqlite/connection-sql-js.d.ts.map +1 -1
  527. package/build/src/database/drivers/sqlite/connection-sql-js.js +2 -2
  528. package/build/src/database/drivers/sqlite/foreign-key.d.ts +5 -4
  529. package/build/src/database/drivers/sqlite/foreign-key.d.ts.map +1 -1
  530. package/build/src/database/drivers/sqlite/foreign-key.js +2 -2
  531. package/build/src/database/drivers/sqlite/index.d.ts +53 -3
  532. package/build/src/database/drivers/sqlite/index.d.ts.map +1 -1
  533. package/build/src/database/drivers/sqlite/index.js +2 -2
  534. package/build/src/database/drivers/sqlite/index.native.d.ts +13 -5
  535. package/build/src/database/drivers/sqlite/index.native.d.ts.map +1 -1
  536. package/build/src/database/drivers/sqlite/index.native.js +3 -3
  537. package/build/src/database/drivers/sqlite/index.web.d.ts +48 -14
  538. package/build/src/database/drivers/sqlite/index.web.d.ts.map +1 -1
  539. package/build/src/database/drivers/sqlite/index.web.js +3 -3
  540. package/build/src/database/drivers/sqlite/options.d.ts +1 -1
  541. package/build/src/database/drivers/sqlite/options.d.ts.map +1 -1
  542. package/build/src/database/drivers/sqlite/query-parser.d.ts +1 -1
  543. package/build/src/database/drivers/sqlite/query-parser.d.ts.map +1 -1
  544. package/build/src/database/drivers/sqlite/query.d.ts +2 -2
  545. package/build/src/database/drivers/sqlite/query.d.ts.map +1 -1
  546. package/build/src/database/drivers/sqlite/query.js +3 -3
  547. package/build/src/database/drivers/sqlite/query.native.d.ts +4 -4
  548. package/build/src/database/drivers/sqlite/query.native.d.ts.map +1 -1
  549. package/build/src/database/drivers/sqlite/query.native.js +3 -3
  550. package/build/src/database/drivers/sqlite/query.web.d.ts +2 -2
  551. package/build/src/database/drivers/sqlite/query.web.d.ts.map +1 -1
  552. package/build/src/database/drivers/sqlite/query.web.js +3 -3
  553. package/build/src/database/drivers/sqlite/sql/alter-table.d.ts +19 -4
  554. package/build/src/database/drivers/sqlite/sql/alter-table.d.ts.map +1 -1
  555. package/build/src/database/drivers/sqlite/sql/create-index.d.ts +1 -1
  556. package/build/src/database/drivers/sqlite/sql/create-index.d.ts.map +1 -1
  557. package/build/src/database/drivers/sqlite/sql/create-table.d.ts +1 -1
  558. package/build/src/database/drivers/sqlite/sql/create-table.d.ts.map +1 -1
  559. package/build/src/database/drivers/sqlite/sql/delete.d.ts +1 -1
  560. package/build/src/database/drivers/sqlite/sql/delete.d.ts.map +1 -1
  561. package/build/src/database/drivers/sqlite/sql/drop-table.d.ts +1 -1
  562. package/build/src/database/drivers/sqlite/sql/drop-table.d.ts.map +1 -1
  563. package/build/src/database/drivers/sqlite/sql/insert.d.ts +1 -1
  564. package/build/src/database/drivers/sqlite/sql/insert.d.ts.map +1 -1
  565. package/build/src/database/drivers/sqlite/sql/remove-index.d.ts +1 -1
  566. package/build/src/database/drivers/sqlite/sql/remove-index.d.ts.map +1 -1
  567. package/build/src/database/drivers/sqlite/sql/update.d.ts +1 -1
  568. package/build/src/database/drivers/sqlite/sql/update.d.ts.map +1 -1
  569. package/build/src/database/drivers/sqlite/sql/upsert.d.ts +1 -1
  570. package/build/src/database/drivers/sqlite/sql/upsert.d.ts.map +1 -1
  571. package/build/src/database/drivers/sqlite/structure-sql.d.ts +1 -1
  572. package/build/src/database/drivers/sqlite/structure-sql.d.ts.map +1 -1
  573. package/build/src/database/drivers/sqlite/table-rebuilder.d.ts +5 -5
  574. package/build/src/database/drivers/sqlite/table-rebuilder.d.ts.map +1 -1
  575. package/build/src/database/drivers/sqlite/table-rebuilder.js +2 -2
  576. package/build/src/database/drivers/sqlite/table.d.ts +15 -5
  577. package/build/src/database/drivers/sqlite/table.d.ts.map +1 -1
  578. package/build/src/database/drivers/sqlite/web-persistence.d.ts +28 -34
  579. package/build/src/database/drivers/sqlite/web-persistence.d.ts.map +1 -1
  580. package/build/src/database/drivers/structure-sql/utils.d.ts +2 -2
  581. package/build/src/database/drivers/structure-sql/utils.d.ts.map +1 -1
  582. package/build/src/database/handler.d.ts.map +1 -1
  583. package/build/src/database/initializer-from-require-context.d.ts +18 -16
  584. package/build/src/database/initializer-from-require-context.d.ts.map +1 -1
  585. package/build/src/database/live-query.d.ts +13 -24
  586. package/build/src/database/live-query.d.ts.map +1 -1
  587. package/build/src/database/migration/index.d.ts +146 -169
  588. package/build/src/database/migration/index.d.ts.map +1 -1
  589. package/build/src/database/migration/index.js +3 -3
  590. package/build/src/database/migrations-ledger.d.ts.map +1 -1
  591. package/build/src/database/migrator/files-finder.d.ts +1 -1
  592. package/build/src/database/migrator/files-finder.d.ts.map +1 -1
  593. package/build/src/database/migrator/types.d.ts +26 -2
  594. package/build/src/database/migrator/types.d.ts.map +1 -1
  595. package/build/src/database/migrator/types.js +24 -1
  596. package/build/src/database/migrator.d.ts +10 -10
  597. package/build/src/database/migrator.d.ts.map +1 -1
  598. package/build/src/database/operation-connection.d.ts +3 -3
  599. package/build/src/database/operation-connection.d.ts.map +1 -1
  600. package/build/src/database/operation-lease.d.ts +4 -4
  601. package/build/src/database/operation-lease.d.ts.map +1 -1
  602. package/build/src/database/operation.d.ts +38 -7
  603. package/build/src/database/operation.d.ts.map +1 -1
  604. package/build/src/database/operation.js +55 -8
  605. package/build/src/database/pool/async-tracked-multi-connection.d.ts +174 -79
  606. package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
  607. package/build/src/database/pool/async-tracked-multi-connection.js +70 -25
  608. package/build/src/database/pool/base-methods-forward.d.ts.map +1 -1
  609. package/build/src/database/pool/base-methods-forward.js +3 -3
  610. package/build/src/database/pool/base.d.ts +93 -71
  611. package/build/src/database/pool/base.d.ts.map +1 -1
  612. package/build/src/database/pool/base.js +47 -17
  613. package/build/src/database/pool/single-multi-use.d.ts +243 -10
  614. package/build/src/database/pool/single-multi-use.d.ts.map +1 -1
  615. package/build/src/database/pool/single-multi-use.js +467 -103
  616. package/build/src/database/query/alter-table-base.d.ts +8 -3
  617. package/build/src/database/query/alter-table-base.d.ts.map +1 -1
  618. package/build/src/database/query/base.d.ts +3 -3
  619. package/build/src/database/query/base.d.ts.map +1 -1
  620. package/build/src/database/query/create-database-base.d.ts +28 -22
  621. package/build/src/database/query/create-database-base.d.ts.map +1 -1
  622. package/build/src/database/query/create-index-base.d.ts +32 -30
  623. package/build/src/database/query/create-index-base.d.ts.map +1 -1
  624. package/build/src/database/query/create-table-base.d.ts +7 -7
  625. package/build/src/database/query/create-table-base.d.ts.map +1 -1
  626. package/build/src/database/query/delete-base.d.ts +5 -5
  627. package/build/src/database/query/delete-base.d.ts.map +1 -1
  628. package/build/src/database/query/delete-base.js +2 -2
  629. package/build/src/database/query/drop-database-base.d.ts +22 -18
  630. package/build/src/database/query/drop-database-base.d.ts.map +1 -1
  631. package/build/src/database/query/drop-table-base.d.ts +11 -6
  632. package/build/src/database/query/drop-table-base.d.ts.map +1 -1
  633. package/build/src/database/query/from-base.d.ts.map +1 -1
  634. package/build/src/database/query/from-plain.d.ts +3 -2
  635. package/build/src/database/query/from-plain.d.ts.map +1 -1
  636. package/build/src/database/query/from-table.d.ts +3 -2
  637. package/build/src/database/query/from-table.d.ts.map +1 -1
  638. package/build/src/database/query/index.d.ts +92 -107
  639. package/build/src/database/query/index.d.ts.map +1 -1
  640. package/build/src/database/query/index.js +4 -4
  641. package/build/src/database/query/insert-base.d.ts +18 -18
  642. package/build/src/database/query/insert-base.d.ts.map +1 -1
  643. package/build/src/database/query/insert-base.js +5 -5
  644. package/build/src/database/query/join-base.d.ts +1 -1
  645. package/build/src/database/query/join-base.d.ts.map +1 -1
  646. package/build/src/database/query/join-object.d.ts +9 -15
  647. package/build/src/database/query/join-object.d.ts.map +1 -1
  648. package/build/src/database/query/join-plain.d.ts +2 -2
  649. package/build/src/database/query/join-plain.d.ts.map +1 -1
  650. package/build/src/database/query/join-tracker.d.ts +3 -3
  651. package/build/src/database/query/join-tracker.d.ts.map +1 -1
  652. package/build/src/database/query/model-class-query.d.ts +39 -36
  653. package/build/src/database/query/model-class-query.d.ts.map +1 -1
  654. package/build/src/database/query/model-class-query.js +40 -40
  655. package/build/src/database/query/order-base.d.ts +1 -1
  656. package/build/src/database/query/order-base.d.ts.map +1 -1
  657. package/build/src/database/query/order-column.d.ts +19 -22
  658. package/build/src/database/query/order-column.d.ts.map +1 -1
  659. package/build/src/database/query/order-plain.d.ts +3 -3
  660. package/build/src/database/query/order-plain.d.ts.map +1 -1
  661. package/build/src/database/query/preloader/belongs-to.d.ts +5 -5
  662. package/build/src/database/query/preloader/belongs-to.d.ts.map +1 -1
  663. package/build/src/database/query/preloader/belongs-to.js +3 -3
  664. package/build/src/database/query/preloader/ensure-model-class-initialized.d.ts +2 -1
  665. package/build/src/database/query/preloader/ensure-model-class-initialized.d.ts.map +1 -1
  666. package/build/src/database/query/preloader/ensure-model-class-initialized.js +4 -3
  667. package/build/src/database/query/preloader/has-many.d.ts +6 -6
  668. package/build/src/database/query/preloader/has-many.d.ts.map +1 -1
  669. package/build/src/database/query/preloader/has-many.js +4 -4
  670. package/build/src/database/query/preloader/has-one.d.ts +5 -5
  671. package/build/src/database/query/preloader/has-one.d.ts.map +1 -1
  672. package/build/src/database/query/preloader/has-one.js +2 -2
  673. package/build/src/database/query/preloader/query-for-model.d.ts.map +1 -1
  674. package/build/src/database/query/preloader/selection.d.ts +6 -6
  675. package/build/src/database/query/preloader/selection.d.ts.map +1 -1
  676. package/build/src/database/query/preloader.d.ts +8 -8
  677. package/build/src/database/query/preloader.d.ts.map +1 -1
  678. package/build/src/database/query/preloader.js +9 -3
  679. package/build/src/database/query/query-data.d.ts +43 -55
  680. package/build/src/database/query/query-data.d.ts.map +1 -1
  681. package/build/src/database/query/query-data.js +8 -8
  682. package/build/src/database/query/remove-index-base.d.ts +21 -19
  683. package/build/src/database/query/remove-index-base.d.ts.map +1 -1
  684. package/build/src/database/query/select-base.d.ts +1 -1
  685. package/build/src/database/query/select-base.d.ts.map +1 -1
  686. package/build/src/database/query/select-plain.d.ts +3 -2
  687. package/build/src/database/query/select-plain.d.ts.map +1 -1
  688. package/build/src/database/query/select-table-and-column.d.ts +4 -3
  689. package/build/src/database/query/select-table-and-column.d.ts.map +1 -1
  690. package/build/src/database/query/update-base.d.ts +10 -10
  691. package/build/src/database/query/update-base.d.ts.map +1 -1
  692. package/build/src/database/query/update-base.js +4 -4
  693. package/build/src/database/query/upsert-base.d.ts +9 -9
  694. package/build/src/database/query/upsert-base.d.ts.map +1 -1
  695. package/build/src/database/query/upsert-base.js +3 -3
  696. package/build/src/database/query/where-base.d.ts +1 -1
  697. package/build/src/database/query/where-base.d.ts.map +1 -1
  698. package/build/src/database/query/where-combinator.d.ts +9 -4
  699. package/build/src/database/query/where-combinator.d.ts.map +1 -1
  700. package/build/src/database/query/where-hash.d.ts +11 -9
  701. package/build/src/database/query/where-hash.d.ts.map +1 -1
  702. package/build/src/database/query/where-model-class-hash.d.ts +28 -26
  703. package/build/src/database/query/where-model-class-hash.d.ts.map +1 -1
  704. package/build/src/database/query/where-model-class-hash.js +14 -14
  705. package/build/src/database/query/where-not.d.ts +8 -3
  706. package/build/src/database/query/where-not.d.ts.map +1 -1
  707. package/build/src/database/query/where-plain.d.ts +4 -3
  708. package/build/src/database/query/where-plain.d.ts.map +1 -1
  709. package/build/src/database/query/with-count.d.ts +22 -28
  710. package/build/src/database/query/with-count.d.ts.map +1 -1
  711. package/build/src/database/query/with-count.js +12 -12
  712. package/build/src/database/query-aborted-error.d.ts +5 -5
  713. package/build/src/database/query-aborted-error.d.ts.map +1 -1
  714. package/build/src/database/query-parser/base-query-parser.d.ts +3 -3
  715. package/build/src/database/query-parser/base-query-parser.d.ts.map +1 -1
  716. package/build/src/database/query-parser/from-parser.d.ts +2 -2
  717. package/build/src/database/query-parser/from-parser.d.ts.map +1 -1
  718. package/build/src/database/query-parser/group-parser.d.ts +2 -2
  719. package/build/src/database/query-parser/group-parser.d.ts.map +1 -1
  720. package/build/src/database/query-parser/joins-parser.d.ts +3 -3
  721. package/build/src/database/query-parser/joins-parser.d.ts.map +1 -1
  722. package/build/src/database/query-parser/limit-parser.d.ts +2 -2
  723. package/build/src/database/query-parser/limit-parser.d.ts.map +1 -1
  724. package/build/src/database/query-parser/options.d.ts +31 -34
  725. package/build/src/database/query-parser/options.d.ts.map +1 -1
  726. package/build/src/database/query-parser/options.js +3 -3
  727. package/build/src/database/query-parser/order-parser.d.ts +2 -2
  728. package/build/src/database/query-parser/order-parser.d.ts.map +1 -1
  729. package/build/src/database/query-parser/select-parser.d.ts +2 -2
  730. package/build/src/database/query-parser/select-parser.d.ts.map +1 -1
  731. package/build/src/database/query-parser/select-parser.js +2 -2
  732. package/build/src/database/query-parser/where-parser.d.ts +2 -2
  733. package/build/src/database/query-parser/where-parser.d.ts.map +1 -1
  734. package/build/src/database/record/acts-as-list.d.ts.map +1 -1
  735. package/build/src/database/record/acts-as-list.js +3 -3
  736. package/build/src/database/record/attachments/attachment-record.d.ts +7 -3
  737. package/build/src/database/record/attachments/attachment-record.d.ts.map +1 -1
  738. package/build/src/database/record/attachments/download.d.ts +9 -9
  739. package/build/src/database/record/attachments/download.d.ts.map +1 -1
  740. package/build/src/database/record/attachments/handle.d.ts +12 -12
  741. package/build/src/database/record/attachments/handle.d.ts.map +1 -1
  742. package/build/src/database/record/attachments/handle.js +7 -7
  743. package/build/src/database/record/attachments/normalize-input.d.ts +16 -22
  744. package/build/src/database/record/attachments/normalize-input.d.ts.map +1 -1
  745. package/build/src/database/record/attachments/normalize-input.js +12 -12
  746. package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts +4 -4
  747. package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts.map +1 -1
  748. package/build/src/database/record/attachments/storage-drivers/filesystem.js +2 -2
  749. package/build/src/database/record/attachments/storage-drivers/native.d.ts +12 -12
  750. package/build/src/database/record/attachments/storage-drivers/native.d.ts.map +1 -1
  751. package/build/src/database/record/attachments/storage-drivers/native.js +6 -6
  752. package/build/src/database/record/attachments/storage-drivers/s3.d.ts +17 -17
  753. package/build/src/database/record/attachments/storage-drivers/s3.d.ts.map +1 -1
  754. package/build/src/database/record/attachments/storage-drivers/s3.js +11 -11
  755. package/build/src/database/record/attachments/store.d.ts +38 -41
  756. package/build/src/database/record/attachments/store.d.ts.map +1 -1
  757. package/build/src/database/record/attachments/store.js +24 -21
  758. package/build/src/database/record/auditing.d.ts +67 -87
  759. package/build/src/database/record/auditing.d.ts.map +1 -1
  760. package/build/src/database/record/auditing.js +109 -30
  761. package/build/src/database/record/counter-cache-magnitude.d.ts +15 -35
  762. package/build/src/database/record/counter-cache-magnitude.d.ts.map +1 -1
  763. package/build/src/database/record/counter-cache-magnitude.js +12 -12
  764. package/build/src/database/record/index.d.ts +2390 -488
  765. package/build/src/database/record/index.d.ts.map +1 -1
  766. package/build/src/database/record/index.js +222 -172
  767. package/build/src/database/record/instance-relationships/base.d.ts +20 -23
  768. package/build/src/database/record/instance-relationships/base.d.ts.map +1 -1
  769. package/build/src/database/record/instance-relationships/base.js +5 -5
  770. package/build/src/database/record/instance-relationships/belongs-to.d.ts +9 -1
  771. package/build/src/database/record/instance-relationships/belongs-to.d.ts.map +1 -1
  772. package/build/src/database/record/instance-relationships/belongs-to.js +2 -2
  773. package/build/src/database/record/instance-relationships/has-many.d.ts +15 -3
  774. package/build/src/database/record/instance-relationships/has-many.d.ts.map +1 -1
  775. package/build/src/database/record/instance-relationships/has-many.js +4 -4
  776. package/build/src/database/record/instance-relationships/has-one.d.ts +19 -1
  777. package/build/src/database/record/instance-relationships/has-one.d.ts.map +1 -1
  778. package/build/src/database/record/instance-relationships/has-one.js +2 -2
  779. package/build/src/database/record/record-not-found-error.d.ts +1 -0
  780. package/build/src/database/record/record-not-found-error.d.ts.map +1 -1
  781. package/build/src/database/record/record-not-found-error.js +2 -1
  782. package/build/src/database/record/relationships/base.d.ts +83 -71
  783. package/build/src/database/record/relationships/base.d.ts.map +1 -1
  784. package/build/src/database/record/relationships/base.js +21 -1
  785. package/build/src/database/record/relationships/belongs-to.d.ts +11 -1
  786. package/build/src/database/record/relationships/belongs-to.d.ts.map +1 -1
  787. package/build/src/database/record/relationships/has-many.d.ts +11 -1
  788. package/build/src/database/record/relationships/has-many.d.ts.map +1 -1
  789. package/build/src/database/record/relationships/has-one.d.ts +11 -1
  790. package/build/src/database/record/relationships/has-one.d.ts.map +1 -1
  791. package/build/src/database/record/state-machine.d.ts +20 -29
  792. package/build/src/database/record/state-machine.d.ts.map +1 -1
  793. package/build/src/database/record/state-machine.js +7 -7
  794. package/build/src/database/record/user-module.d.ts +1 -1
  795. package/build/src/database/record/user-module.d.ts.map +1 -1
  796. package/build/src/database/record/validation-messages.d.ts +19 -22
  797. package/build/src/database/record/validation-messages.d.ts.map +1 -1
  798. package/build/src/database/record/validators/base.d.ts +4 -4
  799. package/build/src/database/record/validators/base.d.ts.map +1 -1
  800. package/build/src/database/record/validators/base.js +2 -2
  801. package/build/src/database/record/validators/format.d.ts +12 -1
  802. package/build/src/database/record/validators/format.d.ts.map +1 -1
  803. package/build/src/database/record/validators/length.d.ts +14 -1
  804. package/build/src/database/record/validators/length.d.ts.map +1 -1
  805. package/build/src/database/record/validators/presence.d.ts +11 -1
  806. package/build/src/database/record/validators/presence.d.ts.map +1 -1
  807. package/build/src/database/record/validators/uniqueness.d.ts +12 -1
  808. package/build/src/database/record/validators/uniqueness.d.ts.map +1 -1
  809. package/build/src/database/record-changes.d.ts +7 -18
  810. package/build/src/database/record-changes.d.ts.map +1 -1
  811. package/build/src/database/structure-sql-loader.d.ts +2 -2
  812. package/build/src/database/structure-sql-loader.d.ts.map +1 -1
  813. package/build/src/database/structure-sql-loader.js +4 -4
  814. package/build/src/database/table-data/index.d.ts +21 -24
  815. package/build/src/database/table-data/index.d.ts.map +1 -1
  816. package/build/src/database/table-data/table-column.d.ts +74 -80
  817. package/build/src/database/table-data/table-column.d.ts.map +1 -1
  818. package/build/src/database/table-data/table-column.js +4 -4
  819. package/build/src/database/table-data/table-foreign-key.d.ts +10 -10
  820. package/build/src/database/table-data/table-foreign-key.d.ts.map +1 -1
  821. package/build/src/database/table-data/table-index.d.ts +12 -15
  822. package/build/src/database/table-data/table-index.d.ts.map +1 -1
  823. package/build/src/database/table-data/table-reference.d.ts +2 -2
  824. package/build/src/database/table-data/table-reference.d.ts.map +1 -1
  825. package/build/src/database/tenants/data-copier.d.ts +7 -7
  826. package/build/src/database/tenants/data-copier.d.ts.map +1 -1
  827. package/build/src/database/tenants/schema-cloner.d.ts +3 -3
  828. package/build/src/database/tenants/schema-cloner.d.ts.map +1 -1
  829. package/build/src/database/tenants/tenant-table-plan.d.ts +20 -14
  830. package/build/src/database/tenants/tenant-table-plan.d.ts.map +1 -1
  831. package/build/src/database/tenants/tenant-table-plan.js +17 -1
  832. package/build/src/database/use-database.d.ts.map +1 -1
  833. package/build/src/database/use-live-query.d.ts +17 -29
  834. package/build/src/database/use-live-query.d.ts.map +1 -1
  835. package/build/src/database/use-live-query.js +4 -4
  836. package/build/src/environment-handlers/base.d.ts +112 -103
  837. package/build/src/environment-handlers/base.d.ts.map +1 -1
  838. package/build/src/environment-handlers/base.js +54 -38
  839. package/build/src/environment-handlers/browser.d.ts +63 -56
  840. package/build/src/environment-handlers/browser.d.ts.map +1 -1
  841. package/build/src/environment-handlers/browser.js +2 -2
  842. package/build/src/environment-handlers/node/attachment-path-source.d.ts +9 -9
  843. package/build/src/environment-handlers/node/attachment-path-source.d.ts.map +1 -1
  844. package/build/src/environment-handlers/node/cli/commands/background-jobs-main.d.ts +1 -1
  845. package/build/src/environment-handlers/node/cli/commands/background-jobs-main.d.ts.map +1 -1
  846. package/build/src/environment-handlers/node/cli/commands/background-jobs-runner.d.ts +1 -1
  847. package/build/src/environment-handlers/node/cli/commands/background-jobs-runner.d.ts.map +1 -1
  848. package/build/src/environment-handlers/node/cli/commands/background-jobs-worker.d.ts +1 -1
  849. package/build/src/environment-handlers/node/cli/commands/background-jobs-worker.d.ts.map +1 -1
  850. package/build/src/environment-handlers/node/cli/commands/beacon.d.ts +1 -1
  851. package/build/src/environment-handlers/node/cli/commands/beacon.d.ts.map +1 -1
  852. package/build/src/environment-handlers/node/cli/commands/cli-command-context.d.ts +7 -10
  853. package/build/src/environment-handlers/node/cli/commands/cli-command-context.d.ts.map +1 -1
  854. package/build/src/environment-handlers/node/cli/commands/console.d.ts +9 -7
  855. package/build/src/environment-handlers/node/cli/commands/console.d.ts.map +1 -1
  856. package/build/src/environment-handlers/node/cli/commands/console.js +5 -5
  857. package/build/src/environment-handlers/node/cli/commands/db/schema/dump.d.ts +1 -1
  858. package/build/src/environment-handlers/node/cli/commands/db/schema/dump.d.ts.map +1 -1
  859. package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts +1 -1
  860. package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts.map +1 -1
  861. package/build/src/environment-handlers/node/cli/commands/db/seed.d.ts +7 -5
  862. package/build/src/environment-handlers/node/cli/commands/db/seed.d.ts.map +1 -1
  863. package/build/src/environment-handlers/node/cli/commands/db/seed.js +3 -3
  864. package/build/src/environment-handlers/node/cli/commands/destroy/migration.d.ts +4 -7
  865. package/build/src/environment-handlers/node/cli/commands/destroy/migration.d.ts.map +1 -1
  866. package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts +1 -1
  867. package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts.map +1 -1
  868. package/build/src/environment-handlers/node/cli/commands/generate/base-models.js +2 -2
  869. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts +93 -108
  870. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts.map +1 -1
  871. package/build/src/environment-handlers/node/cli/commands/generate/generated-file-banner.d.ts.map +1 -1
  872. package/build/src/environment-handlers/node/cli/commands/generate/migration.d.ts +9 -12
  873. package/build/src/environment-handlers/node/cli/commands/generate/migration.d.ts.map +1 -1
  874. package/build/src/environment-handlers/node/cli/commands/generate/model.d.ts +8 -11
  875. package/build/src/environment-handlers/node/cli/commands/generate/model.d.ts.map +1 -1
  876. package/build/src/environment-handlers/node/cli/commands/init.d.ts +7 -9
  877. package/build/src/environment-handlers/node/cli/commands/init.d.ts.map +1 -1
  878. package/build/src/environment-handlers/node/cli/commands/lint/relationships.d.ts +7 -7
  879. package/build/src/environment-handlers/node/cli/commands/lint/relationships.d.ts.map +1 -1
  880. package/build/src/environment-handlers/node/cli/commands/routes.d.ts +1 -1
  881. package/build/src/environment-handlers/node/cli/commands/routes.d.ts.map +1 -1
  882. package/build/src/environment-handlers/node/cli/commands/run-script.d.ts +7 -5
  883. package/build/src/environment-handlers/node/cli/commands/run-script.d.ts.map +1 -1
  884. package/build/src/environment-handlers/node/cli/commands/run-script.js +3 -3
  885. package/build/src/environment-handlers/node/cli/commands/runner.d.ts +9 -7
  886. package/build/src/environment-handlers/node/cli/commands/runner.d.ts.map +1 -1
  887. package/build/src/environment-handlers/node/cli/commands/runner.js +3 -3
  888. package/build/src/environment-handlers/node/cli/commands/server.d.ts +24 -30
  889. package/build/src/environment-handlers/node/cli/commands/server.d.ts.map +1 -1
  890. package/build/src/environment-handlers/node/cli/commands/server.js +2 -2
  891. package/build/src/environment-handlers/node/cli/commands/test.d.ts +5 -5
  892. package/build/src/environment-handlers/node/cli/commands/test.d.ts.map +1 -1
  893. package/build/src/environment-handlers/node/source-peer-package.d.ts +5 -7
  894. package/build/src/environment-handlers/node/source-peer-package.d.ts.map +1 -1
  895. package/build/src/environment-handlers/node/source-peer-package.js +1 -1
  896. package/build/src/environment-handlers/node.d.ts +362 -13
  897. package/build/src/environment-handlers/node.d.ts.map +1 -1
  898. package/build/src/environment-handlers/node.js +37 -37
  899. package/build/src/error-logger.d.ts +3 -3
  900. package/build/src/error-logger.d.ts.map +1 -1
  901. package/build/src/error-logger.js +3 -3
  902. package/build/src/error-reporting/request-details.d.ts +1 -1
  903. package/build/src/error-reporting/request-details.d.ts.map +1 -1
  904. package/build/src/error-reporting/request-details.js +33 -33
  905. package/build/src/frontend-model-controller.d.ts +216 -230
  906. package/build/src/frontend-model-controller.d.ts.map +1 -1
  907. package/build/src/frontend-model-controller.js +217 -211
  908. package/build/src/frontend-model-resource/base-resource.d.ts +315 -365
  909. package/build/src/frontend-model-resource/base-resource.d.ts.map +1 -1
  910. package/build/src/frontend-model-resource/base-resource.js +45 -45
  911. package/build/src/frontend-model-resource/velocious-attachment-resource.d.ts +11 -5
  912. package/build/src/frontend-model-resource/velocious-attachment-resource.d.ts.map +1 -1
  913. package/build/src/frontend-model-resource/velocious-attachment-resource.js +2 -2
  914. package/build/src/frontend-models/base.d.ts +632 -726
  915. package/build/src/frontend-models/base.d.ts.map +1 -1
  916. package/build/src/frontend-models/base.js +147 -143
  917. package/build/src/frontend-models/built-in-resources.d.ts +2 -2
  918. package/build/src/frontend-models/built-in-resources.d.ts.map +1 -1
  919. package/build/src/frontend-models/clear-pending-debounced-callback.d.ts +2 -2
  920. package/build/src/frontend-models/clear-pending-debounced-callback.d.ts.map +1 -1
  921. package/build/src/frontend-models/clear-pending-debounced-callback.js +3 -3
  922. package/build/src/frontend-models/event-hook-models.d.ts +3 -6
  923. package/build/src/frontend-models/event-hook-models.d.ts.map +1 -1
  924. package/build/src/frontend-models/model-registry.d.ts +5 -5
  925. package/build/src/frontend-models/model-registry.d.ts.map +1 -1
  926. package/build/src/frontend-models/model-registry.js +5 -5
  927. package/build/src/frontend-models/outgoing-event-buffer.d.ts +20 -17
  928. package/build/src/frontend-models/outgoing-event-buffer.d.ts.map +1 -1
  929. package/build/src/frontend-models/outgoing-event-buffer.js +2 -2
  930. package/build/src/frontend-models/preloader.d.ts.map +1 -1
  931. package/build/src/frontend-models/preloader.js +2 -2
  932. package/build/src/frontend-models/query.d.ts +286 -331
  933. package/build/src/frontend-models/query.d.ts.map +1 -1
  934. package/build/src/frontend-models/query.js +61 -61
  935. package/build/src/frontend-models/resource-config-validation.d.ts +2 -2
  936. package/build/src/frontend-models/resource-config-validation.d.ts.map +1 -1
  937. package/build/src/frontend-models/resource-definition.d.ts +30 -33
  938. package/build/src/frontend-models/resource-definition.d.ts.map +1 -1
  939. package/build/src/frontend-models/resource-definition.js +10 -10
  940. package/build/src/frontend-models/transport-deadline.d.ts.map +1 -1
  941. package/build/src/frontend-models/transport-serialization.d.ts +26 -32
  942. package/build/src/frontend-models/transport-serialization.d.ts.map +1 -1
  943. package/build/src/frontend-models/transport-serialization.js +28 -28
  944. package/build/src/frontend-models/use-created-event.d.ts +4 -4
  945. package/build/src/frontend-models/use-created-event.d.ts.map +1 -1
  946. package/build/src/frontend-models/use-destroyed-event.d.ts +8 -29
  947. package/build/src/frontend-models/use-destroyed-event.d.ts.map +1 -1
  948. package/build/src/frontend-models/use-model-class-event.d.ts +9 -33
  949. package/build/src/frontend-models/use-model-class-event.d.ts.map +1 -1
  950. package/build/src/frontend-models/use-updated-event.d.ts +8 -29
  951. package/build/src/frontend-models/use-updated-event.d.ts.map +1 -1
  952. package/build/src/frontend-models/websocket-channel.d.ts +30 -34
  953. package/build/src/frontend-models/websocket-channel.d.ts.map +1 -1
  954. package/build/src/frontend-models/websocket-channel.js +5 -5
  955. package/build/src/frontend-models/websocket-publishers.d.ts +4 -4
  956. package/build/src/frontend-models/websocket-publishers.d.ts.map +1 -1
  957. package/build/src/frontend-models/websocket-publishers.js +2 -2
  958. package/build/src/http-client/header.d.ts +2 -2
  959. package/build/src/http-client/header.d.ts.map +1 -1
  960. package/build/src/http-client/index.d.ts +23 -23
  961. package/build/src/http-client/index.d.ts.map +1 -1
  962. package/build/src/http-client/request.d.ts +9 -9
  963. package/build/src/http-client/request.d.ts.map +1 -1
  964. package/build/src/http-client/request.js +2 -2
  965. package/build/src/http-client/response.d.ts +12 -12
  966. package/build/src/http-client/response.d.ts.map +1 -1
  967. package/build/src/http-client/response.js +2 -2
  968. package/build/src/http-client/websocket-client.d.ts +20 -4
  969. package/build/src/http-client/websocket-client.d.ts.map +1 -1
  970. package/build/src/http-server/client/index.d.ts +26 -26
  971. package/build/src/http-server/client/index.d.ts.map +1 -1
  972. package/build/src/http-server/client/index.js +5 -5
  973. package/build/src/http-server/client/params-to-object.d.ts +11 -11
  974. package/build/src/http-server/client/params-to-object.d.ts.map +1 -1
  975. package/build/src/http-server/client/params-to-object.js +17 -17
  976. package/build/src/http-server/client/request-buffer/form-data-part.d.ts +9 -9
  977. package/build/src/http-server/client/request-buffer/form-data-part.d.ts.map +1 -1
  978. package/build/src/http-server/client/request-buffer/header.d.ts +3 -3
  979. package/build/src/http-server/client/request-buffer/header.d.ts.map +1 -1
  980. package/build/src/http-server/client/request-buffer/index.d.ts +28 -30
  981. package/build/src/http-server/client/request-buffer/index.d.ts.map +1 -1
  982. package/build/src/http-server/client/request-buffer/index.js +5 -3
  983. package/build/src/http-server/client/request-parser.d.ts +11 -11
  984. package/build/src/http-server/client/request-parser.d.ts.map +1 -1
  985. package/build/src/http-server/client/request-parser.js +3 -3
  986. package/build/src/http-server/client/request-runner.d.ts +11 -11
  987. package/build/src/http-server/client/request-runner.d.ts.map +1 -1
  988. package/build/src/http-server/client/request-runner.js +3 -3
  989. package/build/src/http-server/client/request-timing.d.ts +5 -11
  990. package/build/src/http-server/client/request-timing.d.ts.map +1 -1
  991. package/build/src/http-server/client/request.d.ts +10 -10
  992. package/build/src/http-server/client/request.d.ts.map +1 -1
  993. package/build/src/http-server/client/request.js +3 -3
  994. package/build/src/http-server/client/response-compression.d.ts +5 -5
  995. package/build/src/http-server/client/response-compression.d.ts.map +1 -1
  996. package/build/src/http-server/client/response.d.ts +13 -13
  997. package/build/src/http-server/client/response.d.ts.map +1 -1
  998. package/build/src/http-server/client/uploaded-file/memory-uploaded-file.d.ts +8 -2
  999. package/build/src/http-server/client/uploaded-file/memory-uploaded-file.d.ts.map +1 -1
  1000. package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.d.ts +8 -2
  1001. package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.d.ts.map +1 -1
  1002. package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts +4 -4
  1003. package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts.map +1 -1
  1004. package/build/src/http-server/client/websocket-request.d.ts +26 -26
  1005. package/build/src/http-server/client/websocket-request.d.ts.map +1 -1
  1006. package/build/src/http-server/client/websocket-request.js +7 -7
  1007. package/build/src/http-server/client/websocket-session.d.ts +105 -108
  1008. package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
  1009. package/build/src/http-server/client/websocket-session.js +29 -29
  1010. package/build/src/http-server/client-delivery-queue.d.ts +30 -30
  1011. package/build/src/http-server/client-delivery-queue.d.ts.map +1 -1
  1012. package/build/src/http-server/cookie.d.ts +80 -108
  1013. package/build/src/http-server/cookie.d.ts.map +1 -1
  1014. package/build/src/http-server/cookie.js +3 -3
  1015. package/build/src/http-server/development-reloader.d.ts +24 -24
  1016. package/build/src/http-server/development-reloader.d.ts.map +1 -1
  1017. package/build/src/http-server/development-reloader.js +2 -2
  1018. package/build/src/http-server/index.d.ts +66 -72
  1019. package/build/src/http-server/index.d.ts.map +1 -1
  1020. package/build/src/http-server/index.js +6 -6
  1021. package/build/src/http-server/remote-address.d.ts.map +1 -1
  1022. package/build/src/http-server/remote-address.js +2 -2
  1023. package/build/src/http-server/server-client.d.ts +9 -9
  1024. package/build/src/http-server/server-client.d.ts.map +1 -1
  1025. package/build/src/http-server/server-lock.d.ts +11 -11
  1026. package/build/src/http-server/server-lock.d.ts.map +1 -1
  1027. package/build/src/http-server/server-lock.js +5 -5
  1028. package/build/src/http-server/websocket-channel-subscribers.d.ts +11 -10
  1029. package/build/src/http-server/websocket-channel-subscribers.d.ts.map +1 -1
  1030. package/build/src/http-server/websocket-channel-subscribers.js +6 -6
  1031. package/build/src/http-server/websocket-channel.d.ts +8 -14
  1032. package/build/src/http-server/websocket-channel.d.ts.map +1 -1
  1033. package/build/src/http-server/websocket-channel.js +2 -2
  1034. package/build/src/http-server/websocket-connection.d.ts +10 -10
  1035. package/build/src/http-server/websocket-connection.d.ts.map +1 -1
  1036. package/build/src/http-server/websocket-connection.js +4 -4
  1037. package/build/src/http-server/websocket-event-log-store.d.ts +58 -64
  1038. package/build/src/http-server/websocket-event-log-store.d.ts.map +1 -1
  1039. package/build/src/http-server/websocket-event-log-store.js +10 -10
  1040. package/build/src/http-server/websocket-events-host.d.ts +17 -16
  1041. package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
  1042. package/build/src/http-server/websocket-events-host.js +8 -8
  1043. package/build/src/http-server/websocket-events.d.ts +9 -9
  1044. package/build/src/http-server/websocket-events.d.ts.map +1 -1
  1045. package/build/src/http-server/websocket-events.js +5 -5
  1046. package/build/src/http-server/worker-handler/channel-subscriber-dispatch.d.ts +2 -2
  1047. package/build/src/http-server/worker-handler/channel-subscriber-dispatch.d.ts.map +1 -1
  1048. package/build/src/http-server/worker-handler/channel-subscriber-dispatch.js +2 -2
  1049. package/build/src/http-server/worker-handler/in-process.d.ts +22 -22
  1050. package/build/src/http-server/worker-handler/in-process.d.ts.map +1 -1
  1051. package/build/src/http-server/worker-handler/in-process.js +6 -6
  1052. package/build/src/http-server/worker-handler/index.d.ts +50 -50
  1053. package/build/src/http-server/worker-handler/index.d.ts.map +1 -1
  1054. package/build/src/http-server/worker-handler/index.js +11 -11
  1055. package/build/src/http-server/worker-handler/worker-thread.d.ts +61 -61
  1056. package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
  1057. package/build/src/http-server/worker-handler/worker-thread.js +9 -9
  1058. package/build/src/initializer.d.ts +2 -2
  1059. package/build/src/initializer.d.ts.map +1 -1
  1060. package/build/src/jobs/mail-delivery.d.ts +7 -2
  1061. package/build/src/jobs/mail-delivery.d.ts.map +1 -1
  1062. package/build/src/jobs/prune-terminal-background-jobs.d.ts +15 -2
  1063. package/build/src/jobs/prune-terminal-background-jobs.d.ts.map +1 -1
  1064. package/build/src/jobs/prune-terminal-background-jobs.js +1 -1
  1065. package/build/src/logger/base-logger.d.ts.map +1 -1
  1066. package/build/src/logger/base-logger.js +2 -2
  1067. package/build/src/logger/console-logger.d.ts +3 -3
  1068. package/build/src/logger/console-logger.d.ts.map +1 -1
  1069. package/build/src/logger/file-logger.d.ts +4 -4
  1070. package/build/src/logger/file-logger.d.ts.map +1 -1
  1071. package/build/src/logger/outputs/array-output.d.ts +9 -12
  1072. package/build/src/logger/outputs/array-output.d.ts.map +1 -1
  1073. package/build/src/logger/outputs/console-output.d.ts +1 -4
  1074. package/build/src/logger/outputs/console-output.d.ts.map +1 -1
  1075. package/build/src/logger/outputs/file-output.d.ts +13 -16
  1076. package/build/src/logger/outputs/file-output.d.ts.map +1 -1
  1077. package/build/src/logger/outputs/stdout-output.d.ts +1 -4
  1078. package/build/src/logger/outputs/stdout-output.d.ts.map +1 -1
  1079. package/build/src/logger.d.ts +30 -29
  1080. package/build/src/logger.d.ts.map +1 -1
  1081. package/build/src/logger.js +13 -13
  1082. package/build/src/mailer/backends/smtp.d.ts +8 -11
  1083. package/build/src/mailer/backends/smtp.d.ts.map +1 -1
  1084. package/build/src/mailer/backends/smtp.js +4 -4
  1085. package/build/src/mailer/base.d.ts +61 -61
  1086. package/build/src/mailer/base.d.ts.map +1 -1
  1087. package/build/src/mailer/base.js +15 -15
  1088. package/build/src/mailer/delivery.d.ts +16 -16
  1089. package/build/src/mailer/delivery.d.ts.map +1 -1
  1090. package/build/src/mailer/delivery.js +4 -4
  1091. package/build/src/mailer/index.d.ts +8 -13
  1092. package/build/src/mailer/index.d.ts.map +1 -1
  1093. package/build/src/mailer/index.js +2 -2
  1094. package/build/src/mailer.d.ts +9 -7
  1095. package/build/src/mailer.d.ts.map +1 -1
  1096. package/build/src/mailer.js +2 -2
  1097. package/build/src/packages/velocious-package.d.ts +5 -5
  1098. package/build/src/packages/velocious-package.d.ts.map +1 -1
  1099. package/build/src/plugins/sqljs-wasm-route-controller.d.ts +1 -1
  1100. package/build/src/plugins/sqljs-wasm-route-controller.d.ts.map +1 -1
  1101. package/build/src/plugins/sqljs-wasm-route-controller.js +2 -2
  1102. package/build/src/plugins/sqljs-wasm-route.d.ts +14 -20
  1103. package/build/src/plugins/sqljs-wasm-route.d.ts.map +1 -1
  1104. package/build/src/plugins/sqljs-wasm-route.js +1 -1
  1105. package/build/src/record-payload-values.d.ts +14 -14
  1106. package/build/src/record-payload-values.d.ts.map +1 -1
  1107. package/build/src/record-payload-values.js +4 -4
  1108. package/build/src/routes/app-routes.d.ts.map +1 -1
  1109. package/build/src/routes/base-route.d.ts +11 -10
  1110. package/build/src/routes/base-route.d.ts.map +1 -1
  1111. package/build/src/routes/base-route.js +6 -6
  1112. package/build/src/routes/basic-route.d.ts +36 -3
  1113. package/build/src/routes/basic-route.d.ts.map +1 -1
  1114. package/build/src/routes/basic-route.js +5 -5
  1115. package/build/src/routes/built-in/api-manifest/controller.d.ts +1 -1
  1116. package/build/src/routes/built-in/api-manifest/controller.d.ts.map +1 -1
  1117. package/build/src/routes/built-in/debug/controller.d.ts +1 -1
  1118. package/build/src/routes/built-in/debug/controller.d.ts.map +1 -1
  1119. package/build/src/routes/built-in/errors/controller.d.ts +1 -1
  1120. package/build/src/routes/built-in/errors/controller.d.ts.map +1 -1
  1121. package/build/src/routes/get-route.d.ts +19 -4
  1122. package/build/src/routes/get-route.d.ts.map +1 -1
  1123. package/build/src/routes/get-route.js +3 -3
  1124. package/build/src/routes/hooks/frontend-model-command-route-hook.d.ts +1 -1
  1125. package/build/src/routes/hooks/frontend-model-command-route-hook.d.ts.map +1 -1
  1126. package/build/src/routes/hooks/frontend-model-command-route-hook.js +2 -2
  1127. package/build/src/routes/index.d.ts +5 -5
  1128. package/build/src/routes/index.d.ts.map +1 -1
  1129. package/build/src/routes/index.js +4 -4
  1130. package/build/src/routes/namespace-route.d.ts +19 -4
  1131. package/build/src/routes/namespace-route.d.ts.map +1 -1
  1132. package/build/src/routes/namespace-route.js +2 -2
  1133. package/build/src/routes/plugin-routes.d.ts +16 -19
  1134. package/build/src/routes/plugin-routes.d.ts.map +1 -1
  1135. package/build/src/routes/plugin-routes.js +2 -2
  1136. package/build/src/routes/post-route.d.ts +19 -4
  1137. package/build/src/routes/post-route.d.ts.map +1 -1
  1138. package/build/src/routes/post-route.js +3 -3
  1139. package/build/src/routes/resolver.d.ts +16 -16
  1140. package/build/src/routes/resolver.d.ts.map +1 -1
  1141. package/build/src/routes/resolver.js +6 -6
  1142. package/build/src/routes/resource-route.d.ts +23 -8
  1143. package/build/src/routes/resource-route.d.ts.map +1 -1
  1144. package/build/src/routes/resource-route.js +2 -2
  1145. package/build/src/routes/root-route.d.ts +1 -1
  1146. package/build/src/routes/root-route.d.ts.map +1 -1
  1147. package/build/src/sync/conflict-strategy.d.ts +50 -35
  1148. package/build/src/sync/conflict-strategy.d.ts.map +1 -1
  1149. package/build/src/sync/conflict-strategy.js +2 -2
  1150. package/build/src/sync/device-identity.d.ts +109 -79
  1151. package/build/src/sync/device-identity.d.ts.map +1 -1
  1152. package/build/src/sync/local-mutation-log.d.ts +115 -92
  1153. package/build/src/sync/local-mutation-log.d.ts.map +1 -1
  1154. package/build/src/sync/offline-grant.d.ts +80 -63
  1155. package/build/src/sync/offline-grant.d.ts.map +1 -1
  1156. package/build/src/sync/peer-mutation-bundle.d.ts +33 -39
  1157. package/build/src/sync/peer-mutation-bundle.d.ts.map +1 -1
  1158. package/build/src/sync/query-scope.d.ts +3 -3
  1159. package/build/src/sync/query-scope.d.ts.map +1 -1
  1160. package/build/src/sync/query-scope.js +8 -8
  1161. package/build/src/sync/server-change-feed.d.ts +129 -129
  1162. package/build/src/sync/server-change-feed.d.ts.map +1 -1
  1163. package/build/src/sync/server-change-feed.js +14 -14
  1164. package/build/src/sync/server-sequence-allocator.d.ts +36 -36
  1165. package/build/src/sync/server-sequence-allocator.d.ts.map +1 -1
  1166. package/build/src/sync/server-sequence-allocator.js +6 -6
  1167. package/build/src/sync/signed-sync-envelope-replay-service.d.ts +60 -48
  1168. package/build/src/sync/signed-sync-envelope-replay-service.d.ts.map +1 -1
  1169. package/build/src/sync/signed-sync-envelope-replay-service.js +21 -21
  1170. package/build/src/sync/stable-json.d.ts +2 -2
  1171. package/build/src/sync/stable-json.d.ts.map +1 -1
  1172. package/build/src/sync/stable-json.js +5 -5
  1173. package/build/src/sync/sync-api-client-types.d.ts +98 -25
  1174. package/build/src/sync/sync-api-client-types.d.ts.map +1 -1
  1175. package/build/src/sync/sync-api-client-types.js +73 -1
  1176. package/build/src/sync/sync-api-client.d.ts +71 -71
  1177. package/build/src/sync/sync-api-client.d.ts.map +1 -1
  1178. package/build/src/sync/sync-api-client.js +30 -30
  1179. package/build/src/sync/sync-api-controller.d.ts +23 -23
  1180. package/build/src/sync/sync-api-controller.d.ts.map +1 -1
  1181. package/build/src/sync/sync-change-fanout.d.ts +32 -38
  1182. package/build/src/sync/sync-change-fanout.d.ts.map +1 -1
  1183. package/build/src/sync/sync-change-fanout.js +7 -7
  1184. package/build/src/sync/sync-channel-name.d.ts +1 -1
  1185. package/build/src/sync/sync-channel-name.d.ts.map +1 -1
  1186. package/build/src/sync/sync-client-registry.d.ts +4 -4
  1187. package/build/src/sync/sync-client-registry.d.ts.map +1 -1
  1188. package/build/src/sync/sync-client-registry.js +4 -4
  1189. package/build/src/sync/sync-client-types.d.ts +130 -82
  1190. package/build/src/sync/sync-client-types.d.ts.map +1 -1
  1191. package/build/src/sync/sync-client-types.js +89 -1
  1192. package/build/src/sync/sync-client.d.ts +76 -76
  1193. package/build/src/sync/sync-client.d.ts.map +1 -1
  1194. package/build/src/sync/sync-client.js +19 -19
  1195. package/build/src/sync/sync-envelope-replay-service.d.ts +266 -298
  1196. package/build/src/sync/sync-envelope-replay-service.d.ts.map +1 -1
  1197. package/build/src/sync/sync-envelope-replay-service.js +77 -77
  1198. package/build/src/sync/sync-model-change-feed-service.d.ts +23 -23
  1199. package/build/src/sync/sync-model-change-feed-service.d.ts.map +1 -1
  1200. package/build/src/sync/sync-model-change-feed-service.js +8 -8
  1201. package/build/src/sync/sync-publish-suppression.d.ts +5 -5
  1202. package/build/src/sync/sync-publish-suppression.d.ts.map +1 -1
  1203. package/build/src/sync/sync-publish-suppression.js +3 -3
  1204. package/build/src/sync/sync-publisher-types.d.ts +98 -55
  1205. package/build/src/sync/sync-publisher-types.d.ts.map +1 -1
  1206. package/build/src/sync/sync-publisher-types.js +75 -1
  1207. package/build/src/sync/sync-publisher.d.ts +43 -43
  1208. package/build/src/sync/sync-publisher.d.ts.map +1 -1
  1209. package/build/src/sync/sync-publisher.js +20 -20
  1210. package/build/src/sync/sync-realtime-bridge.d.ts +23 -23
  1211. package/build/src/sync/sync-realtime-bridge.d.ts.map +1 -1
  1212. package/build/src/sync/sync-realtime-bridge.js +9 -9
  1213. package/build/src/sync/sync-replay-upsert-applier.d.ts +70 -70
  1214. package/build/src/sync/sync-replay-upsert-applier.d.ts.map +1 -1
  1215. package/build/src/sync/sync-replay-upsert-applier.js +17 -17
  1216. package/build/src/sync/sync-resource-base.d.ts +52 -51
  1217. package/build/src/sync/sync-resource-base.d.ts.map +1 -1
  1218. package/build/src/sync/sync-resource-base.js +15 -15
  1219. package/build/src/sync/sync-scope-attributes.d.ts +2 -2
  1220. package/build/src/sync/sync-scope-attributes.d.ts.map +1 -1
  1221. package/build/src/sync/sync-scope-attributes.js +2 -2
  1222. package/build/src/sync/sync-scope-store.d.ts +36 -36
  1223. package/build/src/sync/sync-scope-store.d.ts.map +1 -1
  1224. package/build/src/sync/sync-scope-store.js +6 -6
  1225. package/build/src/sync/sync-websocket-channel.d.ts +11 -6
  1226. package/build/src/sync/sync-websocket-channel.d.ts.map +1 -1
  1227. package/build/src/sync/sync-websocket-channel.js +6 -6
  1228. package/build/src/tenants/default-tenant-database-provisioning.d.ts +4 -4
  1229. package/build/src/tenants/default-tenant-database-provisioning.d.ts.map +1 -1
  1230. package/build/src/tenants/default-tenant-database-provisioning.js +2 -2
  1231. package/build/src/tenants/tenant-aggregator.d.ts +81 -81
  1232. package/build/src/tenants/tenant-aggregator.d.ts.map +1 -1
  1233. package/build/src/tenants/tenant-aggregator.js +13 -13
  1234. package/build/src/tenants/tenant-handle.d.ts +64 -0
  1235. package/build/src/tenants/tenant-handle.d.ts.map +1 -0
  1236. package/build/src/tenants/tenant-handle.js +221 -0
  1237. package/build/src/tenants/tenant-iterator.d.ts +17 -17
  1238. package/build/src/tenants/tenant-iterator.d.ts.map +1 -1
  1239. package/build/src/tenants/tenant-iterator.js +7 -7
  1240. package/build/src/tenants/tenant-model-scope.d.ts +73 -0
  1241. package/build/src/tenants/tenant-model-scope.d.ts.map +1 -0
  1242. package/build/src/tenants/tenant-model-scope.js +115 -0
  1243. package/build/src/tenants/tenant.d.ts +16 -6
  1244. package/build/src/tenants/tenant.d.ts.map +1 -1
  1245. package/build/src/tenants/tenant.js +15 -3
  1246. package/build/src/testing/base-expect.d.ts.map +1 -1
  1247. package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts +19 -31
  1248. package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts.map +1 -1
  1249. package/build/src/testing/browser-test-app.js +6 -6
  1250. package/build/src/testing/expect-to-change.d.ts +9 -7
  1251. package/build/src/testing/expect-to-change.d.ts.map +1 -1
  1252. package/build/src/testing/expect-to-change.js +2 -2
  1253. package/build/src/testing/expect-utils.d.ts +30 -29
  1254. package/build/src/testing/expect-utils.d.ts.map +1 -1
  1255. package/build/src/testing/expect-utils.js +30 -30
  1256. package/build/src/testing/expect.d.ts +30 -30
  1257. package/build/src/testing/expect.d.ts.map +1 -1
  1258. package/build/src/testing/expect.js +19 -19
  1259. package/build/src/testing/factory/association-declaration.d.ts +16 -16
  1260. package/build/src/testing/factory/association-declaration.d.ts.map +1 -1
  1261. package/build/src/testing/factory/association-declaration.js +3 -3
  1262. package/build/src/testing/factory/declarations.d.ts +90 -115
  1263. package/build/src/testing/factory/declarations.d.ts.map +1 -1
  1264. package/build/src/testing/factory/declarations.js +6 -6
  1265. package/build/src/testing/factory/definition-builder.d.ts +72 -70
  1266. package/build/src/testing/factory/definition-builder.d.ts.map +1 -1
  1267. package/build/src/testing/factory/definition-builder.js +40 -40
  1268. package/build/src/testing/factory/errors.d.ts +30 -29
  1269. package/build/src/testing/factory/errors.d.ts.map +1 -1
  1270. package/build/src/testing/factory/evaluation-context.d.ts +29 -29
  1271. package/build/src/testing/factory/evaluation-context.d.ts.map +1 -1
  1272. package/build/src/testing/factory/evaluation-context.js +17 -17
  1273. package/build/src/testing/factory/events.d.ts +4 -5
  1274. package/build/src/testing/factory/events.d.ts.map +1 -1
  1275. package/build/src/testing/factory/factory-definition.d.ts +14 -14
  1276. package/build/src/testing/factory/factory-definition.d.ts.map +1 -1
  1277. package/build/src/testing/factory/factory-definition.js +3 -3
  1278. package/build/src/testing/factory/factory-registry.d.ts +56 -54
  1279. package/build/src/testing/factory/factory-registry.d.ts.map +1 -1
  1280. package/build/src/testing/factory/factory-registry.js +35 -35
  1281. package/build/src/testing/factory/factory-runner.d.ts +67 -73
  1282. package/build/src/testing/factory/factory-runner.d.ts.map +1 -1
  1283. package/build/src/testing/factory/factory-runner.js +9 -9
  1284. package/build/src/testing/factory/index.d.ts +7 -7
  1285. package/build/src/testing/factory/index.d.ts.map +1 -1
  1286. package/build/src/testing/factory/linter.d.ts +7 -7
  1287. package/build/src/testing/factory/linter.d.ts.map +1 -1
  1288. package/build/src/testing/factory/linter.js +3 -3
  1289. package/build/src/testing/factory/model-contract.d.ts +3 -3
  1290. package/build/src/testing/factory/model-contract.d.ts.map +1 -1
  1291. package/build/src/testing/factory/model-contract.js +4 -4
  1292. package/build/src/testing/factory/node/load-definitions.d.ts +2 -2
  1293. package/build/src/testing/factory/node/load-definitions.d.ts.map +1 -1
  1294. package/build/src/testing/factory/sequence.d.ts +19 -23
  1295. package/build/src/testing/factory/sequence.d.ts.map +1 -1
  1296. package/build/src/testing/factory/sequence.js +3 -3
  1297. package/build/src/testing/factory/strategies/attributes-for.d.ts +3 -3
  1298. package/build/src/testing/factory/strategies/attributes-for.d.ts.map +1 -1
  1299. package/build/src/testing/factory/strategies/attributes-for.js +2 -2
  1300. package/build/src/testing/factory/strategies/base.d.ts +32 -32
  1301. package/build/src/testing/factory/strategies/base.d.ts.map +1 -1
  1302. package/build/src/testing/factory/strategies/base.js +25 -25
  1303. package/build/src/testing/factory/strategies/build.d.ts +3 -3
  1304. package/build/src/testing/factory/strategies/build.d.ts.map +1 -1
  1305. package/build/src/testing/factory/strategies/build.js +3 -3
  1306. package/build/src/testing/factory/strategies/create.d.ts +6 -6
  1307. package/build/src/testing/factory/strategies/create.d.ts.map +1 -1
  1308. package/build/src/testing/factory/strategies/create.js +5 -5
  1309. package/build/src/testing/factory/trait-definition.d.ts +4 -4
  1310. package/build/src/testing/factory/trait-definition.d.ts.map +1 -1
  1311. package/build/src/testing/request-client.d.ts +19 -19
  1312. package/build/src/testing/request-client.d.ts.map +1 -1
  1313. package/build/src/testing/test-files-finder.d.ts +15 -15
  1314. package/build/src/testing/test-files-finder.d.ts.map +1 -1
  1315. package/build/src/testing/test-files-finder.js +2 -2
  1316. package/build/src/testing/test-filter-parser.d.ts +19 -12
  1317. package/build/src/testing/test-filter-parser.d.ts.map +1 -1
  1318. package/build/src/testing/test-runner.d.ts +204 -251
  1319. package/build/src/testing/test-runner.d.ts.map +1 -1
  1320. package/build/src/testing/test-runner.js +15 -15
  1321. package/build/src/testing/test-suite-splitter.d.ts +25 -31
  1322. package/build/src/testing/test-suite-splitter.d.ts.map +1 -1
  1323. package/build/src/testing/test.d.ts +51 -55
  1324. package/build/src/testing/test.d.ts.map +1 -1
  1325. package/build/src/testing/test.js +20 -18
  1326. package/build/src/testing/wait-for-event.d.ts +25 -25
  1327. package/build/src/testing/wait-for-event.d.ts.map +1 -1
  1328. package/build/src/testing/wait-for-event.js +6 -6
  1329. package/build/src/time-zone.d.ts +3 -3
  1330. package/build/src/time-zone.d.ts.map +1 -1
  1331. package/build/src/utils/backtrace-cleaner-node.d.ts +35 -2
  1332. package/build/src/utils/backtrace-cleaner-node.d.ts.map +1 -1
  1333. package/build/src/utils/backtrace-cleaner-node.js +1 -1
  1334. package/build/src/utils/backtrace-cleaner.d.ts +33 -28
  1335. package/build/src/utils/backtrace-cleaner.d.ts.map +1 -1
  1336. package/build/src/utils/bearer-token.d.ts +2 -2
  1337. package/build/src/utils/bearer-token.d.ts.map +1 -1
  1338. package/build/src/utils/deburr-column-name.d.ts.map +1 -1
  1339. package/build/src/utils/event-emitter.d.ts +1 -1
  1340. package/build/src/utils/event-emitter.d.ts.map +1 -1
  1341. package/build/src/utils/event-emitter.js +2 -2
  1342. package/build/src/utils/file-exists.d.ts.map +1 -1
  1343. package/build/src/utils/format-value.d.ts +9 -8
  1344. package/build/src/utils/format-value.d.ts.map +1 -1
  1345. package/build/src/utils/format-value.js +7 -7
  1346. package/build/src/utils/is-date.d.ts +2 -2
  1347. package/build/src/utils/is-date.d.ts.map +1 -1
  1348. package/build/src/utils/is-date.js +2 -2
  1349. package/build/src/utils/model-scope.d.ts +29 -24
  1350. package/build/src/utils/model-scope.d.ts.map +1 -1
  1351. package/build/src/utils/model-scope.js +11 -11
  1352. package/build/src/utils/mount-prefix.d.ts +2 -2
  1353. package/build/src/utils/mount-prefix.d.ts.map +1 -1
  1354. package/build/src/utils/nest-callbacks.d.ts.map +1 -1
  1355. package/build/src/utils/plain-object.d.ts +3 -3
  1356. package/build/src/utils/plain-object.d.ts.map +1 -1
  1357. package/build/src/utils/plain-object.js +3 -3
  1358. package/build/src/utils/ransack.d.ts +69 -90
  1359. package/build/src/utils/ransack.d.ts.map +1 -1
  1360. package/build/src/utils/ransack.js +36 -36
  1361. package/build/src/utils/rest-args-error.d.ts.map +1 -1
  1362. package/build/src/utils/sha256-hex.d.ts.map +1 -1
  1363. package/build/src/utils/shutdown-lifecycle.d.ts +1 -1
  1364. package/build/src/utils/shutdown-lifecycle.d.ts.map +1 -1
  1365. package/build/src/utils/singularize-model-name.d.ts.map +1 -1
  1366. package/build/src/utils/split-sql-statements.d.ts.map +1 -1
  1367. package/build/src/utils/to-import-specifier.d.ts.map +1 -1
  1368. package/build/src/utils/with-tracked-stack-async-hooks.d.ts +6 -5
  1369. package/build/src/utils/with-tracked-stack-async-hooks.d.ts.map +1 -1
  1370. package/build/src/utils/with-tracked-stack-async-hooks.js +9 -9
  1371. package/build/src/utils/with-tracked-stack.d.ts +6 -5
  1372. package/build/src/utils/with-tracked-stack.d.ts.map +1 -1
  1373. package/build/src/utils/with-tracked-stack.js +7 -7
  1374. package/build/src/velocious-error.d.ts +27 -17
  1375. package/build/src/velocious-error.d.ts.map +1 -1
  1376. package/build/src/velocious-error.js +10 -4
  1377. package/build/sync/conflict-strategy.js +1 -1
  1378. package/build/sync/query-scope.js +7 -7
  1379. package/build/sync/server-change-feed.js +13 -13
  1380. package/build/sync/server-sequence-allocator.js +5 -5
  1381. package/build/sync/signed-sync-envelope-replay-service.js +20 -20
  1382. package/build/sync/stable-json.js +4 -4
  1383. package/build/sync/sync-api-client-types.js +7 -7
  1384. package/build/sync/sync-api-client.js +26 -26
  1385. package/build/sync/sync-change-fanout.js +6 -6
  1386. package/build/sync/sync-client-registry.js +3 -3
  1387. package/build/sync/sync-client-types.js +10 -10
  1388. package/build/sync/sync-client.js +18 -18
  1389. package/build/sync/sync-envelope-replay-service.js +76 -76
  1390. package/build/sync/sync-model-change-feed-service.js +7 -7
  1391. package/build/sync/sync-publish-suppression.js +2 -2
  1392. package/build/sync/sync-publisher-types.js +11 -11
  1393. package/build/sync/sync-publisher.js +19 -19
  1394. package/build/sync/sync-realtime-bridge.js +8 -8
  1395. package/build/sync/sync-replay-upsert-applier.js +16 -16
  1396. package/build/sync/sync-resource-base.js +14 -14
  1397. package/build/sync/sync-scope-attributes.js +1 -1
  1398. package/build/sync/sync-scope-store.js +5 -5
  1399. package/build/sync/sync-websocket-channel.js +5 -5
  1400. package/build/tenants/default-tenant-database-provisioning.js +1 -1
  1401. package/build/tenants/tenant-aggregator.js +13 -13
  1402. package/build/tenants/tenant-handle.js +252 -0
  1403. package/build/tenants/tenant-iterator.js +6 -6
  1404. package/build/tenants/tenant-model-scope.js +132 -0
  1405. package/build/tenants/tenant.js +15 -2
  1406. package/build/testing/browser-test-app.js +2 -2
  1407. package/build/testing/expect-to-change.js +1 -1
  1408. package/build/testing/expect-utils.js +29 -29
  1409. package/build/testing/expect.js +18 -18
  1410. package/build/testing/factory/association-declaration.js +2 -2
  1411. package/build/testing/factory/declarations.js +5 -5
  1412. package/build/testing/factory/definition-builder.js +39 -39
  1413. package/build/testing/factory/evaluation-context.js +16 -16
  1414. package/build/testing/factory/factory-definition.js +2 -2
  1415. package/build/testing/factory/factory-registry.js +34 -34
  1416. package/build/testing/factory/factory-runner.js +8 -8
  1417. package/build/testing/factory/linter.js +2 -2
  1418. package/build/testing/factory/model-contract.js +3 -3
  1419. package/build/testing/factory/sequence.js +2 -2
  1420. package/build/testing/factory/strategies/attributes-for.js +1 -1
  1421. package/build/testing/factory/strategies/base.js +24 -24
  1422. package/build/testing/factory/strategies/build.js +2 -2
  1423. package/build/testing/factory/strategies/create.js +4 -4
  1424. package/build/testing/test-files-finder.js +1 -1
  1425. package/build/testing/test-runner.js +14 -14
  1426. package/build/testing/test.js +19 -17
  1427. package/build/testing/wait-for-event.js +5 -5
  1428. package/build/tsconfig.tsbuildinfo +1 -1
  1429. package/build/utils/event-emitter.js +1 -1
  1430. package/build/utils/format-value.js +6 -6
  1431. package/build/utils/is-date.js +1 -1
  1432. package/build/utils/model-scope.js +10 -10
  1433. package/build/utils/plain-object.js +2 -2
  1434. package/build/utils/ransack.js +35 -35
  1435. package/build/utils/with-tracked-stack-async-hooks.js +8 -8
  1436. package/build/utils/with-tracked-stack.js +6 -6
  1437. package/build/velocious-error.js +9 -3
  1438. package/package.json +3 -3
  1439. package/src/application.js +3 -3
  1440. package/src/authorization/ability.js +6 -6
  1441. package/src/authorization/base-resource.js +1 -1
  1442. package/src/background-jobs/client.js +2 -2
  1443. package/src/background-jobs/forked-runner-child.js +4 -4
  1444. package/src/background-jobs/job-runner.js +2 -2
  1445. package/src/background-jobs/job.js +6 -6
  1446. package/src/background-jobs/json-socket.js +1 -1
  1447. package/src/background-jobs/main.js +13 -13
  1448. package/src/background-jobs/normalize-error.js +2 -2
  1449. package/src/background-jobs/pooled-runner-child.js +3 -3
  1450. package/src/background-jobs/scheduler.js +1 -1
  1451. package/src/background-jobs/status-reporter.js +2 -2
  1452. package/src/background-jobs/store.js +23 -23
  1453. package/src/background-jobs/types.js +6 -6
  1454. package/src/background-jobs/web/controller.js +6 -6
  1455. package/src/background-jobs/web/counts-channel.js +1 -1
  1456. package/src/background-jobs/worker.js +8 -8
  1457. package/src/beacon/client.js +3 -3
  1458. package/src/beacon/in-process-client.js +3 -3
  1459. package/src/beacon/types.js +1 -1
  1460. package/src/cli/base-command.js +1 -1
  1461. package/src/cli/commands/console.js +1 -1
  1462. package/src/cli/commands/db/schema/dump.js +1 -1
  1463. package/src/cli/commands/db/schema/load.js +1 -1
  1464. package/src/cli/commands/db/seed.js +1 -1
  1465. package/src/cli/commands/generate/frontend-models.js +1 -1
  1466. package/src/cli/commands/lint/relationships.js +1 -1
  1467. package/src/cli/commands/run-script.js +1 -1
  1468. package/src/cli/commands/runner.js +1 -1
  1469. package/src/cli/index.js +2 -2
  1470. package/src/cli/tenant-database-command-helper.js +2 -2
  1471. package/src/configuration-types.js +48 -47
  1472. package/src/configuration.js +150 -65
  1473. package/src/controller.js +11 -8
  1474. package/src/current.js +2 -2
  1475. package/src/database/annotations-async-hooks.js +3 -3
  1476. package/src/database/annotations.js +1 -1
  1477. package/src/database/drivers/base-column.js +1 -1
  1478. package/src/database/drivers/base-foreign-key.js +1 -1
  1479. package/src/database/drivers/base-table.js +1 -1
  1480. package/src/database/drivers/base.js +18 -18
  1481. package/src/database/drivers/mssql/column.js +1 -1
  1482. package/src/database/drivers/mssql/index.js +2 -2
  1483. package/src/database/drivers/mssql/options.js +1 -1
  1484. package/src/database/drivers/mssql/structure-sql.js +1 -1
  1485. package/src/database/drivers/mssql/table.js +1 -1
  1486. package/src/database/drivers/mysql/column.js +1 -1
  1487. package/src/database/drivers/mysql/index.js +4 -4
  1488. package/src/database/drivers/mysql/options.js +1 -1
  1489. package/src/database/drivers/mysql/query.js +7 -7
  1490. package/src/database/drivers/mysql/structure-sql.js +71 -10
  1491. package/src/database/drivers/pgsql/column.js +1 -1
  1492. package/src/database/drivers/pgsql/index.js +6 -6
  1493. package/src/database/drivers/pgsql/structure-sql.js +1 -1
  1494. package/src/database/drivers/sqlite/base.js +7 -7
  1495. package/src/database/drivers/sqlite/column.js +1 -1
  1496. package/src/database/drivers/sqlite/connection-sql-js.js +1 -1
  1497. package/src/database/drivers/sqlite/foreign-key.js +1 -1
  1498. package/src/database/drivers/sqlite/index.js +1 -1
  1499. package/src/database/drivers/sqlite/index.native.js +2 -2
  1500. package/src/database/drivers/sqlite/index.web.js +2 -2
  1501. package/src/database/drivers/sqlite/query.js +2 -2
  1502. package/src/database/drivers/sqlite/query.native.js +2 -2
  1503. package/src/database/drivers/sqlite/query.web.js +2 -2
  1504. package/src/database/drivers/sqlite/table-rebuilder.js +1 -1
  1505. package/src/database/migration/index.js +2 -2
  1506. package/src/database/migrator/types.js +2 -2
  1507. package/src/database/operation.js +59 -6
  1508. package/src/database/pool/async-tracked-multi-connection.js +75 -24
  1509. package/src/database/pool/base-methods-forward.js +2 -2
  1510. package/src/database/pool/base.js +48 -17
  1511. package/src/database/pool/single-multi-use.js +501 -103
  1512. package/src/database/query/delete-base.js +1 -1
  1513. package/src/database/query/index.js +3 -3
  1514. package/src/database/query/insert-base.js +4 -4
  1515. package/src/database/query/model-class-query.js +39 -39
  1516. package/src/database/query/preloader/belongs-to.js +2 -2
  1517. package/src/database/query/preloader/ensure-model-class-initialized.js +3 -2
  1518. package/src/database/query/preloader/has-many.js +3 -3
  1519. package/src/database/query/preloader/has-one.js +1 -1
  1520. package/src/database/query/preloader.js +9 -2
  1521. package/src/database/query/query-data.js +7 -7
  1522. package/src/database/query/update-base.js +3 -3
  1523. package/src/database/query/upsert-base.js +2 -2
  1524. package/src/database/query/where-model-class-hash.js +13 -13
  1525. package/src/database/query/with-count.js +12 -12
  1526. package/src/database/query-parser/options.js +2 -2
  1527. package/src/database/query-parser/select-parser.js +1 -1
  1528. package/src/database/record/acts-as-list.js +2 -2
  1529. package/src/database/record/attachments/handle.js +6 -6
  1530. package/src/database/record/attachments/normalize-input.js +11 -11
  1531. package/src/database/record/attachments/storage-drivers/filesystem.js +1 -1
  1532. package/src/database/record/attachments/storage-drivers/native.js +5 -5
  1533. package/src/database/record/attachments/storage-drivers/s3.js +10 -10
  1534. package/src/database/record/attachments/store.js +24 -20
  1535. package/src/database/record/auditing.js +123 -29
  1536. package/src/database/record/counter-cache-magnitude.js +11 -11
  1537. package/src/database/record/index.js +227 -174
  1538. package/src/database/record/instance-relationships/base.js +4 -4
  1539. package/src/database/record/instance-relationships/belongs-to.js +1 -1
  1540. package/src/database/record/instance-relationships/has-many.js +3 -3
  1541. package/src/database/record/instance-relationships/has-one.js +1 -1
  1542. package/src/database/record/record-not-found-error.js +1 -0
  1543. package/src/database/record/relationships/base.js +22 -0
  1544. package/src/database/record/state-machine.js +6 -6
  1545. package/src/database/record/validators/base.js +1 -1
  1546. package/src/database/structure-sql-loader.js +3 -3
  1547. package/src/database/table-data/table-column.js +3 -3
  1548. package/src/database/use-live-query.js +3 -3
  1549. package/src/environment-handlers/base.js +56 -37
  1550. package/src/environment-handlers/browser.js +1 -1
  1551. package/src/environment-handlers/node/cli/commands/console.js +4 -4
  1552. package/src/environment-handlers/node/cli/commands/db/seed.js +2 -2
  1553. package/src/environment-handlers/node/cli/commands/generate/base-models.js +1 -1
  1554. package/src/environment-handlers/node/cli/commands/run-script.js +2 -2
  1555. package/src/environment-handlers/node/cli/commands/runner.js +2 -2
  1556. package/src/environment-handlers/node/cli/commands/server.js +1 -1
  1557. package/src/environment-handlers/node.js +36 -36
  1558. package/src/error-logger.js +2 -2
  1559. package/src/error-reporting/request-details.js +32 -32
  1560. package/src/frontend-model-controller.js +215 -213
  1561. package/src/frontend-model-resource/base-resource.js +44 -44
  1562. package/src/frontend-model-resource/velocious-attachment-resource.js +1 -1
  1563. package/src/frontend-models/base.js +146 -142
  1564. package/src/frontend-models/clear-pending-debounced-callback.js +2 -2
  1565. package/src/frontend-models/model-registry.js +4 -4
  1566. package/src/frontend-models/outgoing-event-buffer.js +1 -1
  1567. package/src/frontend-models/preloader.js +1 -1
  1568. package/src/frontend-models/query.js +60 -60
  1569. package/src/frontend-models/resource-definition.js +9 -9
  1570. package/src/frontend-models/transport-serialization.js +27 -27
  1571. package/src/frontend-models/websocket-channel.js +4 -4
  1572. package/src/frontend-models/websocket-publishers.js +1 -1
  1573. package/src/http-client/request.js +1 -1
  1574. package/src/http-client/response.js +1 -1
  1575. package/src/http-server/client/index.js +4 -4
  1576. package/src/http-server/client/params-to-object.js +16 -16
  1577. package/src/http-server/client/request-buffer/index.js +5 -2
  1578. package/src/http-server/client/request-parser.js +2 -2
  1579. package/src/http-server/client/request-runner.js +2 -2
  1580. package/src/http-server/client/request.js +2 -2
  1581. package/src/http-server/client/websocket-request.js +6 -6
  1582. package/src/http-server/client/websocket-session.js +28 -28
  1583. package/src/http-server/cookie.js +2 -2
  1584. package/src/http-server/development-reloader.js +1 -1
  1585. package/src/http-server/index.js +5 -5
  1586. package/src/http-server/remote-address.js +1 -1
  1587. package/src/http-server/server-lock.js +4 -4
  1588. package/src/http-server/websocket-channel-subscribers.js +4 -4
  1589. package/src/http-server/websocket-channel.js +1 -1
  1590. package/src/http-server/websocket-connection.js +3 -3
  1591. package/src/http-server/websocket-event-log-store.js +9 -9
  1592. package/src/http-server/websocket-events-host.js +7 -7
  1593. package/src/http-server/websocket-events.js +4 -4
  1594. package/src/http-server/worker-handler/channel-subscriber-dispatch.js +1 -1
  1595. package/src/http-server/worker-handler/in-process.js +5 -5
  1596. package/src/http-server/worker-handler/index.js +10 -10
  1597. package/src/http-server/worker-handler/worker-thread.js +8 -8
  1598. package/src/logger/base-logger.js +1 -1
  1599. package/src/logger.js +12 -12
  1600. package/src/mailer/backends/smtp.js +3 -3
  1601. package/src/mailer/base.js +14 -14
  1602. package/src/mailer/delivery.js +3 -3
  1603. package/src/mailer/index.js +1 -1
  1604. package/src/mailer.js +1 -1
  1605. package/src/plugins/sqljs-wasm-route-controller.js +1 -1
  1606. package/src/record-payload-values.js +3 -3
  1607. package/src/routes/base-route.js +5 -5
  1608. package/src/routes/basic-route.js +4 -4
  1609. package/src/routes/get-route.js +2 -2
  1610. package/src/routes/hooks/frontend-model-command-route-hook.js +1 -1
  1611. package/src/routes/index.js +3 -3
  1612. package/src/routes/namespace-route.js +1 -1
  1613. package/src/routes/plugin-routes.js +1 -1
  1614. package/src/routes/post-route.js +2 -2
  1615. package/src/routes/resolver.js +5 -5
  1616. package/src/routes/resource-route.js +1 -1
  1617. package/src/sync/conflict-strategy.js +1 -1
  1618. package/src/sync/query-scope.js +7 -7
  1619. package/src/sync/server-change-feed.js +13 -13
  1620. package/src/sync/server-sequence-allocator.js +5 -5
  1621. package/src/sync/signed-sync-envelope-replay-service.js +20 -20
  1622. package/src/sync/stable-json.js +4 -4
  1623. package/src/sync/sync-api-client-types.js +7 -7
  1624. package/src/sync/sync-api-client.js +26 -26
  1625. package/src/sync/sync-change-fanout.js +6 -6
  1626. package/src/sync/sync-client-registry.js +3 -3
  1627. package/src/sync/sync-client-types.js +10 -10
  1628. package/src/sync/sync-client.js +18 -18
  1629. package/src/sync/sync-envelope-replay-service.js +76 -76
  1630. package/src/sync/sync-model-change-feed-service.js +7 -7
  1631. package/src/sync/sync-publish-suppression.js +2 -2
  1632. package/src/sync/sync-publisher-types.js +11 -11
  1633. package/src/sync/sync-publisher.js +19 -19
  1634. package/src/sync/sync-realtime-bridge.js +8 -8
  1635. package/src/sync/sync-replay-upsert-applier.js +16 -16
  1636. package/src/sync/sync-resource-base.js +14 -14
  1637. package/src/sync/sync-scope-attributes.js +1 -1
  1638. package/src/sync/sync-scope-store.js +5 -5
  1639. package/src/sync/sync-websocket-channel.js +5 -5
  1640. package/src/tenants/default-tenant-database-provisioning.js +1 -1
  1641. package/src/tenants/tenant-aggregator.js +13 -13
  1642. package/src/tenants/tenant-handle.js +252 -0
  1643. package/src/tenants/tenant-iterator.js +6 -6
  1644. package/src/tenants/tenant-model-scope.js +132 -0
  1645. package/src/tenants/tenant.js +15 -2
  1646. package/src/testing/browser-test-app.js +2 -2
  1647. package/src/testing/expect-to-change.js +1 -1
  1648. package/src/testing/expect-utils.js +29 -29
  1649. package/src/testing/expect.js +18 -18
  1650. package/src/testing/factory/association-declaration.js +2 -2
  1651. package/src/testing/factory/declarations.js +5 -5
  1652. package/src/testing/factory/definition-builder.js +39 -39
  1653. package/src/testing/factory/evaluation-context.js +16 -16
  1654. package/src/testing/factory/factory-definition.js +2 -2
  1655. package/src/testing/factory/factory-registry.js +34 -34
  1656. package/src/testing/factory/factory-runner.js +8 -8
  1657. package/src/testing/factory/linter.js +2 -2
  1658. package/src/testing/factory/model-contract.js +3 -3
  1659. package/src/testing/factory/sequence.js +2 -2
  1660. package/src/testing/factory/strategies/attributes-for.js +1 -1
  1661. package/src/testing/factory/strategies/base.js +24 -24
  1662. package/src/testing/factory/strategies/build.js +2 -2
  1663. package/src/testing/factory/strategies/create.js +4 -4
  1664. package/src/testing/test-files-finder.js +1 -1
  1665. package/src/testing/test-runner.js +14 -14
  1666. package/src/testing/test.js +19 -17
  1667. package/src/testing/wait-for-event.js +5 -5
  1668. package/src/utils/event-emitter.js +1 -1
  1669. package/src/utils/format-value.js +6 -6
  1670. package/src/utils/is-date.js +1 -1
  1671. package/src/utils/model-scope.js +10 -10
  1672. package/src/utils/plain-object.js +2 -2
  1673. package/src/utils/ransack.js +35 -35
  1674. package/src/utils/with-tracked-stack-async-hooks.js +8 -8
  1675. package/src/utils/with-tracked-stack.js +6 -6
  1676. package/src/velocious-error.js +9 -3
@@ -1,34 +1,35 @@
1
+ import DevelopmentReloader from "./development-reloader.js";
2
+ import InProcessHandler from "./worker-handler/in-process.js";
3
+ import Logger from "../logger.js";
4
+ import ServerClient from "./server-client.js";
5
+ import WorkerHandler from "./worker-handler/index.js";
6
+ export type DevelopmentReloaderLike = {
7
+ start: () => Promise<void>;
8
+ stop: () => Promise<void>;
9
+ };
10
+ export type WorkerHandlerFactory = (args: {
11
+ configuration: import("../configuration.js").default;
12
+ workerCount: number;
13
+ }) => (WorkerHandler | InProcessHandler);
1
14
  export default class VelociousHttpServer {
2
- /**
3
- * Runs constructor.
4
- * @param {object} args - Options object.
5
- * @param {import("../configuration.js").default} args.configuration - Configuration instance.
6
- * @param {string} [args.host] - Host.
7
- * @param {boolean} [args.inProcess] - Run HTTP handlers in the main thread instead of worker threads.
8
- * @param {number} [args.port] - Port.
9
- * @param {number} [args.maxWorkers] - Max workers.
10
- * @param {number} [args.workers] - Worker handlers to start.
11
- * @param {function({configuration: import("../configuration.js").default, onReload: function({changedPath: string}) : Promise<void>}) : {start: () => Promise<void>, stop: () => Promise<void>}} [args.developmentReloaderFactory] - Development reloader factory.
12
- * @param {WorkerHandlerFactory} [args.workerHandlerFactory] - Worker handler factory.
13
- */
14
- constructor({ configuration, developmentReloaderFactory, host, inProcess, maxWorkers, port, workerHandlerFactory, workers }: {
15
+ configuration: import("../configuration.js").default;
16
+ developmentReloaderFactory: ((args: {
15
17
  configuration: import("../configuration.js").default;
16
- host?: string | undefined;
17
- inProcess?: boolean | undefined;
18
- port?: number | undefined;
19
- maxWorkers?: number | undefined;
20
- workers?: number | undefined;
21
- developmentReloaderFactory?: ((arg0: {
22
- configuration: import("../configuration.js").default;
23
- onReload: (arg0: {
24
- changedPath: string;
25
- }) => Promise<void>;
26
- }) => {
27
- start: () => Promise<void>;
28
- stop: () => Promise<void>;
29
- }) | undefined;
30
- workerHandlerFactory?: WorkerHandlerFactory | undefined;
31
- });
18
+ onReload: (args: {
19
+ changedPath: string;
20
+ }) => Promise<void>;
21
+ }) => {
22
+ start: () => Promise<void>;
23
+ stop: () => Promise<void>;
24
+ }) | undefined;
25
+ inProcess: boolean;
26
+ logger: Logger;
27
+ host: string;
28
+ port: number;
29
+ workers: number;
30
+ _stopping: boolean | undefined;
31
+ _reloadWorkersForDevelopmentQueued: boolean | undefined;
32
+ _reloadingWorkersForDevelopment: boolean | undefined;
32
33
  clientCount: number;
33
34
  _starting: boolean;
34
35
  /**
@@ -62,21 +63,36 @@ export default class VelociousHttpServer {
62
63
  * Sticky worker handlers.
63
64
  * @type {Map<string, WorkerHandler | InProcessHandler>} */
64
65
  stickyWorkerHandlers: Map<string, WorkerHandler | InProcessHandler>;
65
- configuration: import("../configuration.js").default;
66
- developmentReloaderFactory: ((arg0: {
66
+ /**
67
+ * Runs constructor.
68
+ * @param {object} args - Options object.
69
+ * @param {import("../configuration.js").default} args.configuration - Configuration instance.
70
+ * @param {string} [args.host] - Host.
71
+ * @param {boolean} [args.inProcess] - Run HTTP handlers in the main thread instead of worker threads.
72
+ * @param {number} [args.port] - Port.
73
+ * @param {number} [args.maxWorkers] - Max workers.
74
+ * @param {number} [args.workers] - Worker handlers to start.
75
+ * @param {(args: {configuration: import("../configuration.js").default, onReload: (args: {changedPath: string}) => Promise<void>}) => {start: () => Promise<void>, stop: () => Promise<void>}} [args.developmentReloaderFactory] - Development reloader factory.
76
+ * @param {WorkerHandlerFactory} [args.workerHandlerFactory] - Worker handler factory.
77
+ */
78
+ constructor({ configuration, developmentReloaderFactory, host, inProcess, maxWorkers, port, workerHandlerFactory, workers }: {
67
79
  configuration: import("../configuration.js").default;
68
- onReload: (arg0: {
69
- changedPath: string;
70
- }) => Promise<void>;
71
- }) => {
72
- start: () => Promise<void>;
73
- stop: () => Promise<void>;
74
- }) | undefined;
75
- inProcess: boolean;
76
- logger: Logger;
77
- host: string;
78
- port: number;
79
- workers: number;
80
+ host?: string;
81
+ inProcess?: boolean;
82
+ port?: number;
83
+ maxWorkers?: number;
84
+ workers?: number;
85
+ developmentReloaderFactory?: (args: {
86
+ configuration: import("../configuration.js").default;
87
+ onReload: (args: {
88
+ changedPath: string;
89
+ }) => Promise<void>;
90
+ }) => {
91
+ start: () => Promise<void>;
92
+ stop: () => Promise<void>;
93
+ };
94
+ workerHandlerFactory?: WorkerHandlerFactory;
95
+ });
80
96
  /**
81
97
  * Runs start.
82
98
  * @returns {Promise<void>} - Resolves when complete.
@@ -114,21 +130,21 @@ export default class VelociousHttpServer {
114
130
  isActive(): boolean;
115
131
  /**
116
132
  * Runs get debug snapshot.
117
- * @returns {Promise<Record<string, ?>>} - HTTP server worker diagnostics.
133
+ * @returns {Promise<Record<string, ReturnType<typeof JSON.parse>>>} - HTTP server worker diagnostics.
118
134
  */
119
- getDebugSnapshot(): Promise<Record<string, unknown>>;
135
+ getDebugSnapshot(): Promise<Record<string, ReturnType<typeof JSON.parse>>>;
120
136
  /**
121
137
  * Runs worker debug snapshot.
122
138
  * @param {WorkerHandler | InProcessHandler} workerHandler - Worker handler to inspect.
123
- * @returns {Promise<Record<string, ?>>} Worker debug snapshot.
139
+ * @returns {Promise<Record<string, ReturnType<typeof JSON.parse>>>} Worker debug snapshot.
124
140
  */
125
- workerDebugSnapshot(workerHandler: WorkerHandler | InProcessHandler): Promise<Record<string, unknown>>;
141
+ workerDebugSnapshot(workerHandler: WorkerHandler | InProcessHandler): Promise<Record<string, ReturnType<typeof JSON.parse>>>;
126
142
  /**
127
143
  * Runs in process worker debug snapshot.
128
144
  * @param {InProcessHandler} workerHandler - In-process worker handler to inspect.
129
- * @returns {Record<string, ?>} Worker debug snapshot.
145
+ * @returns {Record<string, ReturnType<typeof JSON.parse>>} Worker debug snapshot.
130
146
  */
131
- inProcessWorkerDebugSnapshot(workerHandler: InProcessHandler): Record<string, unknown>;
147
+ inProcessWorkerDebugSnapshot(workerHandler: InProcessHandler): Record<string, ReturnType<typeof JSON.parse>>;
132
148
  /**
133
149
  * Runs stop clients.
134
150
  * @returns {Promise<void>} - Resolves when complete.
@@ -145,7 +161,6 @@ export default class VelociousHttpServer {
145
161
  * @returns {Promise<void>} - Resolves when complete.
146
162
  */
147
163
  stop(): Promise<void>;
148
- _stopping: boolean | undefined;
149
164
  /**
150
165
  * On close.
151
166
  * @returns {void} - No return value.
@@ -191,7 +206,7 @@ export default class VelociousHttpServer {
191
206
  * @returns {WorkerHandler | InProcessHandler} - The worker handler to use.
192
207
  */
193
208
  workerHandlerToUse({ stickyKey }?: {
194
- stickyKey?: string | undefined;
209
+ stickyKey?: string;
195
210
  }): WorkerHandler | InProcessHandler;
196
211
  /**
197
212
  * Runs next round robin worker handler.
@@ -213,26 +228,5 @@ export default class VelociousHttpServer {
213
228
  * @returns {Promise<void>} - Resolves when workers have been refreshed.
214
229
  */
215
230
  reloadWorkersForDevelopment(): Promise<void>;
216
- _reloadWorkersForDevelopmentQueued: boolean | undefined;
217
- _reloadingWorkersForDevelopment: boolean | undefined;
218
231
  }
219
- /**
220
- * Defines this typedef.
221
- */
222
- export type DevelopmentReloaderLike = {
223
- start: () => Promise<void>;
224
- stop: () => Promise<void>;
225
- };
226
- /**
227
- * Defines this typedef.
228
- */
229
- export type WorkerHandlerFactory = (arg0: {
230
- configuration: import("../configuration.js").default;
231
- workerCount: number;
232
- }) => (WorkerHandler | InProcessHandler);
233
- import DevelopmentReloader from "./development-reloader.js";
234
- import ServerClient from "./server-client.js";
235
- import WorkerHandler from "./worker-handler/index.js";
236
- import InProcessHandler from "./worker-handler/in-process.js";
237
- import Logger from "../logger.js";
238
232
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http-server/index.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http-server/index.js"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ import WorkerHandler from "./worker-handler/index.js";
12
12
  * @typedef {{start: () => Promise<void>, stop: () => Promise<void>}} DevelopmentReloaderLike */
13
13
  /**
14
14
  * Defines this typedef.
15
- * @typedef {function({configuration: import("../configuration.js").default, workerCount: number}) : (WorkerHandler | InProcessHandler)} WorkerHandlerFactory */
15
+ * @typedef {(args: {configuration: import("../configuration.js").default, workerCount: number}) => (WorkerHandler | InProcessHandler)} WorkerHandlerFactory */
16
16
  /**
17
17
  * Runs normalize worker count.
18
18
  * @param {object} args - Options object.
@@ -70,7 +70,7 @@ export default class VelociousHttpServer {
70
70
  * @param {number} [args.port] - Port.
71
71
  * @param {number} [args.maxWorkers] - Max workers.
72
72
  * @param {number} [args.workers] - Worker handlers to start.
73
- * @param {function({configuration: import("../configuration.js").default, onReload: function({changedPath: string}) : Promise<void>}) : {start: () => Promise<void>, stop: () => Promise<void>}} [args.developmentReloaderFactory] - Development reloader factory.
73
+ * @param {(args: {configuration: import("../configuration.js").default, onReload: (args: {changedPath: string}) => Promise<void>}) => {start: () => Promise<void>, stop: () => Promise<void>}} [args.developmentReloaderFactory] - Development reloader factory.
74
74
  * @param {WorkerHandlerFactory} [args.workerHandlerFactory] - Worker handler factory.
75
75
  */
76
76
  constructor({ configuration, developmentReloaderFactory, host, inProcess, maxWorkers, port, workerHandlerFactory, workers }) {
@@ -199,7 +199,7 @@ export default class VelociousHttpServer {
199
199
  }
200
200
  /**
201
201
  * Runs get debug snapshot.
202
- * @returns {Promise<Record<string, ?>>} - HTTP server worker diagnostics.
202
+ * @returns {Promise<Record<string, ReturnType<typeof JSON.parse>>>} - HTTP server worker diagnostics.
203
203
  */
204
204
  async getDebugSnapshot() {
205
205
  return {
@@ -215,7 +215,7 @@ export default class VelociousHttpServer {
215
215
  /**
216
216
  * Runs worker debug snapshot.
217
217
  * @param {WorkerHandler | InProcessHandler} workerHandler - Worker handler to inspect.
218
- * @returns {Promise<Record<string, ?>>} Worker debug snapshot.
218
+ * @returns {Promise<Record<string, ReturnType<typeof JSON.parse>>>} Worker debug snapshot.
219
219
  */
220
220
  async workerDebugSnapshot(workerHandler) {
221
221
  if (workerHandler instanceof WorkerHandler)
@@ -227,7 +227,7 @@ export default class VelociousHttpServer {
227
227
  /**
228
228
  * Runs in process worker debug snapshot.
229
229
  * @param {InProcessHandler} workerHandler - In-process worker handler to inspect.
230
- * @returns {Record<string, ?>} Worker debug snapshot.
230
+ * @returns {Record<string, ReturnType<typeof JSON.parse>>} Worker debug snapshot.
231
231
  */
232
232
  inProcessWorkerDebugSnapshot(workerHandler) {
233
233
  return {
@@ -484,4 +484,4 @@ export default class VelociousHttpServer {
484
484
  }
485
485
  }
486
486
  }
487
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1zZXJ2ZXIvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxtQkFBbUIsTUFBTSwyQkFBMkIsQ0FBQTtBQUMzRCxPQUFPLFlBQVksTUFBTSwyQkFBMkIsQ0FBQTtBQUNwRCxPQUFPLGdCQUFnQixNQUFNLGdDQUFnQyxDQUFBO0FBQzdELE9BQU8sTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUNqQyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUE7QUFDckIsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUE7QUFDN0MsT0FBTyxhQUFhLE1BQU0sMkJBQTJCLENBQUE7QUFFckQ7O2dHQUVnRztBQUNoRzs7Z0tBRWdLO0FBRWhLOzs7Ozs7R0FNRztBQUNILFNBQVMsb0JBQW9CLENBQUMsRUFBQyxVQUFVLEVBQUUsT0FBTyxFQUFDO0lBQ2pELE1BQU0sV0FBVyxHQUFHLE9BQU8sSUFBSSxVQUFVLElBQUksQ0FBQyxDQUFBO0lBRTlDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0RCxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUVELE9BQU8sV0FBVyxDQUFBO0FBQ3BCLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxPQUFPLG1CQUFtQjtJQUN0QyxXQUFXLEdBQUcsQ0FBQyxDQUFBO0lBQ2YsU0FBUyxHQUFHLEtBQUssQ0FBQTtJQUVqQjs7MkVBRXVFO0lBQ3ZFLG1CQUFtQixDQUFBO0lBRW5COztrREFFOEM7SUFDOUMsU0FBUyxDQUFBO0lBRVQ7O2tEQUU4QztJQUM5QyxvQkFBb0IsQ0FBQTtJQUVwQjs7K0NBRTJDO0lBQzNDLE9B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QUFvQixDQUFDLEtBQUssRUFBRSxDQUFBO2dCQUVqQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ25GLENBQUMsUUFBUSxJQUFJLENBQUMsa0NBQWtDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDO1FBQ3RFLENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksQ0FBQywrQkFBK0IsR0FBRyxLQUFLLENBQUE7UUFDOUMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IERldmVsb3BtZW50UmVsb2FkZXIgZnJvbSBcIi4vZGV2ZWxvcG1lbnQtcmVsb2FkZXIuanNcIlxuaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tIFwiLi4vdXRpbHMvZXZlbnQtZW1pdHRlci5qc1wiXG5pbXBvcnQgSW5Qcm9jZXNzSGFuZGxlciBmcm9tIFwiLi93b3JrZXItaGFuZGxlci9pbi1wcm9jZXNzLmpzXCJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4uL2xvZ2dlci5qc1wiXG5pbXBvcnQgTmV0IGZyb20gXCJuZXRcIlxuaW1wb3J0IFNlcnZlckNsaWVudCBmcm9tIFwiLi9zZXJ2ZXItY2xpZW50LmpzXCJcbmltcG9ydCBXb3JrZXJIYW5kbGVyIGZyb20gXCIuL3dvcmtlci1oYW5kbGVyL2luZGV4LmpzXCJcblxuLyoqXG4gKiBEZWZpbmVzIHRoaXMgdHlwZWRlZi5cbiAqIEB0eXBlZGVmIHt7c3RhcnQ6ICgpID0+IFByb21pc2U8dm9pZD4sIHN0b3A6ICgpID0+IFByb21pc2U8dm9pZD59fSBEZXZlbG9wbWVudFJlbG9hZGVyTGlrZSAqL1xuLyoqXG4gKiBEZWZpbmVzIHRoaXMgdHlwZWRlZi5cbiAqIEB0eXBlZGVmIHtmdW5jdGlvbih7Y29uZmlndXJhdGlvbjogaW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0LCB3b3JrZXJDb3VudDogbnVtYmVyfSkgOiAoV29ya2VySGFuZGxlciB8IEluUHJvY2Vzc0hhbmRsZXIpfSBXb3JrZXJIYW5kbGVyRmFjdG9yeSAqL1xuXG4vKipcbiAqIFJ1bnMgbm9ybWFsaXplIHdvcmtlciBjb3VudC5cbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gKiBAcGFyYW0ge251bWJlcn0gW2FyZ3MubWF4V29ya2Vyc10gLSBCYWNrd2FyZC1jb21wYXRpYmxlIHdvcmtlciBjb3VudCBhbGlhcy5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbYXJncy53b3JrZXJzXSAtIENvbmZpZ3VyZWQgd29ya2VyIGNvdW50LlxuICogQHJldHVybnMge251bWJlcn0gLSBOb3JtYWxpemVkIHdvcmtlciBjb3VudC5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplV29ya2VyQ291bnQoe21heFdvcmtlcnMsIHdvcmtlcnN9KSB7XG4gIGNvbnN0IHdvcmtlckNvdW50ID0gd29ya2VycyA/PyBtYXhXb3JrZXJzID8/IDFcblxuICBpZiAoIU51bWJlci5pc0ludGVnZXIod29ya2VyQ291bnQpIHx8IHdvcmtlckNvdW50IDwgMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkhUVFAgc2VydmVyIHdvcmtlcnMgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXJcIilcbiAgfVxuXG4gIHJldHVybiB3b3JrZXJDb3VudFxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNIdHRwU2VydmVyIHtcbiAgY2xpZW50Q291bnQgPSAwXG4gIF9zdGFydGluZyA9IGZhbHNlXG5cbiAgLyoqXG4gICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICogQHR5cGUge0RldmVsb3BtZW50UmVsb2FkZXIgfCBEZXZlbG9wbWVudFJlbG9hZGVyTGlrZSB8IHVuZGVmaW5lZH0gKi9cbiAgZGV2ZWxvcG1lbnRSZWxvYWRlclxuXG4gIC8qKlxuICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAqIEB0eXBlIHtpbXBvcnQoXCJuZXRcIikuU2VydmVyIHwgdW5kZWZpbmVkfSAqL1xuICBuZXRTZXJ2ZXJcblxuICAvKipcbiAgICogTmFycm93cyB0aGUgcnVudGltZSB2YWx1ZSB0byB0aGUgZG9jdW1lbnRlZCB0eXBlLlxuICAgKiBAdHlwZSB7V29ya2VySGFuZGxlckZhY3RvcnkgfCB1bmRlZmluZWR9ICovXG4gIHdvcmtlckhhbmRsZXJGYWN0b3J5XG5cbiAgLyoqXG4gICAqIENsaWVudHMuXG4gICAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBTZXJ2ZXJDbGllbnQ+fSAgKi9cbiAgY2xpZW50cyA9IHt9XG5cbiAgLyoqXG4gICAqIEFjdGl2ZSBzb2NrZXRzLlxuICAgKiBAdHlwZSB7U2V0PGltcG9ydChcIm5ldFwiKS5Tb2NrZXQ+fSAqL1xuICBfYWN0aXZlU29ja2V0cyA9IG5ldyBTZXQoKVxuXG4gIGV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICB3b3JrZXJDb3VudCA9IDBcblxuICAvKipcbiAgICogV29ya2VyIGhhbmRsZXJzLlxuICAgKiBAdHlwZSB7QXJyYXk8V29ya2VySGFuZGxlciB8IEluUHJvY2Vzc0hhbmRsZXI+fSAqL1xuICB3b3JrZXJIYW5kbGVycyA9IFtdXG4gIG5leHRXb3JrZXJIYW5kbGVySW5kZXggPSAwXG4gIC8qKlxuICAgKiBTdGlja3kgd29ya2VyIGhhbmRsZXJzLlxuICAgKiBAdHlwZSB7TWFwPHN0cmluZywgV29ya2VySGFuZGxlciB8IEluUHJvY2Vzc0hhbmRsZXI+fSAqL1xuICBzdGlja3lXb3JrZXJIYW5kbGVycyA9IG5ldyBNYXAoKVxuXG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFthcmdzLmhvc3RdIC0gSG9zdC5cbiAgICogQHBhcmFtIHtib29sZWFufSBbYXJncy5pblByb2Nlc3NdIC0gUnVuIEhUVFAgaGFuZGxlcnMgaW4gdGhlIG1haW4gdGhyZWFkIGluc3RlYWQgb2Ygd29ya2VyIHRocmVhZHMuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJncy5wb3J0XSAtIFBvcnQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJncy5tYXhXb3JrZXJzXSAtIE1heCB3b3JrZXJzLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW2FyZ3Mud29ya2Vyc10gLSBXb3JrZXIgaGFuZGxlcnMgdG8gc3RhcnQuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oe2NvbmZpZ3VyYXRpb246IGltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdCwgb25SZWxvYWQ6IGZ1bmN0aW9uKHtjaGFuZ2VkUGF0aDogc3RyaW5nfSkgOiBQcm9taXNlPHZvaWQ+fSkgOiB7c3RhcnQ6ICgpID0+IFByb21pc2U8dm9pZD4sIHN0b3A6ICgpID0+IFByb21pc2U8dm9pZD59fSBbYXJncy5kZXZlbG9wbWVudFJlbG9hZGVyRmFjdG9yeV0gLSBEZXZlbG9wbWVudCByZWxvYWRlciBmYWN0b3J5LlxuICAgKiBAcGFyYW0ge1dvcmtlckhhbmRsZXJGYWN0b3J5fSBbYXJncy53b3JrZXJIYW5kbGVyRmFjdG9yeV0gLSBXb3JrZXIgaGFuZGxlciBmYWN0b3J5LlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NvbmZpZ3VyYXRpb24sIGRldmVsb3BtZW50UmVsb2FkZXJGYWN0b3J5LCBob3N0LCBpblByb2Nlc3MsIG1heFdvcmtlcnMsIHBvcnQsIHdvcmtlckhhbmRsZXJGYWN0b3J5LCB3b3JrZXJzfSkge1xuICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmRldmVsb3BtZW50UmVsb2FkZXJGYWN0b3J5ID0gZGV2ZWxvcG1lbnRSZWxvYWRlckZhY3RvcnlcbiAgICB0aGlzLndvcmtlckhhbmRsZXJGYWN0b3J5ID0gd29ya2VySGFuZGxlckZhY3RvcnlcbiAgICB0aGlzLmluUHJvY2VzcyA9IGluUHJvY2VzcyB8fCBmYWxzZVxuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlcih0aGlzKVxuICAgIHRoaXMuaG9zdCA9IGhvc3QgPz8gXCIwLjAuMC4wXCJcbiAgICB0aGlzLnBvcnQgPSBwb3J0ID8/IDMwMDZcbiAgICB0aGlzLndvcmtlcnMgPSBub3JtYWxpemVXb3JrZXJDb3VudCh7bWF4V29ya2Vycywgd29ya2Vyc30pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzdGFydC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIHN0YXJ0KCkge1xuICAgIGlmICh0aGlzLl9zdGFydGluZykgdGhyb3cgbmV3IEVycm9yKFwiVmVsb2Npb3VzIEhUVFAgc2VydmVyIGlzIGFscmVhZHkgc3RhcnRpbmdcIilcbiAgICBpZiAodGhpcy5pc0FjdGl2ZSgpKSB0aHJvdyBuZXcgRXJyb3IoXCJWZWxvY2lvdXMgSFRUUCBzZXJ2ZXIgaXMgYWxyZWFkeSBydW5uaW5nXCIpXG5cbiAgICB0aGlzLl9zdGFydGluZyA9IHRydWVcbiAgICBjb25zdCBzdGFydHVwU3RhdGUgPSB0aGlzLl9jYXB0dXJlU3RhcnR1cFN0YXRlKClcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLl9lbnN1cmVXb3JrZXJzKClcbiAgICAgIGF3YWl0IHRoaXMuX3N0YXJ0RGV2ZWxvcG1lbnRSZWxvYWRlcigpXG4gICAgICAvKipcbiAgICAgICAqIE5ldCBzZXJ2ZXIuXG4gICAgICAgKiBAdHlwZSB7aW1wb3J0KFwibmV0XCIpLlNlcnZlcn0gKi9cbiAgICAgIGNvbnN0IG5ldFNlcnZlciA9IG5ldyBOZXQuU2VydmVyKClcbiAgICAgIHRoaXMubmV0U2VydmVyID0gbmV0U2VydmVyXG4gICAgICBuZXRTZXJ2ZXIub24oXCJjbG9zZVwiLCB0aGlzLm9uQ2xvc2UpXG4gICAgICBuZXRTZXJ2ZXIub24oXCJjb25uZWN0aW9uXCIsIHRoaXMub25Db25uZWN0aW9uKVxuICAgICAgbmV0U2VydmVyLm9uKFwiZXJyb3JcIiwgdGhpcy5vblNlcnZlckVycm9yKVxuICAgICAgYXdhaXQgdGhpcy5fbmV0U2VydmVyTGlzdGVuKClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgYXdhaXQgdGhpcy5fc3RvcFN0YXJ0dXBSZXNvdXJjZXMoc3RhcnR1cFN0YXRlKVxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fc3RhcnRpbmcgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGNhcHR1cmUgc3RhcnR1cCBzdGF0ZS5cbiAgICogQHJldHVybnMge3tkZXZlbG9wbWVudFJlbG9hZGVyOiBEZXZlbG9wbWVudFJlbG9hZGVyIHwgRGV2ZWxvcG1lbnRSZWxvYWRlckxpa2UgfCB1bmRlZmluZWQsIG5ldFNlcnZlcjogaW1wb3J0KFwibmV0XCIpLlNlcnZlciB8IHVuZGVmaW5lZCwgd29ya2VySGFuZGxlcnM6IEFycmF5PFdvcmtlckhhbmRsZXIgfCBJblByb2Nlc3NIYW5kbGVyPn19IC0gU3RhcnR1cCBzdGF0ZS5cbiAgICovXG4gIF9jYXB0dXJlU3RhcnR1cFN0YXRlKCkge1xuICAgIHJldHVybiB7XG4gICAgICBkZXZlbG9wbWVudFJlbG9hZGVyOiB0aGlzLmRldmVsb3BtZW50UmVsb2FkZXIsXG4gICAgICBuZXRTZXJ2ZXI6IHRoaXMubmV0U2VydmVyLFxuICAgICAgd29ya2VySGFuZGxlcnM6IFsuLi50aGlzLndvcmtlckhhbmRsZXJzXVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHN0b3Agc3RhcnR1cCByZXNvdXJjZXMuXG4gICAqIEBwYXJhbSB7UmV0dXJuVHlwZTxWZWxvY2lvdXNIdHRwU2VydmVyW1wiX2NhcHR1cmVTdGFydHVwU3RhdGVcIl0+fSBzdGFydHVwU3RhdGUgLSBTdGF0ZSBjYXB0dXJlZCBiZWZvcmUgc3RhcnR1cC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjbGVhbnVwIGlzIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgX3N0b3BTdGFydHVwUmVzb3VyY2VzKHN0YXJ0dXBTdGF0ZSkge1xuICAgIC8qKlxuICAgICAqIFN0YXJ0dXAgbmV0IHNlcnZlci5cbiAgICAgKiBAdHlwZSB7aW1wb3J0KFwibmV0XCIpLlNlcnZlciB8IHVuZGVmaW5lZH0gKi9cbiAgICBjb25zdCBzdGFydHVwTmV0U2VydmVyID0gdGhpcy5uZXRTZXJ2ZXJcblxuICAgIGlmICh0aGlzLmRldmVsb3BtZW50UmVsb2FkZXIgJiYgdGhpcy5kZXZlbG9wbWVudFJlbG9hZGVyICE9PSBzdGFydHVwU3RhdGUuZGV2ZWxvcG1lbnRSZWxvYWRlcikge1xuICAgICAgYXdhaXQgdGhpcy5kZXZlbG9wbWVudFJlbG9hZGVyLnN0b3AoKVxuICAgIH1cblxuICAgIGlmIChzdGFydHVwTmV0U2VydmVyICYmIHN0YXJ0dXBOZXRTZXJ2ZXIgIT09IHN0YXJ0dXBTdGF0ZS5uZXRTZXJ2ZXIpIHtcbiAgICAgIGF3YWl0IHRoaXMuc3RvcFNlcnZlcihzdGFydHVwTmV0U2VydmVyKVxuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0dXBXb3JrZXJIYW5kbGVycyA9IHRoaXMud29ya2VySGFuZGxlcnMuZmlsdGVyKCh3b3JrZXJIYW5kbGVyKSA9PiAhc3RhcnR1cFN0YXRlLndvcmtlckhhbmRsZXJzLmluY2x1ZGVzKHdvcmtlckhhbmRsZXIpKVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoc3RhcnR1cFdvcmtlckhhbmRsZXJzLm1hcCgoaGFuZGxlcikgPT4gaGFuZGxlci5zdG9wKCkpKVxuXG4gICAgdGhpcy5kZXZlbG9wbWVudFJlbG9hZGVyID0gc3RhcnR1cFN0YXRlLmRldmVsb3BtZW50UmVsb2FkZXJcbiAgICB0aGlzLm5ldFNlcnZlciA9IHN0YXJ0dXBTdGF0ZS5uZXRTZXJ2ZXJcbiAgICB0aGlzLndvcmtlckhhbmRsZXJzID0gc3RhcnR1cFN0YXRlLndvcmtlckhhbmRsZXJzXG4gICAgdGhpcy5zdGlja3lXb3JrZXJIYW5kbGVycy5jbGVhcigpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBuZXQgc2VydmVyIGxpc3Rlbi5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIF9uZXRTZXJ2ZXJMaXN0ZW4oKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5uZXRTZXJ2ZXIpIHRocm93IG5ldyBFcnJvcihcIk5vIG5ldFNlcnZlclwiKVxuXG4gICAgICAvKipcbiAgICAgICAqIE9uIGxpc3RlbiBlcnJvci5cbiAgICAgICAqIEBwYXJhbSB7RXJyb3J9IGVycm9yIC0gTGlzdGVuIGVycm9yLlxuICAgICAgICovXG4gICAgICBjb25zdCBvbkxpc3RlbkVycm9yID0gKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMubmV0U2VydmVyPy5vZmYoXCJlcnJvclwiLCBvbkxpc3RlbkVycm9yKVxuICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMubmV0U2VydmVyLm9uY2UoXCJlcnJvclwiLCBvbkxpc3RlbkVycm9yKVxuICAgICAgICB0aGlzLm5ldFNlcnZlci5saXN0ZW4odGhpcy5wb3J0LCB0aGlzLmhvc3QsICgpID0+IHtcbiAgICAgICAgICB0aGlzLm5ldFNlcnZlcj8ub2ZmKFwiZXJyb3JcIiwgb25MaXN0ZW5FcnJvcilcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgVmVsb2Npb3VzIGxpc3RlbmluZyBvbiAke3RoaXMuaG9zdH06JHt0aGlzLnBvcnR9YClcbiAgICAgICAgICByZXNvbHZlKHVuZGVmaW5lZClcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZW5zdXJlIHdvcmtlcnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBfZW5zdXJlV29ya2VycygpIHtcbiAgICB3aGlsZSAodGhpcy53b3JrZXJIYW5kbGVycy5sZW5ndGggPCB0aGlzLndvcmtlcnMpIHtcbiAgICAgIGF3YWl0IHRoaXMuc3Bhd25Xb3JrZXIoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGlzIGFjdGl2ZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gV2hldGhlciBhY3RpdmUuXG4gICAqL1xuICBpc0FjdGl2ZSgpIHtcbiAgICBpZiAodGhpcy5uZXRTZXJ2ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLm5ldFNlcnZlci5saXN0ZW5pbmdcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBkZWJ1ZyBzbmFwc2hvdC5cbiAgICogQHJldHVybnMge1Byb21pc2U8UmVjb3JkPHN0cmluZywgPz4+fSAtIEhUVFAgc2VydmVyIHdvcmtlciBkaWFnbm9zdGljcy5cbiAgICovXG4gIGFzeW5jIGdldERlYnVnU25hcHNob3QoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjdGl2ZTogdGhpcy5pc0FjdGl2ZSgpLFxuICAgICAgYWN0aXZlU29ja2V0Q291bnQ6IHRoaXMuX2FjdGl2ZVNvY2tldHMuc2l6ZSxcbiAgICAgIGNsaWVudENvdW50OiBPYmplY3Qua2V5cyh0aGlzLmNsaWVudHMpLmxlbmd0aCxcbiAgICAgIGNvbmZpZ3VyZWRXb3JrZXJDb3VudDogdGhpcy53b3JrZXJzLFxuICAgICAgaW5Qcm9jZXNzOiB0aGlzLmluUHJvY2VzcyxcbiAgICAgIHdvcmtlckNvdW50OiB0aGlzLndvcmtlckhhbmRsZXJzLmxlbmd0aCxcbiAgICAgIHdvcmtlcnM6IGF3YWl0IFByb21pc2UuYWxsKHRoaXMud29ya2VySGFuZGxlcnMubWFwKChoYW5kbGVyKSA9PiB0aGlzLndvcmtlckRlYnVnU25hcHNob3QoaGFuZGxlcikpKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHdvcmtlciBkZWJ1ZyBzbmFwc2hvdC5cbiAgICogQHBhcmFtIHtXb3JrZXJIYW5kbGVyIHwgSW5Qcm9jZXNzSGFuZGxlcn0gd29ya2VySGFuZGxlciAtIFdvcmtlciBoYW5kbGVyIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsID8+Pn0gV29ya2VyIGRlYnVnIHNuYXBzaG90LlxuICAgKi9cbiAgYXN5bmMgd29ya2VyRGVidWdTbmFwc2hvdCh3b3JrZXJIYW5kbGVyKSB7XG4gICAgaWYgKHdvcmtlckhhbmRsZXIgaW5zdGFuY2VvZiBXb3JrZXJIYW5kbGVyKSByZXR1cm4gYXdhaXQgd29ya2VySGFuZGxlci5nZXREZWJ1Z1NuYXBzaG90KClcbiAgICBpZiAod29ya2VySGFuZGxlciBpbnN0YW5jZW9mIEluUHJvY2Vzc0hhbmRsZXIpIHJldHVybiB0aGlzLmluUHJvY2Vzc1dvcmtlckRlYnVnU25hcHNob3Qod29ya2VySGFuZGxlcilcblxuICAgIHJldHVybiB7YWN0aXZlOiBmYWxzZSwgZXJyb3I6IFwiVW5rbm93biB3b3JrZXIgaGFuZGxlciB0eXBlXCJ9XG4gIH1cblxuICAvKipcbiAgICogUnVucyBpbiBwcm9jZXNzIHdvcmtlciBkZWJ1ZyBzbmFwc2hvdC5cbiAgICogQHBhcmFtIHtJblByb2Nlc3NIYW5kbGVyfSB3b3JrZXJIYW5kbGVyIC0gSW4tcHJvY2VzcyB3b3JrZXIgaGFuZGxlciB0byBpbnNwZWN0LlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgPz59IFdvcmtlciBkZWJ1ZyBzbmFwc2hvdC5cbiAgICovXG4gIGluUHJvY2Vzc1dvcmtlckRlYnVnU25hcHNob3Qod29ya2VySGFuZGxlcikge1xuICAgIHJldHVybiB7XG4gICAgICBhY3RpdmU6IHRydWUsXG4gICAgICBjbGllbnRDb3VudDogT2JqZWN0LmtleXMod29ya2VySGFuZGxlci5jbGllbnRzKS5sZW5ndGgsXG4gICAgICBzbmFwc2hvdDogd29ya2VySGFuZGxlci5jb25maWd1cmF0aW9uLmdldExvY2FsRGVidWdTbmFwc2hvdCgpLFxuICAgICAgd29ya2VyQ291bnQ6IHdvcmtlckhhbmRsZXIud29ya2VyQ291bnRcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyBzdG9wIGNsaWVudHMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBzdG9wQ2xpZW50cygpIHtcbiAgICBjb25zdCBwcm9taXNlcyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGNsaWVudENvdW50IGluIHRoaXMuY2xpZW50cykge1xuICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5jbGllbnRzW2NsaWVudENvdW50XVxuXG4gICAgICBwcm9taXNlcy5wdXNoKGNsaWVudC5lbmQoKSlcbiAgICB9XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHN0b3Agc2VydmVyLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIm5ldFwiKS5TZXJ2ZXIgfCB1bmRlZmluZWR9IFtuZXRTZXJ2ZXJdIC0gU2VydmVyIHRvIHN0b3AuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBzdG9wU2VydmVyKG5ldFNlcnZlciA9IHRoaXMubmV0U2VydmVyKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghbmV0U2VydmVyIHx8ICFuZXRTZXJ2ZXIubGlzdGVuaW5nKSB7XG4gICAgICAgIHJlc29sdmUodW5kZWZpbmVkKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKG5ldFNlcnZlciA9PT0gdGhpcy5uZXRTZXJ2ZXIpIHtcbiAgICAgICAgLy8gRm9yY2UtY2xvc2UgbGluZ2VyaW5nIHNvY2tldHMgKGUuZy4gV2ViU29ja2V0IHVwZ3JhZGVcbiAgICAgICAgLy8gY29ubmVjdGlvbnMgbWlkLWNsb3NlLWhhbmRzaGFrZSkgc28gdGhlIHBvcnQgaXMgcmVsZWFzZWRcbiAgICAgICAgLy8gaW1tZWRpYXRlbHkgaW5zdGVhZCBvZiB3YWl0aW5nIGZvciBncmFjZWZ1bCBkcmFpbi5cbiAgICAgICAgZm9yIChjb25zdCBzb2NrZXQgb2YgdGhpcy5fYWN0aXZlU29ja2V0cykge1xuICAgICAgICAgIHNvY2tldC5kZXN0cm95KClcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FjdGl2ZVNvY2tldHMuY2xlYXIoKVxuICAgICAgfVxuXG4gICAgICBuZXRTZXJ2ZXIuY2xvc2UoKGVycm9yKSA9PiB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlKHVuZGVmaW5lZClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc3RvcC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIHN0b3AoKSB7XG4gICAgdGhpcy5fc3RvcHBpbmcgPSB0cnVlXG4gICAgYXdhaXQgdGhpcy5kZXZlbG9wbWVudFJlbG9hZGVyPy5zdG9wKClcbiAgICB0aGlzLmRldmVsb3BtZW50UmVsb2FkZXIgPSB1bmRlZmluZWRcbiAgICBhd2FpdCB0aGlzLnN0b3BDbGllbnRzKClcbiAgICBhd2FpdCB0aGlzLnN0b3BTZXJ2ZXIoKVxuXG4gICAgY29uc3Qgc3RvcFRhc2tzID0gdGhpcy53b3JrZXJIYW5kbGVycy5tYXAoKGhhbmRsZXIpID0+IGhhbmRsZXIuc3RvcCgpKVxuICAgIGF3YWl0IFByb21pc2UuYWxsKHN0b3BUYXNrcylcbiAgICB0aGlzLndvcmtlckhhbmRsZXJzID0gW11cbiAgICB0aGlzLnN0aWNreVdvcmtlckhhbmRsZXJzLmNsZWFyKClcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBjbG9zZS5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgb25DbG9zZSA9ICgpID0+IHtcbiAgICB0aGlzLmV2ZW50cy5lbWl0KFwiY2xvc2VcIilcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBzZXJ2ZXIgZXJyb3IuXG4gICAqIEBwYXJhbSB7RXJyb3J9IGVycm9yIC0gU2VydmVyIHNvY2tldCBlcnJvci5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgb25TZXJ2ZXJFcnJvciA9IChlcnJvcikgPT4ge1xuICAgIHRoaXMubG9nZ2VyLmVycm9yKGBWZWxvY2lvdXMgSFRUUCBzZXJ2ZXIgc29ja2V0IGVycm9yIG9uICR7dGhpcy5ob3N0fToke3RoaXMucG9ydH1gLCBlcnJvcilcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBjb25uZWN0aW9uLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIm5ldFwiKS5Tb2NrZXR9IHNvY2tldCAtIFNvY2tldCBpbnN0YW5jZS5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgb25Db25uZWN0aW9uID0gKHNvY2tldCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudENvdW50ID0gdGhpcy5jbGllbnRDb3VudFxuXG4gICAgdGhpcy5fYWN0aXZlU29ja2V0cy5hZGQoc29ja2V0KVxuICAgIHNvY2tldC5vbmNlKFwiY2xvc2VcIiwgKCkgPT4gdGhpcy5fYWN0aXZlU29ja2V0cy5kZWxldGUoc29ja2V0KSlcblxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCgpID0+IFtcIk5ldyBjbGllbnRcIiwge1xuICAgICAgY2xpZW50Q291bnQsXG4gICAgICByZW1vdGVBZGRyZXNzOiBzb2NrZXQucmVtb3RlQWRkcmVzcyxcbiAgICAgIHJlbW90ZUZhbWlseTogc29ja2V0LnJlbW90ZUZhbWlseSxcbiAgICAgIHJlbW90ZVBvcnQ6IHNvY2tldC5yZW1vdGVQb3J0XG4gICAgfV0pXG4gICAgdGhpcy5jbGllbnRDb3VudCsrXG5cbiAgICB0cnkge1xuICAgICAgLy8gUGF1c2VkIFdlYlNvY2tldCBzZXNzaW9ucyBhcmUgd29ya2VyLWxvY2FsLCBzbyByZWNvbm5lY3RzIGZyb21cbiAgICAgIC8vIHRoZSBzYW1lIGNsaWVudCBhZGRyZXNzIG11c3QgcmV0dXJuIHRvIHRoZSBzYW1lIHdvcmtlci5cbiAgICAgIGNvbnN0IHdvcmtlckhhbmRsZXIgPSB0aGlzLndvcmtlckhhbmRsZXJUb1VzZSh7c3RpY2t5S2V5OiBzb2NrZXQucmVtb3RlQWRkcmVzc30pXG4gICAgICBjb25zdCBjbGllbnQgPSBuZXcgU2VydmVyQ2xpZW50KHtcbiAgICAgICAgY2xpZW50Q291bnQsXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgICAgc29ja2V0XG4gICAgICB9KVxuXG4gICAgICBjbGllbnQuZXZlbnRzLm9uKFwiY2xvc2VcIiwgdGhpcy5vbkNsaWVudENsb3NlKVxuXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgR2F2ZSBjbGllbnQgJHtjbGllbnRDb3VudH0gdG8gd29ya2VyICR7d29ya2VySGFuZGxlci53b3JrZXJDb3VudH1gKVxuICAgICAgd29ya2VySGFuZGxlci5hZGRTb2NrZXRDb25uZWN0aW9uKGNsaWVudClcbiAgICAgIHRoaXMuY2xpZW50c1tjbGllbnRDb3VudF0gPSBjbGllbnRcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYEZhaWxlZCB0byBpbml0aWFsaXplIGNsaWVudCAke2NsaWVudENvdW50fSBvbiBuZXcgY29ubmVjdGlvbmAsIGVycm9yKVxuICAgICAgc29ja2V0LmRlc3Ryb3koKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBjbGllbnQgY2xvc2UuXG4gICAqIEBwYXJhbSB7U2VydmVyQ2xpZW50fSBjbGllbnQgLSBDbGllbnQgaW5zdGFuY2UuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIG9uQ2xpZW50Q2xvc2UgPSAoY2xpZW50KSA9PiB7XG4gICAgY29uc3QgY2xpZW50Q291bnQgPSBkaWdnKGNsaWVudCwgXCJjbGllbnRDb3VudFwiKVxuICAgIGNvbnN0IG9sZENsaWVudHNMZW5ndGggPSBPYmplY3Qua2V5cyh0aGlzLmNsaWVudHMpLmxlbmd0aFxuXG4gICAgZGVsZXRlIHRoaXMuY2xpZW50c1tjbGllbnRDb3VudF1cblxuICAgIGNvbnN0IG5ld0NsaWVudHNMZW5ndGggPSBPYmplY3Qua2V5cyh0aGlzLmNsaWVudHMpLmxlbmd0aFxuXG4gICAgaWYgKG5ld0NsaWVudHNMZW5ndGggIT0gKG9sZENsaWVudHNMZW5ndGggLSAxKSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYEV4cGVjdGVkIGNsaWVudCB0byBoYXZlIGJlZW4gcmVtb3ZlZCBidXQgbGVuZ3RoIGRpZG4ndCBjaGFuZ2UgZnJvbSAke29sZENsaWVudHNMZW5ndGh9IHRvICR7b2xkQ2xpZW50c0xlbmd0aCAtIDF9YClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyBzcGF3biB3b3JrZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBzcGF3bldvcmtlcigpIHtcbiAgICBjb25zdCB3b3JrZXJIYW5kbGVyID0gYXdhaXQgdGhpcy5fYnVpbGRXb3JrZXJIYW5kbGVyKClcblxuICAgIHRoaXMud29ya2VySGFuZGxlcnMucHVzaCh3b3JrZXJIYW5kbGVyKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYnVpbGQgd29ya2VyIGhhbmRsZXJzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheTxXb3JrZXJIYW5kbGVyIHwgSW5Qcm9jZXNzSGFuZGxlcj4+fSAtIFN0YXJ0ZWQgd29ya2VyIGhhbmRsZXJzLlxuICAgKi9cbiAgYXN5bmMgX2J1aWxkV29ya2VySGFuZGxlcnMoKSB7XG4gICAgLyoqXG4gICAgICogV29ya2VyIGhhbmRsZXJzLlxuICAgICAqIEB0eXBlIHtBcnJheTxXb3JrZXJIYW5kbGVyIHwgSW5Qcm9jZXNzSGFuZGxlcj59ICovXG4gICAgY29uc3Qgd29ya2VySGFuZGxlcnMgPSBbXVxuXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMud29ya2VyczsgaW5kZXggKz0gMSkge1xuICAgICAgd29ya2VySGFuZGxlcnMucHVzaChhd2FpdCB0aGlzLl9idWlsZFdvcmtlckhhbmRsZXIoKSlcbiAgICB9XG5cbiAgICByZXR1cm4gd29ya2VySGFuZGxlcnNcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGJ1aWxkIHdvcmtlciBoYW5kbGVyLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxXb3JrZXJIYW5kbGVyIHwgSW5Qcm9jZXNzSGFuZGxlcj59IC0gU3RhcnRlZCB3b3JrZXIgaGFuZGxlci5cbiAgICovXG4gIGFzeW5jIF9idWlsZFdvcmtlckhhbmRsZXIoKSB7XG4gICAgY29uc3Qgd29ya2VyQ291bnQgPSB0aGlzLndvcmtlckNvdW50XG5cbiAgICB0aGlzLndvcmtlckNvdW50KytcblxuICAgIGNvbnN0IEhhbmRsZXIgPSB0aGlzLmluUHJvY2VzcyA/IEluUHJvY2Vzc0hhbmRsZXIgOiBXb3JrZXJIYW5kbGVyXG4gICAgY29uc3Qgd29ya2VySGFuZGxlciA9IHRoaXMud29ya2VySGFuZGxlckZhY3RvcnlcbiAgICAgID8gdGhpcy53b3JrZXJIYW5kbGVyRmFjdG9yeSh7Y29uZmlndXJhdGlvbjogdGhpcy5jb25maWd1cmF0aW9uLCB3b3JrZXJDb3VudH0pXG4gICAgICA6IG5ldyBIYW5kbGVyKHtcbiAgICAgICAgY29uZmlndXJhdGlvbjogdGhpcy5jb25maWd1cmF0aW9uLFxuICAgICAgICB3b3JrZXJDb3VudFxuICAgICAgfSlcblxuICAgIGF3YWl0IHdvcmtlckhhbmRsZXIuc3RhcnQoKVxuXG4gICAgcmV0dXJuIHdvcmtlckhhbmRsZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHdvcmtlciBoYW5kbGVyIHRvIHVzZS5cbiAgICogQHBhcmFtIHtvYmplY3R9IFthcmdzXSAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3Muc3RpY2t5S2V5XSAtIFN0YWJsZSBrZXkgdGhhdCBtdXN0IGtlZXAgcm91dGluZyB0byB0aGUgc2FtZSB3b3JrZXIuXG4gICAqIEByZXR1cm5zIHtXb3JrZXJIYW5kbGVyIHwgSW5Qcm9jZXNzSGFuZGxlcn0gLSBUaGUgd29ya2VyIGhhbmRsZXIgdG8gdXNlLlxuICAgKi9cbiAgd29ya2VySGFuZGxlclRvVXNlKHtzdGlja3lLZXl9ID0ge30pIHtcbiAgICBpZiAoc3RpY2t5S2V5KSB7XG4gICAgICBjb25zdCBzdGlja3lXb3JrZXJIYW5kbGVyID0gdGhpcy5zdGlja3lXb3JrZXJIYW5kbGVycy5nZXQoc3RpY2t5S2V5KVxuXG4gICAgICBpZiAoc3RpY2t5V29ya2VySGFuZGxlciAmJiB0aGlzLndvcmtlckhhbmRsZXJzLmluY2x1ZGVzKHN0aWNreVdvcmtlckhhbmRsZXIpKSB7XG4gICAgICAgIHJldHVybiBzdGlja3lXb3JrZXJIYW5kbGVyXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdvcmtlckhhbmRsZXIgPSB0aGlzLl9uZXh0Um91bmRSb2JpbldvcmtlckhhbmRsZXIoKVxuXG4gICAgICB0aGlzLnN0aWNreVdvcmtlckhhbmRsZXJzLnNldChzdGlja3lLZXksIHdvcmtlckhhbmRsZXIpXG5cbiAgICAgIHJldHVybiB3b3JrZXJIYW5kbGVyXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX25leHRSb3VuZFJvYmluV29ya2VySGFuZGxlcigpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBuZXh0IHJvdW5kIHJvYmluIHdvcmtlciBoYW5kbGVyLlxuICAgKiBAcmV0dXJucyB7V29ya2VySGFuZGxlciB8IEluUHJvY2Vzc0hhbmRsZXJ9IC0gVGhlIG5leHQgcm91bmQtcm9iaW4gd29ya2VyIGhhbmRsZXIuXG4gICAqL1xuICBfbmV4dFJvdW5kUm9iaW5Xb3JrZXJIYW5kbGVyKCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBXb3JrZXIgaGFuZGxlcnMgbGVuZ3RoOiAke3RoaXMud29ya2VySGFuZGxlcnMubGVuZ3RofWApXG5cbiAgICBjb25zdCB3b3JrZXJIYW5kbGVySW5kZXggPSB0aGlzLm5leHRXb3JrZXJIYW5kbGVySW5kZXggJSB0aGlzLndvcmtlckhhbmRsZXJzLmxlbmd0aFxuICAgIGNvbnN0IHdvcmtlckhhbmRsZXIgPSB0aGlzLndvcmtlckhhbmRsZXJzW3dvcmtlckhhbmRsZXJJbmRleF1cblxuICAgIGlmICghd29ya2VySGFuZGxlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyB3b3JrZXJIYW5kbGVyIGJ5IHRoYXQgbnVtYmVyOiAke3dvcmtlckhhbmRsZXJJbmRleH1gKVxuICAgIH1cblxuICAgIHRoaXMubmV4dFdvcmtlckhhbmRsZXJJbmRleCArPSAxXG5cbiAgICByZXR1cm4gd29ya2VySGFuZGxlclxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2hvdWxkIHVzZSBkZXZlbG9wbWVudCBob3QgcmVsb2FkLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIGRldmVsb3BtZW50IHdvcmtlciBob3QgcmVsb2FkIHNob3VsZCBydW4uXG4gICAqL1xuICBzaG91bGRVc2VEZXZlbG9wbWVudEhvdFJlbG9hZCgpIHtcbiAgICByZXR1cm4gIXRoaXMuaW5Qcm9jZXNzICYmIHRoaXMuY29uZmlndXJhdGlvbi5nZXRFbnZpcm9ubWVudCgpID09PSBcImRldmVsb3BtZW50XCJcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHN0YXJ0IGRldmVsb3BtZW50IHJlbG9hZGVyLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIHdhdGNoZXIgc2V0dXAgZmluaXNoZXMuXG4gICAqL1xuICBhc3luYyBfc3RhcnREZXZlbG9wbWVudFJlbG9hZGVyKCkge1xuICAgIGlmICghdGhpcy5zaG91bGRVc2VEZXZlbG9wbWVudEhvdFJlbG9hZCgpKSByZXR1cm5cbiAgICBpZiAodGhpcy5kZXZlbG9wbWVudFJlbG9hZGVyKSByZXR1cm5cblxuICAgIGNvbnN0IGNyZWF0ZURldmVsb3BtZW50UmVsb2FkZXIgPSB0aGlzLmRldmVsb3BtZW50UmVsb2FkZXJGYWN0b3J5XG4gICAgICB8fCAoKGFyZ3MpID0+IG5ldyBEZXZlbG9wbWVudFJlbG9hZGVyKGFyZ3MpKVxuXG4gICAgdGhpcy5kZXZlbG9wbWVudFJlbG9hZGVyID0gY3JlYXRlRGV2ZWxvcG1lbnRSZWxvYWRlcih7XG4gICAgICBjb25maWd1cmF0aW9uOiB0aGlzLmNvbmZpZ3VyYXRpb24sXG4gICAgICBvblJlbG9hZDogYXN5bmMgKHtjaGFuZ2VkUGF0aH0pID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2dnZXIuaW5mbyhgRGV2ZWxvcG1lbnQgaG90IHJlbG9hZCBkZXRlY3RlZCBjaGFuZ2UgaW4gJHtjaGFuZ2VkUGF0aH1gKVxuICAgICAgICBhd2FpdCB0aGlzLnJlbG9hZFdvcmtlcnNGb3JEZXZlbG9wbWVudCgpXG4gICAgICB9XG4gICAgfSlcblxuICAgIGF3YWl0IHRoaXMuZGV2ZWxvcG1lbnRSZWxvYWRlci5zdGFydCgpXG4gIH1cblxuICAvKipcbiAgICogUnVucyByZWxvYWQgd29ya2VycyBmb3IgZGV2ZWxvcG1lbnQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gd29ya2VycyBoYXZlIGJlZW4gcmVmcmVzaGVkLlxuICAgKi9cbiAgYXN5bmMgcmVsb2FkV29ya2Vyc0ZvckRldmVsb3BtZW50KCkge1xuICAgIGlmICh0aGlzLl9zdG9wcGluZykgcmV0dXJuXG5cbiAgICBpZiAodGhpcy5fcmVsb2FkaW5nV29ya2Vyc0ZvckRldmVsb3BtZW50KSB7XG4gICAgICB0aGlzLl9yZWxvYWRXb3JrZXJzRm9yRGV2ZWxvcG1lbnRRdWV1ZWQgPSB0cnVlXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9yZWxvYWRpbmdXb3JrZXJzRm9yRGV2ZWxvcG1lbnQgPSB0cnVlXG5cbiAgICB0cnkge1xuICAgICAgZG8ge1xuICAgICAgICB0aGlzLl9yZWxvYWRXb3JrZXJzRm9yRGV2ZWxvcG1lbnRRdWV1ZWQgPSBmYWxzZVxuXG4gICAgICAgIGNvbnN0IG9sZFdvcmtlckhhbmRsZXJzID0gWy4uLnRoaXMud29ya2VySGFuZGxlcnNdXG4gICAgICAgIGNvbnN0IG5ld1dvcmtlckhhbmRsZXJzID0gYXdhaXQgdGhpcy5fYnVpbGRXb3JrZXJIYW5kbGVycygpXG5cbiAgICAgICAgdGhpcy53b3JrZXJIYW5kbGVycyA9IG5ld1dvcmtlckhhbmRsZXJzXG4gICAgICAgIHRoaXMubmV4dFdvcmtlckhhbmRsZXJJbmRleCA9IDBcbiAgICAgICAgdGhpcy5zdGlja3lXb3JrZXJIYW5kbGVycy5jbGVhcigpXG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwob2xkV29ya2VySGFuZGxlcnMubWFwKCh3b3JrZXJIYW5kbGVyKSA9PiB3b3JrZXJIYW5kbGVyLnN0b3AoKSkpXG4gICAgICB9IHdoaWxlICh0aGlzLl9yZWxvYWRXb3JrZXJzRm9yRGV2ZWxvcG1lbnRRdWV1ZWQgJiYgIXRoaXMuX3N0b3BwaW5nKVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLl9yZWxvYWRpbmdXb3JrZXJzRm9yRGV2ZWxvcG1lbnQgPSBmYWxzZVxuICAgIH1cbiAgfVxufVxuIl19
487
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1zZXJ2ZXIvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxtQkFBbUIsTUFBTSwyQkFBMkIsQ0FBQTtBQUMzRCxPQUFPLFlBQVksTUFBTSwyQkFBMkIsQ0FBQTtBQUNwRCxPQUFPLGdCQUFnQixNQUFNLGdDQUFnQyxDQUFBO0FBQzdELE9BQU8sTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUNqQyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUE7QUFDckIsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUE7QUFDN0MsT0FBTyxhQUFhLE1BQU0sMkJBQTJCLENBQUE7QUFFckQ7O2dHQUVnRztBQUNoRzs7K0pBRStKO0FBRS9KOzs7Ozs7R0FNRztBQUNILFNBQVMsb0JBQW9CLENBQUMsRUFBQyxVQUFVLEVBQUUsT0FBTyxFQUFDO0lBQ2pELE1BQU0sV0FBVyxHQUFHLE9BQU8sSUFBSSxVQUFVLElBQUksQ0FBQyxDQUFBO0lBRTlDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0RCxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUVELE9BQU8sV0FBVyxDQUFBO0FBQ3BCLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxPQUFPLG1CQUFtQjtJQUN0QyxXQUFXLEdBQUcsQ0FBQyxDQUFBO0lBQ2YsU0FBUyxHQUFHLEtBQUssQ0FBQTtJQUVqQjs7MkVBRXVFO0lBQ3ZFLG1CQUFtQixDQUFBO0lBRW5COztrREFFOEM7SUFDOUMsU0FBUyxDQUFBO0lBRVQ7O2tEQUU4QztJQUM5QyxvQkFBb0IsQ0FBQTtJQUVwQjs7K0NBRTJDO0lBQzNDLE9B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QUFvQixDQUFDLEtBQUssRUFBRSxDQUFBO2dCQUVqQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ25GLENBQUMsUUFBUSxJQUFJLENBQUMsa0NBQWtDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDO1FBQ3RFLENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksQ0FBQywrQkFBK0IsR0FBRyxLQUFLLENBQUE7UUFDOUMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IERldmVsb3BtZW50UmVsb2FkZXIgZnJvbSBcIi4vZGV2ZWxvcG1lbnQtcmVsb2FkZXIuanNcIlxuaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tIFwiLi4vdXRpbHMvZXZlbnQtZW1pdHRlci5qc1wiXG5pbXBvcnQgSW5Qcm9jZXNzSGFuZGxlciBmcm9tIFwiLi93b3JrZXItaGFuZGxlci9pbi1wcm9jZXNzLmpzXCJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4uL2xvZ2dlci5qc1wiXG5pbXBvcnQgTmV0IGZyb20gXCJuZXRcIlxuaW1wb3J0IFNlcnZlckNsaWVudCBmcm9tIFwiLi9zZXJ2ZXItY2xpZW50LmpzXCJcbmltcG9ydCBXb3JrZXJIYW5kbGVyIGZyb20gXCIuL3dvcmtlci1oYW5kbGVyL2luZGV4LmpzXCJcblxuLyoqXG4gKiBEZWZpbmVzIHRoaXMgdHlwZWRlZi5cbiAqIEB0eXBlZGVmIHt7c3RhcnQ6ICgpID0+IFByb21pc2U8dm9pZD4sIHN0b3A6ICgpID0+IFByb21pc2U8dm9pZD59fSBEZXZlbG9wbWVudFJlbG9hZGVyTGlrZSAqL1xuLyoqXG4gKiBEZWZpbmVzIHRoaXMgdHlwZWRlZi5cbiAqIEB0eXBlZGVmIHsoYXJnczoge2NvbmZpZ3VyYXRpb246IGltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdCwgd29ya2VyQ291bnQ6IG51bWJlcn0pID0+IChXb3JrZXJIYW5kbGVyIHwgSW5Qcm9jZXNzSGFuZGxlcil9IFdvcmtlckhhbmRsZXJGYWN0b3J5ICovXG5cbi8qKlxuICogUnVucyBub3JtYWxpemUgd29ya2VyIGNvdW50LlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbYXJncy5tYXhXb3JrZXJzXSAtIEJhY2t3YXJkLWNvbXBhdGlibGUgd29ya2VyIGNvdW50IGFsaWFzLlxuICogQHBhcmFtIHtudW1iZXJ9IFthcmdzLndvcmtlcnNdIC0gQ29uZmlndXJlZCB3b3JrZXIgY291bnQuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSAtIE5vcm1hbGl6ZWQgd29ya2VyIGNvdW50LlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVXb3JrZXJDb3VudCh7bWF4V29ya2Vycywgd29ya2Vyc30pIHtcbiAgY29uc3Qgd29ya2VyQ291bnQgPSB3b3JrZXJzID8/IG1heFdvcmtlcnMgPz8gMVxuXG4gIGlmICghTnVtYmVyLmlzSW50ZWdlcih3b3JrZXJDb3VudCkgfHwgd29ya2VyQ291bnQgPCAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSFRUUCBzZXJ2ZXIgd29ya2VycyBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlclwiKVxuICB9XG5cbiAgcmV0dXJuIHdvcmtlckNvdW50XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0h0dHBTZXJ2ZXIge1xuICBjbGllbnRDb3VudCA9IDBcbiAgX3N0YXJ0aW5nID0gZmFsc2VcblxuICAvKipcbiAgICogTmFycm93cyB0aGUgcnVudGltZSB2YWx1ZSB0byB0aGUgZG9jdW1lbnRlZCB0eXBlLlxuICAgKiBAdHlwZSB7RGV2ZWxvcG1lbnRSZWxvYWRlciB8IERldmVsb3BtZW50UmVsb2FkZXJMaWtlIHwgdW5kZWZpbmVkfSAqL1xuICBkZXZlbG9wbWVudFJlbG9hZGVyXG5cbiAgLyoqXG4gICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICogQHR5cGUge2ltcG9ydChcIm5ldFwiKS5TZXJ2ZXIgfCB1bmRlZmluZWR9ICovXG4gIG5ldFNlcnZlclxuXG4gIC8qKlxuICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAqIEB0eXBlIHtXb3JrZXJIYW5kbGVyRmFjdG9yeSB8IHVuZGVmaW5lZH0gKi9cbiAgd29ya2VySGFuZGxlckZhY3RvcnlcblxuICAvKipcbiAgICogQ2xpZW50cy5cbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsIFNlcnZlckNsaWVudD59ICAqL1xuICBjbGllbnRzID0ge31cblxuICAvKipcbiAgICogQWN0aXZlIHNvY2tldHMuXG4gICAqIEB0eXBlIHtTZXQ8aW1wb3J0KFwibmV0XCIpLlNvY2tldD59ICovXG4gIF9hY3RpdmVTb2NrZXRzID0gbmV3IFNldCgpXG5cbiAgZXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIHdvcmtlckNvdW50ID0gMFxuXG4gIC8qKlxuICAgKiBXb3JrZXIgaGFuZGxlcnMuXG4gICAqIEB0eXBlIHtBcnJheTxXb3JrZXJIYW5kbGVyIHwgSW5Qcm9jZXNzSGFuZGxlcj59ICovXG4gIHdvcmtlckhhbmRsZXJzID0gW11cbiAgbmV4dFdvcmtlckhhbmRsZXJJbmRleCA9IDBcbiAgLyoqXG4gICAqIFN0aWNreSB3b3JrZXIgaGFuZGxlcnMuXG4gICAqIEB0eXBlIHtNYXA8c3RyaW5nLCBXb3JrZXJIYW5kbGVyIHwgSW5Qcm9jZXNzSGFuZGxlcj59ICovXG4gIHN0aWNreVdvcmtlckhhbmRsZXJzID0gbmV3IE1hcCgpXG5cbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3MuaG9zdF0gLSBIb3N0LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmluUHJvY2Vzc10gLSBSdW4gSFRUUCBoYW5kbGVycyBpbiB0aGUgbWFpbiB0aHJlYWQgaW5zdGVhZCBvZiB3b3JrZXIgdGhyZWFkcy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFthcmdzLnBvcnRdIC0gUG9ydC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFthcmdzLm1heFdvcmtlcnNdIC0gTWF4IHdvcmtlcnMuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJncy53b3JrZXJzXSAtIFdvcmtlciBoYW5kbGVycyB0byBzdGFydC5cbiAgICogQHBhcmFtIHsoYXJnczoge2NvbmZpZ3VyYXRpb246IGltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdCwgb25SZWxvYWQ6IChhcmdzOiB7Y2hhbmdlZFBhdGg6IHN0cmluZ30pID0+IFByb21pc2U8dm9pZD59KSA9PiB7c3RhcnQ6ICgpID0+IFByb21pc2U8dm9pZD4sIHN0b3A6ICgpID0+IFByb21pc2U8dm9pZD59fSBbYXJncy5kZXZlbG9wbWVudFJlbG9hZGVyRmFjdG9yeV0gLSBEZXZlbG9wbWVudCByZWxvYWRlciBmYWN0b3J5LlxuICAgKiBAcGFyYW0ge1dvcmtlckhhbmRsZXJGYWN0b3J5fSBbYXJncy53b3JrZXJIYW5kbGVyRmFjdG9yeV0gLSBXb3JrZXIgaGFuZGxlciBmYWN0b3J5LlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NvbmZpZ3VyYXRpb24sIGRldmVsb3BtZW50UmVsb2FkZXJGYWN0b3J5LCBob3N0LCBpblByb2Nlc3MsIG1heFdvcmtlcnMsIHBvcnQsIHdvcmtlckhhbmRsZXJGYWN0b3J5LCB3b3JrZXJzfSkge1xuICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmRldmVsb3BtZW50UmVsb2FkZXJGYWN0b3J5ID0gZGV2ZWxvcG1lbnRSZWxvYWRlckZhY3RvcnlcbiAgICB0aGlzLndvcmtlckhhbmRsZXJGYWN0b3J5ID0gd29ya2VySGFuZGxlckZhY3RvcnlcbiAgICB0aGlzLmluUHJvY2VzcyA9IGluUHJvY2VzcyB8fCBmYWxzZVxuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlcih0aGlzKVxuICAgIHRoaXMuaG9zdCA9IGhvc3QgPz8gXCIwLjAuMC4wXCJcbiAgICB0aGlzLnBvcnQgPSBwb3J0ID8/IDMwMDZcbiAgICB0aGlzLndvcmtlcnMgPSBub3JtYWxpemVXb3JrZXJDb3VudCh7bWF4V29ya2Vycywgd29ya2Vyc30pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzdGFydC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIHN0YXJ0KCkge1xuICAgIGlmICh0aGlzLl9zdGFydGluZykgdGhyb3cgbmV3IEVycm9yKFwiVmVsb2Npb3VzIEhUVFAgc2VydmVyIGlzIGFscmVhZHkgc3RhcnRpbmdcIilcbiAgICBpZiAodGhpcy5pc0FjdGl2ZSgpKSB0aHJvdyBuZXcgRXJyb3IoXCJWZWxvY2lvdXMgSFRUUCBzZXJ2ZXIgaXMgYWxyZWFkeSBydW5uaW5nXCIpXG5cbiAgICB0aGlzLl9zdGFydGluZyA9IHRydWVcbiAgICBjb25zdCBzdGFydHVwU3RhdGUgPSB0aGlzLl9jYXB0dXJlU3RhcnR1cFN0YXRlKClcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLl9lbnN1cmVXb3JrZXJzKClcbiAgICAgIGF3YWl0IHRoaXMuX3N0YXJ0RGV2ZWxvcG1lbnRSZWxvYWRlcigpXG4gICAgICAvKipcbiAgICAgICAqIE5ldCBzZXJ2ZXIuXG4gICAgICAgKiBAdHlwZSB7aW1wb3J0KFwibmV0XCIpLlNlcnZlcn0gKi9cbiAgICAgIGNvbnN0IG5ldFNlcnZlciA9IG5ldyBOZXQuU2VydmVyKClcbiAgICAgIHRoaXMubmV0U2VydmVyID0gbmV0U2VydmVyXG4gICAgICBuZXRTZXJ2ZXIub24oXCJjbG9zZVwiLCB0aGlzLm9uQ2xvc2UpXG4gICAgICBuZXRTZXJ2ZXIub24oXCJjb25uZWN0aW9uXCIsIHRoaXMub25Db25uZWN0aW9uKVxuICAgICAgbmV0U2VydmVyLm9uKFwiZXJyb3JcIiwgdGhpcy5vblNlcnZlckVycm9yKVxuICAgICAgYXdhaXQgdGhpcy5fbmV0U2VydmVyTGlzdGVuKClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgYXdhaXQgdGhpcy5fc3RvcFN0YXJ0dXBSZXNvdXJjZXMoc3RhcnR1cFN0YXRlKVxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fc3RhcnRpbmcgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGNhcHR1cmUgc3RhcnR1cCBzdGF0ZS5cbiAgICogQHJldHVybnMge3tkZXZlbG9wbWVudFJlbG9hZGVyOiBEZXZlbG9wbWVudFJlbG9hZGVyIHwgRGV2ZWxvcG1lbnRSZWxvYWRlckxpa2UgfCB1bmRlZmluZWQsIG5ldFNlcnZlcjogaW1wb3J0KFwibmV0XCIpLlNlcnZlciB8IHVuZGVmaW5lZCwgd29ya2VySGFuZGxlcnM6IEFycmF5PFdvcmtlckhhbmRsZXIgfCBJblByb2Nlc3NIYW5kbGVyPn19IC0gU3RhcnR1cCBzdGF0ZS5cbiAgICovXG4gIF9jYXB0dXJlU3RhcnR1cFN0YXRlKCkge1xuICAgIHJldHVybiB7XG4gICAgICBkZXZlbG9wbWVudFJlbG9hZGVyOiB0aGlzLmRldmVsb3BtZW50UmVsb2FkZXIsXG4gICAgICBuZXRTZXJ2ZXI6IHRoaXMubmV0U2VydmVyLFxuICAgICAgd29ya2VySGFuZGxlcnM6IFsuLi50aGlzLndvcmtlckhhbmRsZXJzXVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHN0b3Agc3RhcnR1cCByZXNvdXJjZXMuXG4gICAqIEBwYXJhbSB7UmV0dXJuVHlwZTxWZWxvY2lvdXNIdHRwU2VydmVyW1wiX2NhcHR1cmVTdGFydHVwU3RhdGVcIl0+fSBzdGFydHVwU3RhdGUgLSBTdGF0ZSBjYXB0dXJlZCBiZWZvcmUgc3RhcnR1cC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjbGVhbnVwIGlzIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgX3N0b3BTdGFydHVwUmVzb3VyY2VzKHN0YXJ0dXBTdGF0ZSkge1xuICAgIC8qKlxuICAgICAqIFN0YXJ0dXAgbmV0IHNlcnZlci5cbiAgICAgKiBAdHlwZSB7aW1wb3J0KFwibmV0XCIpLlNlcnZlciB8IHVuZGVmaW5lZH0gKi9cbiAgICBjb25zdCBzdGFydHVwTmV0U2VydmVyID0gdGhpcy5uZXRTZXJ2ZXJcblxuICAgIGlmICh0aGlzLmRldmVsb3BtZW50UmVsb2FkZXIgJiYgdGhpcy5kZXZlbG9wbWVudFJlbG9hZGVyICE9PSBzdGFydHVwU3RhdGUuZGV2ZWxvcG1lbnRSZWxvYWRlcikge1xuICAgICAgYXdhaXQgdGhpcy5kZXZlbG9wbWVudFJlbG9hZGVyLnN0b3AoKVxuICAgIH1cblxuICAgIGlmIChzdGFydHVwTmV0U2VydmVyICYmIHN0YXJ0dXBOZXRTZXJ2ZXIgIT09IHN0YXJ0dXBTdGF0ZS5uZXRTZXJ2ZXIpIHtcbiAgICAgIGF3YWl0IHRoaXMuc3RvcFNlcnZlcihzdGFydHVwTmV0U2VydmVyKVxuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0dXBXb3JrZXJIYW5kbGVycyA9IHRoaXMud29ya2VySGFuZGxlcnMuZmlsdGVyKCh3b3JrZXJIYW5kbGVyKSA9PiAhc3RhcnR1cFN0YXRlLndvcmtlckhhbmRsZXJzLmluY2x1ZGVzKHdvcmtlckhhbmRsZXIpKVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoc3RhcnR1cFdvcmtlckhhbmRsZXJzLm1hcCgoaGFuZGxlcikgPT4gaGFuZGxlci5zdG9wKCkpKVxuXG4gICAgdGhpcy5kZXZlbG9wbWVudFJlbG9hZGVyID0gc3RhcnR1cFN0YXRlLmRldmVsb3BtZW50UmVsb2FkZXJcbiAgICB0aGlzLm5ldFNlcnZlciA9IHN0YXJ0dXBTdGF0ZS5uZXRTZXJ2ZXJcbiAgICB0aGlzLndvcmtlckhhbmRsZXJzID0gc3RhcnR1cFN0YXRlLndvcmtlckhhbmRsZXJzXG4gICAgdGhpcy5zdGlja3lXb3JrZXJIYW5kbGVycy5jbGVhcigpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBuZXQgc2VydmVyIGxpc3Rlbi5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIF9uZXRTZXJ2ZXJMaXN0ZW4oKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5uZXRTZXJ2ZXIpIHRocm93IG5ldyBFcnJvcihcIk5vIG5ldFNlcnZlclwiKVxuXG4gICAgICAvKipcbiAgICAgICAqIE9uIGxpc3RlbiBlcnJvci5cbiAgICAgICAqIEBwYXJhbSB7RXJyb3J9IGVycm9yIC0gTGlzdGVuIGVycm9yLlxuICAgICAgICovXG4gICAgICBjb25zdCBvbkxpc3RlbkVycm9yID0gKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMubmV0U2VydmVyPy5vZmYoXCJlcnJvclwiLCBvbkxpc3RlbkVycm9yKVxuICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMubmV0U2VydmVyLm9uY2UoXCJlcnJvclwiLCBvbkxpc3RlbkVycm9yKVxuICAgICAgICB0aGlzLm5ldFNlcnZlci5saXN0ZW4odGhpcy5wb3J0LCB0aGlzLmhvc3QsICgpID0+IHtcbiAgICAgICAgICB0aGlzLm5ldFNlcnZlcj8ub2ZmKFwiZXJyb3JcIiwgb25MaXN0ZW5FcnJvcilcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgVmVsb2Npb3VzIGxpc3RlbmluZyBvbiAke3RoaXMuaG9zdH06JHt0aGlzLnBvcnR9YClcbiAgICAgICAgICByZXNvbHZlKHVuZGVmaW5lZClcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZW5zdXJlIHdvcmtlcnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBfZW5zdXJlV29ya2VycygpIHtcbiAgICB3aGlsZSAodGhpcy53b3JrZXJIYW5kbGVycy5sZW5ndGggPCB0aGlzLndvcmtlcnMpIHtcbiAgICAgIGF3YWl0IHRoaXMuc3Bhd25Xb3JrZXIoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGlzIGFjdGl2ZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gV2hldGhlciBhY3RpdmUuXG4gICAqL1xuICBpc0FjdGl2ZSgpIHtcbiAgICBpZiAodGhpcy5uZXRTZXJ2ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLm5ldFNlcnZlci5saXN0ZW5pbmdcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBkZWJ1ZyBzbmFwc2hvdC5cbiAgICogQHJldHVybnMge1Byb21pc2U8UmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+Pn0gLSBIVFRQIHNlcnZlciB3b3JrZXIgZGlhZ25vc3RpY3MuXG4gICAqL1xuICBhc3luYyBnZXREZWJ1Z1NuYXBzaG90KCkge1xuICAgIHJldHVybiB7XG4gICAgICBhY3RpdmU6IHRoaXMuaXNBY3RpdmUoKSxcbiAgICAgIGFjdGl2ZVNvY2tldENvdW50OiB0aGlzLl9hY3RpdmVTb2NrZXRzLnNpemUsXG4gICAgICBjbGllbnRDb3VudDogT2JqZWN0LmtleXModGhpcy5jbGllbnRzKS5sZW5ndGgsXG4gICAgICBjb25maWd1cmVkV29ya2VyQ291bnQ6IHRoaXMud29ya2VycyxcbiAgICAgIGluUHJvY2VzczogdGhpcy5pblByb2Nlc3MsXG4gICAgICB3b3JrZXJDb3VudDogdGhpcy53b3JrZXJIYW5kbGVycy5sZW5ndGgsXG4gICAgICB3b3JrZXJzOiBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLndvcmtlckhhbmRsZXJzLm1hcCgoaGFuZGxlcikgPT4gdGhpcy53b3JrZXJEZWJ1Z1NuYXBzaG90KGhhbmRsZXIpKSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyB3b3JrZXIgZGVidWcgc25hcHNob3QuXG4gICAqIEBwYXJhbSB7V29ya2VySGFuZGxlciB8IEluUHJvY2Vzc0hhbmRsZXJ9IHdvcmtlckhhbmRsZXIgLSBXb3JrZXIgaGFuZGxlciB0byBpbnNwZWN0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj4+fSBXb3JrZXIgZGVidWcgc25hcHNob3QuXG4gICAqL1xuICBhc3luYyB3b3JrZXJEZWJ1Z1NuYXBzaG90KHdvcmtlckhhbmRsZXIpIHtcbiAgICBpZiAod29ya2VySGFuZGxlciBpbnN0YW5jZW9mIFdvcmtlckhhbmRsZXIpIHJldHVybiBhd2FpdCB3b3JrZXJIYW5kbGVyLmdldERlYnVnU25hcHNob3QoKVxuICAgIGlmICh3b3JrZXJIYW5kbGVyIGluc3RhbmNlb2YgSW5Qcm9jZXNzSGFuZGxlcikgcmV0dXJuIHRoaXMuaW5Qcm9jZXNzV29ya2VyRGVidWdTbmFwc2hvdCh3b3JrZXJIYW5kbGVyKVxuXG4gICAgcmV0dXJuIHthY3RpdmU6IGZhbHNlLCBlcnJvcjogXCJVbmtub3duIHdvcmtlciBoYW5kbGVyIHR5cGVcIn1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGluIHByb2Nlc3Mgd29ya2VyIGRlYnVnIHNuYXBzaG90LlxuICAgKiBAcGFyYW0ge0luUHJvY2Vzc0hhbmRsZXJ9IHdvcmtlckhhbmRsZXIgLSBJbi1wcm9jZXNzIHdvcmtlciBoYW5kbGVyIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IFdvcmtlciBkZWJ1ZyBzbmFwc2hvdC5cbiAgICovXG4gIGluUHJvY2Vzc1dvcmtlckRlYnVnU25hcHNob3Qod29ya2VySGFuZGxlcikge1xuICAgIHJldHVybiB7XG4gICAgICBhY3RpdmU6IHRydWUsXG4gICAgICBjbGllbnRDb3VudDogT2JqZWN0LmtleXMod29ya2VySGFuZGxlci5jbGllbnRzKS5sZW5ndGgsXG4gICAgICBzbmFwc2hvdDogd29ya2VySGFuZGxlci5jb25maWd1cmF0aW9uLmdldExvY2FsRGVidWdTbmFwc2hvdCgpLFxuICAgICAgd29ya2VyQ291bnQ6IHdvcmtlckhhbmRsZXIud29ya2VyQ291bnRcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyBzdG9wIGNsaWVudHMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBzdG9wQ2xpZW50cygpIHtcbiAgICBjb25zdCBwcm9taXNlcyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGNsaWVudENvdW50IGluIHRoaXMuY2xpZW50cykge1xuICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5jbGllbnRzW2NsaWVudENvdW50XVxuXG4gICAgICBwcm9taXNlcy5wdXNoKGNsaWVudC5lbmQoKSlcbiAgICB9XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHN0b3Agc2VydmVyLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIm5ldFwiKS5TZXJ2ZXIgfCB1bmRlZmluZWR9IFtuZXRTZXJ2ZXJdIC0gU2VydmVyIHRvIHN0b3AuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBzdG9wU2VydmVyKG5ldFNlcnZlciA9IHRoaXMubmV0U2VydmVyKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghbmV0U2VydmVyIHx8ICFuZXRTZXJ2ZXIubGlzdGVuaW5nKSB7XG4gICAgICAgIHJlc29sdmUodW5kZWZpbmVkKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKG5ldFNlcnZlciA9PT0gdGhpcy5uZXRTZXJ2ZXIpIHtcbiAgICAgICAgLy8gRm9yY2UtY2xvc2UgbGluZ2VyaW5nIHNvY2tldHMgKGUuZy4gV2ViU29ja2V0IHVwZ3JhZGVcbiAgICAgICAgLy8gY29ubmVjdGlvbnMgbWlkLWNsb3NlLWhhbmRzaGFrZSkgc28gdGhlIHBvcnQgaXMgcmVsZWFzZWRcbiAgICAgICAgLy8gaW1tZWRpYXRlbHkgaW5zdGVhZCBvZiB3YWl0aW5nIGZvciBncmFjZWZ1bCBkcmFpbi5cbiAgICAgICAgZm9yIChjb25zdCBzb2NrZXQgb2YgdGhpcy5fYWN0aXZlU29ja2V0cykge1xuICAgICAgICAgIHNvY2tldC5kZXN0cm95KClcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FjdGl2ZVNvY2tldHMuY2xlYXIoKVxuICAgICAgfVxuXG4gICAgICBuZXRTZXJ2ZXIuY2xvc2UoKGVycm9yKSA9PiB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlKHVuZGVmaW5lZClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc3RvcC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIHN0b3AoKSB7XG4gICAgdGhpcy5fc3RvcHBpbmcgPSB0cnVlXG4gICAgYXdhaXQgdGhpcy5kZXZlbG9wbWVudFJlbG9hZGVyPy5zdG9wKClcbiAgICB0aGlzLmRldmVsb3BtZW50UmVsb2FkZXIgPSB1bmRlZmluZWRcbiAgICBhd2FpdCB0aGlzLnN0b3BDbGllbnRzKClcbiAgICBhd2FpdCB0aGlzLnN0b3BTZXJ2ZXIoKVxuXG4gICAgY29uc3Qgc3RvcFRhc2tzID0gdGhpcy53b3JrZXJIYW5kbGVycy5tYXAoKGhhbmRsZXIpID0+IGhhbmRsZXIuc3RvcCgpKVxuICAgIGF3YWl0IFByb21pc2UuYWxsKHN0b3BUYXNrcylcbiAgICB0aGlzLndvcmtlckhhbmRsZXJzID0gW11cbiAgICB0aGlzLnN0aWNreVdvcmtlckhhbmRsZXJzLmNsZWFyKClcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBjbG9zZS5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgb25DbG9zZSA9ICgpID0+IHtcbiAgICB0aGlzLmV2ZW50cy5lbWl0KFwiY2xvc2VcIilcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBzZXJ2ZXIgZXJyb3IuXG4gICAqIEBwYXJhbSB7RXJyb3J9IGVycm9yIC0gU2VydmVyIHNvY2tldCBlcnJvci5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgb25TZXJ2ZXJFcnJvciA9IChlcnJvcikgPT4ge1xuICAgIHRoaXMubG9nZ2VyLmVycm9yKGBWZWxvY2lvdXMgSFRUUCBzZXJ2ZXIgc29ja2V0IGVycm9yIG9uICR7dGhpcy5ob3N0fToke3RoaXMucG9ydH1gLCBlcnJvcilcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBjb25uZWN0aW9uLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIm5ldFwiKS5Tb2NrZXR9IHNvY2tldCAtIFNvY2tldCBpbnN0YW5jZS5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgb25Db25uZWN0aW9uID0gKHNvY2tldCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudENvdW50ID0gdGhpcy5jbGllbnRDb3VudFxuXG4gICAgdGhpcy5fYWN0aXZlU29ja2V0cy5hZGQoc29ja2V0KVxuICAgIHNvY2tldC5vbmNlKFwiY2xvc2VcIiwgKCkgPT4gdGhpcy5fYWN0aXZlU29ja2V0cy5kZWxldGUoc29ja2V0KSlcblxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCgpID0+IFtcIk5ldyBjbGllbnRcIiwge1xuICAgICAgY2xpZW50Q291bnQsXG4gICAgICByZW1vdGVBZGRyZXNzOiBzb2NrZXQucmVtb3RlQWRkcmVzcyxcbiAgICAgIHJlbW90ZUZhbWlseTogc29ja2V0LnJlbW90ZUZhbWlseSxcbiAgICAgIHJlbW90ZVBvcnQ6IHNvY2tldC5yZW1vdGVQb3J0XG4gICAgfV0pXG4gICAgdGhpcy5jbGllbnRDb3VudCsrXG5cbiAgICB0cnkge1xuICAgICAgLy8gUGF1c2VkIFdlYlNvY2tldCBzZXNzaW9ucyBhcmUgd29ya2VyLWxvY2FsLCBzbyByZWNvbm5lY3RzIGZyb21cbiAgICAgIC8vIHRoZSBzYW1lIGNsaWVudCBhZGRyZXNzIG11c3QgcmV0dXJuIHRvIHRoZSBzYW1lIHdvcmtlci5cbiAgICAgIGNvbnN0IHdvcmtlckhhbmRsZXIgPSB0aGlzLndvcmtlckhhbmRsZXJUb1VzZSh7c3RpY2t5S2V5OiBzb2NrZXQucmVtb3RlQWRkcmVzc30pXG4gICAgICBjb25zdCBjbGllbnQgPSBuZXcgU2VydmVyQ2xpZW50KHtcbiAgICAgICAgY2xpZW50Q291bnQsXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgICAgc29ja2V0XG4gICAgICB9KVxuXG4gICAgICBjbGllbnQuZXZlbnRzLm9uKFwiY2xvc2VcIiwgdGhpcy5vbkNsaWVudENsb3NlKVxuXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgR2F2ZSBjbGllbnQgJHtjbGllbnRDb3VudH0gdG8gd29ya2VyICR7d29ya2VySGFuZGxlci53b3JrZXJDb3VudH1gKVxuICAgICAgd29ya2VySGFuZGxlci5hZGRTb2NrZXRDb25uZWN0aW9uKGNsaWVudClcbiAgICAgIHRoaXMuY2xpZW50c1tjbGllbnRDb3VudF0gPSBjbGllbnRcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYEZhaWxlZCB0byBpbml0aWFsaXplIGNsaWVudCAke2NsaWVudENvdW50fSBvbiBuZXcgY29ubmVjdGlvbmAsIGVycm9yKVxuICAgICAgc29ja2V0LmRlc3Ryb3koKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBjbGllbnQgY2xvc2UuXG4gICAqIEBwYXJhbSB7U2VydmVyQ2xpZW50fSBjbGllbnQgLSBDbGllbnQgaW5zdGFuY2UuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIG9uQ2xpZW50Q2xvc2UgPSAoY2xpZW50KSA9PiB7XG4gICAgY29uc3QgY2xpZW50Q291bnQgPSBkaWdnKGNsaWVudCwgXCJjbGllbnRDb3VudFwiKVxuICAgIGNvbnN0IG9sZENsaWVudHNMZW5ndGggPSBPYmplY3Qua2V5cyh0aGlzLmNsaWVudHMpLmxlbmd0aFxuXG4gICAgZGVsZXRlIHRoaXMuY2xpZW50c1tjbGllbnRDb3VudF1cblxuICAgIGNvbnN0IG5ld0NsaWVudHNMZW5ndGggPSBPYmplY3Qua2V5cyh0aGlzLmNsaWVudHMpLmxlbmd0aFxuXG4gICAgaWYgKG5ld0NsaWVudHNMZW5ndGggIT0gKG9sZENsaWVudHNMZW5ndGggLSAxKSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYEV4cGVjdGVkIGNsaWVudCB0byBoYXZlIGJlZW4gcmVtb3ZlZCBidXQgbGVuZ3RoIGRpZG4ndCBjaGFuZ2UgZnJvbSAke29sZENsaWVudHNMZW5ndGh9IHRvICR7b2xkQ2xpZW50c0xlbmd0aCAtIDF9YClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyBzcGF3biB3b3JrZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBzcGF3bldvcmtlcigpIHtcbiAgICBjb25zdCB3b3JrZXJIYW5kbGVyID0gYXdhaXQgdGhpcy5fYnVpbGRXb3JrZXJIYW5kbGVyKClcblxuICAgIHRoaXMud29ya2VySGFuZGxlcnMucHVzaCh3b3JrZXJIYW5kbGVyKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYnVpbGQgd29ya2VyIGhhbmRsZXJzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheTxXb3JrZXJIYW5kbGVyIHwgSW5Qcm9jZXNzSGFuZGxlcj4+fSAtIFN0YXJ0ZWQgd29ya2VyIGhhbmRsZXJzLlxuICAgKi9cbiAgYXN5bmMgX2J1aWxkV29ya2VySGFuZGxlcnMoKSB7XG4gICAgLyoqXG4gICAgICogV29ya2VyIGhhbmRsZXJzLlxuICAgICAqIEB0eXBlIHtBcnJheTxXb3JrZXJIYW5kbGVyIHwgSW5Qcm9jZXNzSGFuZGxlcj59ICovXG4gICAgY29uc3Qgd29ya2VySGFuZGxlcnMgPSBbXVxuXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMud29ya2VyczsgaW5kZXggKz0gMSkge1xuICAgICAgd29ya2VySGFuZGxlcnMucHVzaChhd2FpdCB0aGlzLl9idWlsZFdvcmtlckhhbmRsZXIoKSlcbiAgICB9XG5cbiAgICByZXR1cm4gd29ya2VySGFuZGxlcnNcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGJ1aWxkIHdvcmtlciBoYW5kbGVyLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxXb3JrZXJIYW5kbGVyIHwgSW5Qcm9jZXNzSGFuZGxlcj59IC0gU3RhcnRlZCB3b3JrZXIgaGFuZGxlci5cbiAgICovXG4gIGFzeW5jIF9idWlsZFdvcmtlckhhbmRsZXIoKSB7XG4gICAgY29uc3Qgd29ya2VyQ291bnQgPSB0aGlzLndvcmtlckNvdW50XG5cbiAgICB0aGlzLndvcmtlckNvdW50KytcblxuICAgIGNvbnN0IEhhbmRsZXIgPSB0aGlzLmluUHJvY2VzcyA/IEluUHJvY2Vzc0hhbmRsZXIgOiBXb3JrZXJIYW5kbGVyXG4gICAgY29uc3Qgd29ya2VySGFuZGxlciA9IHRoaXMud29ya2VySGFuZGxlckZhY3RvcnlcbiAgICAgID8gdGhpcy53b3JrZXJIYW5kbGVyRmFjdG9yeSh7Y29uZmlndXJhdGlvbjogdGhpcy5jb25maWd1cmF0aW9uLCB3b3JrZXJDb3VudH0pXG4gICAgICA6IG5ldyBIYW5kbGVyKHtcbiAgICAgICAgY29uZmlndXJhdGlvbjogdGhpcy5jb25maWd1cmF0aW9uLFxuICAgICAgICB3b3JrZXJDb3VudFxuICAgICAgfSlcblxuICAgIGF3YWl0IHdvcmtlckhhbmRsZXIuc3RhcnQoKVxuXG4gICAgcmV0dXJuIHdvcmtlckhhbmRsZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHdvcmtlciBoYW5kbGVyIHRvIHVzZS5cbiAgICogQHBhcmFtIHtvYmplY3R9IFthcmdzXSAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3Muc3RpY2t5S2V5XSAtIFN0YWJsZSBrZXkgdGhhdCBtdXN0IGtlZXAgcm91dGluZyB0byB0aGUgc2FtZSB3b3JrZXIuXG4gICAqIEByZXR1cm5zIHtXb3JrZXJIYW5kbGVyIHwgSW5Qcm9jZXNzSGFuZGxlcn0gLSBUaGUgd29ya2VyIGhhbmRsZXIgdG8gdXNlLlxuICAgKi9cbiAgd29ya2VySGFuZGxlclRvVXNlKHtzdGlja3lLZXl9ID0ge30pIHtcbiAgICBpZiAoc3RpY2t5S2V5KSB7XG4gICAgICBjb25zdCBzdGlja3lXb3JrZXJIYW5kbGVyID0gdGhpcy5zdGlja3lXb3JrZXJIYW5kbGVycy5nZXQoc3RpY2t5S2V5KVxuXG4gICAgICBpZiAoc3RpY2t5V29ya2VySGFuZGxlciAmJiB0aGlzLndvcmtlckhhbmRsZXJzLmluY2x1ZGVzKHN0aWNreVdvcmtlckhhbmRsZXIpKSB7XG4gICAgICAgIHJldHVybiBzdGlja3lXb3JrZXJIYW5kbGVyXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdvcmtlckhhbmRsZXIgPSB0aGlzLl9uZXh0Um91bmRSb2JpbldvcmtlckhhbmRsZXIoKVxuXG4gICAgICB0aGlzLnN0aWNreVdvcmtlckhhbmRsZXJzLnNldChzdGlja3lLZXksIHdvcmtlckhhbmRsZXIpXG5cbiAgICAgIHJldHVybiB3b3JrZXJIYW5kbGVyXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX25leHRSb3VuZFJvYmluV29ya2VySGFuZGxlcigpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBuZXh0IHJvdW5kIHJvYmluIHdvcmtlciBoYW5kbGVyLlxuICAgKiBAcmV0dXJucyB7V29ya2VySGFuZGxlciB8IEluUHJvY2Vzc0hhbmRsZXJ9IC0gVGhlIG5leHQgcm91bmQtcm9iaW4gd29ya2VyIGhhbmRsZXIuXG4gICAqL1xuICBfbmV4dFJvdW5kUm9iaW5Xb3JrZXJIYW5kbGVyKCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBXb3JrZXIgaGFuZGxlcnMgbGVuZ3RoOiAke3RoaXMud29ya2VySGFuZGxlcnMubGVuZ3RofWApXG5cbiAgICBjb25zdCB3b3JrZXJIYW5kbGVySW5kZXggPSB0aGlzLm5leHRXb3JrZXJIYW5kbGVySW5kZXggJSB0aGlzLndvcmtlckhhbmRsZXJzLmxlbmd0aFxuICAgIGNvbnN0IHdvcmtlckhhbmRsZXIgPSB0aGlzLndvcmtlckhhbmRsZXJzW3dvcmtlckhhbmRsZXJJbmRleF1cblxuICAgIGlmICghd29ya2VySGFuZGxlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyB3b3JrZXJIYW5kbGVyIGJ5IHRoYXQgbnVtYmVyOiAke3dvcmtlckhhbmRsZXJJbmRleH1gKVxuICAgIH1cblxuICAgIHRoaXMubmV4dFdvcmtlckhhbmRsZXJJbmRleCArPSAxXG5cbiAgICByZXR1cm4gd29ya2VySGFuZGxlclxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2hvdWxkIHVzZSBkZXZlbG9wbWVudCBob3QgcmVsb2FkLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIGRldmVsb3BtZW50IHdvcmtlciBob3QgcmVsb2FkIHNob3VsZCBydW4uXG4gICAqL1xuICBzaG91bGRVc2VEZXZlbG9wbWVudEhvdFJlbG9hZCgpIHtcbiAgICByZXR1cm4gIXRoaXMuaW5Qcm9jZXNzICYmIHRoaXMuY29uZmlndXJhdGlvbi5nZXRFbnZpcm9ubWVudCgpID09PSBcImRldmVsb3BtZW50XCJcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHN0YXJ0IGRldmVsb3BtZW50IHJlbG9hZGVyLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIHdhdGNoZXIgc2V0dXAgZmluaXNoZXMuXG4gICAqL1xuICBhc3luYyBfc3RhcnREZXZlbG9wbWVudFJlbG9hZGVyKCkge1xuICAgIGlmICghdGhpcy5zaG91bGRVc2VEZXZlbG9wbWVudEhvdFJlbG9hZCgpKSByZXR1cm5cbiAgICBpZiAodGhpcy5kZXZlbG9wbWVudFJlbG9hZGVyKSByZXR1cm5cblxuICAgIGNvbnN0IGNyZWF0ZURldmVsb3BtZW50UmVsb2FkZXIgPSB0aGlzLmRldmVsb3BtZW50UmVsb2FkZXJGYWN0b3J5XG4gICAgICB8fCAoKGFyZ3MpID0+IG5ldyBEZXZlbG9wbWVudFJlbG9hZGVyKGFyZ3MpKVxuXG4gICAgdGhpcy5kZXZlbG9wbWVudFJlbG9hZGVyID0gY3JlYXRlRGV2ZWxvcG1lbnRSZWxvYWRlcih7XG4gICAgICBjb25maWd1cmF0aW9uOiB0aGlzLmNvbmZpZ3VyYXRpb24sXG4gICAgICBvblJlbG9hZDogYXN5bmMgKHtjaGFuZ2VkUGF0aH0pID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2dnZXIuaW5mbyhgRGV2ZWxvcG1lbnQgaG90IHJlbG9hZCBkZXRlY3RlZCBjaGFuZ2UgaW4gJHtjaGFuZ2VkUGF0aH1gKVxuICAgICAgICBhd2FpdCB0aGlzLnJlbG9hZFdvcmtlcnNGb3JEZXZlbG9wbWVudCgpXG4gICAgICB9XG4gICAgfSlcblxuICAgIGF3YWl0IHRoaXMuZGV2ZWxvcG1lbnRSZWxvYWRlci5zdGFydCgpXG4gIH1cblxuICAvKipcbiAgICogUnVucyByZWxvYWQgd29ya2VycyBmb3IgZGV2ZWxvcG1lbnQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gd29ya2VycyBoYXZlIGJlZW4gcmVmcmVzaGVkLlxuICAgKi9cbiAgYXN5bmMgcmVsb2FkV29ya2Vyc0ZvckRldmVsb3BtZW50KCkge1xuICAgIGlmICh0aGlzLl9zdG9wcGluZykgcmV0dXJuXG5cbiAgICBpZiAodGhpcy5fcmVsb2FkaW5nV29ya2Vyc0ZvckRldmVsb3BtZW50KSB7XG4gICAgICB0aGlzLl9yZWxvYWRXb3JrZXJzRm9yRGV2ZWxvcG1lbnRRdWV1ZWQgPSB0cnVlXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9yZWxvYWRpbmdXb3JrZXJzRm9yRGV2ZWxvcG1lbnQgPSB0cnVlXG5cbiAgICB0cnkge1xuICAgICAgZG8ge1xuICAgICAgICB0aGlzLl9yZWxvYWRXb3JrZXJzRm9yRGV2ZWxvcG1lbnRRdWV1ZWQgPSBmYWxzZVxuXG4gICAgICAgIGNvbnN0IG9sZFdvcmtlckhhbmRsZXJzID0gWy4uLnRoaXMud29ya2VySGFuZGxlcnNdXG4gICAgICAgIGNvbnN0IG5ld1dvcmtlckhhbmRsZXJzID0gYXdhaXQgdGhpcy5fYnVpbGRXb3JrZXJIYW5kbGVycygpXG5cbiAgICAgICAgdGhpcy53b3JrZXJIYW5kbGVycyA9IG5ld1dvcmtlckhhbmRsZXJzXG4gICAgICAgIHRoaXMubmV4dFdvcmtlckhhbmRsZXJJbmRleCA9IDBcbiAgICAgICAgdGhpcy5zdGlja3lXb3JrZXJIYW5kbGVycy5jbGVhcigpXG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwob2xkV29ya2VySGFuZGxlcnMubWFwKCh3b3JrZXJIYW5kbGVyKSA9PiB3b3JrZXJIYW5kbGVyLnN0b3AoKSkpXG4gICAgICB9IHdoaWxlICh0aGlzLl9yZWxvYWRXb3JrZXJzRm9yRGV2ZWxvcG1lbnRRdWV1ZWQgJiYgIXRoaXMuX3N0b3BwaW5nKVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLl9yZWxvYWRpbmdXb3JrZXJzRm9yRGV2ZWxvcG1lbnQgPSBmYWxzZVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"remote-address.d.ts","sourceRoot":"","sources":["../../../src/http-server/remote-address.js"],"names":[],"mappings":"AAkDA;;;;;;;GAOG;AACH,8FALG;IAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO;IACG,OAAO,EAA/C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACR,mBAAmB,EAA5C,MAAM,GAAG,SAAS;CAC1B,GAAU,MAAM,GAAG,SAAS,CAgB9B"}
1
+ {"version":3,"file":"remote-address.d.ts","sourceRoot":"","sources":["../../../src/http-server/remote-address.js"],"names":[],"mappings":"AAkDA;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAC,aAAa,EAAE,OAAO,EAAE,mBAAmB,EAAC,EALvF;IAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;IAAgD,OAAO,EAA/C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CACzC;IAAiC,mBAAmB,EAA5C,MAAM,GAAG,SAAS,CAC1B;CAEuF,GAF7E,MAAM,GAAG,SAAS,CAgB9B"}
@@ -51,11 +51,11 @@ export default function resolveRemoteAddress({ configuration, headers, socketRem
51
51
  const trust = trustedProxyChecker(configuration);
52
52
  if (!trust)
53
53
  return socketRemoteAddress;
54
- const proxyRequest = /** @type {Parameters<typeof proxyaddr>[0]} */ ( /** @type {?} */({
54
+ const proxyRequest = /** @type {Parameters<typeof proxyaddr>[0]} */ ( /** @type {ReturnType<typeof JSON.parse>} */({
55
55
  connection: { remoteAddress: socketRemoteAddress },
56
56
  headers: nodeStyleHeaders(headers),
57
57
  socket: { remoteAddress: socketRemoteAddress }
58
58
  }));
59
59
  return proxyaddr(proxyRequest, trust);
60
60
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWFkZHJlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1zZXJ2ZXIvcmVtb3RlLWFkZHJlc3MuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUVsQzs7dUtBRXVLO0FBQ3ZLLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtBQUV2Qzs7OztHQUlHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxhQUFhO0lBQ3hDLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO0lBQ3hELE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUVuRCxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLGNBQWM7UUFBRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUE7SUFFbkUsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RGLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsRUFBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFBO1FBQ2hGLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBRS9DLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsRUFBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7SUFFckUsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsT0FBTztJQUMvQjs7bURBRStDO0lBQy9DLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtJQUVqQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ25ELE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUE7SUFDbkMsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsT0FBTyxVQUFVLG9CQUFvQixDQUFDLEVBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBQztJQUN4RixJQUFJLENBQUMsbUJBQW1CO1FBQUUsT0FBTyxtQkFBbUIsQ0FBQTtJQUVwRCxNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUVoRCxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sbUJBQW1CLENBQUE7SUFFdEMsTUFBTSxZQUFZLEdBQUcsOENBQThDLENBQUMsRUFBQyxnQkFBaUIsQ0FBQztRQUNyRixVQUFVLEVBQUUsRUFBQyxhQUFhLEVBQUUsbUJBQW1CLEVBQUM7UUFDaEQsT0FBTyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztRQUNsQyxNQUFNLEVBQUUsRUFBQyxhQUFhLEVBQUUsbUJBQW1CLEVBQUM7S0FDN0MsQ0FBQyxDQUFDLENBQUE7SUFFSCxPQUFPLFNBQVMsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUE7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgcHJveHlhZGRyIGZyb20gXCJwcm94eS1hZGRyXCJcblxuLyoqXG4gKiBUcnVzdGVkIHByb3h5IGNhY2hlLlxuICogQHR5cGUge1dlYWtNYXA8aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0LCB7c291cmNlOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCwgdHJ1c3Q6ICgoYWRkcmVzczogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBib29sZWFuKSB8IHVuZGVmaW5lZH0+fSAqL1xuY29uc3QgdHJ1c3RlZFByb3h5Q2FjaGUgPSBuZXcgV2Vha01hcCgpXG5cbi8qKlxuICogUnVucyB0cnVzdGVkIHByb3h5IGNoZWNrZXIuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gKiBAcmV0dXJucyB7KChhZGRyZXNzOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW4pIHwgdW5kZWZpbmVkfSAtIENvbXBpbGVkIHRydXN0ZWQgcHJveHkgY2hlY2tlci5cbiAqL1xuZnVuY3Rpb24gdHJ1c3RlZFByb3h5Q2hlY2tlcihjb25maWd1cmF0aW9uKSB7XG4gIGNvbnN0IHRydXN0ZWRQcm94aWVzID0gY29uZmlndXJhdGlvbi5nZXRUcnVzdGVkUHJveGllcygpXG4gIGNvbnN0IGNhY2hlZCA9IHRydXN0ZWRQcm94eUNhY2hlLmdldChjb25maWd1cmF0aW9uKVxuXG4gIGlmIChjYWNoZWQgJiYgY2FjaGVkLnNvdXJjZSA9PT0gdHJ1c3RlZFByb3hpZXMpIHJldHVybiBjYWNoZWQudHJ1c3RcblxuICBpZiAoIXRydXN0ZWRQcm94aWVzIHx8IChBcnJheS5pc0FycmF5KHRydXN0ZWRQcm94aWVzKSAmJiB0cnVzdGVkUHJveGllcy5sZW5ndGggPT09IDApKSB7XG4gICAgdHJ1c3RlZFByb3h5Q2FjaGUuc2V0KGNvbmZpZ3VyYXRpb24sIHtzb3VyY2U6IHRydXN0ZWRQcm94aWVzLCB0cnVzdDogdW5kZWZpbmVkfSlcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBjb25zdCB0cnVzdCA9IHByb3h5YWRkci5jb21waWxlKHRydXN0ZWRQcm94aWVzKVxuXG4gIHRydXN0ZWRQcm94eUNhY2hlLnNldChjb25maWd1cmF0aW9uLCB7c291cmNlOiB0cnVzdGVkUHJveGllcywgdHJ1c3R9KVxuXG4gIHJldHVybiB0cnVzdFxufVxuXG4vKipcbiAqIFJ1bnMgbm9kZSBzdHlsZSBoZWFkZXJzLlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT59IGhlYWRlcnMgLSBSZXF1ZXN0IGhlYWRlcnMuXG4gKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+fSAtIEhlYWRlcnMgd2l0aCBsb3dlcmNhc2UgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIG5vZGVTdHlsZUhlYWRlcnMoaGVhZGVycykge1xuICAvKipcbiAgICogUmVzdWx0LlxuICAgKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+fSAqL1xuICBjb25zdCByZXN1bHQgPSB7fVxuXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGhlYWRlcnMpKSB7XG4gICAgcmVzdWx0W2tleS50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlXG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogUnVucyByZXNvbHZlIHJlbW90ZSBhZGRyZXNzLlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT59IGFyZ3MuaGVhZGVycyAtIFJlcXVlc3QgaGVhZGVycy5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBhcmdzLnNvY2tldFJlbW90ZUFkZHJlc3MgLSBTb2NrZXQgcGVlciBhZGRyZXNzLlxuICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH0gLSBSZXNvbHZlZCBjbGllbnQgcmVtb3RlIGFkZHJlc3MuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmVSZW1vdGVBZGRyZXNzKHtjb25maWd1cmF0aW9uLCBoZWFkZXJzLCBzb2NrZXRSZW1vdGVBZGRyZXNzfSkge1xuICBpZiAoIXNvY2tldFJlbW90ZUFkZHJlc3MpIHJldHVybiBzb2NrZXRSZW1vdGVBZGRyZXNzXG5cbiAgY29uc3QgdHJ1c3QgPSB0cnVzdGVkUHJveHlDaGVja2VyKGNvbmZpZ3VyYXRpb24pXG5cbiAgaWYgKCF0cnVzdCkgcmV0dXJuIHNvY2tldFJlbW90ZUFkZHJlc3NcblxuICBjb25zdCBwcm94eVJlcXVlc3QgPSAvKiogQHR5cGUge1BhcmFtZXRlcnM8dHlwZW9mIHByb3h5YWRkcj5bMF19ICovICgvKiogQHR5cGUgez99ICovICh7XG4gICAgY29ubmVjdGlvbjoge3JlbW90ZUFkZHJlc3M6IHNvY2tldFJlbW90ZUFkZHJlc3N9LFxuICAgIGhlYWRlcnM6IG5vZGVTdHlsZUhlYWRlcnMoaGVhZGVycyksXG4gICAgc29ja2V0OiB7cmVtb3RlQWRkcmVzczogc29ja2V0UmVtb3RlQWRkcmVzc31cbiAgfSkpXG5cbiAgcmV0dXJuIHByb3h5YWRkcihwcm94eVJlcXVlc3QsIHRydXN0KVxufVxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWFkZHJlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1zZXJ2ZXIvcmVtb3RlLWFkZHJlc3MuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUVsQzs7dUtBRXVLO0FBQ3ZLLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtBQUV2Qzs7OztHQUlHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxhQUFhO0lBQ3hDLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO0lBQ3hELE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUVuRCxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLGNBQWM7UUFBRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUE7SUFFbkUsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RGLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsRUFBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFBO1FBQ2hGLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBRS9DLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsRUFBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7SUFFckUsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsT0FBTztJQUMvQjs7bURBRStDO0lBQy9DLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtJQUVqQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ25ELE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUE7SUFDbkMsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsT0FBTyxVQUFVLG9CQUFvQixDQUFDLEVBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBQztJQUN4RixJQUFJLENBQUMsbUJBQW1CO1FBQUUsT0FBTyxtQkFBbUIsQ0FBQTtJQUVwRCxNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUVoRCxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sbUJBQW1CLENBQUE7SUFFdEMsTUFBTSxZQUFZLEdBQUcsOENBQThDLENBQUMsRUFBQyw0Q0FBNkMsQ0FBQztRQUNqSCxVQUFVLEVBQUUsRUFBQyxhQUFhLEVBQUUsbUJBQW1CLEVBQUM7UUFDaEQsT0FBTyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztRQUNsQyxNQUFNLEVBQUUsRUFBQyxhQUFhLEVBQUUsbUJBQW1CLEVBQUM7S0FDN0MsQ0FBQyxDQUFDLENBQUE7SUFFSCxPQUFPLFNBQVMsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUE7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgcHJveHlhZGRyIGZyb20gXCJwcm94eS1hZGRyXCJcblxuLyoqXG4gKiBUcnVzdGVkIHByb3h5IGNhY2hlLlxuICogQHR5cGUge1dlYWtNYXA8aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0LCB7c291cmNlOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCwgdHJ1c3Q6ICgoYWRkcmVzczogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBib29sZWFuKSB8IHVuZGVmaW5lZH0+fSAqL1xuY29uc3QgdHJ1c3RlZFByb3h5Q2FjaGUgPSBuZXcgV2Vha01hcCgpXG5cbi8qKlxuICogUnVucyB0cnVzdGVkIHByb3h5IGNoZWNrZXIuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gKiBAcmV0dXJucyB7KChhZGRyZXNzOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW4pIHwgdW5kZWZpbmVkfSAtIENvbXBpbGVkIHRydXN0ZWQgcHJveHkgY2hlY2tlci5cbiAqL1xuZnVuY3Rpb24gdHJ1c3RlZFByb3h5Q2hlY2tlcihjb25maWd1cmF0aW9uKSB7XG4gIGNvbnN0IHRydXN0ZWRQcm94aWVzID0gY29uZmlndXJhdGlvbi5nZXRUcnVzdGVkUHJveGllcygpXG4gIGNvbnN0IGNhY2hlZCA9IHRydXN0ZWRQcm94eUNhY2hlLmdldChjb25maWd1cmF0aW9uKVxuXG4gIGlmIChjYWNoZWQgJiYgY2FjaGVkLnNvdXJjZSA9PT0gdHJ1c3RlZFByb3hpZXMpIHJldHVybiBjYWNoZWQudHJ1c3RcblxuICBpZiAoIXRydXN0ZWRQcm94aWVzIHx8IChBcnJheS5pc0FycmF5KHRydXN0ZWRQcm94aWVzKSAmJiB0cnVzdGVkUHJveGllcy5sZW5ndGggPT09IDApKSB7XG4gICAgdHJ1c3RlZFByb3h5Q2FjaGUuc2V0KGNvbmZpZ3VyYXRpb24sIHtzb3VyY2U6IHRydXN0ZWRQcm94aWVzLCB0cnVzdDogdW5kZWZpbmVkfSlcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBjb25zdCB0cnVzdCA9IHByb3h5YWRkci5jb21waWxlKHRydXN0ZWRQcm94aWVzKVxuXG4gIHRydXN0ZWRQcm94eUNhY2hlLnNldChjb25maWd1cmF0aW9uLCB7c291cmNlOiB0cnVzdGVkUHJveGllcywgdHJ1c3R9KVxuXG4gIHJldHVybiB0cnVzdFxufVxuXG4vKipcbiAqIFJ1bnMgbm9kZSBzdHlsZSBoZWFkZXJzLlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT59IGhlYWRlcnMgLSBSZXF1ZXN0IGhlYWRlcnMuXG4gKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+fSAtIEhlYWRlcnMgd2l0aCBsb3dlcmNhc2UgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIG5vZGVTdHlsZUhlYWRlcnMoaGVhZGVycykge1xuICAvKipcbiAgICogUmVzdWx0LlxuICAgKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+fSAqL1xuICBjb25zdCByZXN1bHQgPSB7fVxuXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGhlYWRlcnMpKSB7XG4gICAgcmVzdWx0W2tleS50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlXG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogUnVucyByZXNvbHZlIHJlbW90ZSBhZGRyZXNzLlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT59IGFyZ3MuaGVhZGVycyAtIFJlcXVlc3QgaGVhZGVycy5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBhcmdzLnNvY2tldFJlbW90ZUFkZHJlc3MgLSBTb2NrZXQgcGVlciBhZGRyZXNzLlxuICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH0gLSBSZXNvbHZlZCBjbGllbnQgcmVtb3RlIGFkZHJlc3MuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmVSZW1vdGVBZGRyZXNzKHtjb25maWd1cmF0aW9uLCBoZWFkZXJzLCBzb2NrZXRSZW1vdGVBZGRyZXNzfSkge1xuICBpZiAoIXNvY2tldFJlbW90ZUFkZHJlc3MpIHJldHVybiBzb2NrZXRSZW1vdGVBZGRyZXNzXG5cbiAgY29uc3QgdHJ1c3QgPSB0cnVzdGVkUHJveHlDaGVja2VyKGNvbmZpZ3VyYXRpb24pXG5cbiAgaWYgKCF0cnVzdCkgcmV0dXJuIHNvY2tldFJlbW90ZUFkZHJlc3NcblxuICBjb25zdCBwcm94eVJlcXVlc3QgPSAvKiogQHR5cGUge1BhcmFtZXRlcnM8dHlwZW9mIHByb3h5YWRkcj5bMF19ICovICgvKiogQHR5cGUge1JldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSAqLyAoe1xuICAgIGNvbm5lY3Rpb246IHtyZW1vdGVBZGRyZXNzOiBzb2NrZXRSZW1vdGVBZGRyZXNzfSxcbiAgICBoZWFkZXJzOiBub2RlU3R5bGVIZWFkZXJzKGhlYWRlcnMpLFxuICAgIHNvY2tldDoge3JlbW90ZUFkZHJlc3M6IHNvY2tldFJlbW90ZUFkZHJlc3N9XG4gIH0pKVxuXG4gIHJldHVybiBwcm94eWFkZHIocHJveHlSZXF1ZXN0LCB0cnVzdClcbn1cbiJdfQ==
@@ -1,4 +1,13 @@
1
+ import Logger from "../logger.js";
1
2
  export default class ServerClient {
3
+ configuration: import("../configuration.js").default;
4
+ logger: Logger;
5
+ socket: import("node:net").Socket;
6
+ clientCount: number;
7
+ remoteAddress: string | undefined;
8
+ closeEmitted: boolean;
9
+ worker: import("node:worker_threads").Worker | undefined;
10
+ events: import("eventemitter3").EventEmitter<string | symbol, any>;
2
11
  /**
3
12
  * Runs constructor.
4
13
  * @param {object} args - Options object.
@@ -11,13 +20,6 @@ export default class ServerClient {
11
20
  socket: import("net").Socket;
12
21
  clientCount: number;
13
22
  });
14
- events: import("eventemitter3").EventEmitter<string | symbol, any>;
15
- configuration: import("../configuration.js").default;
16
- logger: Logger;
17
- socket: import("node:net").Socket;
18
- clientCount: number;
19
- remoteAddress: string | undefined;
20
- closeEmitted: boolean;
21
23
  /**
22
24
  * Runs listen.
23
25
  * @returns {void} - No return value.
@@ -101,7 +103,5 @@ export default class ServerClient {
101
103
  * @returns {void} - No return value.
102
104
  */
103
105
  setWorker(newWorker: import("worker_threads").Worker): void;
104
- worker: import("node:worker_threads").Worker | undefined;
105
106
  }
106
- import Logger from "../logger.js";
107
107
  //# sourceMappingURL=server-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-client.d.ts","sourceRoot":"","sources":["../../../src/http-server/server-client.js"],"names":[],"mappings":"AAoBA;IAGE;;;;;;OAMG;IACH,oDAJG;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO;QACV,MAAM,EAAjC,OAAO,KAAK,EAAE,MAAM;QACP,WAAW,EAAxB,MAAM;KAChB,EAiBA;IAzBD,mEAA2B;IAYzB,qDAAkC;IAClC,eAA8B;IAC9B,kCAAoB;IACpB,oBAA8B;IAC9B,kCAAyC;IACzC,sBAAyB;IAU3B;;;OAGG;IACH,UAFa,IAAI,CAUhB;IAED;;;OAGG;IACH,OAFa,OAAO,CAAC,IAAI,CAAC,CAYzB;IAED;;;;OAIG;IACH,eAHW,KAAK,GACH,IAAI,CAIhB;IAED;;;;OAIG;IACH,eAAgB,OAHL,MAGU,KAFR,IAAI,CAahB;IAED;;;OAGG;IACH,mBAFa,IAAI,CAKhB;IAED;;;OAGG;IACH,qBAFa,IAAI,CAKhB;IAED;;;OAGG;IACH,uBAFa,IAAI,CAIhB;IAED;;;OAGG;IACH,qBAFa,IAAI,CAIhB;IAED;;;OAGG;IACH,sBAFa,IAAI,CAIhB;IAGD;;;;OAIG;IACH,gBAAiB,OAHN,KAGW,KAFT,IAAI,CAWhB;IAED;;;OAGG;IACH,aAFa,IAAI,CAOhB;IAED;;;;OAIG;IACH,WAHW,MAAM,GAAG,UAAU,GACjB,OAAO,CAAC,IAAI,CAAC,CAqCzB;IAED;;;;;OAKG;IACH,mBAJW,MAAM,aACN,OAAO,GACL,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAgC5C;IAED;;;;OAIG;IACH,sBAHW,MAAM,GAAG,UAAU,GACjB,OAAO,CAAC,OAAO,CAAC,CAoD5B;IAED;;;;OAIG;IACH,qBAHW,OAAO,gBAAgB,EAAE,MAAM,GAC7B,IAAI,CAIhB;IADC,yDAAuB;CAE1B;mBA5TkB,cAAc"}
1
+ {"version":3,"file":"server-client.d.ts","sourceRoot":"","sources":["../../../src/http-server/server-client.js"],"names":[],"mappings":"AAIA,OAAO,MAAM,MAAM,cAAc,CAAA;AAgBjC,MAAM,CAAC,OAAO,OAAO,YAAY;IAaxB,aAAa;IACb,MAAM;IACN,MAAM;IACN,WAAW;IACX,aAAa;IACb,YAAY;IAwRZ,MAAM;IAzSb,MAAM,6DAAqB;IAE3B;;;;;;OAMG;IACH,YAAY,EAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAC,EAJ7C;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;QAAmC,MAAM,EAAjC,OAAO,KAAK,EAAE,MAAM,CAC5B;QAAqB,WAAW,EAAxB,MAAM,CAChB;KAC+C,EAgB/C;IAED;;;OAGG;IACH,MAAM,IAFO,IAAI,CAUhB;IAED;;;OAGG;IACH,GAAG,IAFU,OAAO,CAAC,IAAI,CAAC,CAYzB;IAED;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAHF,KAGE,GAFA,IAAI,CAIhB;IAED;;;;OAIG;IACH,YAAY,UAHD,MAAM,KACJ,IAAI,CAahB;IAED;;;OAGG;IACH,WAAW,QAFE,IAAI,CAKhB;IAED;;;OAGG;IACH,aAAa,QAFA,IAAI,CAKhB;IAED;;;OAGG;IACH,eAAe,QAFF,IAAI,CAIhB;IAED;;;OAGG;IACH,aAAa,QAFA,IAAI,CAIhB;IAED;;;OAGG;IACH,cAAc,QAFD,IAAI,CAIhB;IAGD;;;;OAIG;IACH,aAAa,UAHF,KAAK,KACH,IAAI,CAWhB;IAED;;;OAGG;IACH,SAAS,IAFI,IAAI,CAOhB;IAED;;;;OAIG;IACG,IAAI,CAAC,IAAI,EAHJ,MAAM,GAAG,UAGL,GAFF,OAAO,CAAC,IAAI,CAAC,CAqCzB;IAED;;;;;OAKG;IACG,QAAQ,CAAC,QAAQ,EAJZ,MAIY,EAAE,QAAQ,AAH9B,CACA,EADQ,OAG6B,GAF3B,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAgC5C;IAED;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAHT,MAAM,GAAG,UAGA,GAFP,OAAO,CAAC,OAAO,CAAC,CAoD5B;IAED;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAHR,OAAO,gBAAgB,EAAE,MAGjB,GAFN,IAAI,CAIhB;CACF"}
@@ -2,6 +2,11 @@
2
2
  * Directory-based lock that allows only one HTTP server process per app directory.
3
3
  */
4
4
  export default class VelociousHttpServerLock {
5
+ configuration: import("../configuration.js").default;
6
+ host: string;
7
+ port: number;
8
+ lockPath: string;
9
+ acquired: boolean;
5
10
  /**
6
11
  * Build a lock for the configured application directory and server endpoint.
7
12
  * @param {object} args - Options object.
@@ -14,11 +19,6 @@ export default class VelociousHttpServerLock {
14
19
  host: string;
15
20
  port: number;
16
21
  });
17
- configuration: import("../configuration.js").default;
18
- host: string;
19
- port: number;
20
- lockPath: string;
21
- acquired: boolean;
22
22
  /**
23
23
  * Acquires the app-directory HTTP server lock before startup side effects run.
24
24
  * @returns {Promise<void>} - Resolves after the lock has been acquired.
@@ -46,16 +46,16 @@ export default class VelociousHttpServerLock {
46
46
  isStale(): Promise<boolean>;
47
47
  /**
48
48
  * Runs is local process owner.
49
- * @param {Record<string, ?> | null} owner - Existing lock owner metadata.
49
+ * @param {Record<string, ReturnType<typeof JSON.parse>> | null} owner - Existing lock owner metadata.
50
50
  * @returns {boolean} - Whether owner metadata names a local process.
51
51
  */
52
- isLocalProcessOwner(owner: Record<string, unknown> | null): boolean;
52
+ isLocalProcessOwner(owner: Record<string, ReturnType<typeof JSON.parse>> | null): boolean;
53
53
  /**
54
54
  * Runs owner hostname matches.
55
- * @param {Record<string, ?>} owner - Existing lock owner metadata.
55
+ * @param {Record<string, ReturnType<typeof JSON.parse>>} owner - Existing lock owner metadata.
56
56
  * @returns {boolean} - Whether the owner hostname is local or absent.
57
57
  */
58
- ownerHostnameMatches(owner: Record<string, unknown>): boolean;
58
+ ownerHostnameMatches(owner: Record<string, ReturnType<typeof JSON.parse>>): boolean;
59
59
  /**
60
60
  * Runs process is dead.
61
61
  * @param {number} pid - Process id.
@@ -64,9 +64,9 @@ export default class VelociousHttpServerLock {
64
64
  processIsDead(pid: number): boolean;
65
65
  /**
66
66
  * Reads owner metadata from an existing server lock directory.
67
- * @returns {Promise<Record<string, ?> | null>} - Parsed owner metadata, when readable.
67
+ * @returns {Promise<Record<string, ReturnType<typeof JSON.parse>> | null>} - Parsed owner metadata, when readable.
68
68
  */
69
- readOwnerMetadata(): Promise<Record<string, unknown> | null>;
69
+ readOwnerMetadata(): Promise<Record<string, ReturnType<typeof JSON.parse>> | null>;
70
70
  /**
71
71
  * Builds a duplicate-server error message with owner details when available.
72
72
  * @returns {Promise<string>} - Error message explaining which server owns the lock.
@@ -1 +1 @@
1
- {"version":3,"file":"server-lock.d.ts","sourceRoot":"","sources":["../../../src/http-server/server-lock.js"],"names":[],"mappings":"AAMA;;GAEG;AACH;IACE;;;;;;OAMG;IACH,2CAJG;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO;QACxB,IAAI,EAAjB,MAAM;QACO,IAAI,EAAjB,MAAM;KAChB,EAOA;IALC,qDAAkC;IAClC,aAAgB;IAChB,aAAgB;IAChB,iBAA6E;IAC7E,kBAAqB;IAGvB;;;OAGG;IACH,WAFa,OAAO,CAAC,IAAI,CAAC,CAmBzB;IAED;;;OAGG;IACH,cAFa,OAAO,CAAC,OAAO,CAAC,CAmB5B;IAED;;;OAGG;IACH,WAFa,OAAO,CAAC,IAAI,CAAC,CAOzB;IAED;;;OAGG;IACH,sBAFa,OAAO,CAAC,IAAI,CAAC,CAUzB;IAED;;;OAGG;IACH,WAFa,OAAO,CAAC,OAAO,CAAC,CAQ5B;IAED;;;;OAIG;IACH,2BAHW,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,GAAG,IAAI,GACtB,OAAO,CAOnB;IAED;;;;OAIG;IACH,4BAHW,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,GACf,OAAO,CAOnB;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,OAAO,CAUnB;IAED;;;OAGG;IACH,qBAFa,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,GAAG,IAAI,CAAC,CAU7C;IAED;;;OAGG;IACH,mBAFa,OAAO,CAAC,MAAM,CAAC,CAS3B;CACF"}
1
+ {"version":3,"file":"server-lock.d.ts","sourceRoot":"","sources":["../../../src/http-server/server-lock.js"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IASnC,aAAa;IACb,IAAI;IACJ,IAAI;IACJ,QAAQ;IACR,QAAQ;IAZf;;;;;;OAMG;IACH,YAAY,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAC,EAJpC;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;QAAqB,IAAI,EAAjB,MAAM,CACd;QAAqB,IAAI,EAAjB,MAAM,CAChB;KACsC,EAMtC;IAED;;;OAGG;IACG,OAAO,IAFA,OAAO,CAAC,IAAI,CAAC,CAmBzB;IAED;;;OAGG;IACG,UAAU,IAFH,OAAO,CAAC,OAAO,CAAC,CAmB5B;IAED;;;OAGG;IACG,OAAO,IAFA,OAAO,CAAC,IAAI,CAAC,CAOzB;IAED;;;OAGG;IACG,kBAAkB,IAFX,OAAO,CAAC,IAAI,CAAC,CAUzB;IAED;;;OAGG;IACG,OAAO,IAFA,OAAO,CAAC,OAAO,CAAC,CAQ5B;IAED;;;;OAIG;IACH,mBAAmB,CAAC,KAAK,EAHd,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAGlC,GAFZ,OAAO,CAOnB;IAED;;;;OAIG;IACH,oBAAoB,CAAC,KAAK,EAHf,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAG7B,GAFb,OAAO,CAOnB;IAED;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAHN,MAGM,GAFJ,OAAO,CAUnB;IAED;;;OAGG;IACG,iBAAiB,IAFV,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAUzE;IAED;;;OAGG;IACG,eAAe,IAFR,OAAO,CAAC,MAAM,CAAC,CAS3B;CACF"}