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,5 +1,8 @@
1
+ import BaseLogger from "./base-logger.js";
1
2
  /** File logger configuration wrapper. */
2
3
  export default class FileLogger extends BaseLogger {
4
+ path: string;
5
+ levels: ("debug" | "debug-low-level" | "error" | "info" | "warn")[] | undefined;
3
6
  /**
4
7
  * Runs constructor.
5
8
  * @param {object} args - Options object.
@@ -8,10 +11,8 @@ export default class FileLogger extends BaseLogger {
8
11
  */
9
12
  constructor({ path, levels }: {
10
13
  path: string;
11
- levels?: ("debug" | "error" | "info" | "warn" | "debug-low-level")[] | undefined;
14
+ levels?: Array<"debug-low-level" | "debug" | "info" | "warn" | "error">;
12
15
  });
13
- path: string;
14
- levels: ("debug" | "error" | "info" | "warn" | "debug-low-level")[] | undefined;
15
16
  /**
16
17
  * Runs to output config.
17
18
  * @param {object} args - Options object.
@@ -22,5 +23,4 @@ export default class FileLogger extends BaseLogger {
22
23
  configuration?: import("../configuration.js").default | undefined;
23
24
  }): import("../configuration-types.js").LoggingOutputConfig;
24
25
  }
25
- import BaseLogger from "./base-logger.js";
26
26
  //# sourceMappingURL=file-logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-logger.d.ts","sourceRoot":"","sources":["../../../src/logger/file-logger.js"],"names":[],"mappings":"AAKA,yCAAyC;AACzC;IACE;;;;;OAKG;IACH,8BAHG;QAAqB,IAAI,EAAjB,MAAM;QACgE,MAAM;KACtF,EAKA;IAFC,aAAgB;IAChB,gFAAoB;IAGtB;;;;;OAKG;IACH,mCAHG;QAAiE,aAAa,GAAtE,OAAO,qBAAqB,EAAE,OAAO,GAAG,SAAS;KACzD,GAAU,OAAO,2BAA2B,EAAE,mBAAmB,CAWnE;CACF;uBAjCsB,kBAAkB"}
1
+ {"version":3,"file":"file-logger.d.ts","sourceRoot":"","sources":["../../../src/logger/file-logger.js"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAGzC,yCAAyC;AACzC,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAAU;IASzC,IAAI;IACJ,MAAM;IATb;;;;;OAKG;IACH,YAAY,EAAC,IAAI,EAAE,MAAM,EAAC,EAHvB;QAAqB,IAAI,EAAjB,MAAM,CACd;QAA8E,MAAM,AAApF,CACF,EADU,KAAK,CAAC,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CACxE;KACyB,EAIzB;IAED;;;;;OAKG;IACH,cAAc,CAAC,EAAC,aAAa,EAAC,GAH3B;QAAiE,aAAa,AAA9E,CACA,EADQ,OAAO,qBAAqB,EAAE,OAAO,GAAG,SAAS,CACzD;KAEgC,GAFtB,OAAO,2BAA2B,EAAE,mBAAmB,CAWnE;CACF"}
@@ -1,16 +1,9 @@
1
+ export type LoggingOutputPayload = import("../../configuration-types.js").LoggingOutputPayload;
1
2
  /**
2
3
  * LoggingOutputPayload type.
3
4
  * @typedef {import("../../configuration-types.js").LoggingOutputPayload} LoggingOutputPayload */
4
5
  /** Logger array output. */
5
6
  export default class LoggerArrayOutput {
6
- /**
7
- * Runs constructor.
8
- * @param {object} [args] - Options object.
9
- * @param {number} [args.limit] - Max number of log entries to keep.
10
- */
11
- constructor({ limit }?: {
12
- limit?: number | undefined;
13
- });
14
7
  _limit: number;
15
8
  /**
16
9
  * Levels.
@@ -20,6 +13,14 @@ export default class LoggerArrayOutput {
20
13
  * Logs.
21
14
  * @type {LoggingOutputPayload[]} */
22
15
  _logs: LoggingOutputPayload[];
16
+ /**
17
+ * Runs constructor.
18
+ * @param {object} [args] - Options object.
19
+ * @param {number} [args.limit] - Max number of log entries to keep.
20
+ */
21
+ constructor({ limit }?: {
22
+ limit?: number;
23
+ });
23
24
  /**
24
25
  * Runs write.
25
26
  * @param {LoggingOutputPayload} payload - Log payload.
@@ -31,8 +32,4 @@ export default class LoggerArrayOutput {
31
32
  */
32
33
  getLogs(): LoggingOutputPayload[];
33
34
  }
34
- /**
35
- * LoggingOutputPayload type.
36
- */
37
- export type LoggingOutputPayload = import("../../configuration-types.js").LoggingOutputPayload;
38
35
  //# sourceMappingURL=array-output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"array-output.d.ts","sourceRoot":"","sources":["../../../../src/logger/outputs/array-output.js"],"names":[],"mappings":"AAEA;;iGAEiG;AAEjG,2BAA2B;AAC3B;IAWE;;;;OAIG;IACH,wBAFG;QAAsB,KAAK;KAC7B,EAIA;IAlBD,eAAa;IACb;;mEAE+D;IAC/D,QADU,OAAO,8BAA8B,EAAE,QAAQ,EAAE,CAChB;IAC3C;;wCAEoC;IACpC,OADU,oBAAoB,EAAE,CACtB;IAYV;;;OAGG;IACH,8CAFW,oBAAoB,iBAU9B;IAED;;;OAGG;IACH,WAFa,oBAAoB,EAAE,CAIlC;CACF;;;;mCA7CY,OAAO,8BAA8B,EAAE,oBAAoB"}
1
+ {"version":3,"file":"array-output.d.ts","sourceRoot":"","sources":["../../../../src/logger/outputs/array-output.js"],"names":[],"mappings":"AAIG,YAAuE,oBAAoB,GAAjF,OAAO,8BAA8B,EAAE,oBAAoB,CAAsB;AAF9F;;iGAEiG;AAEjG,2BAA2B;AAC3B,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,MAAM,SAAO;IACb;;mEAE+D;IAC/D,MAAM,EADI,OAAO,8BAA8B,EAAE,QAAQ,EAAE,CAChB;IAC3C;;wCAEoC;IACpC,KAAK,EADK,oBAAoB,EAAE,CACtB;IAEV;;;;OAIG;IACH,YAAY,EAAC,KAAY,EAAC,AAHvB,CAEF,EADE;QAAsB,KAAK,AAA3B,CACF,EADU,MAAM,CAChB;KAC8B,EAG9B;IAED;;;OAGG;IACG,KAAK,CAAC,EAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,EAFrC,oBAEqC,iBAQ/C;IAED;;;OAGG;IACH,OAAO,IAFM,oBAAoB,EAAE,CAIlC;CACF"}
@@ -1,3 +1,4 @@
1
+ export type LoggingOutputPayload = import("../../configuration-types.js").LoggingOutputPayload;
1
2
  /**
2
3
  * LoggingOutputPayload type.
3
4
  * @typedef {import("../../configuration-types.js").LoggingOutputPayload} LoggingOutputPayload */
@@ -9,8 +10,4 @@ export default class LoggerConsoleOutput {
9
10
  */
10
11
  write({ level, message }: LoggingOutputPayload): Promise<void>;
11
12
  }
12
- /**
13
- * LoggingOutputPayload type.
14
- */
15
- export type LoggingOutputPayload = import("../../configuration-types.js").LoggingOutputPayload;
16
13
  //# sourceMappingURL=console-output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"console-output.d.ts","sourceRoot":"","sources":["../../../../src/logger/outputs/console-output.js"],"names":[],"mappings":"AAEA;;iGAEiG;AAEjG,6BAA6B;AAC7B;IACE;;;OAGG;IACH,0BAFW,oBAAoB,iBAoB9B;CACF;;;;mCA3BY,OAAO,8BAA8B,EAAE,oBAAoB"}
1
+ {"version":3,"file":"console-output.d.ts","sourceRoot":"","sources":["../../../../src/logger/outputs/console-output.js"],"names":[],"mappings":"AAIG,YAAuE,oBAAoB,GAAjF,OAAO,8BAA8B,EAAE,oBAAoB,CAAsB;AAF9F;;iGAEiG;AAEjG,6BAA6B;AAC7B,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACtC;;;OAGG;IACG,KAAK,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,EAFjB,oBAEiB,iBAkB3B;CACF"}
@@ -1,20 +1,9 @@
1
+ export type LoggingOutputPayload = import("../../configuration-types.js").LoggingOutputPayload;
1
2
  /**
2
3
  * LoggingOutputPayload type.
3
4
  * @typedef {import("../../configuration-types.js").LoggingOutputPayload} LoggingOutputPayload */
4
5
  /** Logger file output. */
5
6
  export default class LoggerFileOutput {
6
- /**
7
- * Runs constructor.
8
- * @param {object} args - Options object.
9
- * @param {import("../../configuration.js").default} [args.configuration] - Configuration instance.
10
- * @param {() => import("../../configuration.js").default | undefined} [args.getConfiguration] - Configuration resolver.
11
- * @param {string} args.filePath - File path.
12
- */
13
- constructor({ configuration, getConfiguration, filePath }: {
14
- configuration?: import("../../configuration.js").default | undefined;
15
- getConfiguration?: (() => import("../../configuration.js").default | undefined) | undefined;
16
- filePath: string;
17
- });
18
7
  /**
19
8
  * Configuration.
20
9
  * @type {import("../../configuration.js").default | undefined} */
@@ -27,14 +16,22 @@ export default class LoggerFileOutput {
27
16
  * Get configuration.
28
17
  * @type {(() => import("../../configuration.js").default | undefined) | undefined} */
29
18
  _getConfiguration: (() => import("../../configuration.js").default | undefined) | undefined;
19
+ /**
20
+ * Runs constructor.
21
+ * @param {object} args - Options object.
22
+ * @param {import("../../configuration.js").default} [args.configuration] - Configuration instance.
23
+ * @param {() => import("../../configuration.js").default | undefined} [args.getConfiguration] - Configuration resolver.
24
+ * @param {string} args.filePath - File path.
25
+ */
26
+ constructor({ configuration, getConfiguration, filePath }: {
27
+ configuration?: import("../../configuration.js").default;
28
+ getConfiguration?: () => import("../../configuration.js").default | undefined;
29
+ filePath: string;
30
+ });
30
31
  /**
31
32
  * Runs write.
32
33
  * @param {LoggingOutputPayload} payload - Log payload.
33
34
  */
34
35
  write({ message }: LoggingOutputPayload): Promise<void>;
35
36
  }
36
- /**
37
- * LoggingOutputPayload type.
38
- */
39
- export type LoggingOutputPayload = import("../../configuration-types.js").LoggingOutputPayload;
40
37
  //# sourceMappingURL=file-output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-output.d.ts","sourceRoot":"","sources":["../../../../src/logger/outputs/file-output.js"],"names":[],"mappings":"AAEA;;iGAEiG;AAEjG,0BAA0B;AAC1B;IAcE;;;;;;OAMG;IACH,2DAJG;QAAwD,aAAa;QACK,gBAAgB,UAA5E,OAAO,wBAAwB,EAAE,OAAO,GAAG,SAAS;QAC7C,QAAQ,EAArB,MAAM;KAChB,EAKA;IAxBD;;sEAEkE;IAClE,gBADU,OAAO,wBAAwB,EAAE,OAAO,GAAG,SAAS,CACpC;IAC1B;;oCAEgC;IAChC,WADU,MAAM,GAAG,SAAS,CACP;IACrB;;0FAEsF;IACtF,mBADU,CAAC,MAAM,OAAO,wBAAwB,EAAE,OAAO,GAAG,SAAS,CAAC,GAAG,SAAS,CACrD;IAe7B;;;OAGG;IACH,mBAFW,oBAAoB,iBAiB9B;CACF;;;;mCAlDY,OAAO,8BAA8B,EAAE,oBAAoB"}
1
+ {"version":3,"file":"file-output.d.ts","sourceRoot":"","sources":["../../../../src/logger/outputs/file-output.js"],"names":[],"mappings":"AAIG,YAAuE,oBAAoB,GAAjF,OAAO,8BAA8B,EAAE,oBAAoB,CAAsB;AAF9F;;iGAEiG;AAEjG,0BAA0B;AAC1B,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC;;sEAEkE;IAClE,cAAc,EADJ,OAAO,wBAAwB,EAAE,OAAO,GAAG,SAAS,CACpC;IAC1B;;oCAEgC;IAChC,SAAS,EADC,MAAM,GAAG,SAAS,CACP;IACrB;;0FAEsF;IACtF,iBAAiB,EADP,CAAC,MAAM,OAAO,wBAAwB,EAAE,OAAO,GAAG,SAAS,CAAC,GAAG,SAAS,CACrD;IAE7B;;;;;;OAMG;IACH,YAAY,EAAC,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAC,EAJpD;QAAwD,aAAa,AAArE,CACA,EADQ,OAAO,wBAAwB,EAAE,OAAO,CAChD;QAA0E,gBAAgB,AAA1F,CACA,EADQ,MAAM,OAAO,wBAAwB,EAAE,OAAO,GAAG,SAAS,CAClE;QAAqB,QAAQ,EAArB,MAAM,CAChB;KACsD,EAItD;IAED;;;OAGG;IACG,KAAK,CAAC,EAAC,OAAO,EAAC,EAFV,oBAEU,iBAepB;CACF"}
@@ -1,3 +1,4 @@
1
+ export type LoggingOutputPayload = import("../../configuration-types.js").LoggingOutputPayload;
1
2
  /** Logger stdout/stderr output. */
2
3
  export default class LoggerStdoutOutput {
3
4
  /**
@@ -6,8 +7,4 @@ export default class LoggerStdoutOutput {
6
7
  */
7
8
  write({ level, message }: LoggingOutputPayload): Promise<void>;
8
9
  }
9
- /**
10
- * LoggingOutputPayload type.
11
- */
12
- export type LoggingOutputPayload = import("../../configuration-types.js").LoggingOutputPayload;
13
10
  //# sourceMappingURL=stdout-output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stdout-output.d.ts","sourceRoot":"","sources":["../../../../src/logger/outputs/stdout-output.js"],"names":[],"mappings":"AA4BA,mCAAmC;AACnC;IACE;;;OAGG;IACH,0BAFW,oBAAoB,iBA8B9B;CACF;;;;mCAzDY,OAAO,8BAA8B,EAAE,oBAAoB"}
1
+ {"version":3,"file":"stdout-output.d.ts","sourceRoot":"","sources":["../../../../src/logger/outputs/stdout-output.js"],"names":[],"mappings":"AAMG,YAAuE,oBAAoB,GAAjF,OAAO,8BAA8B,EAAE,oBAAoB,CAAsB;AAsB9F,mCAAmC;AACnC,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACrC;;;OAGG;IACG,KAAK,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,EAFjB,oBAEiB,iBA4B3B;CACF"}
@@ -1,4 +1,16 @@
1
+ export type LogLevel = "debug-low-level" | "debug" | "info" | "warn" | "error";
2
+ /**
3
+ * Runs function or messages.
4
+ * @param {...ReturnType<typeof JSON.parse>|(() => Array<ReturnType<typeof JSON.parse>>)} messages - Messages.
5
+ * @returns {Array<ReturnType<typeof JSON.parse>>} - Either the function result or the messages
6
+ */
7
+ declare function functionOrMessages(...messages: (ReturnType<typeof JSON.parse> | (() => Array<ReturnType<typeof JSON.parse>>))[]): Array<ReturnType<typeof JSON.parse>>;
1
8
  export default class Logger {
9
+ _debug: boolean;
10
+ _configuration: import("./configuration.js").default | undefined;
11
+ _loggingConfiguration: import("./configuration-types.js").LoggingConfiguration | undefined;
12
+ _subject: string;
13
+ _object: object | undefined;
2
14
  /**
3
15
  * Runs constructor.
4
16
  * @param {string | object} object - Object.
@@ -8,15 +20,10 @@ export default class Logger {
8
20
  * @param {import("./configuration-types.js").LoggingConfiguration} [args.loggingConfiguration] - Logging configuration.
9
21
  */
10
22
  constructor(object: string | object, { configuration, debug, loggingConfiguration, ...restArgs }?: {
11
- configuration?: import("./configuration.js").default | undefined;
12
- debug?: boolean | undefined;
13
- loggingConfiguration?: import("./configuration-types.js").LoggingConfiguration | undefined;
23
+ configuration?: import("./configuration.js").default;
24
+ debug?: boolean;
25
+ loggingConfiguration?: import("./configuration-types.js").LoggingConfiguration;
14
26
  });
15
- _debug: boolean;
16
- _configuration: import("./configuration.js").default | undefined;
17
- _loggingConfiguration: import("./configuration-types.js").LoggingConfiguration | undefined;
18
- _subject: string;
19
- _object: object | undefined;
20
27
  /**
21
28
  * Runs get configuration.
22
29
  * @returns {import("./configuration.js").default} - The configuration.
@@ -35,41 +42,45 @@ export default class Logger {
35
42
  isLevelEnabled(level: LogLevel): boolean;
36
43
  /**
37
44
  * Runs debug.
38
- * @param {Array<?>} messages - Messages.
45
+ * @param {Array<ReturnType<typeof JSON.parse>>} messages - Messages.
39
46
  * @returns {Promise<void>} - Resolves when complete.
40
47
  */
41
- debug(...messages: Array<unknown>): Promise<void>;
48
+ debug(...messages: Array<ReturnType<typeof JSON.parse>>): Promise<void>;
42
49
  /**
43
50
  * Runs info.
44
- * @param {Array<?>} messages - Messages.
51
+ * @param {Array<ReturnType<typeof JSON.parse>>} messages - Messages.
45
52
  * @returns {Promise<void>} - Resolves when complete.
46
53
  */
47
- info(...messages: Array<unknown>): Promise<void>;
54
+ info(...messages: Array<ReturnType<typeof JSON.parse>>): Promise<void>;
48
55
  /**
49
56
  * Runs debug low level.
50
- * @param {Array<?>} messages - Messages.
57
+ * @param {Array<ReturnType<typeof JSON.parse>>} messages - Messages.
51
58
  * @returns {Promise<void>} - Resolves when complete.
52
59
  */
53
- debugLowLevel(...messages: Array<unknown>): Promise<void>;
60
+ debugLowLevel(...messages: Array<ReturnType<typeof JSON.parse>>): Promise<void>;
54
61
  /**
55
62
  * Runs log.
56
- * @param {Array<?>} messages - Messages.
63
+ * @param {Array<ReturnType<typeof JSON.parse>>} messages - Messages.
57
64
  * @returns {Promise<void>} - Resolves when complete.
58
65
  */
59
- log(...messages: Array<unknown>): Promise<void>;
66
+ log(...messages: Array<ReturnType<typeof JSON.parse>>): Promise<void>;
60
67
  /**
61
68
  * Runs error.
62
- * @param {Array<?>} messages - Messages.
69
+ * @param {Array<ReturnType<typeof JSON.parse>>} messages - Messages.
63
70
  * @returns {Promise<void>} - Resolves when complete.
64
71
  */
65
- error(...messages: Array<unknown>): Promise<void>;
72
+ error(...messages: Array<ReturnType<typeof JSON.parse>>): Promise<void>;
66
73
  /**
67
74
  * Runs set debug.
68
75
  * @param {boolean} newValue - New value.
69
76
  * @returns {void} - No return value.
70
77
  */
71
78
  setDebug(newValue: boolean): void;
72
- warn(...args: Parameters<typeof functionOrMessages>): Promise<void>;
79
+ /**
80
+ * Runs warn.
81
+ * @type {(...args: Parameters<typeof functionOrMessages>) => Promise<void>}
82
+ */
83
+ warn(...messages: any[]): Promise<void>;
73
84
  /**
74
85
  * Runs write.
75
86
  * @param {object} args - Options object.
@@ -82,15 +93,5 @@ export default class Logger {
82
93
  messages: Parameters<typeof functionOrMessages>;
83
94
  }): Promise<void>;
84
95
  }
85
- /**
86
- * LogLevel type.
87
- */
88
- export type LogLevel = "debug-low-level" | "debug" | "info" | "warn" | "error";
89
- /**
90
- * Runs function or messages.
91
- * @param {...?|function() : Array<?>} messages - Messages.
92
- * @returns {Array<?>} - Either the function result or the messages
93
- */
94
- declare function functionOrMessages(...messages: (unknown | (() => Array<unknown>))[]): Array<unknown>;
95
96
  export {};
96
97
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.js"],"names":[],"mappings":"AAiWA;IACE;;;;;;;OAOG;IACH,oBANW,MAAM,GAAG,MAAM,gEAEvB;QAAoD,aAAa;QAC1C,KAAK;QAC2C,oBAAoB;KAC7F,EAcA;IAVC,gBAAmB;IACnB,iEAAmC;IACnC,2FAAiD;IAG/C,iBAAuC;IAEvC,4BAAqB;IAKzB;;;OAGG;IACH,oBAFa,OAAO,oBAAoB,EAAE,OAAO,CAShD;IAED;;;OAGG;IACH,sBAFa,OAAO,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAQ5D;IAED;;;;OAIG;IACH,sBAHW,QAAQ,GACN,OAAO,CAanB;IAED;;;;OAIG;IACH,mBAHW,KAAK,CAAC,OAAC,CAAC,GACN,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;OAIG;IACH,kBAHW,KAAK,CAAC,OAAC,CAAC,GACN,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;OAIG;IACH,2BAHW,KAAK,CAAC,OAAC,CAAC,GACN,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;OAIG;IACH,iBAHW,KAAK,CAAC,OAAC,CAAC,GACN,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;OAIG;IACH,mBAHW,KAAK,CAAC,OAAC,CAAC,GACN,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;OAIG;IACH,mBAHW,OAAO,GACL,IAAI,CAIhB;IAIS,cAAU,UAAU,CAAC,OAAO,kBAAkB,CAAC,GAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAM3E;;;;;;OAMG;IACH,4BAJG;QAAuB,KAAK,EAApB,QAAQ;QACoC,QAAQ,EAApD,UAAU,CAAC,OAAO,kBAAkB,CAAC;KAC7C,GAAU,OAAO,CAAC,IAAI,CAAC,CAczB;CACF;;;;uBA5eY,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;AAgBpE;;;;GAIG;AACH,iDAHW,CAAG,OAAC,IAAC,MAAa,KAAK,CAAC,OAAC,CAAC,CAAA,GAAA,GACxB,KAAK,CAAC,OAAC,CAAC,CASpB"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.js"],"names":[],"mappings":"AAUG,YAAmE,QAAQ,GAAjE,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAU;AAgB9E;;;;GAIG;AACH,iBAAS,kBAAkB,CAAC,GAAG,QAAQ,EAH5B,CAAG,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAC,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAGjD,GAF1B,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAShD;AA2TD,MAAM,CAAC,OAAO,OAAO,MAAM;IAYlB,MAAM;IACN,cAAc;IACd,qBAAqB;IAGnB,QAAQ;IAER,OAAO;IAlBhB;;;;;;;OAOG;IACH,YAAY,MAAM,EANP,MAAM,GAAG,MAMF,EAAE,EAAC,aAAa,EAAE,KAAa,EAAE,oBAAoB,EAAE,GAAG,QAAQ,EAAC,GAJlF;QAAoD,aAAa,AAAjE,CACA,EADQ,OAAO,oBAAoB,EAAE,OAAO,CAC5C;QAAuB,KAAK,AAA5B,CACA,EADQ,OAAO,CACf;QAAuE,oBAAoB,AAA3F,CACF,EADU,OAAO,0BAA0B,EAAE,oBAAoB,CACjE;KACyF,EAazF;IAED;;;OAGG;IACH,gBAAgB,IAFH,OAAO,oBAAoB,EAAE,OAAO,CAShD;IAED;;;OAGG;IACH,kBAAkB,IAFL,OAAO,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAQ5D;IAED;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAHT,QAGS,GAFP,OAAO,CAanB;IAED;;;;OAIG;IACG,KAAK,CAAC,GAAG,QAAQ,EAHZ,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAGvB,GAFV,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;OAIG;IACG,IAAI,CAAC,GAAG,QAAQ,EAHX,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAGxB,GAFT,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;OAIG;IACG,aAAa,CAAC,GAAG,QAAQ,EAHpB,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAGf,GAFlB,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;OAIG;IACG,GAAG,CAAC,GAAG,QAAQ,EAHV,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAGzB,GAFR,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;OAIG;IACG,KAAK,CAAC,GAAG,QAAQ,EAHZ,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAGvB,GAFV,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAHN,OAGM,GAFJ,IAAI,CAIhB;IAED;;;OAGG;IACG,IAAI,CAAC,GAAG,QAAQ,OAAA,iBAErB;IAED;;;;;;OAMG;IACG,MAAM,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAC,EAJ3B;QAAuB,KAAK,EAApB,QAAQ,CAChB;QAAoD,QAAQ,EAApD,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAC7C;KAE2B,GAFjB,OAAO,CAAC,IAAI,CAAC,CAczB;CACF"}
@@ -21,8 +21,8 @@ const DEFAULT_LOGGING_CONFIGURATION = {
21
21
  const LEVEL_ORDER = ["debug-low-level", "debug", "info", "warn", "error"];
22
22
  /**
23
23
  * Runs function or messages.
24
- * @param {...?|function() : Array<?>} messages - Messages.
25
- * @returns {Array<?>} - Either the function result or the messages
24
+ * @param {...ReturnType<typeof JSON.parse>|(() => Array<ReturnType<typeof JSON.parse>>)} messages - Messages.
25
+ * @returns {Array<ReturnType<typeof JSON.parse>>} - Either the function result or the messages
26
26
  */
27
27
  function functionOrMessages(...messages) {
28
28
  if (messages.length === 1 && typeof messages[0] == "function") {
@@ -33,7 +33,7 @@ function functionOrMessages(...messages) {
33
33
  }
34
34
  /**
35
35
  * Format a single value for inclusion in a log message.
36
- * @param {?} value - Value to format.
36
+ * @param {ReturnType<typeof JSON.parse>} value - Value to format.
37
37
  * @returns {string} - String representation.
38
38
  */
39
39
  function formatPart(value) {
@@ -53,7 +53,7 @@ function formatPart(value) {
53
53
  * messages are interpolated into it in order (like `console.log` /
54
54
  * `util.format`). Any leftover messages are appended with a space
55
55
  * separator. Otherwise, all parts are joined with spaces.
56
- * @param {Array<?>} messages - User-supplied message parts.
56
+ * @param {Array<ReturnType<typeof JSON.parse>>} messages - User-supplied message parts.
57
57
  * @returns {string} - The formatted user message.
58
58
  */
59
59
  function formatUserMessages(messages) {
@@ -100,7 +100,7 @@ function formatUserMessages(messages) {
100
100
  /**
101
101
  * Converts a logger subject and message parts into a single log line.
102
102
  * @param {string} subject - Logger subject / category prefix.
103
- * @param {...?} messages - User-supplied message parts (supports printf-style format specifiers on the first part).
103
+ * @param {...ReturnType<typeof JSON.parse>} messages - User-supplied message parts (supports printf-style format specifiers on the first part).
104
104
  * @returns {string} - The formatted log line.
105
105
  */
106
106
  function messagesToMessage(subject, ...messages) {
@@ -171,7 +171,7 @@ function resolveLoggingOutputs({ loggingConfiguration, configuration }) {
171
171
  for (const logger of loggingConfiguration.loggers) {
172
172
  if (!logger)
173
173
  continue;
174
- const loggerConfig = /** @type {?} */ (logger);
174
+ const loggerConfig = /** @type {ReturnType<typeof JSON.parse>} */ (logger);
175
175
  if (typeof loggerConfig.toOutputConfig === "function") {
176
176
  loggerOutputs.push(loggerConfig.toOutputConfig({ configuration }));
177
177
  continue;
@@ -277,7 +277,7 @@ async function writeLog({ subject, level, messages, configuration, loggingConfig
277
277
  const writes = [];
278
278
  /**
279
279
  * Types the following value.
280
- * @type {Array<?> | undefined} */
280
+ * @type {Array<ReturnType<typeof JSON.parse>> | undefined} */
281
281
  let resolvedMessages;
282
282
  /**
283
283
  * Types the following value.
@@ -371,7 +371,7 @@ export default class Logger {
371
371
  }
372
372
  /**
373
373
  * Runs debug.
374
- * @param {Array<?>} messages - Messages.
374
+ * @param {Array<ReturnType<typeof JSON.parse>>} messages - Messages.
375
375
  * @returns {Promise<void>} - Resolves when complete.
376
376
  */
377
377
  async debug(...messages) {
@@ -379,7 +379,7 @@ export default class Logger {
379
379
  }
380
380
  /**
381
381
  * Runs info.
382
- * @param {Array<?>} messages - Messages.
382
+ * @param {Array<ReturnType<typeof JSON.parse>>} messages - Messages.
383
383
  * @returns {Promise<void>} - Resolves when complete.
384
384
  */
385
385
  async info(...messages) {
@@ -387,7 +387,7 @@ export default class Logger {
387
387
  }
388
388
  /**
389
389
  * Runs debug low level.
390
- * @param {Array<?>} messages - Messages.
390
+ * @param {Array<ReturnType<typeof JSON.parse>>} messages - Messages.
391
391
  * @returns {Promise<void>} - Resolves when complete.
392
392
  */
393
393
  async debugLowLevel(...messages) {
@@ -395,7 +395,7 @@ export default class Logger {
395
395
  }
396
396
  /**
397
397
  * Runs log.
398
- * @param {Array<?>} messages - Messages.
398
+ * @param {Array<ReturnType<typeof JSON.parse>>} messages - Messages.
399
399
  * @returns {Promise<void>} - Resolves when complete.
400
400
  */
401
401
  async log(...messages) {
@@ -403,7 +403,7 @@ export default class Logger {
403
403
  }
404
404
  /**
405
405
  * Runs error.
406
- * @param {Array<?>} messages - Messages.
406
+ * @param {Array<ReturnType<typeof JSON.parse>>} messages - Messages.
407
407
  * @returns {Promise<void>} - Resolves when complete.
408
408
  */
409
409
  async error(...messages) {
@@ -444,4 +444,4 @@ export default class Logger {
444
444
  });
445
445
  }
446
446
  }
447
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxtQkFBbUIsTUFBTSxvQ0FBb0MsQ0FBQTtBQUNwRSxPQUFPLGdCQUFnQixNQUFNLGlDQUFpQyxDQUFBO0FBQzlELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFBO0FBQy9ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLGFBQWEsTUFBTSw0QkFBNEIsQ0FBQTtBQUV0RDs7aUZBRWlGO0FBRWpGLE1BQU0sNkJBQTZCLEdBQUc7SUFDcEMsT0FBTyxFQUFFLElBQUk7SUFDYixJQUFJLEVBQUUsS0FBSztJQUNYOzs0QkFFd0I7SUFDeEIsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7Q0FDbEMsQ0FBQTtBQUVEOzt3QkFFd0I7QUFDeEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtBQUV6RTs7OztHQUlHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxHQUFHLFFBQVE7SUFDckMsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM5RCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNB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QTtJQUM5QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRO1FBQ3JCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQTtJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxRQUFRO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUE7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRO1FBQ3BCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUM7UUFDNUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDL0MsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLElBQUksMkJBQTJCLENBQUMsYUFBYSxDQUFDLENBQUE7UUFFckcsTUFBTSxRQUFRLENBQUM7WUFDYixPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdEIsS0FBSztZQUNMLFFBQVE7WUFDUixhQUFhO1lBQ2Isb0JBQW9CO1lBQ3BCLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTTtTQUN2QixDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IExvZ2dlckNvbnNvbGVPdXRwdXQgZnJvbSBcIi4vbG9nZ2VyL291dHB1dHMvY29uc29sZS1vdXRwdXQuanNcIlxuaW1wb3J0IExvZ2dlckZpbGVPdXRwdXQgZnJvbSBcIi4vbG9nZ2VyL291dHB1dHMvZmlsZS1vdXRwdXQuanNcIlxuaW1wb3J0IHtjdXJyZW50Q29uZmlndXJhdGlvbn0gZnJvbSBcIi4vY3VycmVudC1jb25maWd1cmF0aW9uLmpzXCJcbmltcG9ydCB7Zm9ybWF0VmFsdWV9IGZyb20gXCIuL3V0aWxzL2Zvcm1hdC12YWx1ZS5qc1wiXG5pbXBvcnQgcmVzdEFyZ3NFcnJvciBmcm9tIFwiLi91dGlscy9yZXN0LWFyZ3MtZXJyb3IuanNcIlxuXG4vKipcbiAqIExvZ0xldmVsIHR5cGUuXG4gKiBAdHlwZWRlZiB7XCJkZWJ1Zy1sb3ctbGV2ZWxcIiB8IFwiZGVidWdcIiB8IFwiaW5mb1wiIHwgXCJ3YXJuXCIgfCBcImVycm9yXCJ9IExvZ0xldmVsICovXG5cbmNvbnN0IERFRkFVTFRfTE9HR0lOR19DT05GSUdVUkFUSU9OID0ge1xuICBjb25zb2xlOiB0cnVlLFxuICBmaWxlOiBmYWxzZSxcbiAgLyoqXG4gICAqIFR5cGVzIHRoZSBmb2xsb3dpbmcgdmFsdWUuXG4gICAqIEB0eXBlIHtMb2dMZXZlbFtdfSAqL1xuICBsZXZlbHM6IFtcImluZm9cIiwgXCJ3YXJuXCIsIFwiZXJyb3JcIl1cbn1cblxuLyoqXG4gKiBMZXZlbCBvcmRlci5cbiAqIEB0eXBlIHtMb2dMZXZlbFtdfSAqL1xuY29uc3QgTEVWRUxfT1JERVIgPSBbXCJkZWJ1Zy1sb3ctbGV2ZWxcIiwgXCJkZWJ1Z1wiLCBcImluZm9cIiwgXCJ3YXJuXCIsIFwiZXJyb3JcIl1cblxuLyoqXG4gKiBSdW5zIGZ1bmN0aW9uIG9yIG1lc3NhZ2VzLlxuICogQHBhcmFtIHsuLi4/fGZ1bmN0aW9uKCkgOiBBcnJheTw/Pn0gbWVzc2FnZXMgLSBNZXNzYWdlcy5cbiAqIEByZXR1cm5zIHtBcnJheTw/Pn0gLSBFaXRoZXIgdGhlIGZ1bmN0aW9uIHJlc3VsdCBvciB0aGUgbWVzc2FnZXNcbiAqL1xuZnVuY3Rpb24gZnVuY3Rpb25Pck1lc3NhZ2VzKC4uLm1lc3NhZ2VzKSB7XG4gIGlmIChtZXNzYWdlcy5sZW5ndGggPT09IDEgJiYgdHlwZW9mIG1lc3NhZ2VzWzBdID09IFwiZnVuY3Rpb25cIikge1xuICAgIGNvbnN0IHJlc3VsdCA9IG1lc3NhZ2VzWzBdKClcbiAgICBtZXNzYWdlcyA9IEFycmF5LmlzQXJyYXkocmVzdWx0KSA/IHJlc3VsdCA6IFtyZXN1bHRdXG4gIH1cblxuICByZXR1cm4gbWVzc2FnZXNcbn1cblxuLyoqXG4gKiBGb3JtYXQgYSBzaW5nbGUgdmFsdWUgZm9yIGluY2x1c2lvbiBpbiBhIGxvZyBtZXNzYWdlLlxuICogQHBhcmFtIHs/fSB2YWx1ZSAtIFZhbHVlIHRvIGZvcm1hdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uLlxuICovXG5mdW5jdGlvbiBmb3JtYXRQYXJ0KHZhbHVlKSB7XG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgcmV0dXJuIGAke3ZhbHVlLm1lc3NhZ2V9XFxuJHt2YWx1ZS5zdGFja31gXG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIGZvcm1hdFZhbHVlKHZhbHVlKVxuICB9XG5cbiAgcmV0dXJuIFN0cmluZyh2YWx1ZSlcbn1cblxuLyoqXG4gKiBGb3JtYXRzIHRoZSB1c2VyLXN1cHBsaWVkIG1lc3NhZ2VzIGludG8gYSBzaW5nbGUgc3RyaW5nLlxuICpcbiAqIElmIHRoZSBmaXJzdCBtZXNzYWdlIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgcHJpbnRmLXN0eWxlIGZvcm1hdFxuICogc3BlY2lmaWVycyAoYCVzYCwgYCVkYCwgYCVqYCwgYCVvYCwgYCVPYCwgb3IgYCUlYCksIHRoZSByZW1haW5pbmdcbiAqIG1lc3NhZ2VzIGFyZSBpbnRlcnBvbGF0ZWQgaW50byBpdCBpbiBvcmRlciAobGlrZSBgY29uc29sZS5sb2dgIC9cbiAqIGB1dGlsLmZvcm1hdGApLiBBbnkgbGVmdG92ZXIgbWVzc2FnZXMgYXJlIGFwcGVuZGVkIHdpdGggYSBzcGFjZVxuICogc2VwYXJhdG9yLiBPdGhlcndpc2UsIGFsbCBwYXJ0cyBhcmUgam9pbmVkIHdpdGggc3BhY2VzLlxuICogQHBhcmFtIHtBcnJheTw/Pn0gbWVzc2FnZXMgLSBVc2VyLXN1cHBsaWVkIG1lc3NhZ2UgcGFydHMuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBmb3JtYXR0ZWQgdXNlciBtZXNzYWdlLlxuICovXG5mdW5jdGlvbiBmb3JtYXRVc2VyTWVzc2FnZXMobWVzc2FnZXMpIHtcbiAgaWYgKG1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFwiXCJcblxuICBjb25zdCBmaXJzdCA9IG1lc3NhZ2VzWzBdXG5cbiAgaWYgKHR5cGVvZiBmaXJzdCA9PT0gXCJzdHJpbmdcIiAmJiAvJVtzZGpvTyVdLy50ZXN0KGZpcnN0KSkge1xuICAgIGxldCBhcmdJbmRleCA9IDFcbiAgICBjb25zdCBmb3JtYXR0ZWQgPSBmaXJzdC5yZXBsYWNlKC8lW3Nkam9PJV0vZywgKG1hdGNoKSA9PiB7XG4gICAgICBpZiAobWF0Y2ggPT09IFwiJSVcIikgcmV0dXJuIFwiJVwiXG4gICAgICBpZiAoYXJnSW5kZXggPj0gbWVzc2FnZXMubGVuZ3RoKSByZXR1cm4gbWF0Y2hcblxuICAgICAgY29uc3QgdmFsdWUgPSBtZXNzYWdlc1thcmdJbmRleF1cblxuICAgICAgYXJnSW5kZXggKz0gMVxuXG4gICAgICBpZiAobWF0Y2ggPT09IFwiJWRcIikge1xuICAgICAgICAvLyBNYXRjaCB1dGlsLmZvcm1hdDogbmV2ZXIgdGhyb3cgZm9yIG5vbi1jb2VyY2libGUgdmFsdWVzIOKAlCB5aWVsZCBcIk5hTlwiIGluc3RlYWQuXG4gICAgICAgIC8vIE51bWJlcihTeW1ib2woKSkgdGhyb3dzLCBzbyBjYXRjaCBhbmQgZmFsbCBiYWNrLlxuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBTdHJpbmcoTnVtYmVyKHZhbHVlKSlcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgcmV0dXJuIFwiTmFOXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG1hdGNoID09PSBcIiVqXCIgfHwgbWF0Y2ggPT09IFwiJW9cIiB8fCBtYXRjaCA9PT0gXCIlT1wiKSByZXR1cm4gZm9ybWF0VmFsdWUodmFsdWUpXG5cbiAgICAgIHJldHVybiBmb3JtYXRQYXJ0KHZhbHVlKVxuICAgIH0pXG5cbiAgICBsZXQgbWVzc2FnZSA9IGZvcm1hdHRlZFxuXG4gICAgZm9yIChsZXQgaW5kZXggPSBhcmdJbmRleDsgaW5kZXggPCBtZXNzYWdlcy5sZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgIG1lc3NhZ2UgKz0gYCAke2Zvcm1hdFBhcnQobWVzc2FnZXNbaW5kZXhdKX1gXG4gICAgfVxuXG4gICAgcmV0dXJuIG1lc3NhZ2VcbiAgfVxuXG4gIGxldCBtZXNzYWdlID0gXCJcIlxuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtZXNzYWdlcy5sZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBpZiAoaW5kZXggPiAwKSBtZXNzYWdlICs9IFwiIFwiXG4gICAgbWVzc2FnZSArPSBmb3JtYXRQYXJ0KG1lc3NhZ2VzW2luZGV4XSlcbiAgfVxuXG4gIHJldHVybiBtZXNzYWdlXG59XG5cbi8qKlxuICogQ29udmVydHMgYSBsb2dnZXIgc3ViamVjdCBhbmQgbWVzc2FnZSBwYXJ0cyBpbnRvIGEgc2luZ2xlIGxvZyBsaW5lLlxuICogQHBhcmFtIHtzdHJpbmd9IHN1YmplY3QgLSBMb2dnZXIgc3ViamVjdCAvIGNhdGVnb3J5IHByZWZpeC5cbiAqIEBwYXJhbSB7Li4uP30gbWVzc2FnZXMgLSBVc2VyLXN1cHBsaWVkIG1lc3NhZ2UgcGFydHMgKHN1cHBvcnRzIHByaW50Zi1zdHlsZSBmb3JtYXQgc3BlY2lmaWVycyBvbiB0aGUgZmlyc3QgcGFydCkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBmb3JtYXR0ZWQgbG9nIGxpbmUuXG4gKi9cbmZ1bmN0aW9uIG1lc3NhZ2VzVG9NZXNzYWdlKHN1YmplY3QsIC4uLm1lc3NhZ2VzKSB7XG4gIGNvbnN0IHVzZXJNZXNzYWdlID0gZm9ybWF0VXNlck1lc3NhZ2VzKG1lc3NhZ2VzKVxuXG4gIGlmICghc3ViamVjdCkgcmV0dXJuIHVzZXJNZXNzYWdlXG4gIGlmICghdXNlck1lc3NhZ2UpIHJldHVybiBTdHJpbmcoc3ViamVjdClcblxuICByZXR1cm4gYCR7c3ViamVjdH0gJHt1c2VyTWVzc2FnZX1gXG59XG5cbi8qKlxuICogUnVucyByZXNvbHZlIGxvZ2dpbmcgY29uZmlndXJhdGlvbi5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHQgfCB1bmRlZmluZWR9IGNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICogQHJldHVybnMge1JlcXVpcmVkPFBpY2s8aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdDb25maWd1cmF0aW9uLCBcImNvbnNvbGVcIiB8IFwiZmlsZVwiIHwgXCJsZXZlbHNcIj4+ICYgUGFydGlhbDxQaWNrPGltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Mb2dnaW5nQ29uZmlndXJhdGlvbiwgXCJmaWxlUGF0aFwiIHwgXCJvdXRwdXRzXCI+Pn0gLSBUaGUgbG9nZ2luZyBjb25maWd1cmF0aW9uLlxuICovXG5mdW5jdGlvbiByZXNvbHZlTG9nZ2luZ0NvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbikge1xuICBjb25zdCBkZWJ1Z0VuYWJsZWQgPSBjb25maWd1cmF0aW9uPy5kZWJ1ZyA9PT0gdHJ1ZVxuICBpZiAoY29uZmlndXJhdGlvbiAmJiB0eXBlb2YgY29uZmlndXJhdGlvbi5nZXRMb2dnaW5nQ29uZmlndXJhdGlvbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBjb25maWd1cmF0aW9uLmdldExvZ2dpbmdDb25maWd1cmF0aW9uKClcblxuICAgIGlmIChkZWJ1Z0VuYWJsZWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnJlc29sdmVkLFxuICAgICAgICBjb25zb2xlOiB0cnVlLFxuICAgICAgICBsZXZlbHM6IExFVkVMX09SREVSXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc29sdmVkXG4gIH1cblxuICBpZiAoZGVidWdFbmFibGVkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLkRFRkFVTFRfTE9HR0lOR19DT05GSUdVUkFUSU9OLFxuICAgICAgY29uc29sZTogdHJ1ZSxcbiAgICAgIGxldmVsczogTEVWRUxfT1JERVJcbiAgICB9XG4gIH1cblxuICByZXR1cm4gREVGQVVMVF9MT0dHSU5HX0NPTkZJR1VSQVRJT05cbn1cblxuLyoqXG4gKiBSdW5zIGlzIGxldmVsIGFsbG93ZWQuXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtMb2dMZXZlbH0gYXJncy5sZXZlbCAtIExldmVsLlxuICogQHBhcmFtIHtMb2dMZXZlbFtdfSBhcmdzLmFsbG93ZWRMZXZlbHMgLSBBbGxvd2VkIGxldmVscy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FyZ3MuZGVidWdGbGFnXSAtIFdoZXRoZXIgZGVidWcgZmxhZy5cbiAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgbGV2ZWwgYWxsb3dlZC5cbiAqL1xuZnVuY3Rpb24gaXNMZXZlbEFsbG93ZWQoe2xldmVsLCBhbGxvd2VkTGV2ZWxzLCBkZWJ1Z0ZsYWd9KSB7XG4gIGlmIChhbGxvd2VkTGV2ZWxzLmluY2x1ZGVzKGxldmVsKSkgcmV0dXJuIHRydWVcblxuICBpZiAoZGVidWdGbGFnICYmIExFVkVMX09SREVSLmluZGV4T2YobGV2ZWwpID49IExFVkVMX09SREVSLmluZGV4T2YoXCJkZWJ1Z1wiKSkgcmV0dXJuIHRydWVcblxuICByZXR1cm4gZmFsc2Vcbn1cblxuLyoqXG4gKiBSdW5zIHJlc29sdmUgbG9nZ2luZyBvdXRwdXRzLlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdDb25maWd1cmF0aW9ufSBhcmdzLmxvZ2dpbmdDb25maWd1cmF0aW9uIC0gTG9nZ2luZyBjb25maWd1cmF0aW9uLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdCB8IHVuZGVmaW5lZH0gYXJncy5jb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ091dHB1dENvbmZpZ1tdfSAtIExvZ2dpbmcgb3V0cHV0cy5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUxvZ2dpbmdPdXRwdXRzKHtsb2dnaW5nQ29uZmlndXJhdGlvbiwgY29uZmlndXJhdGlvbn0pIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkobG9nZ2luZ0NvbmZpZ3VyYXRpb24ub3V0cHV0cykpIHJldHVybiBsb2dnaW5nQ29uZmlndXJhdGlvbi5vdXRwdXRzXG5cbiAgaWYgKEFycmF5LmlzQXJyYXkobG9nZ2luZ0NvbmZpZ3VyYXRpb24ubG9nZ2VycykpIHtcbiAgICAvKipcbiAgICAgKiBMb2dnZXIgb3V0cHV0cy5cbiAgICAgKiBAdHlwZSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdPdXRwdXRDb25maWdbXX0gKi9cbiAgICBjb25zdCBsb2dnZXJPdXRwdXRzID0gW11cblxuICAgIGZvciAoY29uc3QgbG9nZ2VyIG9mIGxvZ2dpbmdDb25maWd1cmF0aW9uLmxvZ2dlcnMpIHtcbiAgICAgIGlmICghbG9nZ2VyKSBjb250aW51ZVxuXG4gICAgICBjb25zdCBsb2dnZXJDb25maWcgPSAvKiogQHR5cGUgez99ICovIChsb2dnZXIpXG5cbiAgICAgIGlmICh0eXBlb2YgbG9nZ2VyQ29uZmlnLnRvT3V0cHV0Q29uZmlnID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgbG9nZ2VyT3V0cHV0cy5wdXNoKGxvZ2dlckNvbmZpZy50b091dHB1dENvbmZpZyh7Y29uZmlndXJhdGlvbn0pKVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBpZiAobG9nZ2VyQ29uZmlnLm91dHB1dCAmJiB0eXBlb2YgbG9nZ2VyQ29uZmlnLm91dHB1dC53cml0ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGxvZ2dlck91dHB1dHMucHVzaCh7XG4gICAgICAgICAgb3V0cHV0OiBsb2dnZXJDb25maWcub3V0cHV0LFxuICAgICAgICAgIGxldmVsczogbG9nZ2VyQ29uZmlnLmxldmVsc1xuICAgICAgICB9KVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGxvZ2dlckNvbmZpZy53cml0ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGxvZ2dlck91dHB1dHMucHVzaCh7XG4gICAgICAgICAgb3V0cHV0OiBsb2dnZXJDb25maWcsXG4gICAgICAgICAgbGV2ZWxzOiBsb2dnZXJDb25maWcubGV2ZWxzXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxvZ2dlck5hbWUgPSBsb2dnZXJDb25maWc/LmNvbnN0cnVjdG9yPy5uYW1lIHx8IFwiVW5rbm93bkxvZ2dlclwiXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYExvZ2dlciBtdXN0IGltcGxlbWVudCB0b091dHB1dENvbmZpZyBvciB3cml0ZTogJHtsb2dnZXJOYW1lfWApXG4gICAgfVxuXG4gICAgcmV0dXJuIGxvZ2dlck91dHB1dHNcbiAgfVxuXG4gIC8qKlxuICAgKiBPdXRwdXRzLlxuICAgKiBAdHlwZSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdPdXRwdXRDb25maWdbXX0gKi9cbiAgY29uc3Qgb3V0cHV0cyA9IFtdXG4gIGlmIChsb2dnaW5nQ29uZmlndXJhdGlvbi5jb25zb2xlICE9PSBmYWxzZSkge1xuICAgIG91dHB1dHMucHVzaCh7XG4gICAgICBvdXRwdXQ6IG5ldyBMb2dnZXJDb25zb2xlT3V0cHV0KCksXG4gICAgICBsZXZlbHM6IGxvZ2dpbmdDb25maWd1cmF0aW9uLmxldmVsc1xuICAgIH0pXG4gIH1cblxuICBpZiAobG9nZ2luZ0NvbmZpZ3VyYXRpb24uZmlsZSAhPT0gZmFsc2UgJiYgbG9nZ2luZ0NvbmZpZ3VyYXRpb24uZmlsZVBhdGgpIHtcbiAgICBvdXRwdXRzLnB1c2goe1xuICAgICAgb3V0cHV0OiBuZXcgTG9nZ2VyRmlsZU91dHB1dCh7XG4gICAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICAgIGdldENvbmZpZ3VyYXRpb246ICgpID0+IGNvbmZpZ3VyYXRpb24sXG4gICAgICAgIGZpbGVQYXRoOiBsb2dnaW5nQ29uZmlndXJhdGlvbi5maWxlUGF0aFxuICAgICAgfSksXG4gICAgICBsZXZlbHM6IGxvZ2dpbmdDb25maWd1cmF0aW9uLmxldmVsc1xuICAgIH0pXG4gIH1cblxuICByZXR1cm4gb3V0cHV0c1xufVxuXG4vKipcbiAqIFJ1bnMgaXMgb3V0cHV0IGxldmVsIGFsbG93ZWQuXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtMb2dMZXZlbH0gYXJncy5sZXZlbCAtIExldmVsLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ091dHB1dENvbmZpZ30gYXJncy5vdXRwdXRDb25maWcgLSBPdXRwdXQgY29uZmlndXJhdGlvbi5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdDb25maWd1cmF0aW9ufSBhcmdzLmxvZ2dpbmdDb25maWd1cmF0aW9uIC0gTG9nZ2luZyBjb25maWd1cmF0aW9uLlxuICogQHBhcmFtIHtib29sZWFufSBbYXJncy5kZWJ1Z0ZsYWddIC0gV2hldGhlciBkZWJ1ZyBmbGFnLlxuICogQHJldHVybnMge2Jvb2xlYW59IC0gV2hldGhlciBvdXRwdXQgc2hvdWxkIGxvZy5cbiAqL1xuZnVuY3Rpb24gaXNPdXRwdXRMZXZlbEFsbG93ZWQoe2xldmVsLCBvdXRwdXRDb25maWcsIGxvZ2dpbmdDb25maWd1cmF0aW9uLCBkZWJ1Z0ZsYWd9KSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG91dHB1dENvbmZpZy5sZXZlbHMpKSB7XG4gICAgcmV0dXJuIGlzTGV2ZWxBbGxvd2VkKHtsZXZlbCwgYWxsb3dlZExldmVsczogb3V0cHV0Q29uZmlnLmxldmVscywgZGVidWdGbGFnOiBmYWxzZX0pXG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheShvdXRwdXRDb25maWcub3V0cHV0Py5sZXZlbHMpKSB7XG4gICAgcmV0dXJuIGlzTGV2ZWxBbGxvd2VkKHtsZXZlbCwgYWxsb3dlZExldmVsczogb3V0cHV0Q29uZmlnLm91dHB1dC5sZXZlbHMsIGRlYnVnRmxhZzogZmFsc2V9KVxuICB9XG5cbiAgY29uc3QgYWxsb3dlZExldmVscyA9IGxvZ2dpbmdDb25maWd1cmF0aW9uLmxldmVscyB8fCBERUZBVUxUX0xPR0dJTkdfQ09ORklHVVJBVElPTi5sZXZlbHNcblxuICByZXR1cm4gaXNMZXZlbEFsbG93ZWQoe2xldmVsLCBhbGxvd2VkTGV2ZWxzLCBkZWJ1Z0ZsYWd9KVxufVxuXG4vKipcbiAqIFJ1bnMgZW5hYmxlZCBvdXRwdXQgY29uZmlncy5cbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gKiBAcGFyYW0ge0xvZ0xldmVsfSBhcmdzLmxldmVsIC0gTGV2ZWwuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Mb2dnaW5nT3V0cHV0Q29uZmlnW119IGFyZ3Mub3V0cHV0cyAtIE91dHB1dCBjb25maWd1cmF0aW9ucy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdDb25maWd1cmF0aW9ufSBhcmdzLmxvZ2dpbmdDb25maWd1cmF0aW9uIC0gTG9nZ2luZyBjb25maWd1cmF0aW9uLlxuICogQHBhcmFtIHtib29sZWFufSBbYXJncy5kZWJ1Z0ZsYWddIC0gV2hldGhlciBkZWJ1ZyBmbGFnLlxuICogQHJldHVybnMge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Mb2dnaW5nT3V0cHV0Q29uZmlnW119IC0gT3V0cHV0cyBlbmFibGVkIGZvciB0aGUgbGV2ZWwuXG4gKi9cbmZ1bmN0aW9uIGVuYWJsZWRPdXRwdXRDb25maWdzKHtsZXZlbCwgb3V0cHV0cywgbG9nZ2luZ0NvbmZpZ3VyYXRpb24sIGRlYnVnRmxhZ30pIHtcbiAgcmV0dXJuIG91dHB1dHMuZmlsdGVyKChvdXRwdXRDb25maWcpID0+IHtcbiAgICBpZiAoIW91dHB1dENvbmZpZyB8fCAhb3V0cHV0Q29uZmlnLm91dHB1dCB8fCB0eXBlb2Ygb3V0cHV0Q29uZmlnLm91dHB1dC53cml0ZSAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiBpc091dHB1dExldmVsQWxsb3dlZCh7bGV2ZWwsIG91dHB1dENvbmZpZywgbG9nZ2luZ0NvbmZpZ3VyYXRpb24sIGRlYnVnRmxhZ30pXG4gIH0pXG59XG5cbi8qKlxuICogUnVucyB3cml0ZSBsb2cuXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtzdHJpbmd9IGFyZ3Muc3ViamVjdCAtIExvZyBzdWJqZWN0LlxuICogQHBhcmFtIHtMb2dMZXZlbH0gYXJncy5sZXZlbCAtIExldmVsLlxuICogQHBhcmFtIHtQYXJhbWV0ZXJzPHR5cGVvZiBmdW5jdGlvbk9yTWVzc2FnZXM+fSBhcmdzLm1lc3NhZ2VzIC0gTWVzc2FnZXMuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ0NvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWR9IGFyZ3MubG9nZ2luZ0NvbmZpZ3VyYXRpb24gLSBMb2dnaW5nIGNvbmZpZ3VyYXRpb24uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmRlYnVnRmxhZ10gLSBXaGV0aGVyIGRlYnVnIGZsYWcuXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICovXG5hc3luYyBmdW5jdGlvbiB3cml0ZUxvZyh7c3ViamVjdCwgbGV2ZWwsIG1lc3NhZ2VzLCBjb25maWd1cmF0aW9uLCBsb2dnaW5nQ29uZmlndXJhdGlvbiwgZGVidWdGbGFnfSkge1xuICBjb25zdCByZXNvbHZlZExvZ2dpbmdDb25maWd1cmF0aW9uID0gbG9nZ2luZ0NvbmZpZ3VyYXRpb24gfHwgcmVzb2x2ZUxvZ2dpbmdDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pXG4gIGNvbnN0IG91dHB1dHMgPSByZXNvbHZlTG9nZ2luZ091dHB1dHMoe2xvZ2dpbmdDb25maWd1cmF0aW9uOiByZXNvbHZlZExvZ2dpbmdDb25maWd1cmF0aW9uLCBjb25maWd1cmF0aW9ufSlcbiAgY29uc3QgZW5hYmxlZE91dHB1dHMgPSBlbmFibGVkT3V0cHV0Q29uZmlncyh7XG4gICAgbGV2ZWwsXG4gICAgb3V0cHV0cyxcbiAgICBsb2dnaW5nQ29uZmlndXJhdGlvbjogcmVzb2x2ZWRMb2dnaW5nQ29uZmlndXJhdGlvbixcbiAgICBkZWJ1Z0ZsYWdcbiAgfSlcblxuICBpZiAoZW5hYmxlZE91dHB1dHMubGVuZ3RoID09PSAwKSByZXR1cm5cblxuICBjb25zdCB3cml0ZXMgPSBbXVxuICAvKipcbiAgICogVHlwZXMgdGhlIGZvbGxvd2luZyB2YWx1ZS5cbiAgICogQHR5cGUge0FycmF5PD8+IHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgcmVzb2x2ZWRNZXNzYWdlc1xuICAvKipcbiAgICogVHlwZXMgdGhlIGZvbGxvd2luZyB2YWx1ZS5cbiAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IG1lc3NhZ2VcbiAgLyoqXG4gICAqIFBheWxvYWQuXG4gICAqIEB0eXBlIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ091dHB1dFBheWxvYWQgfCBudWxsfSAqL1xuICBsZXQgcGF5bG9hZCA9IG51bGxcblxuICBmb3IgKGNvbnN0IG91dHB1dENvbmZpZyBvZiBlbmFibGVkT3V0cHV0cykge1xuICAgIGlmICghcGF5bG9hZCkge1xuICAgICAgcmVzb2x2ZWRNZXNzYWdlcyA9IGZ1bmN0aW9uT3JNZXNzYWdlcyguLi5tZXNzYWdlcylcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlc1RvTWVzc2FnZShzdWJqZWN0LCAuLi5yZXNvbHZlZE1lc3NhZ2VzKVxuICAgICAgLy8gc3ViamVjdCBpcyB0aGUgZmlyc3QgcG9zaXRpb25hbCBhcmcsIHRoZW4gdGhlIHVzZXIgbWVzc2FnZXNcbiAgICAgIHBheWxvYWQgPSB7XG4gICAgICAgIGxldmVsLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBzdWJqZWN0LFxuICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZXMucHVzaChvdXRwdXRDb25maWcub3V0cHV0LndyaXRlKHBheWxvYWQpKVxuICB9XG5cbiAgaWYgKHdyaXRlcy5sZW5ndGggPT09IDEpIHtcbiAgICBhd2FpdCB3cml0ZXNbMF1cbiAgfSBlbHNlIGlmICh3cml0ZXMubGVuZ3RoID4gMSkge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHdyaXRlcylcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2dnZXIge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBvYmplY3R9IG9iamVjdCAtIE9iamVjdC5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gW2FyZ3MuY29uZmlndXJhdGlvbl0gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmRlYnVnXSAtIFdoZXRoZXIgZGVidWcuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdDb25maWd1cmF0aW9ufSBbYXJncy5sb2dnaW5nQ29uZmlndXJhdGlvbl0gLSBMb2dnaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvYmplY3QsIHtjb25maWd1cmF0aW9uLCBkZWJ1ZyA9IGZhbHNlLCBsb2dnaW5nQ29uZmlndXJhdGlvbiwgLi4ucmVzdEFyZ3N9ID0ge30pIHtcbiAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuXG4gICAgdGhpcy5fZGVidWcgPSBkZWJ1Z1xuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uXG4gICAgdGhpcy5fbG9nZ2luZ0NvbmZpZ3VyYXRpb24gPSBsb2dnaW5nQ29uZmlndXJhdGlvblxuXG4gICAgaWYgKHR5cGVvZiBvYmplY3QgPT0gXCJzdHJpbmdcIikge1xuICAgICAgdGhpcy5fc3ViamVjdCA9IG9iamVjdCB8fCBcIkVtcHR5U3RyaW5nXCJcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb2JqZWN0ID0gb2JqZWN0XG4gICAgICB0aGlzLl9zdWJqZWN0ID0gb2JqZWN0LmNvbnN0cnVjdG9yLm5hbWUgfHwgXCJVbmtub3duQ2xhc3NcIlxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IC0gVGhlIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBnZXRDb25maWd1cmF0aW9uKCkge1xuICAgIGlmICghdGhpcy5fY29uZmlndXJhdGlvbikge1xuICAgICAgY29uc3Qgb2JqZWN0V2l0aENvbmZpZyA9IC8qKiBAdHlwZSB7e2NvbmZpZ3VyYXRpb24/OiBpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH19ICovICh0aGlzLl9vYmplY3QpXG4gICAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gb2JqZWN0V2l0aENvbmZpZz8uY29uZmlndXJhdGlvbiB8fCBjdXJyZW50Q29uZmlndXJhdGlvbigpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ3VyYXRpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHNhZmUgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSAtIFRoZSBzYWZlIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBfc2FmZUNvbmZpZ3VyYXRpb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLmdldENvbmZpZ3VyYXRpb24oKVxuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGlzIGxldmVsIGVuYWJsZWQuXG4gICAqIEBwYXJhbSB7TG9nTGV2ZWx9IGxldmVsIC0gTGV2ZWwuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgYW55IGNvbmZpZ3VyZWQgb3V0cHV0IGVtaXRzIHRoaXMgbGV2ZWwuXG4gICAqL1xuICBpc0xldmVsRW5hYmxlZChsZXZlbCkge1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB0aGlzLl9zYWZlQ29uZmlndXJhdGlvbigpXG4gICAgY29uc3QgbG9nZ2luZ0NvbmZpZ3VyYXRpb24gPSB0aGlzLl9sb2dnaW5nQ29uZmlndXJhdGlvbiB8fCByZXNvbHZlTG9nZ2luZ0NvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbilcbiAgICBjb25zdCBvdXRwdXRzID0gcmVzb2x2ZUxvZ2dpbmdPdXRwdXRzKHtsb2dnaW5nQ29uZmlndXJhdGlvbiwgY29uZmlndXJhdGlvbn0pXG5cbiAgICByZXR1cm4gZW5hYmxlZE91dHB1dENvbmZpZ3Moe1xuICAgICAgbGV2ZWwsXG4gICAgICBvdXRwdXRzLFxuICAgICAgbG9nZ2luZ0NvbmZpZ3VyYXRpb24sXG4gICAgICBkZWJ1Z0ZsYWc6IHRoaXMuX2RlYnVnXG4gICAgfSkubGVuZ3RoID4gMFxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZGVidWcuXG4gICAqIEBwYXJhbSB7QXJyYXk8Pz59IG1lc3NhZ2VzIC0gTWVzc2FnZXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBkZWJ1ZyguLi5tZXNzYWdlcykge1xuICAgIGF3YWl0IHRoaXMuX3dyaXRlKHtsZXZlbDogXCJkZWJ1Z1wiLCBtZXNzYWdlc30pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBpbmZvLlxuICAgKiBAcGFyYW0ge0FycmF5PD8+fSBtZXNzYWdlcyAtIE1lc3NhZ2VzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgaW5mbyguLi5tZXNzYWdlcykge1xuICAgIGF3YWl0IHRoaXMuX3dyaXRlKHtsZXZlbDogXCJpbmZvXCIsIG1lc3NhZ2VzfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGRlYnVnIGxvdyBsZXZlbC5cbiAgICogQHBhcmFtIHtBcnJheTw/Pn0gbWVzc2FnZXMgLSBNZXNzYWdlcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIGRlYnVnTG93TGV2ZWwoLi4ubWVzc2FnZXMpIHtcbiAgICBhd2FpdCB0aGlzLl93cml0ZSh7bGV2ZWw6IFwiZGVidWctbG93LWxldmVsXCIsIG1lc3NhZ2VzfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGxvZy5cbiAgICogQHBhcmFtIHtBcnJheTw/Pn0gbWVzc2FnZXMgLSBNZXNzYWdlcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIGxvZyguLi5tZXNzYWdlcykge1xuICAgIGF3YWl0IHRoaXMuX3dyaXRlKHtsZXZlbDogXCJpbmZvXCIsIG1lc3NhZ2VzfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGVycm9yLlxuICAgKiBAcGFyYW0ge0FycmF5PD8+fSBtZXNzYWdlcyAtIE1lc3NhZ2VzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgZXJyb3IoLi4ubWVzc2FnZXMpIHtcbiAgICBhd2FpdCB0aGlzLl93cml0ZSh7bGV2ZWw6IFwiZXJyb3JcIiwgbWVzc2FnZXN9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2V0IGRlYnVnLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5ld1ZhbHVlIC0gTmV3IHZhbHVlLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBzZXREZWJ1ZyhuZXdWYWx1ZSkge1xuICAgIHRoaXMuX2RlYnVnID0gbmV3VmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHdhcm4uXG4gICAqIEB0eXBlIHsoLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgZnVuY3Rpb25Pck1lc3NhZ2VzPikgPT4gUHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHdhcm4oLi4ubWVzc2FnZXMpIHtcbiAgICBhd2FpdCB0aGlzLl93cml0ZSh7bGV2ZWw6IFwid2FyblwiLCBtZXNzYWdlc30pXG4gIH1cblxuICAvKipcbiAgICogUnVucyB3cml0ZS5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtMb2dMZXZlbH0gYXJncy5sZXZlbCAtIExldmVsLlxuICAgKiBAcGFyYW0ge1BhcmFtZXRlcnM8dHlwZW9mIGZ1bmN0aW9uT3JNZXNzYWdlcz59IGFyZ3MubWVzc2FnZXMgLSBNZXNzYWdlcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIF93cml0ZSh7bGV2ZWwsIG1lc3NhZ2VzfSkge1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB0aGlzLl9zYWZlQ29uZmlndXJhdGlvbigpXG4gICAgY29uc3QgbG9nZ2luZ0NvbmZpZ3VyYXRpb24gPSB0aGlzLl9sb2dnaW5nQ29uZmlndXJhdGlvbiB8fCByZXNvbHZlTG9nZ2luZ0NvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbilcblxuICAgIGF3YWl0IHdyaXRlTG9nKHtcbiAgICAgIHN1YmplY3Q6IHRoaXMuX3N1YmplY3QsXG4gICAgICBsZXZlbCxcbiAgICAgIG1lc3NhZ2VzLFxuICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgIGxvZ2dpbmdDb25maWd1cmF0aW9uLFxuICAgICAgZGVidWdGbGFnOiB0aGlzLl9kZWJ1Z1xuICAgIH0pXG4gIH1cbn1cbiJdfQ==
447
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxtQkFBbUIsTUFBTSxvQ0FBb0MsQ0FBQTtBQUNwRSxPQUFPLGdCQUFnQixNQUFNLGlDQUFpQyxDQUFBO0FBQzlELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFBO0FBQy9ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLGFBQWEsTUFBTSw0QkFBNEIsQ0FBQTtBQUV0RDs7aUZBRWlGO0FBRWpGLE1BQU0sNkJBQTZCLEdBQUc7SUFDcEMsT0FBTyxFQUFFLElBQUk7SUFDYixJQUFJLEVBQUUsS0FBSztJQUNYOzs0QkFFd0I7SUFDeEIsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7Q0FDbEMsQ0FBQTtBQUVEOzt3QkFFd0I7QUFDeEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtBQUV6RTs7OztHQUlHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxHQUFHLFFBQVE7SUFDckMsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM5RCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNB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QTtJQUM5QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRO1FBQ3JCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQTtJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxRQUFRO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUE7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRO1FBQ3BCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUM7UUFDNUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDL0MsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLElBQUksMkJBQTJCLENBQUMsYUFBYSxDQUFDLENBQUE7UUFFckcsTUFBTSxRQUFRLENBQUM7WUFDYixPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdEIsS0FBSztZQUNMLFFBQVE7WUFDUixhQUFhO1lBQ2Isb0JBQW9CO1lBQ3BCLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTTtTQUN2QixDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IExvZ2dlckNvbnNvbGVPdXRwdXQgZnJvbSBcIi4vbG9nZ2VyL291dHB1dHMvY29uc29sZS1vdXRwdXQuanNcIlxuaW1wb3J0IExvZ2dlckZpbGVPdXRwdXQgZnJvbSBcIi4vbG9nZ2VyL291dHB1dHMvZmlsZS1vdXRwdXQuanNcIlxuaW1wb3J0IHtjdXJyZW50Q29uZmlndXJhdGlvbn0gZnJvbSBcIi4vY3VycmVudC1jb25maWd1cmF0aW9uLmpzXCJcbmltcG9ydCB7Zm9ybWF0VmFsdWV9IGZyb20gXCIuL3V0aWxzL2Zvcm1hdC12YWx1ZS5qc1wiXG5pbXBvcnQgcmVzdEFyZ3NFcnJvciBmcm9tIFwiLi91dGlscy9yZXN0LWFyZ3MtZXJyb3IuanNcIlxuXG4vKipcbiAqIExvZ0xldmVsIHR5cGUuXG4gKiBAdHlwZWRlZiB7XCJkZWJ1Zy1sb3ctbGV2ZWxcIiB8IFwiZGVidWdcIiB8IFwiaW5mb1wiIHwgXCJ3YXJuXCIgfCBcImVycm9yXCJ9IExvZ0xldmVsICovXG5cbmNvbnN0IERFRkFVTFRfTE9HR0lOR19DT05GSUdVUkFUSU9OID0ge1xuICBjb25zb2xlOiB0cnVlLFxuICBmaWxlOiBmYWxzZSxcbiAgLyoqXG4gICAqIFR5cGVzIHRoZSBmb2xsb3dpbmcgdmFsdWUuXG4gICAqIEB0eXBlIHtMb2dMZXZlbFtdfSAqL1xuICBsZXZlbHM6IFtcImluZm9cIiwgXCJ3YXJuXCIsIFwiZXJyb3JcIl1cbn1cblxuLyoqXG4gKiBMZXZlbCBvcmRlci5cbiAqIEB0eXBlIHtMb2dMZXZlbFtdfSAqL1xuY29uc3QgTEVWRUxfT1JERVIgPSBbXCJkZWJ1Zy1sb3ctbGV2ZWxcIiwgXCJkZWJ1Z1wiLCBcImluZm9cIiwgXCJ3YXJuXCIsIFwiZXJyb3JcIl1cblxuLyoqXG4gKiBSdW5zIGZ1bmN0aW9uIG9yIG1lc3NhZ2VzLlxuICogQHBhcmFtIHsuLi5SZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPnwoKCkgPT4gQXJyYXk8UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+KX0gbWVzc2FnZXMgLSBNZXNzYWdlcy5cbiAqIEByZXR1cm5zIHtBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IC0gRWl0aGVyIHRoZSBmdW5jdGlvbiByZXN1bHQgb3IgdGhlIG1lc3NhZ2VzXG4gKi9cbmZ1bmN0aW9uIGZ1bmN0aW9uT3JNZXNzYWdlcyguLi5tZXNzYWdlcykge1xuICBpZiAobWVzc2FnZXMubGVuZ3RoID09PSAxICYmIHR5cGVvZiBtZXNzYWdlc1swXSA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBjb25zdCByZXN1bHQgPSBtZXNzYWdlc1swXSgpXG4gICAgbWVzc2FnZXMgPSBBcnJheS5pc0FycmF5KHJlc3VsdCkgPyByZXN1bHQgOiBbcmVzdWx0XVxuICB9XG5cbiAgcmV0dXJuIG1lc3NhZ2VzXG59XG5cbi8qKlxuICogRm9ybWF0IGEgc2luZ2xlIHZhbHVlIGZvciBpbmNsdXNpb24gaW4gYSBsb2cgbWVzc2FnZS5cbiAqIEBwYXJhbSB7UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59IHZhbHVlIC0gVmFsdWUgdG8gZm9ybWF0LlxuICogQHJldHVybnMge3N0cmluZ30gLSBTdHJpbmcgcmVwcmVzZW50YXRpb24uXG4gKi9cbmZ1bmN0aW9uIGZvcm1hdFBhcnQodmFsdWUpIHtcbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICByZXR1cm4gYCR7dmFsdWUubWVzc2FnZX1cXG4ke3ZhbHVlLnN0YWNrfWBcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICByZXR1cm4gZm9ybWF0VmFsdWUodmFsdWUpXG4gIH1cblxuICByZXR1cm4gU3RyaW5nKHZhbHVlKVxufVxuXG4vKipcbiAqIEZvcm1hdHMgdGhlIHVzZXItc3VwcGxpZWQgbWVzc2FnZXMgaW50byBhIHNpbmdsZSBzdHJpbmcuXG4gKlxuICogSWYgdGhlIGZpcnN0IG1lc3NhZ2UgaXMgYSBzdHJpbmcgY29udGFpbmluZyBwcmludGYtc3R5bGUgZm9ybWF0XG4gKiBzcGVjaWZpZXJzIChgJXNgLCBgJWRgLCBgJWpgLCBgJW9gLCBgJU9gLCBvciBgJSVgKSwgdGhlIHJlbWFpbmluZ1xuICogbWVzc2FnZXMgYXJlIGludGVycG9sYXRlZCBpbnRvIGl0IGluIG9yZGVyIChsaWtlIGBjb25zb2xlLmxvZ2AgL1xuICogYHV0aWwuZm9ybWF0YCkuIEFueSBsZWZ0b3ZlciBtZXNzYWdlcyBhcmUgYXBwZW5kZWQgd2l0aCBhIHNwYWNlXG4gKiBzZXBhcmF0b3IuIE90aGVyd2lzZSwgYWxsIHBhcnRzIGFyZSBqb2luZWQgd2l0aCBzcGFjZXMuXG4gKiBAcGFyYW0ge0FycmF5PFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gbWVzc2FnZXMgLSBVc2VyLXN1cHBsaWVkIG1lc3NhZ2UgcGFydHMuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBmb3JtYXR0ZWQgdXNlciBtZXNzYWdlLlxuICovXG5mdW5jdGlvbiBmb3JtYXRVc2VyTWVzc2FnZXMobWVzc2FnZXMpIHtcbiAgaWYgKG1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFwiXCJcblxuICBjb25zdCBmaXJzdCA9IG1lc3NhZ2VzWzBdXG5cbiAgaWYgKHR5cGVvZiBmaXJzdCA9PT0gXCJzdHJpbmdcIiAmJiAvJVtzZGpvTyVdLy50ZXN0KGZpcnN0KSkge1xuICAgIGxldCBhcmdJbmRleCA9IDFcbiAgICBjb25zdCBmb3JtYXR0ZWQgPSBmaXJzdC5yZXBsYWNlKC8lW3Nkam9PJV0vZywgKG1hdGNoKSA9PiB7XG4gICAgICBpZiAobWF0Y2ggPT09IFwiJSVcIikgcmV0dXJuIFwiJVwiXG4gICAgICBpZiAoYXJnSW5kZXggPj0gbWVzc2FnZXMubGVuZ3RoKSByZXR1cm4gbWF0Y2hcblxuICAgICAgY29uc3QgdmFsdWUgPSBtZXNzYWdlc1thcmdJbmRleF1cblxuICAgICAgYXJnSW5kZXggKz0gMVxuXG4gICAgICBpZiAobWF0Y2ggPT09IFwiJWRcIikge1xuICAgICAgICAvLyBNYXRjaCB1dGlsLmZvcm1hdDogbmV2ZXIgdGhyb3cgZm9yIG5vbi1jb2VyY2libGUgdmFsdWVzIOKAlCB5aWVsZCBcIk5hTlwiIGluc3RlYWQuXG4gICAgICAgIC8vIE51bWJlcihTeW1ib2woKSkgdGhyb3dzLCBzbyBjYXRjaCBhbmQgZmFsbCBiYWNrLlxuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBTdHJpbmcoTnVtYmVyKHZhbHVlKSlcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgcmV0dXJuIFwiTmFOXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG1hdGNoID09PSBcIiVqXCIgfHwgbWF0Y2ggPT09IFwiJW9cIiB8fCBtYXRjaCA9PT0gXCIlT1wiKSByZXR1cm4gZm9ybWF0VmFsdWUodmFsdWUpXG5cbiAgICAgIHJldHVybiBmb3JtYXRQYXJ0KHZhbHVlKVxuICAgIH0pXG5cbiAgICBsZXQgbWVzc2FnZSA9IGZvcm1hdHRlZFxuXG4gICAgZm9yIChsZXQgaW5kZXggPSBhcmdJbmRleDsgaW5kZXggPCBtZXNzYWdlcy5sZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgIG1lc3NhZ2UgKz0gYCAke2Zvcm1hdFBhcnQobWVzc2FnZXNbaW5kZXhdKX1gXG4gICAgfVxuXG4gICAgcmV0dXJuIG1lc3NhZ2VcbiAgfVxuXG4gIGxldCBtZXNzYWdlID0gXCJcIlxuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtZXNzYWdlcy5sZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBpZiAoaW5kZXggPiAwKSBtZXNzYWdlICs9IFwiIFwiXG4gICAgbWVzc2FnZSArPSBmb3JtYXRQYXJ0KG1lc3NhZ2VzW2luZGV4XSlcbiAgfVxuXG4gIHJldHVybiBtZXNzYWdlXG59XG5cbi8qKlxuICogQ29udmVydHMgYSBsb2dnZXIgc3ViamVjdCBhbmQgbWVzc2FnZSBwYXJ0cyBpbnRvIGEgc2luZ2xlIGxvZyBsaW5lLlxuICogQHBhcmFtIHtzdHJpbmd9IHN1YmplY3QgLSBMb2dnZXIgc3ViamVjdCAvIGNhdGVnb3J5IHByZWZpeC5cbiAqIEBwYXJhbSB7Li4uUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59IG1lc3NhZ2VzIC0gVXNlci1zdXBwbGllZCBtZXNzYWdlIHBhcnRzIChzdXBwb3J0cyBwcmludGYtc3R5bGUgZm9ybWF0IHNwZWNpZmllcnMgb24gdGhlIGZpcnN0IHBhcnQpLlxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgZm9ybWF0dGVkIGxvZyBsaW5lLlxuICovXG5mdW5jdGlvbiBtZXNzYWdlc1RvTWVzc2FnZShzdWJqZWN0LCAuLi5tZXNzYWdlcykge1xuICBjb25zdCB1c2VyTWVzc2FnZSA9IGZvcm1hdFVzZXJNZXNzYWdlcyhtZXNzYWdlcylcblxuICBpZiAoIXN1YmplY3QpIHJldHVybiB1c2VyTWVzc2FnZVxuICBpZiAoIXVzZXJNZXNzYWdlKSByZXR1cm4gU3RyaW5nKHN1YmplY3QpXG5cbiAgcmV0dXJuIGAke3N1YmplY3R9ICR7dXNlck1lc3NhZ2V9YFxufVxuXG4vKipcbiAqIFJ1bnMgcmVzb2x2ZSBsb2dnaW5nIGNvbmZpZ3VyYXRpb24uXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSBjb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIHtSZXF1aXJlZDxQaWNrPGltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Mb2dnaW5nQ29uZmlndXJhdGlvbiwgXCJjb25zb2xlXCIgfCBcImZpbGVcIiB8IFwibGV2ZWxzXCI+PiAmIFBhcnRpYWw8UGljazxpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ0NvbmZpZ3VyYXRpb24sIFwiZmlsZVBhdGhcIiB8IFwib3V0cHV0c1wiPj59IC0gVGhlIGxvZ2dpbmcgY29uZmlndXJhdGlvbi5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUxvZ2dpbmdDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pIHtcbiAgY29uc3QgZGVidWdFbmFibGVkID0gY29uZmlndXJhdGlvbj8uZGVidWcgPT09IHRydWVcbiAgaWYgKGNvbmZpZ3VyYXRpb24gJiYgdHlwZW9mIGNvbmZpZ3VyYXRpb24uZ2V0TG9nZ2luZ0NvbmZpZ3VyYXRpb24gPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGNvbnN0IHJlc29sdmVkID0gY29uZmlndXJhdGlvbi5nZXRMb2dnaW5nQ29uZmlndXJhdGlvbigpXG5cbiAgICBpZiAoZGVidWdFbmFibGVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5yZXNvbHZlZCxcbiAgICAgICAgY29uc29sZTogdHJ1ZSxcbiAgICAgICAgbGV2ZWxzOiBMRVZFTF9PUkRFUlxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXNvbHZlZFxuICB9XG5cbiAgaWYgKGRlYnVnRW5hYmxlZCkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5ERUZBVUxUX0xPR0dJTkdfQ09ORklHVVJBVElPTixcbiAgICAgIGNvbnNvbGU6IHRydWUsXG4gICAgICBsZXZlbHM6IExFVkVMX09SREVSXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIERFRkFVTFRfTE9HR0lOR19DT05GSUdVUkFUSU9OXG59XG5cbi8qKlxuICogUnVucyBpcyBsZXZlbCBhbGxvd2VkLlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7TG9nTGV2ZWx9IGFyZ3MubGV2ZWwgLSBMZXZlbC5cbiAqIEBwYXJhbSB7TG9nTGV2ZWxbXX0gYXJncy5hbGxvd2VkTGV2ZWxzIC0gQWxsb3dlZCBsZXZlbHMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmRlYnVnRmxhZ10gLSBXaGV0aGVyIGRlYnVnIGZsYWcuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIGxldmVsIGFsbG93ZWQuXG4gKi9cbmZ1bmN0aW9uIGlzTGV2ZWxBbGxvd2VkKHtsZXZlbCwgYWxsb3dlZExldmVscywgZGVidWdGbGFnfSkge1xuICBpZiAoYWxsb3dlZExldmVscy5pbmNsdWRlcyhsZXZlbCkpIHJldHVybiB0cnVlXG5cbiAgaWYgKGRlYnVnRmxhZyAmJiBMRVZFTF9PUkRFUi5pbmRleE9mKGxldmVsKSA+PSBMRVZFTF9PUkRFUi5pbmRleE9mKFwiZGVidWdcIikpIHJldHVybiB0cnVlXG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qKlxuICogUnVucyByZXNvbHZlIGxvZ2dpbmcgb3V0cHV0cy5cbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Mb2dnaW5nQ29uZmlndXJhdGlvbn0gYXJncy5sb2dnaW5nQ29uZmlndXJhdGlvbiAtIExvZ2dpbmcgY29uZmlndXJhdGlvbi5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHQgfCB1bmRlZmluZWR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdPdXRwdXRDb25maWdbXX0gLSBMb2dnaW5nIG91dHB1dHMuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVMb2dnaW5nT3V0cHV0cyh7bG9nZ2luZ0NvbmZpZ3VyYXRpb24sIGNvbmZpZ3VyYXRpb259KSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGxvZ2dpbmdDb25maWd1cmF0aW9uLm91dHB1dHMpKSByZXR1cm4gbG9nZ2luZ0NvbmZpZ3VyYXRpb24ub3V0cHV0c1xuXG4gIGlmIChBcnJheS5pc0FycmF5KGxvZ2dpbmdDb25maWd1cmF0aW9uLmxvZ2dlcnMpKSB7XG4gICAgLyoqXG4gICAgICogTG9nZ2VyIG91dHB1dHMuXG4gICAgICogQHR5cGUge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Mb2dnaW5nT3V0cHV0Q29uZmlnW119ICovXG4gICAgY29uc3QgbG9nZ2VyT3V0cHV0cyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGxvZ2dlciBvZiBsb2dnaW5nQ29uZmlndXJhdGlvbi5sb2dnZXJzKSB7XG4gICAgICBpZiAoIWxvZ2dlcikgY29udGludWVcblxuICAgICAgY29uc3QgbG9nZ2VyQ29uZmlnID0gLyoqIEB0eXBlIHtSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPn0gKi8gKGxvZ2dlcilcblxuICAgICAgaWYgKHR5cGVvZiBsb2dnZXJDb25maWcudG9PdXRwdXRDb25maWcgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBsb2dnZXJPdXRwdXRzLnB1c2gobG9nZ2VyQ29uZmlnLnRvT3V0cHV0Q29uZmlnKHtjb25maWd1cmF0aW9ufSkpXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChsb2dnZXJDb25maWcub3V0cHV0ICYmIHR5cGVvZiBsb2dnZXJDb25maWcub3V0cHV0LndyaXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgbG9nZ2VyT3V0cHV0cy5wdXNoKHtcbiAgICAgICAgICBvdXRwdXQ6IGxvZ2dlckNvbmZpZy5vdXRwdXQsXG4gICAgICAgICAgbGV2ZWxzOiBsb2dnZXJDb25maWcubGV2ZWxzXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgbG9nZ2VyQ29uZmlnLndyaXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgbG9nZ2VyT3V0cHV0cy5wdXNoKHtcbiAgICAgICAgICBvdXRwdXQ6IGxvZ2dlckNvbmZpZyxcbiAgICAgICAgICBsZXZlbHM6IGxvZ2dlckNvbmZpZy5sZXZlbHNcbiAgICAgICAgfSlcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY29uc3QgbG9nZ2VyTmFtZSA9IGxvZ2dlckNvbmZpZz8uY29uc3RydWN0b3I/Lm5hbWUgfHwgXCJVbmtub3duTG9nZ2VyXCJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTG9nZ2VyIG11c3QgaW1wbGVtZW50IHRvT3V0cHV0Q29uZmlnIG9yIHdyaXRlOiAke2xvZ2dlck5hbWV9YClcbiAgICB9XG5cbiAgICByZXR1cm4gbG9nZ2VyT3V0cHV0c1xuICB9XG5cbiAgLyoqXG4gICAqIE91dHB1dHMuXG4gICAqIEB0eXBlIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ091dHB1dENvbmZpZ1tdfSAqL1xuICBjb25zdCBvdXRwdXRzID0gW11cbiAgaWYgKGxvZ2dpbmdDb25maWd1cmF0aW9uLmNvbnNvbGUgIT09IGZhbHNlKSB7XG4gICAgb3V0cHV0cy5wdXNoKHtcbiAgICAgIG91dHB1dDogbmV3IExvZ2dlckNvbnNvbGVPdXRwdXQoKSxcbiAgICAgIGxldmVsczogbG9nZ2luZ0NvbmZpZ3VyYXRpb24ubGV2ZWxzXG4gICAgfSlcbiAgfVxuXG4gIGlmIChsb2dnaW5nQ29uZmlndXJhdGlvbi5maWxlICE9PSBmYWxzZSAmJiBsb2dnaW5nQ29uZmlndXJhdGlvbi5maWxlUGF0aCkge1xuICAgIG91dHB1dHMucHVzaCh7XG4gICAgICBvdXRwdXQ6IG5ldyBMb2dnZXJGaWxlT3V0cHV0KHtcbiAgICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgICAgZ2V0Q29uZmlndXJhdGlvbjogKCkgPT4gY29uZmlndXJhdGlvbixcbiAgICAgICAgZmlsZVBhdGg6IGxvZ2dpbmdDb25maWd1cmF0aW9uLmZpbGVQYXRoXG4gICAgICB9KSxcbiAgICAgIGxldmVsczogbG9nZ2luZ0NvbmZpZ3VyYXRpb24ubGV2ZWxzXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBvdXRwdXRzXG59XG5cbi8qKlxuICogUnVucyBpcyBvdXRwdXQgbGV2ZWwgYWxsb3dlZC5cbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gKiBAcGFyYW0ge0xvZ0xldmVsfSBhcmdzLmxldmVsIC0gTGV2ZWwuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Mb2dnaW5nT3V0cHV0Q29uZmlnfSBhcmdzLm91dHB1dENvbmZpZyAtIE91dHB1dCBjb25maWd1cmF0aW9uLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ0NvbmZpZ3VyYXRpb259IGFyZ3MubG9nZ2luZ0NvbmZpZ3VyYXRpb24gLSBMb2dnaW5nIGNvbmZpZ3VyYXRpb24uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmRlYnVnRmxhZ10gLSBXaGV0aGVyIGRlYnVnIGZsYWcuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIG91dHB1dCBzaG91bGQgbG9nLlxuICovXG5mdW5jdGlvbiBpc091dHB1dExldmVsQWxsb3dlZCh7bGV2ZWwsIG91dHB1dENvbmZpZywgbG9nZ2luZ0NvbmZpZ3VyYXRpb24sIGRlYnVnRmxhZ30pIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkob3V0cHV0Q29uZmlnLmxldmVscykpIHtcbiAgICByZXR1cm4gaXNMZXZlbEFsbG93ZWQoe2xldmVsLCBhbGxvd2VkTGV2ZWxzOiBvdXRwdXRDb25maWcubGV2ZWxzLCBkZWJ1Z0ZsYWc6IGZhbHNlfSlcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KG91dHB1dENvbmZpZy5vdXRwdXQ/LmxldmVscykpIHtcbiAgICByZXR1cm4gaXNMZXZlbEFsbG93ZWQoe2xldmVsLCBhbGxvd2VkTGV2ZWxzOiBvdXRwdXRDb25maWcub3V0cHV0LmxldmVscywgZGVidWdGbGFnOiBmYWxzZX0pXG4gIH1cblxuICBjb25zdCBhbGxvd2VkTGV2ZWxzID0gbG9nZ2luZ0NvbmZpZ3VyYXRpb24ubGV2ZWxzIHx8IERFRkFVTFRfTE9HR0lOR19DT05GSUdVUkFUSU9OLmxldmVsc1xuXG4gIHJldHVybiBpc0xldmVsQWxsb3dlZCh7bGV2ZWwsIGFsbG93ZWRMZXZlbHMsIGRlYnVnRmxhZ30pXG59XG5cbi8qKlxuICogUnVucyBlbmFibGVkIG91dHB1dCBjb25maWdzLlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7TG9nTGV2ZWx9IGFyZ3MubGV2ZWwgLSBMZXZlbC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdPdXRwdXRDb25maWdbXX0gYXJncy5vdXRwdXRzIC0gT3V0cHV0IGNvbmZpZ3VyYXRpb25zLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ0NvbmZpZ3VyYXRpb259IGFyZ3MubG9nZ2luZ0NvbmZpZ3VyYXRpb24gLSBMb2dnaW5nIGNvbmZpZ3VyYXRpb24uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmRlYnVnRmxhZ10gLSBXaGV0aGVyIGRlYnVnIGZsYWcuXG4gKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdPdXRwdXRDb25maWdbXX0gLSBPdXRwdXRzIGVuYWJsZWQgZm9yIHRoZSBsZXZlbC5cbiAqL1xuZnVuY3Rpb24gZW5hYmxlZE91dHB1dENvbmZpZ3Moe2xldmVsLCBvdXRwdXRzLCBsb2dnaW5nQ29uZmlndXJhdGlvbiwgZGVidWdGbGFnfSkge1xuICByZXR1cm4gb3V0cHV0cy5maWx0ZXIoKG91dHB1dENvbmZpZykgPT4ge1xuICAgIGlmICghb3V0cHV0Q29uZmlnIHx8ICFvdXRwdXRDb25maWcub3V0cHV0IHx8IHR5cGVvZiBvdXRwdXRDb25maWcub3V0cHV0LndyaXRlICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBmYWxzZVxuXG4gICAgcmV0dXJuIGlzT3V0cHV0TGV2ZWxBbGxvd2VkKHtsZXZlbCwgb3V0cHV0Q29uZmlnLCBsb2dnaW5nQ29uZmlndXJhdGlvbiwgZGVidWdGbGFnfSlcbiAgfSlcbn1cblxuLyoqXG4gKiBSdW5zIHdyaXRlIGxvZy5cbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gYXJncy5zdWJqZWN0IC0gTG9nIHN1YmplY3QuXG4gKiBAcGFyYW0ge0xvZ0xldmVsfSBhcmdzLmxldmVsIC0gTGV2ZWwuXG4gKiBAcGFyYW0ge1BhcmFtZXRlcnM8dHlwZW9mIGZ1bmN0aW9uT3JNZXNzYWdlcz59IGFyZ3MubWVzc2FnZXMgLSBNZXNzYWdlcy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHQgfCB1bmRlZmluZWR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Mb2dnaW5nQ29uZmlndXJhdGlvbiB8IHVuZGVmaW5lZH0gYXJncy5sb2dnaW5nQ29uZmlndXJhdGlvbiAtIExvZ2dpbmcgY29uZmlndXJhdGlvbi5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FyZ3MuZGVidWdGbGFnXSAtIFdoZXRoZXIgZGVidWcgZmxhZy5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlTG9nKHtzdWJqZWN0LCBsZXZlbCwgbWVzc2FnZXMsIGNvbmZpZ3VyYXRpb24sIGxvZ2dpbmdDb25maWd1cmF0aW9uLCBkZWJ1Z0ZsYWd9KSB7XG4gIGNvbnN0IHJlc29sdmVkTG9nZ2luZ0NvbmZpZ3VyYXRpb24gPSBsb2dnaW5nQ29uZmlndXJhdGlvbiB8fCByZXNvbHZlTG9nZ2luZ0NvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbilcbiAgY29uc3Qgb3V0cHV0cyA9IHJlc29sdmVMb2dnaW5nT3V0cHV0cyh7bG9nZ2luZ0NvbmZpZ3VyYXRpb246IHJlc29sdmVkTG9nZ2luZ0NvbmZpZ3VyYXRpb24sIGNvbmZpZ3VyYXRpb259KVxuICBjb25zdCBlbmFibGVkT3V0cHV0cyA9IGVuYWJsZWRPdXRwdXRDb25maWdzKHtcbiAgICBsZXZlbCxcbiAgICBvdXRwdXRzLFxuICAgIGxvZ2dpbmdDb25maWd1cmF0aW9uOiByZXNvbHZlZExvZ2dpbmdDb25maWd1cmF0aW9uLFxuICAgIGRlYnVnRmxhZ1xuICB9KVxuXG4gIGlmIChlbmFibGVkT3V0cHV0cy5sZW5ndGggPT09IDApIHJldHVyblxuXG4gIGNvbnN0IHdyaXRlcyA9IFtdXG4gIC8qKlxuICAgKiBUeXBlcyB0aGUgZm9sbG93aW5nIHZhbHVlLlxuICAgKiBAdHlwZSB7QXJyYXk8UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+IHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgcmVzb2x2ZWRNZXNzYWdlc1xuICAvKipcbiAgICogVHlwZXMgdGhlIGZvbGxvd2luZyB2YWx1ZS5cbiAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IG1lc3NhZ2VcbiAgLyoqXG4gICAqIFBheWxvYWQuXG4gICAqIEB0eXBlIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ091dHB1dFBheWxvYWQgfCBudWxsfSAqL1xuICBsZXQgcGF5bG9hZCA9IG51bGxcblxuICBmb3IgKGNvbnN0IG91dHB1dENvbmZpZyBvZiBlbmFibGVkT3V0cHV0cykge1xuICAgIGlmICghcGF5bG9hZCkge1xuICAgICAgcmVzb2x2ZWRNZXNzYWdlcyA9IGZ1bmN0aW9uT3JNZXNzYWdlcyguLi5tZXNzYWdlcylcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlc1RvTWVzc2FnZShzdWJqZWN0LCAuLi5yZXNvbHZlZE1lc3NhZ2VzKVxuICAgICAgLy8gc3ViamVjdCBpcyB0aGUgZmlyc3QgcG9zaXRpb25hbCBhcmcsIHRoZW4gdGhlIHVzZXIgbWVzc2FnZXNcbiAgICAgIHBheWxvYWQgPSB7XG4gICAgICAgIGxldmVsLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBzdWJqZWN0LFxuICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZXMucHVzaChvdXRwdXRDb25maWcub3V0cHV0LndyaXRlKHBheWxvYWQpKVxuICB9XG5cbiAgaWYgKHdyaXRlcy5sZW5ndGggPT09IDEpIHtcbiAgICBhd2FpdCB3cml0ZXNbMF1cbiAgfSBlbHNlIGlmICh3cml0ZXMubGVuZ3RoID4gMSkge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHdyaXRlcylcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2dnZXIge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBvYmplY3R9IG9iamVjdCAtIE9iamVjdC5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gW2FyZ3MuY29uZmlndXJhdGlvbl0gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmRlYnVnXSAtIFdoZXRoZXIgZGVidWcuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkxvZ2dpbmdDb25maWd1cmF0aW9ufSBbYXJncy5sb2dnaW5nQ29uZmlndXJhdGlvbl0gLSBMb2dnaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvYmplY3QsIHtjb25maWd1cmF0aW9uLCBkZWJ1ZyA9IGZhbHNlLCBsb2dnaW5nQ29uZmlndXJhdGlvbiwgLi4ucmVzdEFyZ3N9ID0ge30pIHtcbiAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuXG4gICAgdGhpcy5fZGVidWcgPSBkZWJ1Z1xuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uXG4gICAgdGhpcy5fbG9nZ2luZ0NvbmZpZ3VyYXRpb24gPSBsb2dnaW5nQ29uZmlndXJhdGlvblxuXG4gICAgaWYgKHR5cGVvZiBvYmplY3QgPT0gXCJzdHJpbmdcIikge1xuICAgICAgdGhpcy5fc3ViamVjdCA9IG9iamVjdCB8fCBcIkVtcHR5U3RyaW5nXCJcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb2JqZWN0ID0gb2JqZWN0XG4gICAgICB0aGlzLl9zdWJqZWN0ID0gb2JqZWN0LmNvbnN0cnVjdG9yLm5hbWUgfHwgXCJVbmtub3duQ2xhc3NcIlxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IC0gVGhlIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBnZXRDb25maWd1cmF0aW9uKCkge1xuICAgIGlmICghdGhpcy5fY29uZmlndXJhdGlvbikge1xuICAgICAgY29uc3Qgb2JqZWN0V2l0aENvbmZpZyA9IC8qKiBAdHlwZSB7e2NvbmZpZ3VyYXRpb24/OiBpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH19ICovICh0aGlzLl9vYmplY3QpXG4gICAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gb2JqZWN0V2l0aENvbmZpZz8uY29uZmlndXJhdGlvbiB8fCBjdXJyZW50Q29uZmlndXJhdGlvbigpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ3VyYXRpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHNhZmUgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSAtIFRoZSBzYWZlIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBfc2FmZUNvbmZpZ3VyYXRpb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLmdldENvbmZpZ3VyYXRpb24oKVxuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGlzIGxldmVsIGVuYWJsZWQuXG4gICAqIEBwYXJhbSB7TG9nTGV2ZWx9IGxldmVsIC0gTGV2ZWwuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgYW55IGNvbmZpZ3VyZWQgb3V0cHV0IGVtaXRzIHRoaXMgbGV2ZWwuXG4gICAqL1xuICBpc0xldmVsRW5hYmxlZChsZXZlbCkge1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB0aGlzLl9zYWZlQ29uZmlndXJhdGlvbigpXG4gICAgY29uc3QgbG9nZ2luZ0NvbmZpZ3VyYXRpb24gPSB0aGlzLl9sb2dnaW5nQ29uZmlndXJhdGlvbiB8fCByZXNvbHZlTG9nZ2luZ0NvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbilcbiAgICBjb25zdCBvdXRwdXRzID0gcmVzb2x2ZUxvZ2dpbmdPdXRwdXRzKHtsb2dnaW5nQ29uZmlndXJhdGlvbiwgY29uZmlndXJhdGlvbn0pXG5cbiAgICByZXR1cm4gZW5hYmxlZE91dHB1dENvbmZpZ3Moe1xuICAgICAgbGV2ZWwsXG4gICAgICBvdXRwdXRzLFxuICAgICAgbG9nZ2luZ0NvbmZpZ3VyYXRpb24sXG4gICAgICBkZWJ1Z0ZsYWc6IHRoaXMuX2RlYnVnXG4gICAgfSkubGVuZ3RoID4gMFxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZGVidWcuXG4gICAqIEBwYXJhbSB7QXJyYXk8UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+fSBtZXNzYWdlcyAtIE1lc3NhZ2VzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgZGVidWcoLi4ubWVzc2FnZXMpIHtcbiAgICBhd2FpdCB0aGlzLl93cml0ZSh7bGV2ZWw6IFwiZGVidWdcIiwgbWVzc2FnZXN9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgaW5mby5cbiAgICogQHBhcmFtIHtBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IG1lc3NhZ2VzIC0gTWVzc2FnZXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBpbmZvKC4uLm1lc3NhZ2VzKSB7XG4gICAgYXdhaXQgdGhpcy5fd3JpdGUoe2xldmVsOiBcImluZm9cIiwgbWVzc2FnZXN9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZGVidWcgbG93IGxldmVsLlxuICAgKiBAcGFyYW0ge0FycmF5PFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gbWVzc2FnZXMgLSBNZXNzYWdlcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIGRlYnVnTG93TGV2ZWwoLi4ubWVzc2FnZXMpIHtcbiAgICBhd2FpdCB0aGlzLl93cml0ZSh7bGV2ZWw6IFwiZGVidWctbG93LWxldmVsXCIsIG1lc3NhZ2VzfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGxvZy5cbiAgICogQHBhcmFtIHtBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IG1lc3NhZ2VzIC0gTWVzc2FnZXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBsb2coLi4ubWVzc2FnZXMpIHtcbiAgICBhd2FpdCB0aGlzLl93cml0ZSh7bGV2ZWw6IFwiaW5mb1wiLCBtZXNzYWdlc30pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBlcnJvci5cbiAgICogQHBhcmFtIHtBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IG1lc3NhZ2VzIC0gTWVzc2FnZXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBlcnJvciguLi5tZXNzYWdlcykge1xuICAgIGF3YWl0IHRoaXMuX3dyaXRlKHtsZXZlbDogXCJlcnJvclwiLCBtZXNzYWdlc30pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzZXQgZGVidWcuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gbmV3VmFsdWUgLSBOZXcgdmFsdWUuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNldERlYnVnKG5ld1ZhbHVlKSB7XG4gICAgdGhpcy5fZGVidWcgPSBuZXdWYWx1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgd2Fybi5cbiAgICogQHR5cGUgeyguLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBmdW5jdGlvbk9yTWVzc2FnZXM+KSA9PiBQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgd2FybiguLi5tZXNzYWdlcykge1xuICAgIGF3YWl0IHRoaXMuX3dyaXRlKHtsZXZlbDogXCJ3YXJuXCIsIG1lc3NhZ2VzfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHdyaXRlLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge0xvZ0xldmVsfSBhcmdzLmxldmVsIC0gTGV2ZWwuXG4gICAqIEBwYXJhbSB7UGFyYW1ldGVyczx0eXBlb2YgZnVuY3Rpb25Pck1lc3NhZ2VzPn0gYXJncy5tZXNzYWdlcyAtIE1lc3NhZ2VzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgX3dyaXRlKHtsZXZlbCwgbWVzc2FnZXN9KSB7XG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHRoaXMuX3NhZmVDb25maWd1cmF0aW9uKClcbiAgICBjb25zdCBsb2dnaW5nQ29uZmlndXJhdGlvbiA9IHRoaXMuX2xvZ2dpbmdDb25maWd1cmF0aW9uIHx8IHJlc29sdmVMb2dnaW5nQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKVxuXG4gICAgYXdhaXQgd3JpdGVMb2coe1xuICAgICAgc3ViamVjdDogdGhpcy5fc3ViamVjdCxcbiAgICAgIGxldmVsLFxuICAgICAgbWVzc2FnZXMsXG4gICAgICBjb25maWd1cmF0aW9uLFxuICAgICAgbG9nZ2luZ0NvbmZpZ3VyYXRpb24sXG4gICAgICBkZWJ1Z0ZsYWc6IHRoaXMuX2RlYnVnXG4gICAgfSlcbiAgfVxufVxuIl19
@@ -1,7 +1,13 @@
1
+ export type SmtpConnectionOptions = {
2
+ auth?: Record<string, ReturnType<typeof JSON.parse>>;
3
+ [key: string]: ReturnType<typeof JSON.parse>;
4
+ };
1
5
  /**
2
6
  * SMTP mailer backend using smtp-connection.
3
7
  */
4
8
  export default class SmtpMailerBackend {
9
+ connectionOptions: SmtpConnectionOptions;
10
+ defaultFrom: string | undefined;
5
11
  /**
6
12
  * Runs constructor.
7
13
  * @param {object} args - Constructor args.
@@ -10,10 +16,8 @@ export default class SmtpMailerBackend {
10
16
  */
11
17
  constructor({ connectionOptions, defaultFrom, ...restArgs }: {
12
18
  connectionOptions: SmtpConnectionOptions;
13
- defaultFrom?: string | undefined;
19
+ defaultFrom?: string;
14
20
  });
15
- connectionOptions: SmtpConnectionOptions;
16
- defaultFrom: string | undefined;
17
21
  /**
18
22
  * Runs deliver.
19
23
  * @param {object} args - Delivery args.
@@ -23,14 +27,7 @@ export default class SmtpMailerBackend {
23
27
  */
24
28
  deliver({ payload, configuration: _configuration, ...restArgs }: {
25
29
  payload: import("../index.js").MailerDeliveryPayload;
26
- configuration?: import("../../configuration.js").default | undefined;
30
+ configuration?: import("../../configuration.js").default;
27
31
  }): Promise<void>;
28
32
  }
29
- /**
30
- * Defines this typedef.
31
- */
32
- export type SmtpConnectionOptions = {
33
- auth?: Record<string, unknown>;
34
- [key: string]: unknown;
35
- };
36
33
  //# sourceMappingURL=smtp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"smtp.d.ts","sourceRoot":"","sources":["../../../../src/mailer/backends/smtp.js"],"names":[],"mappings":"AA0CA;;GAEG;AACH;IACE;;;;;OAKG;IACH,6DAHG;QAAoC,iBAAiB,EAA7C,qBAAqB;QACP,WAAW;KACnC,EAUA;IAFC,yCAA0C;IAC1C,gCAA8B;IAGhC;;;;;;OAMG;IACH,iEAJG;QAA0D,OAAO,EAAzD,OAAO,aAAa,EAAE,qBAAqB;QACK,aAAa;KACrE,GAAU,OAAO,CAAC,IAAI,CAAC,CA2HzB;CACF;;;;oCA1LY;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAC,CAAA;CAAC"}
1
+ {"version":3,"file":"smtp.d.ts","sourceRoot":"","sources":["../../../../src/mailer/backends/smtp.js"],"names":[],"mappings":"AAMG,YAAgH,qBAAqB,GAA3H;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;CAAC,CAAuB;AAoCxI;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAc7B,iBAAiB;IACjB,WAAW;IAdlB;;;;;OAKG;IACH,YAAY,EAAC,iBAAiB,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAC,EAHtD;QAAoC,iBAAiB,EAA7C,qBAAqB,CAC7B;QAAsB,WAAW,AAAjC,CACF,EADU,MAAM,CAChB;KACwD,EASxD;IAED;;;;;;OAMG;IACG,OAAO,CAAC,EAAC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,QAAQ,EAAC,EAJhE;QAA0D,OAAO,EAAzD,OAAO,aAAa,EAAE,qBAAqB,CACnD;QAAwD,aAAa,AAArE,CACA,EADQ,OAAO,wBAAwB,EAAE,OAAO,CAChD;KAEgE,GAFtD,OAAO,CAAC,IAAI,CAAC,CA2HzB;CACF"}