velocious 1.0.428 → 1.0.430

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 (933) hide show
  1. package/README.md +2 -0
  2. package/build/src/application.d.ts +96 -9
  3. package/build/src/application.d.ts.map +1 -1
  4. package/build/src/application.js +127 -28
  5. package/build/src/authorization/ability.d.ts +72 -31
  6. package/build/src/authorization/ability.d.ts.map +1 -1
  7. package/build/src/authorization/ability.js +59 -22
  8. package/build/src/authorization/base-resource.d.ts +47 -20
  9. package/build/src/authorization/base-resource.d.ts.map +1 -1
  10. package/build/src/authorization/base-resource.js +43 -14
  11. package/build/src/background-jobs/client.d.ts +4 -2
  12. package/build/src/background-jobs/client.d.ts.map +1 -1
  13. package/build/src/background-jobs/client.js +4 -2
  14. package/build/src/background-jobs/cron-expression.d.ts +9 -5
  15. package/build/src/background-jobs/cron-expression.d.ts.map +1 -1
  16. package/build/src/background-jobs/cron-expression.js +16 -6
  17. package/build/src/background-jobs/forked-runner-child.js +12 -5
  18. package/build/src/background-jobs/job-registry.d.ts +7 -1
  19. package/build/src/background-jobs/job-registry.d.ts.map +1 -1
  20. package/build/src/background-jobs/job-registry.js +8 -2
  21. package/build/src/background-jobs/job-runner.d.ts +1 -0
  22. package/build/src/background-jobs/job-runner.d.ts.map +1 -1
  23. package/build/src/background-jobs/job-runner.js +8 -3
  24. package/build/src/background-jobs/job.d.ts +12 -8
  25. package/build/src/background-jobs/job.d.ts.map +1 -1
  26. package/build/src/background-jobs/job.js +12 -6
  27. package/build/src/background-jobs/json-socket.d.ts +17 -5
  28. package/build/src/background-jobs/json-socket.d.ts.map +1 -1
  29. package/build/src/background-jobs/json-socket.js +18 -6
  30. package/build/src/background-jobs/main.d.ts +118 -32
  31. package/build/src/background-jobs/main.d.ts.map +1 -1
  32. package/build/src/background-jobs/main.js +123 -35
  33. package/build/src/background-jobs/normalize-error.d.ts +2 -1
  34. package/build/src/background-jobs/normalize-error.d.ts.map +1 -1
  35. package/build/src/background-jobs/normalize-error.js +5 -3
  36. package/build/src/background-jobs/scheduler.d.ts +31 -10
  37. package/build/src/background-jobs/scheduler.d.ts.map +1 -1
  38. package/build/src/background-jobs/scheduler.js +33 -11
  39. package/build/src/background-jobs/socket-request.d.ts +2 -0
  40. package/build/src/background-jobs/socket-request.d.ts.map +1 -1
  41. package/build/src/background-jobs/socket-request.js +11 -3
  42. package/build/src/background-jobs/status-reporter.d.ts +5 -2
  43. package/build/src/background-jobs/status-reporter.d.ts.map +1 -1
  44. package/build/src/background-jobs/status-reporter.js +6 -3
  45. package/build/src/background-jobs/store.d.ts +57 -19
  46. package/build/src/background-jobs/store.d.ts.map +1 -1
  47. package/build/src/background-jobs/store.js +70 -20
  48. package/build/src/background-jobs/types.d.ts +7 -7
  49. package/build/src/background-jobs/types.d.ts.map +1 -1
  50. package/build/src/background-jobs/types.js +6 -6
  51. package/build/src/background-jobs/web/authorization.d.ts.map +1 -1
  52. package/build/src/background-jobs/web/authorization.js +3 -1
  53. package/build/src/background-jobs/web/controller.d.ts +40 -14
  54. package/build/src/background-jobs/web/controller.d.ts.map +1 -1
  55. package/build/src/background-jobs/web/controller.js +46 -15
  56. package/build/src/background-jobs/web/registry.d.ts +5 -0
  57. package/build/src/background-jobs/web/registry.d.ts.map +1 -1
  58. package/build/src/background-jobs/web/registry.js +4 -1
  59. package/build/src/background-jobs/worker.d.ts +41 -8
  60. package/build/src/background-jobs/worker.d.ts.map +1 -1
  61. package/build/src/background-jobs/worker.js +64 -16
  62. package/build/src/beacon/client.d.ts +39 -12
  63. package/build/src/beacon/client.d.ts.map +1 -1
  64. package/build/src/beacon/client.js +45 -15
  65. package/build/src/beacon/in-process-broker.d.ts +4 -0
  66. package/build/src/beacon/in-process-broker.d.ts.map +1 -1
  67. package/build/src/beacon/in-process-broker.js +8 -3
  68. package/build/src/beacon/in-process-client.d.ts +28 -9
  69. package/build/src/beacon/in-process-client.d.ts.map +1 -1
  70. package/build/src/beacon/in-process-client.js +27 -9
  71. package/build/src/beacon/server.d.ts +13 -2
  72. package/build/src/beacon/server.d.ts.map +1 -1
  73. package/build/src/beacon/server.js +21 -5
  74. package/build/src/beacon/types.d.ts +3 -3
  75. package/build/src/beacon/types.d.ts.map +1 -1
  76. package/build/src/beacon/types.js +2 -2
  77. package/build/src/cli/base-command.d.ts +18 -4
  78. package/build/src/cli/base-command.d.ts.map +1 -1
  79. package/build/src/cli/base-command.js +15 -4
  80. package/build/src/cli/browser-cli.d.ts +3 -0
  81. package/build/src/cli/browser-cli.d.ts.map +1 -1
  82. package/build/src/cli/browser-cli.js +7 -2
  83. package/build/src/cli/commands/background-jobs-main.d.ts +0 -1
  84. package/build/src/cli/commands/background-jobs-main.d.ts.map +1 -1
  85. package/build/src/cli/commands/background-jobs-runner.d.ts +0 -1
  86. package/build/src/cli/commands/background-jobs-runner.d.ts.map +1 -1
  87. package/build/src/cli/commands/background-jobs-worker.d.ts +0 -1
  88. package/build/src/cli/commands/background-jobs-worker.d.ts.map +1 -1
  89. package/build/src/cli/commands/beacon.d.ts +0 -1
  90. package/build/src/cli/commands/beacon.d.ts.map +1 -1
  91. package/build/src/cli/commands/console.d.ts +0 -2
  92. package/build/src/cli/commands/console.d.ts.map +1 -1
  93. package/build/src/cli/commands/console.js +5 -2
  94. package/build/src/cli/commands/db/base-command.d.ts +11 -2
  95. package/build/src/cli/commands/db/base-command.d.ts.map +1 -1
  96. package/build/src/cli/commands/db/base-command.js +12 -3
  97. package/build/src/cli/commands/db/create.d.ts +3 -0
  98. package/build/src/cli/commands/db/create.d.ts.map +1 -1
  99. package/build/src/cli/commands/db/create.js +4 -1
  100. package/build/src/cli/commands/db/drop.d.ts +3 -0
  101. package/build/src/cli/commands/db/drop.d.ts.map +1 -1
  102. package/build/src/cli/commands/db/drop.js +4 -1
  103. package/build/src/cli/commands/db/schema/dump.d.ts +0 -2
  104. package/build/src/cli/commands/db/schema/dump.d.ts.map +1 -1
  105. package/build/src/cli/commands/db/schema/dump.js +5 -2
  106. package/build/src/cli/commands/db/schema/load.d.ts +0 -2
  107. package/build/src/cli/commands/db/schema/load.d.ts.map +1 -1
  108. package/build/src/cli/commands/db/schema/load.js +5 -2
  109. package/build/src/cli/commands/db/seed.d.ts +0 -2
  110. package/build/src/cli/commands/db/seed.d.ts.map +1 -1
  111. package/build/src/cli/commands/db/seed.js +5 -2
  112. package/build/src/cli/commands/db/tenants/check.d.ts +4 -1
  113. package/build/src/cli/commands/db/tenants/check.d.ts.map +1 -1
  114. package/build/src/cli/commands/db/tenants/check.js +5 -2
  115. package/build/src/cli/commands/db/tenants/create.d.ts +4 -1
  116. package/build/src/cli/commands/db/tenants/create.d.ts.map +1 -1
  117. package/build/src/cli/commands/db/tenants/create.js +5 -2
  118. package/build/src/cli/commands/db/tenants/migrate.d.ts +4 -1
  119. package/build/src/cli/commands/db/tenants/migrate.d.ts.map +1 -1
  120. package/build/src/cli/commands/db/tenants/migrate.js +5 -2
  121. package/build/src/cli/commands/destroy/migration.d.ts +0 -1
  122. package/build/src/cli/commands/destroy/migration.d.ts.map +1 -1
  123. package/build/src/cli/commands/generate/base-models.d.ts +0 -1
  124. package/build/src/cli/commands/generate/base-models.d.ts.map +1 -1
  125. package/build/src/cli/commands/generate/frontend-models.d.ts +0 -2
  126. package/build/src/cli/commands/generate/frontend-models.d.ts.map +1 -1
  127. package/build/src/cli/commands/generate/frontend-models.js +5 -2
  128. package/build/src/cli/commands/generate/migration.d.ts +0 -1
  129. package/build/src/cli/commands/generate/migration.d.ts.map +1 -1
  130. package/build/src/cli/commands/generate/model.d.ts +0 -1
  131. package/build/src/cli/commands/generate/model.d.ts.map +1 -1
  132. package/build/src/cli/commands/init.d.ts +0 -1
  133. package/build/src/cli/commands/init.d.ts.map +1 -1
  134. package/build/src/cli/commands/routes.d.ts +0 -1
  135. package/build/src/cli/commands/routes.d.ts.map +1 -1
  136. package/build/src/cli/commands/run-script.d.ts +0 -2
  137. package/build/src/cli/commands/run-script.d.ts.map +1 -1
  138. package/build/src/cli/commands/run-script.js +5 -2
  139. package/build/src/cli/commands/runner.d.ts +0 -2
  140. package/build/src/cli/commands/runner.d.ts.map +1 -1
  141. package/build/src/cli/commands/runner.js +5 -2
  142. package/build/src/cli/commands/server.d.ts +0 -1
  143. package/build/src/cli/commands/server.d.ts.map +1 -1
  144. package/build/src/cli/commands/test.d.ts +0 -1
  145. package/build/src/cli/commands/test.d.ts.map +1 -1
  146. package/build/src/cli/index.d.ts +18 -5
  147. package/build/src/cli/index.d.ts.map +1 -1
  148. package/build/src/cli/index.js +25 -8
  149. package/build/src/cli/tenant-database-command-helper.d.ts +24 -9
  150. package/build/src/cli/tenant-database-command-helper.d.ts.map +1 -1
  151. package/build/src/cli/tenant-database-command-helper.js +30 -11
  152. package/build/src/cli/use-browser-cli.d.ts +1 -0
  153. package/build/src/cli/use-browser-cli.d.ts.map +1 -1
  154. package/build/src/cli/use-browser-cli.js +5 -2
  155. package/build/src/configuration-resolver.d.ts +1 -0
  156. package/build/src/configuration-resolver.d.ts.map +1 -1
  157. package/build/src/configuration-resolver.js +2 -1
  158. package/build/src/configuration-types.d.ts +44 -44
  159. package/build/src/configuration-types.d.ts.map +1 -1
  160. package/build/src/configuration-types.js +27 -27
  161. package/build/src/configuration.d.ts +350 -114
  162. package/build/src/configuration.d.ts.map +1 -1
  163. package/build/src/configuration.js +416 -128
  164. package/build/src/controller.d.ts +67 -18
  165. package/build/src/controller.d.ts.map +1 -1
  166. package/build/src/controller.js +88 -23
  167. package/build/src/current-configuration.d.ts +2 -0
  168. package/build/src/current-configuration.d.ts.map +1 -1
  169. package/build/src/current-configuration.js +6 -2
  170. package/build/src/current.d.ts +16 -9
  171. package/build/src/current.d.ts.map +1 -1
  172. package/build/src/current.js +15 -8
  173. package/build/src/database/annotations-async-hooks.js +13 -6
  174. package/build/src/database/annotations.d.ts +7 -1
  175. package/build/src/database/annotations.d.ts.map +1 -1
  176. package/build/src/database/annotations.js +12 -5
  177. package/build/src/database/drivers/base-column.d.ts +21 -3
  178. package/build/src/database/drivers/base-column.d.ts.map +1 -1
  179. package/build/src/database/drivers/base-column.js +21 -3
  180. package/build/src/database/drivers/base-columns-index.d.ts +9 -0
  181. package/build/src/database/drivers/base-columns-index.d.ts.map +1 -1
  182. package/build/src/database/drivers/base-columns-index.js +10 -1
  183. package/build/src/database/drivers/base-foreign-key.d.ts +15 -3
  184. package/build/src/database/drivers/base-foreign-key.d.ts.map +1 -1
  185. package/build/src/database/drivers/base-foreign-key.js +15 -3
  186. package/build/src/database/drivers/base-table.d.ts +16 -3
  187. package/build/src/database/drivers/base-table.d.ts.map +1 -1
  188. package/build/src/database/drivers/base-table.js +16 -3
  189. package/build/src/database/drivers/base.d.ts +174 -37
  190. package/build/src/database/drivers/base.d.ts.map +1 -1
  191. package/build/src/database/drivers/base.js +156 -40
  192. package/build/src/database/drivers/mssql/column.d.ts +3 -2
  193. package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
  194. package/build/src/database/drivers/mssql/column.js +3 -2
  195. package/build/src/database/drivers/mssql/index.d.ts +5 -6
  196. package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
  197. package/build/src/database/drivers/mssql/index.js +38 -7
  198. package/build/src/database/drivers/mssql/options.d.ts +1 -0
  199. package/build/src/database/drivers/mssql/options.d.ts.map +1 -1
  200. package/build/src/database/drivers/mssql/options.js +8 -2
  201. package/build/src/database/drivers/mssql/sql/create-database.d.ts +1 -0
  202. package/build/src/database/drivers/mssql/sql/create-database.d.ts.map +1 -1
  203. package/build/src/database/drivers/mssql/sql/create-database.js +2 -1
  204. package/build/src/database/drivers/mssql/sql/drop-database.d.ts.map +1 -1
  205. package/build/src/database/drivers/mssql/sql/drop-database.js +2 -1
  206. package/build/src/database/drivers/mssql/structure-sql.d.ts +5 -2
  207. package/build/src/database/drivers/mssql/structure-sql.d.ts.map +1 -1
  208. package/build/src/database/drivers/mssql/structure-sql.js +5 -2
  209. package/build/src/database/drivers/mssql/table.d.ts +1 -0
  210. package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
  211. package/build/src/database/drivers/mssql/table.js +9 -4
  212. package/build/src/database/drivers/mysql/column.d.ts +3 -2
  213. package/build/src/database/drivers/mysql/column.d.ts.map +1 -1
  214. package/build/src/database/drivers/mysql/column.js +4 -3
  215. package/build/src/database/drivers/mysql/index.d.ts +11 -3
  216. package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
  217. package/build/src/database/drivers/mysql/index.js +54 -10
  218. package/build/src/database/drivers/mysql/options.d.ts +1 -0
  219. package/build/src/database/drivers/mysql/options.d.ts.map +1 -1
  220. package/build/src/database/drivers/mysql/options.js +4 -2
  221. package/build/src/database/drivers/mysql/query.d.ts +3 -2
  222. package/build/src/database/drivers/mysql/query.d.ts.map +1 -1
  223. package/build/src/database/drivers/mysql/query.js +6 -3
  224. package/build/src/database/drivers/mysql/sql/create-database.d.ts.map +1 -1
  225. package/build/src/database/drivers/mysql/sql/create-database.js +3 -1
  226. package/build/src/database/drivers/mysql/structure-sql.d.ts +7 -2
  227. package/build/src/database/drivers/mysql/structure-sql.d.ts.map +1 -1
  228. package/build/src/database/drivers/mysql/structure-sql.js +7 -2
  229. package/build/src/database/drivers/mysql/table.d.ts +1 -0
  230. package/build/src/database/drivers/mysql/table.d.ts.map +1 -1
  231. package/build/src/database/drivers/mysql/table.js +7 -3
  232. package/build/src/database/drivers/pgsql/column.d.ts +3 -2
  233. package/build/src/database/drivers/pgsql/column.d.ts.map +1 -1
  234. package/build/src/database/drivers/pgsql/column.js +3 -2
  235. package/build/src/database/drivers/pgsql/index.d.ts +1 -1
  236. package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
  237. package/build/src/database/drivers/pgsql/index.js +36 -11
  238. package/build/src/database/drivers/pgsql/options.d.ts +2 -0
  239. package/build/src/database/drivers/pgsql/options.d.ts.map +1 -1
  240. package/build/src/database/drivers/pgsql/options.js +3 -1
  241. package/build/src/database/drivers/pgsql/structure-sql.d.ts +5 -2
  242. package/build/src/database/drivers/pgsql/structure-sql.d.ts.map +1 -1
  243. package/build/src/database/drivers/pgsql/structure-sql.js +5 -2
  244. package/build/src/database/drivers/pgsql/table.d.ts +1 -0
  245. package/build/src/database/drivers/pgsql/table.d.ts.map +1 -1
  246. package/build/src/database/drivers/pgsql/table.js +6 -2
  247. package/build/src/database/drivers/sqlite/base.d.ts +15 -5
  248. package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
  249. package/build/src/database/drivers/sqlite/base.js +79 -27
  250. package/build/src/database/drivers/sqlite/column.d.ts +3 -2
  251. package/build/src/database/drivers/sqlite/column.d.ts.map +1 -1
  252. package/build/src/database/drivers/sqlite/column.js +3 -2
  253. package/build/src/database/drivers/sqlite/connection-sql-js.d.ts +4 -2
  254. package/build/src/database/drivers/sqlite/connection-sql-js.d.ts.map +1 -1
  255. package/build/src/database/drivers/sqlite/connection-sql-js.js +4 -2
  256. package/build/src/database/drivers/sqlite/foreign-key.d.ts +3 -2
  257. package/build/src/database/drivers/sqlite/foreign-key.d.ts.map +1 -1
  258. package/build/src/database/drivers/sqlite/foreign-key.js +3 -2
  259. package/build/src/database/drivers/sqlite/index.d.ts +18 -5
  260. package/build/src/database/drivers/sqlite/index.d.ts.map +1 -1
  261. package/build/src/database/drivers/sqlite/index.js +40 -16
  262. package/build/src/database/drivers/sqlite/index.native.d.ts +1 -1
  263. package/build/src/database/drivers/sqlite/index.native.d.ts.map +1 -1
  264. package/build/src/database/drivers/sqlite/index.native.js +6 -3
  265. package/build/src/database/drivers/sqlite/index.web.d.ts +16 -4
  266. package/build/src/database/drivers/sqlite/index.web.d.ts.map +1 -1
  267. package/build/src/database/drivers/sqlite/index.web.js +17 -7
  268. package/build/src/database/drivers/sqlite/options.d.ts +2 -0
  269. package/build/src/database/drivers/sqlite/options.d.ts.map +1 -1
  270. package/build/src/database/drivers/sqlite/options.js +3 -1
  271. package/build/src/database/drivers/sqlite/query.d.ts +3 -2
  272. package/build/src/database/drivers/sqlite/query.d.ts.map +1 -1
  273. package/build/src/database/drivers/sqlite/query.js +6 -3
  274. package/build/src/database/drivers/sqlite/query.native.d.ts +2 -2
  275. package/build/src/database/drivers/sqlite/query.native.d.ts.map +1 -1
  276. package/build/src/database/drivers/sqlite/query.native.js +3 -3
  277. package/build/src/database/drivers/sqlite/query.web.d.ts +3 -2
  278. package/build/src/database/drivers/sqlite/query.web.d.ts.map +1 -1
  279. package/build/src/database/drivers/sqlite/query.web.js +6 -3
  280. package/build/src/database/drivers/sqlite/sql/alter-table.d.ts.map +1 -1
  281. package/build/src/database/drivers/sqlite/sql/alter-table.js +9 -3
  282. package/build/src/database/drivers/sqlite/structure-sql.d.ts +2 -0
  283. package/build/src/database/drivers/sqlite/structure-sql.d.ts.map +1 -1
  284. package/build/src/database/drivers/sqlite/structure-sql.js +3 -1
  285. package/build/src/database/drivers/sqlite/table-rebuilder.d.ts +2 -0
  286. package/build/src/database/drivers/sqlite/table-rebuilder.d.ts.map +1 -1
  287. package/build/src/database/drivers/sqlite/table-rebuilder.js +3 -1
  288. package/build/src/database/drivers/sqlite/table.d.ts +2 -0
  289. package/build/src/database/drivers/sqlite/table.d.ts.map +1 -1
  290. package/build/src/database/drivers/sqlite/table.js +14 -4
  291. package/build/src/database/drivers/structure-sql/utils.d.ts +2 -0
  292. package/build/src/database/drivers/structure-sql/utils.d.ts.map +1 -1
  293. package/build/src/database/drivers/structure-sql/utils.js +3 -1
  294. package/build/src/database/handler.d.ts +1 -0
  295. package/build/src/database/handler.d.ts.map +1 -1
  296. package/build/src/database/handler.js +2 -1
  297. package/build/src/database/initializer-from-require-context.d.ts +8 -0
  298. package/build/src/database/initializer-from-require-context.d.ts.map +1 -1
  299. package/build/src/database/initializer-from-require-context.js +4 -1
  300. package/build/src/database/migration/index.d.ts +40 -5
  301. package/build/src/database/migration/index.d.ts.map +1 -1
  302. package/build/src/database/migration/index.js +34 -6
  303. package/build/src/database/migrator/files-finder.d.ts +2 -0
  304. package/build/src/database/migrator/files-finder.d.ts.map +1 -1
  305. package/build/src/database/migrator/files-finder.js +6 -2
  306. package/build/src/database/migrator.d.ts +29 -4
  307. package/build/src/database/migrator.d.ts.map +1 -1
  308. package/build/src/database/migrator.js +45 -10
  309. package/build/src/database/pool/async-tracked-multi-connection.d.ts +125 -31
  310. package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
  311. package/build/src/database/pool/async-tracked-multi-connection.js +189 -52
  312. package/build/src/database/pool/base-methods-forward.d.ts +1 -0
  313. package/build/src/database/pool/base-methods-forward.d.ts.map +1 -1
  314. package/build/src/database/pool/base-methods-forward.js +12 -3
  315. package/build/src/database/pool/base.d.ts +39 -7
  316. package/build/src/database/pool/base.d.ts.map +1 -1
  317. package/build/src/database/pool/base.js +59 -18
  318. package/build/src/database/pool/single-multi-use.d.ts +1 -0
  319. package/build/src/database/pool/single-multi-use.d.ts.map +1 -1
  320. package/build/src/database/pool/single-multi-use.js +16 -4
  321. package/build/src/database/query/alter-table-base.d.ts +1 -0
  322. package/build/src/database/query/alter-table-base.d.ts.map +1 -1
  323. package/build/src/database/query/alter-table-base.js +3 -1
  324. package/build/src/database/query/base.d.ts +3 -0
  325. package/build/src/database/query/base.d.ts.map +1 -1
  326. package/build/src/database/query/base.js +4 -1
  327. package/build/src/database/query/create-database-base.d.ts +5 -0
  328. package/build/src/database/query/create-database-base.d.ts.map +1 -1
  329. package/build/src/database/query/create-database-base.js +4 -1
  330. package/build/src/database/query/create-index-base.d.ts +5 -0
  331. package/build/src/database/query/create-index-base.d.ts.map +1 -1
  332. package/build/src/database/query/create-index-base.js +4 -1
  333. package/build/src/database/query/create-table-base.d.ts +2 -0
  334. package/build/src/database/query/create-table-base.d.ts.map +1 -1
  335. package/build/src/database/query/create-table-base.js +3 -1
  336. package/build/src/database/query/delete-base.d.ts +3 -2
  337. package/build/src/database/query/delete-base.d.ts.map +1 -1
  338. package/build/src/database/query/delete-base.js +3 -2
  339. package/build/src/database/query/drop-database-base.d.ts +5 -0
  340. package/build/src/database/query/drop-database-base.d.ts.map +1 -1
  341. package/build/src/database/query/drop-database-base.js +4 -1
  342. package/build/src/database/query/drop-table-base.d.ts +1 -0
  343. package/build/src/database/query/drop-table-base.d.ts.map +1 -1
  344. package/build/src/database/query/drop-table-base.js +3 -1
  345. package/build/src/database/query/from-base.d.ts +6 -1
  346. package/build/src/database/query/from-base.d.ts.map +1 -1
  347. package/build/src/database/query/from-base.js +7 -2
  348. package/build/src/database/query/from-plain.d.ts +1 -0
  349. package/build/src/database/query/from-plain.d.ts.map +1 -1
  350. package/build/src/database/query/from-plain.js +2 -1
  351. package/build/src/database/query/from-table.d.ts +1 -0
  352. package/build/src/database/query/from-table.d.ts.map +1 -1
  353. package/build/src/database/query/from-table.js +2 -1
  354. package/build/src/database/query/index.d.ts +72 -12
  355. package/build/src/database/query/index.d.ts.map +1 -1
  356. package/build/src/database/query/index.js +79 -19
  357. package/build/src/database/query/insert-base.d.ts +13 -8
  358. package/build/src/database/query/insert-base.d.ts.map +1 -1
  359. package/build/src/database/query/insert-base.js +10 -5
  360. package/build/src/database/query/join-base.d.ts +4 -0
  361. package/build/src/database/query/join-base.d.ts.map +1 -1
  362. package/build/src/database/query/join-base.js +5 -1
  363. package/build/src/database/query/join-object.d.ts +11 -0
  364. package/build/src/database/query/join-object.d.ts.map +1 -1
  365. package/build/src/database/query/join-object.js +15 -4
  366. package/build/src/database/query/join-plain.d.ts +1 -0
  367. package/build/src/database/query/join-plain.d.ts.map +1 -1
  368. package/build/src/database/query/join-plain.js +2 -1
  369. package/build/src/database/query/join-tracker.d.ts +7 -0
  370. package/build/src/database/query/join-tracker.d.ts.map +1 -1
  371. package/build/src/database/query/join-tracker.js +8 -1
  372. package/build/src/database/query/model-class-query.d.ts +92 -26
  373. package/build/src/database/query/model-class-query.d.ts.map +1 -1
  374. package/build/src/database/query/model-class-query.js +230 -76
  375. package/build/src/database/query/order-base.d.ts +3 -0
  376. package/build/src/database/query/order-base.d.ts.map +1 -1
  377. package/build/src/database/query/order-base.js +4 -1
  378. package/build/src/database/query/order-column.d.ts +9 -1
  379. package/build/src/database/query/order-column.d.ts.map +1 -1
  380. package/build/src/database/query/order-column.js +10 -2
  381. package/build/src/database/query/order-plain.d.ts +1 -0
  382. package/build/src/database/query/order-plain.d.ts.map +1 -1
  383. package/build/src/database/query/order-plain.js +2 -1
  384. package/build/src/database/query/preloader/belongs-to.d.ts +1 -0
  385. package/build/src/database/query/preloader/belongs-to.d.ts.map +1 -1
  386. package/build/src/database/query/preloader/belongs-to.js +68 -23
  387. package/build/src/database/query/preloader/ensure-model-class-initialized.d.ts +1 -0
  388. package/build/src/database/query/preloader/ensure-model-class-initialized.d.ts.map +1 -1
  389. package/build/src/database/query/preloader/ensure-model-class-initialized.js +2 -1
  390. package/build/src/database/query/preloader/has-many.d.ts +5 -3
  391. package/build/src/database/query/preloader/has-many.d.ts.map +1 -1
  392. package/build/src/database/query/preloader/has-many.js +66 -24
  393. package/build/src/database/query/preloader/has-one.d.ts +1 -0
  394. package/build/src/database/query/preloader/has-one.d.ts.map +1 -1
  395. package/build/src/database/query/preloader/has-one.js +26 -9
  396. package/build/src/database/query/preloader/selection.d.ts +7 -1
  397. package/build/src/database/query/preloader/selection.d.ts.map +1 -1
  398. package/build/src/database/query/preloader/selection.js +13 -5
  399. package/build/src/database/query/preloader.d.ts +1 -0
  400. package/build/src/database/query/preloader.d.ts.map +1 -1
  401. package/build/src/database/query/preloader.js +28 -9
  402. package/build/src/database/query/query-data.d.ts +21 -7
  403. package/build/src/database/query/query-data.d.ts.map +1 -1
  404. package/build/src/database/query/query-data.js +37 -18
  405. package/build/src/database/query/select-base.d.ts +3 -0
  406. package/build/src/database/query/select-base.d.ts.map +1 -1
  407. package/build/src/database/query/select-base.js +4 -1
  408. package/build/src/database/query/select-plain.d.ts +1 -0
  409. package/build/src/database/query/select-plain.d.ts.map +1 -1
  410. package/build/src/database/query/select-plain.js +2 -1
  411. package/build/src/database/query/select-table-and-column.d.ts +1 -0
  412. package/build/src/database/query/select-table-and-column.d.ts.map +1 -1
  413. package/build/src/database/query/select-table-and-column.js +2 -1
  414. package/build/src/database/query/update-base.d.ts +9 -6
  415. package/build/src/database/query/update-base.d.ts.map +1 -1
  416. package/build/src/database/query/update-base.js +7 -4
  417. package/build/src/database/query/upsert-base.d.ts +13 -4
  418. package/build/src/database/query/upsert-base.d.ts.map +1 -1
  419. package/build/src/database/query/upsert-base.js +12 -3
  420. package/build/src/database/query/where-base.d.ts +4 -0
  421. package/build/src/database/query/where-base.d.ts.map +1 -1
  422. package/build/src/database/query/where-base.js +5 -1
  423. package/build/src/database/query/where-combinator.d.ts +1 -0
  424. package/build/src/database/query/where-combinator.d.ts.map +1 -1
  425. package/build/src/database/query/where-combinator.js +6 -2
  426. package/build/src/database/query/where-hash.d.ts +6 -0
  427. package/build/src/database/query/where-hash.d.ts.map +1 -1
  428. package/build/src/database/query/where-hash.js +5 -1
  429. package/build/src/database/query/where-model-class-hash.d.ts +30 -16
  430. package/build/src/database/query/where-model-class-hash.d.ts.map +1 -1
  431. package/build/src/database/query/where-model-class-hash.js +55 -20
  432. package/build/src/database/query/where-not.d.ts +1 -0
  433. package/build/src/database/query/where-not.d.ts.map +1 -1
  434. package/build/src/database/query/where-not.js +3 -1
  435. package/build/src/database/query/where-plain.d.ts +1 -0
  436. package/build/src/database/query/where-plain.d.ts.map +1 -1
  437. package/build/src/database/query/where-plain.js +2 -1
  438. package/build/src/database/query/with-count.d.ts +11 -5
  439. package/build/src/database/query/with-count.d.ts.map +1 -1
  440. package/build/src/database/query/with-count.js +36 -15
  441. package/build/src/database/query-parser/base-query-parser.d.ts +1 -0
  442. package/build/src/database/query-parser/base-query-parser.d.ts.map +1 -1
  443. package/build/src/database/query-parser/base-query-parser.js +2 -1
  444. package/build/src/database/query-parser/from-parser.d.ts +5 -1
  445. package/build/src/database/query-parser/from-parser.d.ts.map +1 -1
  446. package/build/src/database/query-parser/from-parser.js +6 -2
  447. package/build/src/database/query-parser/group-parser.d.ts +2 -0
  448. package/build/src/database/query-parser/group-parser.d.ts.map +1 -1
  449. package/build/src/database/query-parser/group-parser.js +3 -1
  450. package/build/src/database/query-parser/joins-parser.d.ts +1 -0
  451. package/build/src/database/query-parser/joins-parser.d.ts.map +1 -1
  452. package/build/src/database/query-parser/joins-parser.js +2 -1
  453. package/build/src/database/query-parser/limit-parser.d.ts +1 -0
  454. package/build/src/database/query-parser/limit-parser.d.ts.map +1 -1
  455. package/build/src/database/query-parser/limit-parser.js +2 -1
  456. package/build/src/database/query-parser/options.d.ts +15 -4
  457. package/build/src/database/query-parser/options.d.ts.map +1 -1
  458. package/build/src/database/query-parser/options.js +11 -3
  459. package/build/src/database/query-parser/order-parser.d.ts +1 -0
  460. package/build/src/database/query-parser/order-parser.d.ts.map +1 -1
  461. package/build/src/database/query-parser/order-parser.js +2 -1
  462. package/build/src/database/query-parser/select-parser.d.ts +1 -0
  463. package/build/src/database/query-parser/select-parser.d.ts.map +1 -1
  464. package/build/src/database/query-parser/select-parser.js +2 -1
  465. package/build/src/database/query-parser/where-parser.d.ts +1 -0
  466. package/build/src/database/query-parser/where-parser.d.ts.map +1 -1
  467. package/build/src/database/query-parser/where-parser.js +2 -1
  468. package/build/src/database/record/acts-as-list.d.ts +0 -1
  469. package/build/src/database/record/acts-as-list.d.ts.map +1 -1
  470. package/build/src/database/record/acts-as-list.js +89 -45
  471. package/build/src/database/record/attachments/download.d.ts +34 -15
  472. package/build/src/database/record/attachments/download.d.ts.map +1 -1
  473. package/build/src/database/record/attachments/download.js +34 -22
  474. package/build/src/database/record/attachments/handle.d.ts +17 -5
  475. package/build/src/database/record/attachments/handle.d.ts.map +1 -1
  476. package/build/src/database/record/attachments/handle.js +25 -9
  477. package/build/src/database/record/attachments/normalize-input.d.ts +6 -1
  478. package/build/src/database/record/attachments/normalize-input.d.ts.map +1 -1
  479. package/build/src/database/record/attachments/normalize-input.js +54 -17
  480. package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts +7 -1
  481. package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts.map +1 -1
  482. package/build/src/database/record/attachments/storage-drivers/filesystem.js +10 -2
  483. package/build/src/database/record/attachments/storage-drivers/native.d.ts +12 -7
  484. package/build/src/database/record/attachments/storage-drivers/native.d.ts.map +1 -1
  485. package/build/src/database/record/attachments/storage-drivers/native.js +13 -6
  486. package/build/src/database/record/attachments/storage-drivers/s3.d.ts +18 -9
  487. package/build/src/database/record/attachments/storage-drivers/s3.d.ts.map +1 -1
  488. package/build/src/database/record/attachments/storage-drivers/s3.js +38 -13
  489. package/build/src/database/record/attachments/store.d.ts +48 -25
  490. package/build/src/database/record/attachments/store.d.ts.map +1 -1
  491. package/build/src/database/record/attachments/store.js +63 -25
  492. package/build/src/database/record/index.d.ts +394 -146
  493. package/build/src/database/record/index.d.ts.map +1 -1
  494. package/build/src/database/record/index.js +697 -248
  495. package/build/src/database/record/instance-relationships/base.d.ts +78 -19
  496. package/build/src/database/record/instance-relationships/base.d.ts.map +1 -1
  497. package/build/src/database/record/instance-relationships/base.js +98 -26
  498. package/build/src/database/record/instance-relationships/belongs-to.d.ts +1 -0
  499. package/build/src/database/record/instance-relationships/belongs-to.d.ts.map +1 -1
  500. package/build/src/database/record/instance-relationships/belongs-to.js +13 -5
  501. package/build/src/database/record/instance-relationships/has-many.d.ts +27 -7
  502. package/build/src/database/record/instance-relationships/has-many.d.ts.map +1 -1
  503. package/build/src/database/record/instance-relationships/has-many.js +50 -16
  504. package/build/src/database/record/instance-relationships/has-one.d.ts +4 -1
  505. package/build/src/database/record/instance-relationships/has-one.d.ts.map +1 -1
  506. package/build/src/database/record/instance-relationships/has-one.js +28 -10
  507. package/build/src/database/record/relationships/base.d.ts +61 -14
  508. package/build/src/database/record/relationships/base.d.ts.map +1 -1
  509. package/build/src/database/record/relationships/base.js +60 -15
  510. package/build/src/database/record/relationships/belongs-to.d.ts.map +1 -1
  511. package/build/src/database/record/relationships/belongs-to.js +9 -3
  512. package/build/src/database/record/relationships/has-many.d.ts.map +1 -1
  513. package/build/src/database/record/relationships/has-many.js +9 -3
  514. package/build/src/database/record/relationships/has-one.d.ts.map +1 -1
  515. package/build/src/database/record/relationships/has-one.js +9 -3
  516. package/build/src/database/record/state-machine.d.ts +9 -1
  517. package/build/src/database/record/state-machine.d.ts.map +1 -1
  518. package/build/src/database/record/state-machine.js +35 -14
  519. package/build/src/database/record/user-module.d.ts +2 -0
  520. package/build/src/database/record/user-module.d.ts.map +1 -1
  521. package/build/src/database/record/user-module.js +3 -1
  522. package/build/src/database/record/validators/base.d.ts +4 -2
  523. package/build/src/database/record/validators/base.d.ts.map +1 -1
  524. package/build/src/database/record/validators/base.js +4 -2
  525. package/build/src/database/record/validators/format.d.ts.map +1 -1
  526. package/build/src/database/record/validators/format.js +2 -1
  527. package/build/src/database/record/validators/presence.d.ts.map +1 -1
  528. package/build/src/database/record/validators/presence.js +5 -2
  529. package/build/src/database/record/validators/uniqueness.d.ts +0 -2
  530. package/build/src/database/record/validators/uniqueness.d.ts.map +1 -1
  531. package/build/src/database/record/validators/uniqueness.js +18 -8
  532. package/build/src/database/table-data/index.d.ts +40 -4
  533. package/build/src/database/table-data/index.d.ts.map +1 -1
  534. package/build/src/database/table-data/index.js +38 -5
  535. package/build/src/database/table-data/table-column.d.ts +43 -5
  536. package/build/src/database/table-data/table-column.d.ts.map +1 -1
  537. package/build/src/database/table-data/table-column.js +37 -4
  538. package/build/src/database/table-data/table-foreign-key.d.ts +8 -0
  539. package/build/src/database/table-data/table-foreign-key.d.ts.map +1 -1
  540. package/build/src/database/table-data/table-foreign-key.js +9 -1
  541. package/build/src/database/table-data/table-index.d.ts +8 -0
  542. package/build/src/database/table-data/table-index.d.ts.map +1 -1
  543. package/build/src/database/table-data/table-index.js +6 -1
  544. package/build/src/database/table-data/table-reference.d.ts +1 -0
  545. package/build/src/database/table-data/table-reference.d.ts.map +1 -1
  546. package/build/src/database/table-data/table-reference.js +2 -1
  547. package/build/src/database/use-database.d.ts +1 -0
  548. package/build/src/database/use-database.d.ts.map +1 -1
  549. package/build/src/database/use-database.js +2 -1
  550. package/build/src/environment-handlers/base.d.ts +94 -36
  551. package/build/src/environment-handlers/base.d.ts.map +1 -1
  552. package/build/src/environment-handlers/base.js +90 -36
  553. package/build/src/environment-handlers/browser.d.ts +33 -3
  554. package/build/src/environment-handlers/browser.d.ts.map +1 -1
  555. package/build/src/environment-handlers/browser.js +36 -9
  556. package/build/src/environment-handlers/node/cli/commands/cli-command-context.d.ts +5 -0
  557. package/build/src/environment-handlers/node/cli/commands/cli-command-context.d.ts.map +1 -1
  558. package/build/src/environment-handlers/node/cli/commands/cli-command-context.js +6 -2
  559. package/build/src/environment-handlers/node/cli/commands/console.d.ts +3 -2
  560. package/build/src/environment-handlers/node/cli/commands/console.d.ts.map +1 -1
  561. package/build/src/environment-handlers/node/cli/commands/console.js +23 -9
  562. package/build/src/environment-handlers/node/cli/commands/db/schema/dump.d.ts +4 -1
  563. package/build/src/environment-handlers/node/cli/commands/db/schema/dump.d.ts.map +1 -1
  564. package/build/src/environment-handlers/node/cli/commands/db/schema/dump.js +5 -2
  565. package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts +6 -2
  566. package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts.map +1 -1
  567. package/build/src/environment-handlers/node/cli/commands/db/schema/load.js +11 -5
  568. package/build/src/environment-handlers/node/cli/commands/db/seed.d.ts +15 -5
  569. package/build/src/environment-handlers/node/cli/commands/db/seed.d.ts.map +1 -1
  570. package/build/src/environment-handlers/node/cli/commands/db/seed.js +20 -6
  571. package/build/src/environment-handlers/node/cli/commands/destroy/migration.d.ts +5 -0
  572. package/build/src/environment-handlers/node/cli/commands/destroy/migration.d.ts.map +1 -1
  573. package/build/src/environment-handlers/node/cli/commands/destroy/migration.js +3 -1
  574. package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts +2 -0
  575. package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts.map +1 -1
  576. package/build/src/environment-handlers/node/cli/commands/generate/base-models.js +6 -4
  577. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts +43 -29
  578. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts.map +1 -1
  579. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.js +99 -40
  580. package/build/src/environment-handlers/node/cli/commands/generate/migration.d.ts +5 -0
  581. package/build/src/environment-handlers/node/cli/commands/generate/migration.d.ts.map +1 -1
  582. package/build/src/environment-handlers/node/cli/commands/generate/migration.js +3 -1
  583. package/build/src/environment-handlers/node/cli/commands/generate/model.d.ts +5 -0
  584. package/build/src/environment-handlers/node/cli/commands/generate/model.d.ts.map +1 -1
  585. package/build/src/environment-handlers/node/cli/commands/generate/model.js +3 -1
  586. package/build/src/environment-handlers/node/cli/commands/init.d.ts +5 -0
  587. package/build/src/environment-handlers/node/cli/commands/init.d.ts.map +1 -1
  588. package/build/src/environment-handlers/node/cli/commands/init.js +3 -1
  589. package/build/src/environment-handlers/node/cli/commands/routes.d.ts +3 -0
  590. package/build/src/environment-handlers/node/cli/commands/routes.d.ts.map +1 -1
  591. package/build/src/environment-handlers/node/cli/commands/routes.js +4 -1
  592. package/build/src/environment-handlers/node/cli/commands/run-script.d.ts +15 -5
  593. package/build/src/environment-handlers/node/cli/commands/run-script.d.ts.map +1 -1
  594. package/build/src/environment-handlers/node/cli/commands/run-script.js +20 -6
  595. package/build/src/environment-handlers/node/cli/commands/runner.d.ts +18 -6
  596. package/build/src/environment-handlers/node/cli/commands/runner.d.ts.map +1 -1
  597. package/build/src/environment-handlers/node/cli/commands/runner.js +20 -6
  598. package/build/src/environment-handlers/node/cli/commands/server.d.ts +13 -1
  599. package/build/src/environment-handlers/node/cli/commands/server.d.ts.map +1 -1
  600. package/build/src/environment-handlers/node/cli/commands/server.js +23 -6
  601. package/build/src/environment-handlers/node.d.ts +14 -2
  602. package/build/src/environment-handlers/node.d.ts.map +1 -1
  603. package/build/src/environment-handlers/node.js +107 -39
  604. package/build/src/error-logger.d.ts +4 -3
  605. package/build/src/error-logger.d.ts.map +1 -1
  606. package/build/src/error-logger.js +4 -3
  607. package/build/src/frontend-model-controller.d.ts +239 -90
  608. package/build/src/frontend-model-controller.d.ts.map +1 -1
  609. package/build/src/frontend-model-controller.js +577 -787
  610. package/build/src/frontend-model-resource/base-resource.d.ts +118 -66
  611. package/build/src/frontend-model-resource/base-resource.d.ts.map +1 -1
  612. package/build/src/frontend-model-resource/base-resource.js +205 -82
  613. package/build/src/frontend-models/base.d.ts +319 -163
  614. package/build/src/frontend-models/base.d.ts.map +1 -1
  615. package/build/src/frontend-models/base.js +717 -366
  616. package/build/src/frontend-models/clear-pending-debounced-callback.d.ts +2 -1
  617. package/build/src/frontend-models/clear-pending-debounced-callback.d.ts.map +1 -1
  618. package/build/src/frontend-models/clear-pending-debounced-callback.js +6 -3
  619. package/build/src/frontend-models/event-hook-models.d.ts +5 -0
  620. package/build/src/frontend-models/event-hook-models.d.ts.map +1 -1
  621. package/build/src/frontend-models/event-hook-models.js +10 -3
  622. package/build/src/frontend-models/model-registry.d.ts +5 -5
  623. package/build/src/frontend-models/model-registry.d.ts.map +1 -1
  624. package/build/src/frontend-models/model-registry.js +5 -5
  625. package/build/src/frontend-models/outgoing-event-buffer.d.ts +11 -3
  626. package/build/src/frontend-models/outgoing-event-buffer.d.ts.map +1 -1
  627. package/build/src/frontend-models/outgoing-event-buffer.js +13 -5
  628. package/build/src/frontend-models/preloader.d.ts +9 -6
  629. package/build/src/frontend-models/preloader.d.ts.map +1 -1
  630. package/build/src/frontend-models/preloader.js +21 -9
  631. package/build/src/frontend-models/query.d.ts +283 -73
  632. package/build/src/frontend-models/query.d.ts.map +1 -1
  633. package/build/src/frontend-models/query.js +331 -203
  634. package/build/src/frontend-models/resource-config-validation.d.ts +2 -0
  635. package/build/src/frontend-models/resource-config-validation.d.ts.map +1 -1
  636. package/build/src/frontend-models/resource-config-validation.js +3 -1
  637. package/build/src/frontend-models/resource-definition.d.ts +12 -5
  638. package/build/src/frontend-models/resource-definition.d.ts.map +1 -1
  639. package/build/src/frontend-models/resource-definition.js +39 -13
  640. package/build/src/frontend-models/transport-serialization.d.ts +14 -11
  641. package/build/src/frontend-models/transport-serialization.d.ts.map +1 -1
  642. package/build/src/frontend-models/transport-serialization.js +80 -53
  643. package/build/src/frontend-models/use-destroyed-event.d.ts +21 -0
  644. package/build/src/frontend-models/use-destroyed-event.d.ts.map +1 -1
  645. package/build/src/frontend-models/use-destroyed-event.js +34 -11
  646. package/build/src/frontend-models/use-model-class-event.d.ts +24 -0
  647. package/build/src/frontend-models/use-model-class-event.d.ts.map +1 -1
  648. package/build/src/frontend-models/use-model-class-event.js +39 -12
  649. package/build/src/frontend-models/use-updated-event.d.ts +21 -0
  650. package/build/src/frontend-models/use-updated-event.d.ts.map +1 -1
  651. package/build/src/frontend-models/use-updated-event.js +37 -12
  652. package/build/src/frontend-models/websocket-channel.d.ts +51 -9
  653. package/build/src/frontend-models/websocket-channel.d.ts.map +1 -1
  654. package/build/src/frontend-models/websocket-channel.js +96 -26
  655. package/build/src/frontend-models/websocket-publishers.d.ts +2 -0
  656. package/build/src/frontend-models/websocket-publishers.d.ts.map +1 -1
  657. package/build/src/frontend-models/websocket-publishers.js +33 -11
  658. package/build/src/http-client/header.d.ts +1 -0
  659. package/build/src/http-client/header.d.ts.map +1 -1
  660. package/build/src/http-client/header.js +2 -1
  661. package/build/src/http-client/index.d.ts +4 -0
  662. package/build/src/http-client/index.d.ts.map +1 -1
  663. package/build/src/http-client/index.js +5 -1
  664. package/build/src/http-client/request.d.ts +5 -0
  665. package/build/src/http-client/request.d.ts.map +1 -1
  666. package/build/src/http-client/request.js +6 -1
  667. package/build/src/http-client/response.d.ts +14 -4
  668. package/build/src/http-client/response.d.ts.map +1 -1
  669. package/build/src/http-client/response.js +14 -4
  670. package/build/src/http-client/websocket-client.d.ts +1 -0
  671. package/build/src/http-client/websocket-client.d.ts.map +1 -1
  672. package/build/src/http-client/websocket-client.js +2 -1
  673. package/build/src/http-server/client/index.d.ts +16 -2
  674. package/build/src/http-server/client/index.d.ts.map +1 -1
  675. package/build/src/http-server/client/index.js +44 -13
  676. package/build/src/http-server/client/params-to-object.d.ts +16 -10
  677. package/build/src/http-server/client/params-to-object.d.ts.map +1 -1
  678. package/build/src/http-server/client/params-to-object.js +46 -17
  679. package/build/src/http-server/client/request-buffer/form-data-part.d.ts +10 -6
  680. package/build/src/http-server/client/request-buffer/form-data-part.d.ts.map +1 -1
  681. package/build/src/http-server/client/request-buffer/form-data-part.js +11 -7
  682. package/build/src/http-server/client/request-buffer/header.d.ts +1 -0
  683. package/build/src/http-server/client/request-buffer/header.d.ts.map +1 -1
  684. package/build/src/http-server/client/request-buffer/header.js +2 -1
  685. package/build/src/http-server/client/request-buffer/index.d.ts +29 -4
  686. package/build/src/http-server/client/request-buffer/index.d.ts.map +1 -1
  687. package/build/src/http-server/client/request-buffer/index.js +43 -9
  688. package/build/src/http-server/client/request-parser.d.ts +52 -13
  689. package/build/src/http-server/client/request-parser.d.ts.map +1 -1
  690. package/build/src/http-server/client/request-parser.js +58 -15
  691. package/build/src/http-server/client/request-runner.d.ts +5 -1
  692. package/build/src/http-server/client/request-runner.d.ts.map +1 -1
  693. package/build/src/http-server/client/request-runner.js +32 -8
  694. package/build/src/http-server/client/request-timing.d.ts +37 -7
  695. package/build/src/http-server/client/request-timing.d.ts.map +1 -1
  696. package/build/src/http-server/client/request-timing.js +32 -8
  697. package/build/src/http-server/client/request.d.ts +15 -5
  698. package/build/src/http-server/client/request.d.ts.map +1 -1
  699. package/build/src/http-server/client/request.js +17 -5
  700. package/build/src/http-server/client/response.d.ts +22 -4
  701. package/build/src/http-server/client/response.d.ts.map +1 -1
  702. package/build/src/http-server/client/response.js +29 -7
  703. package/build/src/http-server/client/uploaded-file/memory-uploaded-file.d.ts +1 -0
  704. package/build/src/http-server/client/uploaded-file/memory-uploaded-file.d.ts.map +1 -1
  705. package/build/src/http-server/client/uploaded-file/memory-uploaded-file.js +3 -1
  706. package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.d.ts +1 -0
  707. package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.d.ts.map +1 -1
  708. package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.js +3 -1
  709. package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts +2 -0
  710. package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts.map +1 -1
  711. package/build/src/http-server/client/uploaded-file/uploaded-file.js +3 -1
  712. package/build/src/http-server/client/websocket-request.d.ts +24 -12
  713. package/build/src/http-server/client/websocket-request.d.ts.map +1 -1
  714. package/build/src/http-server/client/websocket-request.js +24 -10
  715. package/build/src/http-server/client/websocket-session.d.ts +101 -62
  716. package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
  717. package/build/src/http-server/client/websocket-session.js +118 -61
  718. package/build/src/http-server/cookie.d.ts +36 -8
  719. package/build/src/http-server/cookie.d.ts.map +1 -1
  720. package/build/src/http-server/cookie.js +37 -9
  721. package/build/src/http-server/development-reloader.d.ts +32 -7
  722. package/build/src/http-server/development-reloader.d.ts.map +1 -1
  723. package/build/src/http-server/development-reloader.js +39 -10
  724. package/build/src/http-server/index.d.ts +102 -25
  725. package/build/src/http-server/index.d.ts.map +1 -1
  726. package/build/src/http-server/index.js +117 -32
  727. package/build/src/http-server/remote-address.d.ts +1 -0
  728. package/build/src/http-server/remote-address.d.ts.map +1 -1
  729. package/build/src/http-server/remote-address.js +15 -4
  730. package/build/src/http-server/server-client.d.ts +37 -8
  731. package/build/src/http-server/server-client.d.ts.map +1 -1
  732. package/build/src/http-server/server-client.js +48 -12
  733. package/build/src/http-server/server-lock.d.ts +76 -0
  734. package/build/src/http-server/server-lock.d.ts.map +1 -0
  735. package/build/src/http-server/server-lock.js +164 -0
  736. package/build/src/http-server/websocket-channel-subscribers.d.ts +13 -8
  737. package/build/src/http-server/websocket-channel-subscribers.d.ts.map +1 -1
  738. package/build/src/http-server/websocket-channel-subscribers.js +16 -7
  739. package/build/src/http-server/websocket-channel.d.ts +13 -11
  740. package/build/src/http-server/websocket-channel.d.ts.map +1 -1
  741. package/build/src/http-server/websocket-channel.js +8 -12
  742. package/build/src/http-server/websocket-connection.d.ts +10 -14
  743. package/build/src/http-server/websocket-connection.d.ts.map +1 -1
  744. package/build/src/http-server/websocket-connection.js +8 -12
  745. package/build/src/http-server/websocket-event-log-store.d.ts +48 -10
  746. package/build/src/http-server/websocket-event-log-store.d.ts.map +1 -1
  747. package/build/src/http-server/websocket-event-log-store.js +76 -34
  748. package/build/src/http-server/websocket-events-host.d.ts +21 -15
  749. package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
  750. package/build/src/http-server/websocket-events-host.js +20 -11
  751. package/build/src/http-server/websocket-events.d.ts +8 -7
  752. package/build/src/http-server/websocket-events.d.ts.map +1 -1
  753. package/build/src/http-server/websocket-events.js +6 -5
  754. package/build/src/http-server/worker-handler/channel-subscriber-dispatch.d.ts +3 -2
  755. package/build/src/http-server/worker-handler/channel-subscriber-dispatch.d.ts.map +1 -1
  756. package/build/src/http-server/worker-handler/channel-subscriber-dispatch.js +3 -2
  757. package/build/src/http-server/worker-handler/in-process.d.ts +18 -18
  758. package/build/src/http-server/worker-handler/in-process.d.ts.map +1 -1
  759. package/build/src/http-server/worker-handler/in-process.js +28 -20
  760. package/build/src/http-server/worker-handler/index.d.ts +39 -20
  761. package/build/src/http-server/worker-handler/index.d.ts.map +1 -1
  762. package/build/src/http-server/worker-handler/index.js +34 -14
  763. package/build/src/http-server/worker-handler/worker-thread.d.ts +31 -15
  764. package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
  765. package/build/src/http-server/worker-handler/worker-thread.js +31 -12
  766. package/build/src/initializer.d.ts +4 -0
  767. package/build/src/initializer.d.ts.map +1 -1
  768. package/build/src/initializer.js +5 -1
  769. package/build/src/jobs/mail-delivery.d.ts +1 -0
  770. package/build/src/jobs/mail-delivery.d.ts.map +1 -1
  771. package/build/src/jobs/mail-delivery.js +2 -1
  772. package/build/src/logger/base-logger.js +2 -2
  773. package/build/src/logger/console-logger.d.ts +2 -0
  774. package/build/src/logger/console-logger.d.ts.map +1 -1
  775. package/build/src/logger/console-logger.js +3 -1
  776. package/build/src/logger/file-logger.d.ts +2 -0
  777. package/build/src/logger/file-logger.d.ts.map +1 -1
  778. package/build/src/logger/file-logger.js +3 -1
  779. package/build/src/logger/outputs/array-output.d.ts +21 -5
  780. package/build/src/logger/outputs/array-output.d.ts.map +1 -1
  781. package/build/src/logger/outputs/array-output.js +19 -6
  782. package/build/src/logger/outputs/console-output.d.ts +10 -2
  783. package/build/src/logger/outputs/console-output.d.ts.map +1 -1
  784. package/build/src/logger/outputs/console-output.js +8 -3
  785. package/build/src/logger/outputs/file-output.d.ts +20 -5
  786. package/build/src/logger/outputs/file-output.d.ts.map +1 -1
  787. package/build/src/logger/outputs/file-output.js +18 -6
  788. package/build/src/logger/outputs/stdout-output.d.ts +7 -1
  789. package/build/src/logger/outputs/stdout-output.d.ts.map +1 -1
  790. package/build/src/logger/outputs/stdout-output.js +9 -3
  791. package/build/src/logger.d.ts +28 -13
  792. package/build/src/logger.d.ts.map +1 -1
  793. package/build/src/logger.js +60 -23
  794. package/build/src/mailer/backends/smtp.d.ts +5 -0
  795. package/build/src/mailer/backends/smtp.d.ts.map +1 -1
  796. package/build/src/mailer/backends/smtp.js +17 -4
  797. package/build/src/mailer/base.d.ts +33 -17
  798. package/build/src/mailer/base.d.ts.map +1 -1
  799. package/build/src/mailer/base.js +54 -18
  800. package/build/src/mailer/delivery.d.ts +16 -5
  801. package/build/src/mailer/delivery.d.ts.map +1 -1
  802. package/build/src/mailer/delivery.js +18 -7
  803. package/build/src/mailer/index.d.ts +5 -5
  804. package/build/src/mailer/index.d.ts.map +1 -1
  805. package/build/src/mailer/index.js +2 -2
  806. package/build/src/mailer.d.ts +5 -5
  807. package/build/src/mailer.d.ts.map +1 -1
  808. package/build/src/mailer.js +2 -2
  809. package/build/src/plugins/sqljs-wasm-route-controller.d.ts +4 -1
  810. package/build/src/plugins/sqljs-wasm-route-controller.d.ts.map +1 -1
  811. package/build/src/plugins/sqljs-wasm-route-controller.js +11 -4
  812. package/build/src/plugins/sqljs-wasm-route.d.ts +6 -0
  813. package/build/src/plugins/sqljs-wasm-route.d.ts.map +1 -1
  814. package/build/src/plugins/sqljs-wasm-route.js +4 -1
  815. package/build/src/record-payload-values.d.ts +54 -0
  816. package/build/src/record-payload-values.d.ts.map +1 -0
  817. package/build/src/record-payload-values.js +80 -0
  818. package/build/src/routes/app-routes.d.ts +1 -0
  819. package/build/src/routes/app-routes.d.ts.map +1 -1
  820. package/build/src/routes/app-routes.js +2 -1
  821. package/build/src/routes/base-route.d.ts +52 -16
  822. package/build/src/routes/base-route.d.ts.map +1 -1
  823. package/build/src/routes/base-route.js +50 -14
  824. package/build/src/routes/basic-route.d.ts +1 -0
  825. package/build/src/routes/basic-route.d.ts.map +1 -1
  826. package/build/src/routes/basic-route.js +13 -4
  827. package/build/src/routes/built-in/debug/controller.d.ts +4 -1
  828. package/build/src/routes/built-in/debug/controller.d.ts.map +1 -1
  829. package/build/src/routes/built-in/debug/controller.js +5 -2
  830. package/build/src/routes/get-route.d.ts +1 -0
  831. package/build/src/routes/get-route.d.ts.map +1 -1
  832. package/build/src/routes/get-route.js +7 -4
  833. package/build/src/routes/hooks/frontend-model-command-route-hook.d.ts +1 -0
  834. package/build/src/routes/hooks/frontend-model-command-route-hook.d.ts.map +1 -1
  835. package/build/src/routes/hooks/frontend-model-command-route-hook.js +6 -2
  836. package/build/src/routes/index.d.ts +3 -2
  837. package/build/src/routes/index.d.ts.map +1 -1
  838. package/build/src/routes/index.js +10 -4
  839. package/build/src/routes/namespace-route.d.ts +1 -0
  840. package/build/src/routes/namespace-route.d.ts.map +1 -1
  841. package/build/src/routes/namespace-route.js +5 -3
  842. package/build/src/routes/plugin-routes.d.ts +10 -1
  843. package/build/src/routes/plugin-routes.d.ts.map +1 -1
  844. package/build/src/routes/plugin-routes.js +11 -3
  845. package/build/src/routes/post-route.d.ts +1 -0
  846. package/build/src/routes/post-route.d.ts.map +1 -1
  847. package/build/src/routes/post-route.js +7 -4
  848. package/build/src/routes/resolver.d.ts +20 -5
  849. package/build/src/routes/resolver.d.ts.map +1 -1
  850. package/build/src/routes/resolver.js +47 -14
  851. package/build/src/routes/resource-route.d.ts +6 -1
  852. package/build/src/routes/resource-route.d.ts.map +1 -1
  853. package/build/src/routes/resource-route.js +10 -4
  854. package/build/src/testing/base-expect.d.ts +2 -0
  855. package/build/src/testing/base-expect.d.ts.map +1 -1
  856. package/build/src/testing/base-expect.js +3 -1
  857. package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts +33 -5
  858. package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts.map +1 -1
  859. package/build/src/testing/browser-frontend-model-event-hook-scenarios.js +95 -23
  860. package/build/src/testing/expect-to-change.d.ts +3 -0
  861. package/build/src/testing/expect-to-change.d.ts.map +1 -1
  862. package/build/src/testing/expect-to-change.js +4 -1
  863. package/build/src/testing/expect-utils.d.ts +22 -16
  864. package/build/src/testing/expect-utils.d.ts.map +1 -1
  865. package/build/src/testing/expect-utils.js +62 -30
  866. package/build/src/testing/expect.d.ts +50 -21
  867. package/build/src/testing/expect.d.ts.map +1 -1
  868. package/build/src/testing/expect.js +58 -17
  869. package/build/src/testing/request-client.d.ts +16 -3
  870. package/build/src/testing/request-client.d.ts.map +1 -1
  871. package/build/src/testing/request-client.js +17 -4
  872. package/build/src/testing/test-files-finder.d.ts +41 -9
  873. package/build/src/testing/test-files-finder.d.ts.map +1 -1
  874. package/build/src/testing/test-files-finder.js +42 -10
  875. package/build/src/testing/test-filter-parser.d.ts +6 -0
  876. package/build/src/testing/test-filter-parser.d.ts.map +1 -1
  877. package/build/src/testing/test-filter-parser.js +12 -3
  878. package/build/src/testing/test-runner.d.ts +102 -6
  879. package/build/src/testing/test-runner.d.ts.map +1 -1
  880. package/build/src/testing/test-runner.js +115 -23
  881. package/build/src/testing/test-suite-splitter.d.ts +7 -0
  882. package/build/src/testing/test-suite-splitter.d.ts.map +1 -1
  883. package/build/src/testing/test-suite-splitter.js +7 -2
  884. package/build/src/testing/test.d.ts +20 -4
  885. package/build/src/testing/test.d.ts.map +1 -1
  886. package/build/src/testing/test.js +67 -20
  887. package/build/src/utils/backtrace-cleaner-node.d.ts.map +1 -1
  888. package/build/src/utils/backtrace-cleaner-node.js +6 -1
  889. package/build/src/utils/backtrace-cleaner.d.ts +16 -1
  890. package/build/src/utils/backtrace-cleaner.d.ts.map +1 -1
  891. package/build/src/utils/backtrace-cleaner.js +20 -2
  892. package/build/src/utils/ensure-error.d.ts +3 -2
  893. package/build/src/utils/ensure-error.d.ts.map +1 -1
  894. package/build/src/utils/ensure-error.js +3 -2
  895. package/build/src/utils/event-emitter.d.ts.map +1 -1
  896. package/build/src/utils/event-emitter.js +2 -2
  897. package/build/src/utils/file-exists.d.ts +1 -0
  898. package/build/src/utils/file-exists.d.ts.map +1 -1
  899. package/build/src/utils/file-exists.js +2 -1
  900. package/build/src/utils/format-value.d.ts +5 -4
  901. package/build/src/utils/format-value.d.ts.map +1 -1
  902. package/build/src/utils/format-value.js +12 -7
  903. package/build/src/utils/model-scope.d.ts +18 -12
  904. package/build/src/utils/model-scope.d.ts.map +1 -1
  905. package/build/src/utils/model-scope.js +19 -11
  906. package/build/src/utils/nest-callbacks.d.ts +1 -0
  907. package/build/src/utils/nest-callbacks.d.ts.map +1 -1
  908. package/build/src/utils/nest-callbacks.js +2 -1
  909. package/build/src/utils/plain-object.d.ts +7 -0
  910. package/build/src/utils/plain-object.d.ts.map +1 -0
  911. package/build/src/utils/plain-object.js +13 -0
  912. package/build/src/utils/ransack.d.ts +29 -5
  913. package/build/src/utils/ransack.d.ts.map +1 -1
  914. package/build/src/utils/ransack.js +136 -49
  915. package/build/src/utils/rest-args-error.d.ts +1 -0
  916. package/build/src/utils/rest-args-error.d.ts.map +1 -1
  917. package/build/src/utils/rest-args-error.js +2 -1
  918. package/build/src/utils/singularize-model-name.d.ts +1 -0
  919. package/build/src/utils/singularize-model-name.d.ts.map +1 -1
  920. package/build/src/utils/singularize-model-name.js +2 -1
  921. package/build/src/utils/to-import-specifier.d.ts.map +1 -1
  922. package/build/src/utils/to-import-specifier.js +3 -1
  923. package/build/src/utils/with-tracked-stack-async-hooks.d.ts +8 -5
  924. package/build/src/utils/with-tracked-stack-async-hooks.d.ts.map +1 -1
  925. package/build/src/utils/with-tracked-stack-async-hooks.js +32 -13
  926. package/build/src/utils/with-tracked-stack.d.ts +9 -5
  927. package/build/src/utils/with-tracked-stack.d.ts.map +1 -1
  928. package/build/src/utils/with-tracked-stack.js +19 -8
  929. package/build/src/velocious-error.d.ts +4 -2
  930. package/build/src/velocious-error.d.ts.map +1 -1
  931. package/build/src/velocious-error.js +5 -3
  932. package/build/tsconfig.tsbuildinfo +1 -1
  933. package/package.json +1 -1
@@ -1,5 +1,4 @@
1
1
  export default class VelociousCliCommandsTest extends BaseCommand {
2
- execute(): Promise<unknown>;
3
2
  }
4
3
  import BaseCommand from "../base-command.js";
5
4
  //# sourceMappingURL=test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/test.js"],"names":[],"mappings":"AAEA;IACE,4BAIC;CACF;wBARuB,oBAAoB"}
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/test.js"],"names":[],"mappings":"AAEA;CAMC;wBARuB,oBAAoB"}
@@ -1,5 +1,6 @@
1
1
  export default class VelociousCli {
2
2
  /**
3
+ * Runs constructor.
3
4
  * @param {object} args - Options object.
4
5
  * @param {import("../configuration.js").default} [args.configuration] - Configuration instance.
5
6
  * @param {string} [args.directory] - Directory path.
@@ -27,23 +28,35 @@ export default class VelociousCli {
27
28
  configuration: import("../configuration.js").default;
28
29
  environmentHandler: import("../environment-handlers/base.js").default;
29
30
  /**
30
- * @returns {Promise<unknown>} - Resolves with the final command result.
31
+ * Runs execute.
32
+ * @returns {Promise<?>} - Resolves with the final command result.
31
33
  */
32
34
  execute(): Promise<unknown>;
33
35
  /**
36
+ * Runs execute command.
34
37
  * @param {string[]} processArgs - Process args for a single command.
35
- * @returns {Promise<unknown>} - Resolves with the command result.
38
+ * @returns {Promise<?>} - Resolves with the command result.
36
39
  */
37
40
  executeCommand(processArgs: string[]): Promise<unknown>;
38
41
  /**
42
+ * Runs command groups.
39
43
  * @returns {Promise<string[][]>} - Command groups with process args for each command.
40
44
  */
41
45
  commandGroups(): Promise<string[][]>;
42
- /** @returns {import("../configuration.js").default} configuration */
46
+ /**
47
+ * Runs get configuration.
48
+ * @returns {import("../configuration.js").default} configuration
49
+ */
43
50
  getConfiguration(): import("../configuration.js").default;
44
- /** @returns {boolean} - Whether the current async context already has database connections. */
51
+ /**
52
+ * Runs has current database connections.
53
+ * @returns {boolean} - Whether the current async context already has database connections.
54
+ */
45
55
  hasCurrentDatabaseConnections(): boolean;
46
- /** @returns {boolean} - Whether testing. */
56
+ /**
57
+ * Runs get testing.
58
+ * @returns {boolean} - Whether testing.
59
+ */
47
60
  getTesting(): boolean;
48
61
  }
49
62
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.js"],"names":[],"mappings":"AAEA;IACE;;;;;;;;OAQG;IACH,mBAPG;QAAqD,aAAa;QAC5C,SAAS;QACkC,kBAAkB;QACd,iBAAiB;QAC9D,WAAW;QACZ,OAAO;KAChC,EAUA;IANC;;;;;;;MAAgB;IAChB,qDAAuC;IAEvC,sEAAoE;IAKtE;;OAEG;IACH,WAFa,OAAO,CAAC,OAAO,CAAC,CAmB5B;IAED;;;OAGG;IACH,4BAHW,MAAM,EAAE,GACN,OAAO,CAAC,OAAO,CAAC,CA4B5B;IAED;;OAEG;IACH,iBAFa,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAoC/B;IAED,qEAAqE;IACrE,oBADc,OAAO,qBAAqB,EAAE,OAAO,CACH;IAEhD,+FAA+F;IAC/F,iCADc,OAAO,CASpB;IAED,6CAA6C;IAC7C,cADc,OAAO,CAGpB;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.js"],"names":[],"mappings":"AAEA;IACE;;;;;;;;;OASG;IACH,mBAPG;QAAqD,aAAa;QAC5C,SAAS;QACkC,kBAAkB;QACd,iBAAiB;QAC9D,WAAW;QACZ,OAAO;KAChC,EAUA;IANC;;;;;;;MAAgB;IAChB,qDAAuC;IAEvC,sEAAoE;IAKtE;;;OAGG;IACH,WAFa,OAAO,CAAC,OAAC,CAAC,CAmBtB;IAED;;;;OAIG;IACH,4BAHW,MAAM,EAAE,GACN,OAAO,CAAC,OAAC,CAAC,CA4BtB;IAED;;;OAGG;IACH,iBAFa,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAwC/B;IAED;;;OAGG;IACH,oBAFa,OAAO,qBAAqB,EAAE,OAAO,CAEF;IAEhD;;;OAGG;IACH,iCAFa,OAAO,CAUnB;IAED;;;OAGG;IACH,cAFa,OAAO,CAInB;CACF"}
@@ -1,6 +1,7 @@
1
1
  // @ts-check
2
2
  export default class VelociousCli {
3
3
  /**
4
+ * Runs constructor.
4
5
  * @param {object} args - Options object.
5
6
  * @param {import("../configuration.js").default} [args.configuration] - Configuration instance.
6
7
  * @param {string} [args.directory] - Directory path.
@@ -19,7 +20,8 @@ export default class VelociousCli {
19
20
  this.environmentHandler.setConfiguration(args.configuration);
20
21
  }
21
22
  /**
22
- * @returns {Promise<unknown>} - Resolves with the final command result.
23
+ * Runs execute.
24
+ * @returns {Promise<?>} - Resolves with the final command result.
23
25
  */
24
26
  async execute() {
25
27
  const commandGroups = await this.commandGroups();
@@ -38,8 +40,9 @@ export default class VelociousCli {
38
40
  return result;
39
41
  }
40
42
  /**
43
+ * Runs execute command.
41
44
  * @param {string[]} processArgs - Process args for a single command.
42
- * @returns {Promise<unknown>} - Resolves with the command result.
45
+ * @returns {Promise<?>} - Resolves with the command result.
43
46
  */
44
47
  async executeCommand(processArgs) {
45
48
  if (!processArgs[0]) {
@@ -67,15 +70,20 @@ export default class VelociousCli {
67
70
  return await commandInstance.execute();
68
71
  }
69
72
  /**
73
+ * Runs command groups.
70
74
  * @returns {Promise<string[][]>} - Command groups with process args for each command.
71
75
  */
72
76
  async commandGroups() {
73
77
  const processArgs = this.args.processArgs || [];
74
78
  const commands = await this.environmentHandler.findCommands();
75
79
  const commandNames = new Set(commands.map((command) => command.name));
76
- /** @type {string[][]} */
80
+ /**
81
+ * Groups.
82
+ @type {string[][]} */
77
83
  const groups = [];
78
- /** @type {string[]} */
84
+ /**
85
+ * Current group.
86
+ @type {string[]} */
79
87
  let currentGroup = [];
80
88
  for (const processArg of processArgs) {
81
89
  if (currentGroup.length == 0) {
@@ -100,9 +108,15 @@ export default class VelociousCli {
100
108
  }
101
109
  return groups;
102
110
  }
103
- /** @returns {import("../configuration.js").default} configuration */
111
+ /**
112
+ * Runs get configuration.
113
+ * @returns {import("../configuration.js").default} configuration
114
+ */
104
115
  getConfiguration() { return this.configuration; }
105
- /** @returns {boolean} - Whether the current async context already has database connections. */
116
+ /**
117
+ * Runs has current database connections.
118
+ * @returns {boolean} - Whether the current async context already has database connections.
119
+ */
106
120
  hasCurrentDatabaseConnections() {
107
121
  try {
108
122
  return Object.keys(this.getConfiguration().getCurrentConnections()).length > 0;
@@ -113,9 +127,12 @@ export default class VelociousCli {
113
127
  throw error;
114
128
  }
115
129
  }
116
- /** @returns {boolean} - Whether testing. */
130
+ /**
131
+ * Runs get testing.
132
+ * @returns {boolean} - Whether testing.
133
+ */
117
134
  getTesting() {
118
135
  return this.args.testing || false;
119
136
  }
120
137
  }
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixNQUFNLENBQUMsT0FBTyxPQUFPLFlBQVk7SUFDL0I7Ozs7Ozs7O09BUUc7SUFDSCxZQUFZLElBQUksR0FBRyxFQUFFO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtRQUU5RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUE7UUFFdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtRQUNwRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUNoRCxJQUFJLE1BQU0sQ0FBQTtRQUVWLEtBQUssTUFBTSxrQkFBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUMvQyxNQUFNLDhCQUE4QixHQUFHLENBQUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUE7WUFFNUUsSUFBSSxDQUFDO2dCQUNILE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtZQUN4RCxDQUFDO29CQUFTLENBQUM7Z0JBQ1QsSUFBSSw4QkFBOEIsRUFBRSxDQUFDO29CQUNuQyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxD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LEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUMzQixDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtRQUM3QyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0lBRUQscUVBQXFFO0lBQ3JFLGdCQUFnQixLQUFLLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQSxDQUFDLENBQUM7SUFFaEQsK0ZBQStGO0lBQy9GLDZCQUE2QjtRQUMzQixJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7UUFDaEYsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLEtBQUssWUFBWSxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsNENBQTRDLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUE7WUFFbEgsTUFBTSxLQUFLLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUVELDZDQUE2QztJQUM3QyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUE7SUFDbkMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0NsaSB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gW2FyZ3MuY29uZmlndXJhdGlvbl0gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3MuZGlyZWN0b3J5XSAtIERpcmVjdG9yeSBwYXRoLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Vudmlyb25tZW50LWhhbmRsZXJzL2Jhc2UuanNcIikuZGVmYXVsdH0gW2FyZ3MuZW52aXJvbm1lbnRIYW5kbGVyXSAtIEVudmlyb25tZW50IGhhbmRsZXIuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZD59IFthcmdzLnBhcnNlZFByb2Nlc3NBcmdzXSAtIFBhcnNlZCBwcm9jZXNzIGFyZ3MuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IFthcmdzLnByb2Nlc3NBcmdzXSAtIFByb2Nlc3MgYXJncy5cbiAgICogQHBhcmFtIHtib29sZWFufSBbYXJncy50ZXN0aW5nXSAtIFdoZXRoZXIgdGVzdGluZy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGFyZ3MgPSB7fSkge1xuICAgIGlmICghYXJncy5jb25maWd1cmF0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJjb25maWd1cmF0aW9uIGFyZ3VtZW50IGlzIHJlcXVpcmVkXCIpXG5cbiAgICB0aGlzLmFyZ3MgPSBhcmdzXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gYXJncy5jb25maWd1cmF0aW9uXG5cbiAgICB0aGlzLmVudmlyb25tZW50SGFuZGxlciA9IGFyZ3MuY29uZmlndXJhdGlvbi5nZXRFbnZpcm9ubWVudEhhbmRsZXIoKVxuICAgIHRoaXMuZW52aXJvbm1lbnRIYW5kbGVyLnNldEFyZ3MoYXJncylcbiAgICB0aGlzLmVudmlyb25tZW50SGFuZGxlci5zZXRDb25maWd1cmF0aW9uKGFyZ3MuY29uZmlndXJhdGlvbilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBmaW5hbCBjb21tYW5kIHJlc3VsdC5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGUoKSB7XG4gICAgY29uc3QgY29tbWFuZEdyb3VwcyA9IGF3YWl0IHRoaXMuY29tbWFuZEdyb3VwcygpXG4gICAgbGV0IHJlc3VsdFxuXG4gICAgZm9yIChjb25zdCBjb21tYW5kUHJvY2Vzc0FyZ3Mgb2YgY29tbWFuZEdyb3Vwcykge1xuICAgICAgY29uc3Qgc2hvdWxkQ2xvc2VEYXRhYmFzZUNvbm5lY3Rpb25zID0gIXRoaXMuaGFzQ3VycmVudERhdGFiYXNlQ29ubmVjdGlvbnMoKVxuXG4gICAgICB0cnkge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCB0aGlzLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmRQcm9jZXNzQXJncylcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChzaG91bGRDbG9zZURhdGFiYXNlQ29ubmVjdGlvbnMpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5jbG9zZURhdGFiYXNlQ29ubmVjdGlvbnMoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHByb2Nlc3NBcmdzIC0gUHJvY2VzcyBhcmdzIGZvciBhIHNpbmdsZSBjb21tYW5kLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBjb21tYW5kIHJlc3VsdC5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVDb21tYW5kKHByb2Nlc3NBcmdzKSB7XG4gICAgaWYgKCFwcm9jZXNzQXJnc1swXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBjb21tYW5kIGFyZ3VtZW50XCIpXG4gICAgfVxuXG4gICAgY29uc3QgY29tbWFuZFBhcnRzID0gcHJvY2Vzc0FyZ3NbMF0uc3BsaXQoXCI6XCIpXG4gICAgY29uc3QgcGFyc2VkQ29tbWFuZFBhcnRzID0gW11cblxuICAgIGZvciAobGV0IGNvbW1hbmRQYXJ0IG9mIGNvbW1hbmRQYXJ0cykge1xuICAgICAgaWYgKGNvbW1hbmRQYXJ0ID09IFwiY1wiKSBjb21tYW5kUGFydCA9IFwiY29uc29sZVwiXG4gICAgICBpZiAoY29tbWFuZFBhcnQgPT0gXCJkXCIpIGNvbW1hbmRQYXJ0ID0gXCJkZXN0cm95XCJcbiAgICAgIGlmIChjb21tYW5kUGFydCA9PSBcImdcIikgY29tbWFuZFBhcnQgPSBcImdlbmVyYXRlXCJcbiAgICAgIGlmIChjb21tYW5kUGFydCA9PSBcInNcIikgY29tbWFuZFBhcnQgPSBcInNlcnZlclwiXG5cbiAgICAgIHBhcnNlZENvbW1hbmRQYXJ0cy5wdXNoKGNvbW1hbmRQYXJ0KVxuICAgIH1cblxuICAgIGNvbnN0IENvbW1hbmRDbGFzcyA9IGF3YWl0IHRoaXMuZW52aXJvbm1lbnRIYW5kbGVyLnJlcXVpcmVDb21tYW5kKHtjb21tYW5kUGFydHM6IHBhcnNlZENvbW1hbmRQYXJ0c30pXG4gICAgY29uc3QgY29tbWFuZEluc3RhbmNlID0gbmV3IENvbW1hbmRDbGFzcyh7XG4gICAgICBhcmdzOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmFyZ3MsIHtwcm9jZXNzQXJnc30pLFxuICAgICAgY2xpOiB0aGlzXG4gICAgfSlcblxuICAgIGF3YWl0IGNvbW1hbmRJbnN0YW5jZS5pbml0aWFsaXplKClcblxuICAgIHJldHVybiBhd2FpdCBjb21tYW5kSW5zdGFuY2UuZXhlY3V0ZSgpXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW11bXT59IC0gQ29tbWFuZCBncm91cHMgd2l0aCBwcm9jZXNzIGFyZ3MgZm9yIGVhY2ggY29tbWFuZC5cbiAgICovXG4gIGFzeW5jIGNvbW1hbmRHcm91cHMoKSB7XG4gICAgY29uc3QgcHJvY2Vzc0FyZ3MgPSB0aGlzLmFyZ3MucHJvY2Vzc0FyZ3MgfHwgW11cbiAgICBjb25zdCBjb21tYW5kcyA9IGF3YWl0IHRoaXMuZW52aXJvbm1lbnRIYW5kbGVyLmZpbmRDb21tYW5kcygpXG4gICAgY29uc3QgY29tbWFuZE5hbWVzID0gbmV3IFNldChjb21tYW5kcy5tYXAoKGNvbW1hbmQpID0+IGNvbW1hbmQubmFtZSkpXG4gICAgLyoqIEB0eXBlIHtzdHJpbmdbXVtdfSAqL1xuICAgIGNvbnN0IGdyb3VwcyA9IFtdXG4gICAgLyoqIEB0eXBlIHtzdHJpbmdbXX0gKi9cbiAgICBsZXQgY3VycmVudEdyb3VwID0gW11cblxuICAgIGZvciAoY29uc3QgcHJvY2Vzc0FyZyBvZiBwcm9jZXNzQXJncykge1xuICAgICAgaWYgKGN1cnJlbnRHcm91cC5sZW5ndGggPT0gMCkge1xuICAgICAgICBpZiAocHJvY2Vzc0FyZy5zdGFydHNXaXRoKFwiLVwiKSkgY29udGludWVcblxuICAgICAgICBjdXJyZW50R3JvdXAgPSBbcHJvY2Vzc0FyZ11cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgaWYgKCFwcm9jZXNzQXJnLnN0YXJ0c1dpdGgoXCItXCIpICYmIGNvbW1hbmROYW1lcy5oYXMocHJvY2Vzc0FyZykpIHtcbiAgICAgICAgZ3JvdXBzLnB1c2goY3VycmVudEdyb3VwKVxuICAgICAgICBjdXJyZW50R3JvdXAgPSBbcHJvY2Vzc0FyZ11cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN1cnJlbnRHcm91cC5wdXNoKHByb2Nlc3NBcmcpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRHcm91cC5sZW5ndGggPiAwKSB7XG4gICAgICBncm91cHMucHVzaChjdXJyZW50R3JvdXApXG4gICAgfVxuXG4gICAgaWYgKGdyb3Vwcy5sZW5ndGggPT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBjb21tYW5kIGFyZ3VtZW50XCIpXG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3Vwc1xuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGNvbmZpZ3VyYXRpb24gKi9cbiAgZ2V0Q29uZmlndXJhdGlvbigpIHsgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbiB9XG5cbiAgLyoqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgdGhlIGN1cnJlbnQgYXN5bmMgY29udGV4dCBhbHJlYWR5IGhhcyBkYXRhYmFzZSBjb25uZWN0aW9ucy4gKi9cbiAgaGFzQ3VycmVudERhdGFiYXNlQ29ubmVjdGlvbnMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXRDdXJyZW50Q29ubmVjdGlvbnMoKSkubGVuZ3RoID4gMFxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnJvci5tZXNzYWdlLnN0YXJ0c1dpdGgoXCJObyBkYXRhYmFzZSBjb25maWd1cmF0aW9uIGZvciBlbnZpcm9ubWVudDpcIikpIHJldHVybiBmYWxzZVxuXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIHRlc3RpbmcuICAqL1xuICBnZXRUZXN0aW5nKCkge1xuICAgIHJldHVybiB0aGlzLmFyZ3MudGVzdGluZyB8fCBmYWxzZVxuICB9XG59XG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixNQUFNLENBQUMsT0FBTyxPQUFPLFlBQVk7SUFDL0I7Ozs7Ozs7OztPQVNHO0lBQ0gsWUFBWSxJQUFJLEdBQUcsRUFBRTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUE7UUFFOUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFBO1FBRXZDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUE7UUFDcEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzlELENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ2hELElBQUksTUFBTSxDQUFBO1FBRVYsS0FBSyxNQUFNLGtCQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQy9DLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQTtZQUU1RSxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1lBQ3hELENBQUM7b0JBQVMsQ0FBQztnQkFDVCxJQUFJLDhCQUE4QixFQUFFLENBQUM7b0JBQ25DLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFF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QyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUMzQixDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtRQUM3QyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZ0JBQWdCLEtBQUssT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFBLENBQUMsQ0FBQztJQUVoRDs7O09BR0c7SUFDSCw2QkFBNkI7UUFDM0IsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQ2hGLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxLQUFLLFlBQVksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLDRDQUE0QyxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFBO1lBRWxILE1BQU0sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUE7SUFDbkMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0NsaSB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gW2FyZ3MuY29uZmlndXJhdGlvbl0gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3MuZGlyZWN0b3J5XSAtIERpcmVjdG9yeSBwYXRoLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Vudmlyb25tZW50LWhhbmRsZXJzL2Jhc2UuanNcIikuZGVmYXVsdH0gW2FyZ3MuZW52aXJvbm1lbnRIYW5kbGVyXSAtIEVudmlyb25tZW50IGhhbmRsZXIuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZD59IFthcmdzLnBhcnNlZFByb2Nlc3NBcmdzXSAtIFBhcnNlZCBwcm9jZXNzIGFyZ3MuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IFthcmdzLnByb2Nlc3NBcmdzXSAtIFByb2Nlc3MgYXJncy5cbiAgICogQHBhcmFtIHtib29sZWFufSBbYXJncy50ZXN0aW5nXSAtIFdoZXRoZXIgdGVzdGluZy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGFyZ3MgPSB7fSkge1xuICAgIGlmICghYXJncy5jb25maWd1cmF0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJjb25maWd1cmF0aW9uIGFyZ3VtZW50IGlzIHJlcXVpcmVkXCIpXG5cbiAgICB0aGlzLmFyZ3MgPSBhcmdzXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gYXJncy5jb25maWd1cmF0aW9uXG5cbiAgICB0aGlzLmVudmlyb25tZW50SGFuZGxlciA9IGFyZ3MuY29uZmlndXJhdGlvbi5nZXRFbnZpcm9ubWVudEhhbmRsZXIoKVxuICAgIHRoaXMuZW52aXJvbm1lbnRIYW5kbGVyLnNldEFyZ3MoYXJncylcbiAgICB0aGlzLmVudmlyb25tZW50SGFuZGxlci5zZXRDb25maWd1cmF0aW9uKGFyZ3MuY29uZmlndXJhdGlvbilcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGV4ZWN1dGUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPD8+fSAtIFJlc29sdmVzIHdpdGggdGhlIGZpbmFsIGNvbW1hbmQgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICBjb25zdCBjb21tYW5kR3JvdXBzID0gYXdhaXQgdGhpcy5jb21tYW5kR3JvdXBzKClcbiAgICBsZXQgcmVzdWx0XG5cbiAgICBmb3IgKGNvbnN0IGNvbW1hbmRQcm9jZXNzQXJncyBvZiBjb21tYW5kR3JvdXBzKSB7XG4gICAgICBjb25zdCBzaG91bGRDbG9zZURhdGFiYXNlQ29ubmVjdGlvbnMgPSAhdGhpcy5oYXNDdXJyZW50RGF0YWJhc2VDb25uZWN0aW9ucygpXG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXMuZXhlY3V0ZUNvbW1hbmQoY29tbWFuZFByb2Nlc3NBcmdzKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKHNob3VsZENsb3NlRGF0YWJhc2VDb25uZWN0aW9ucykge1xuICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmNsb3NlRGF0YWJhc2VDb25uZWN0aW9ucygpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICAvKipcbiAgICogUnVucyBleGVjdXRlIGNvbW1hbmQuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHByb2Nlc3NBcmdzIC0gUHJvY2VzcyBhcmdzIGZvciBhIHNpbmdsZSBjb21tYW5kLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTw/Pn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBjb21tYW5kIHJlc3VsdC5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVDb21tYW5kKHByb2Nlc3NBcmdzKSB7XG4gICAgaWYgKCFwcm9jZXNzQXJnc1swXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBjb21tYW5kIGFyZ3VtZW50XCIpXG4gICAgfVxuXG4gICAgY29uc3QgY29tbWFuZFBhcnRzID0gcHJvY2Vzc0FyZ3NbMF0uc3BsaXQoXCI6XCIpXG4gICAgY29uc3QgcGFyc2VkQ29tbWFuZFBhcnRzID0gW11cblxuICAgIGZvciAobGV0IGNvbW1hbmRQYXJ0IG9mIGNvbW1hbmRQYXJ0cykge1xuICAgICAgaWYgKGNvbW1hbmRQYXJ0ID09IFwiY1wiKSBjb21tYW5kUGFydCA9IFwiY29uc29sZVwiXG4gICAgICBpZiAoY29tbWFuZFBhcnQgPT0gXCJkXCIpIGNvbW1hbmRQYXJ0ID0gXCJkZXN0cm95XCJcbiAgICAgIGlmIChjb21tYW5kUGFydCA9PSBcImdcIikgY29tbWFuZFBhcnQgPSBcImdlbmVyYXRlXCJcbiAgICAgIGlmIChjb21tYW5kUGFydCA9PSBcInNcIikgY29tbWFuZFBhcnQgPSBcInNlcnZlclwiXG5cbiAgICAgIHBhcnNlZENvbW1hbmRQYXJ0cy5wdXNoKGNvbW1hbmRQYXJ0KVxuICAgIH1cblxuICAgIGNvbnN0IENvbW1hbmRDbGFzcyA9IGF3YWl0IHRoaXMuZW52aXJvbm1lbnRIYW5kbGVyLnJlcXVpcmVDb21tYW5kKHtjb21tYW5kUGFydHM6IHBhcnNlZENvbW1hbmRQYXJ0c30pXG4gICAgY29uc3QgY29tbWFuZEluc3RhbmNlID0gbmV3IENvbW1hbmRDbGFzcyh7XG4gICAgICBhcmdzOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmFyZ3MsIHtwcm9jZXNzQXJnc30pLFxuICAgICAgY2xpOiB0aGlzXG4gICAgfSlcblxuICAgIGF3YWl0IGNvbW1hbmRJbnN0YW5jZS5pbml0aWFsaXplKClcblxuICAgIHJldHVybiBhd2FpdCBjb21tYW5kSW5zdGFuY2UuZXhlY3V0ZSgpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBjb21tYW5kIGdyb3Vwcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW11bXT59IC0gQ29tbWFuZCBncm91cHMgd2l0aCBwcm9jZXNzIGFyZ3MgZm9yIGVhY2ggY29tbWFuZC5cbiAgICovXG4gIGFzeW5jIGNvbW1hbmRHcm91cHMoKSB7XG4gICAgY29uc3QgcHJvY2Vzc0FyZ3MgPSB0aGlzLmFyZ3MucHJvY2Vzc0FyZ3MgfHwgW11cbiAgICBjb25zdCBjb21tYW5kcyA9IGF3YWl0IHRoaXMuZW52aXJvbm1lbnRIYW5kbGVyLmZpbmRDb21tYW5kcygpXG4gICAgY29uc3QgY29tbWFuZE5hbWVzID0gbmV3IFNldChjb21tYW5kcy5tYXAoKGNvbW1hbmQpID0+IGNvbW1hbmQubmFtZSkpXG4gICAgLyoqXG4gICAgICogR3JvdXBzLlxuICAgICAgQHR5cGUge3N0cmluZ1tdW119ICovXG4gICAgY29uc3QgZ3JvdXBzID0gW11cbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGdyb3VwLlxuICAgICAgQHR5cGUge3N0cmluZ1tdfSAqL1xuICAgIGxldCBjdXJyZW50R3JvdXAgPSBbXVxuXG4gICAgZm9yIChjb25zdCBwcm9jZXNzQXJnIG9mIHByb2Nlc3NBcmdzKSB7XG4gICAgICBpZiAoY3VycmVudEdyb3VwLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgIGlmIChwcm9jZXNzQXJnLnN0YXJ0c1dpdGgoXCItXCIpKSBjb250aW51ZVxuXG4gICAgICAgIGN1cnJlbnRHcm91cCA9IFtwcm9jZXNzQXJnXVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBpZiAoIXByb2Nlc3NBcmcuc3RhcnRzV2l0aChcIi1cIikgJiYgY29tbWFuZE5hbWVzLmhhcyhwcm9jZXNzQXJnKSkge1xuICAgICAgICBncm91cHMucHVzaChjdXJyZW50R3JvdXApXG4gICAgICAgIGN1cnJlbnRHcm91cCA9IFtwcm9jZXNzQXJnXVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3VycmVudEdyb3VwLnB1c2gocHJvY2Vzc0FyZylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3VycmVudEdyb3VwLmxlbmd0aCA+IDApIHtcbiAgICAgIGdyb3Vwcy5wdXNoKGN1cnJlbnRHcm91cClcbiAgICB9XG5cbiAgICBpZiAoZ3JvdXBzLmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIGNvbW1hbmQgYXJndW1lbnRcIilcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JvdXBzXG4gIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gY29uZmlndXJhdGlvblxuICAgKi9cbiAgZ2V0Q29uZmlndXJhdGlvbigpIHsgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbiB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgaGFzIGN1cnJlbnQgZGF0YWJhc2UgY29ubmVjdGlvbnMuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgdGhlIGN1cnJlbnQgYXN5bmMgY29udGV4dCBhbHJlYWR5IGhhcyBkYXRhYmFzZSBjb25uZWN0aW9ucy5cbiAgICovXG4gIGhhc0N1cnJlbnREYXRhYmFzZUNvbm5lY3Rpb25zKCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0Q3VycmVudENvbm5lY3Rpb25zKCkpLmxlbmd0aCA+IDBcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyb3IubWVzc2FnZS5zdGFydHNXaXRoKFwiTm8gZGF0YWJhc2UgY29uZmlndXJhdGlvbiBmb3IgZW52aXJvbm1lbnQ6XCIpKSByZXR1cm4gZmFsc2VcblxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgdGVzdGluZy5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gV2hldGhlciB0ZXN0aW5nLlxuICAgKi9cbiAgZ2V0VGVzdGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5hcmdzLnRlc3RpbmcgfHwgZmFsc2VcbiAgfVxufVxuIl19
@@ -1,5 +1,6 @@
1
1
  export default class TenantDatabaseCommandHelper {
2
2
  /**
3
+ * Runs constructor.
3
4
  * @param {object} args - Options object.
4
5
  * @param {import("./base-command.js").default} args.command - CLI command instance.
5
6
  * @param {string | undefined} args.identifier - Tenant database identifier.
@@ -12,26 +13,39 @@ export default class TenantDatabaseCommandHelper {
12
13
  configuration: import("../configuration.js").default;
13
14
  identifier: string;
14
15
  provider: import("../configuration-types.js").TenantDatabaseProviderType;
15
- /** @returns {void} */
16
+ /**
17
+ * Runs validate tenant database identifier.
18
+ @returns {void} */
16
19
  validateTenantDatabaseIdentifier(): void;
17
- /** @returns {Promise<void>} - Resolves when app runtime is initialized. */
20
+ /**
21
+ * Runs initialize runtime.
22
+ * @returns {Promise<void>} - Resolves when app runtime is initialized.
23
+ */
18
24
  initializeRuntime(): Promise<void>;
19
- /** @returns {Promise<unknown[]>} - Tenants. */
20
- listTenants(): Promise<unknown[]>;
21
25
  /**
22
- * @param {function({databaseConfiguration: import("../configuration-types.js").DatabaseConfigurationType, tenant: unknown}) : Promise<void>} callback - Callback.
26
+ * Runs list tenants.
27
+ * @returns {Promise<Array<?>>} - Tenants.
28
+ */
29
+ listTenants(): Promise<Array<unknown>>;
30
+ /**
31
+ * Runs each tenant.
32
+ * @param {function({databaseConfiguration: import("../configuration-types.js").DatabaseConfigurationType, tenant: ?}) : Promise<void>} callback - Callback.
23
33
  * @returns {Promise<number>} - Number of tenants processed.
24
34
  */
25
35
  eachTenant(callback: (arg0: {
26
36
  databaseConfiguration: import("../configuration-types.js").DatabaseConfigurationType;
27
37
  tenant: unknown;
28
38
  }) => Promise<void>): Promise<number>;
29
- /** @returns {number} - Number of tenants to process concurrently. */
39
+ /**
40
+ * Runs parallel count.
41
+ * @returns {number} - Number of tenants to process concurrently.
42
+ */
30
43
  parallelCount(): number;
31
44
  /**
45
+ * Runs run tenant callback.
32
46
  * @param {object} args - Tenant callback args.
33
- * @param {function({databaseConfiguration: import("../configuration-types.js").DatabaseConfigurationType, tenant: unknown}) : Promise<void>} args.callback - Callback.
34
- * @param {unknown} args.tenant - Tenant.
47
+ * @param {function({databaseConfiguration: import("../configuration-types.js").DatabaseConfigurationType, tenant: ?}) : Promise<void>} args.callback - Callback.
48
+ * @param {?} args.tenant - Tenant.
35
49
  * @returns {Promise<void>}
36
50
  */
37
51
  runTenantCallback({ callback, tenant }: {
@@ -42,7 +56,8 @@ export default class TenantDatabaseCommandHelper {
42
56
  tenant: unknown;
43
57
  }): Promise<void>;
44
58
  /**
45
- * @param {unknown} tenant - Tenant.
59
+ * Runs tenant label.
60
+ * @param {?} tenant - Tenant.
46
61
  * @returns {string} - Human readable tenant label.
47
62
  */
48
63
  tenantLabel(tenant: unknown): string;
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-database-command-helper.d.ts","sourceRoot":"","sources":["../../../src/cli/tenant-database-command-helper.js"],"names":[],"mappings":"AAEA;IACE;;;;OAIG;IACH,qCAHG;QAAkD,OAAO,EAAjD,OAAO,mBAAmB,EAAE,OAAO;QACV,UAAU,EAAnC,MAAM,GAAG,SAAS;KAC5B,EAQA;IAJC,6CAAsB;IACtB,qDAA+C;IAC/C,mBAA4B;IAC5B,yEAAwE;IAG1E,sBAAsB;IACtB,oCADc,IAAI,CAmBjB;IAED,2EAA2E;IAC3E,qBADc,OAAO,CAAC,IAAI,CAAC,CAG1B;IAED,+CAA+C;IAC/C,eADc,OAAO,CAAC,OAAO,EAAE,CAAC,CAiB/B;IAED;;;OAGG;IACH,qBAHW,CAAS,IAAuG,EAAvG;QAAC,qBAAqB,EAAE,OAAO,2BAA2B,EAAE,yBAAyB,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAC,KAAI,OAAO,CAAC,IAAI,CAAC,GAC/H,OAAO,CAAC,MAAM,CAAC,CAmD3B;IAED,qEAAqE;IACrE,iBADc,MAAM,CAyBnB;IAED;;;;;OAKG;IACH,wCAJG;QAAgJ,QAAQ,EAAhJ,CAAS,IAAuG,EAAvG;YAAC,qBAAqB,EAAE,OAAO,2BAA2B,EAAE,yBAAyB,CAAC;YAAC,MAAM,EAAE,OAAO,CAAA;SAAC,KAAI,OAAO,CAAC,IAAI,CAAC;QACnH,MAAM,EAApB,OAAO;KACf,GAAU,OAAO,CAAC,IAAI,CAAC,CAazB;IAED;;;OAGG;IACH,oBAHW,OAAO,GACL,MAAM,CAYlB;CACF"}
1
+ {"version":3,"file":"tenant-database-command-helper.d.ts","sourceRoot":"","sources":["../../../src/cli/tenant-database-command-helper.js"],"names":[],"mappings":"AAEA;IACE;;;;;OAKG;IACH,qCAHG;QAAkD,OAAO,EAAjD,OAAO,mBAAmB,EAAE,OAAO;QACV,UAAU,EAAnC,MAAM,GAAG,SAAS;KAC5B,EAQA;IAJC,6CAAsB;IACtB,qDAA+C;IAC/C,mBAA4B;IAC5B,yEAAwE;IAG1E;;wBAEoB;IACpB,oCADY,IAAI,CAmBf;IAED;;;OAGG;IACH,qBAFa,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;OAGG;IACH,eAFa,OAAO,CAAC,KAAK,CAAC,OAAC,CAAC,CAAC,CAkB7B;IAED;;;;OAIG;IACH,qBAHW,CAAS,IAAiG,EAAjG;QAAC,qBAAqB,EAAE,OAAO,2BAA2B,EAAE,yBAAyB,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAI,OAAO,CAAC,IAAI,CAAC,GACzH,OAAO,CAAC,MAAM,CAAC,CAqD3B;IAED;;;OAGG;IACH,iBAFa,MAAM,CA0BlB;IAED;;;;;;OAMG;IACH,wCAJG;QAA0I,QAAQ,EAA1I,CAAS,IAAiG,EAAjG;YAAC,qBAAqB,EAAE,OAAO,2BAA2B,EAAE,yBAAyB,CAAC;YAAC,MAAM,EAAE,OAAC,CAAA;SAAC,KAAI,OAAO,CAAC,IAAI,CAAC;QACnH,MAAM,EAAd,OAAC;KACT,GAAU,OAAO,CAAC,IAAI,CAAC,CAazB;IAED;;;;OAIG;IACH,oBAHW,OAAC,GACC,MAAM,CAclB;CACF"}
@@ -1,6 +1,7 @@
1
1
  // @ts-check
2
2
  export default class TenantDatabaseCommandHelper {
3
3
  /**
4
+ * Runs constructor.
4
5
  * @param {object} args - Options object.
5
6
  * @param {import("./base-command.js").default} args.command - CLI command instance.
6
7
  * @param {string | undefined} args.identifier - Tenant database identifier.
@@ -13,7 +14,9 @@ export default class TenantDatabaseCommandHelper {
13
14
  this.identifier = identifier;
14
15
  this.provider = this.configuration.getTenantDatabaseProvider(identifier);
15
16
  }
16
- /** @returns {void} */
17
+ /**
18
+ * Runs validate tenant database identifier.
19
+ @returns {void} */
17
20
  validateTenantDatabaseIdentifier() {
18
21
  const databaseConfiguration = this.configuration.getDatabaseConfiguration()[this.identifier];
19
22
  if (!databaseConfiguration) {
@@ -29,11 +32,17 @@ export default class TenantDatabaseCommandHelper {
29
32
  throw new Error(`Tenant database provider for ${this.identifier} must define listTenants`);
30
33
  }
31
34
  }
32
- /** @returns {Promise<void>} - Resolves when app runtime is initialized. */
35
+ /**
36
+ * Runs initialize runtime.
37
+ * @returns {Promise<void>} - Resolves when app runtime is initialized.
38
+ */
33
39
  async initializeRuntime() {
34
40
  await this.configuration.initialize({ type: "db-tenants" });
35
41
  }
36
- /** @returns {Promise<unknown[]>} - Tenants. */
42
+ /**
43
+ * Runs list tenants.
44
+ * @returns {Promise<Array<?>>} - Tenants.
45
+ */
37
46
  async listTenants() {
38
47
  this.validateTenantDatabaseIdentifier();
39
48
  await this.initializeRuntime();
@@ -49,7 +58,8 @@ export default class TenantDatabaseCommandHelper {
49
58
  return tenants;
50
59
  }
51
60
  /**
52
- * @param {function({databaseConfiguration: import("../configuration-types.js").DatabaseConfigurationType, tenant: unknown}) : Promise<void>} callback - Callback.
61
+ * Runs each tenant.
62
+ * @param {function({databaseConfiguration: import("../configuration-types.js").DatabaseConfigurationType, tenant: ?}) : Promise<void>} callback - Callback.
53
63
  * @returns {Promise<number>} - Number of tenants processed.
54
64
  */
55
65
  async eachTenant(callback) {
@@ -61,7 +71,9 @@ export default class TenantDatabaseCommandHelper {
61
71
  }
62
72
  return tenants.length;
63
73
  }
64
- /** @type {Array<{error: Error, tenant: unknown}>} */
74
+ /**
75
+ * Failures.
76
+ @type {Array<{error: Error, tenant: ?}>} */
65
77
  const failures = [];
66
78
  const workers = [];
67
79
  let tenantIndex = 0;
@@ -90,7 +102,10 @@ export default class TenantDatabaseCommandHelper {
90
102
  }
91
103
  return tenants.length;
92
104
  }
93
- /** @returns {number} - Number of tenants to process concurrently. */
105
+ /**
106
+ * Runs parallel count.
107
+ * @returns {number} - Number of tenants to process concurrently.
108
+ */
94
109
  parallelCount() {
95
110
  const parsedProcessArgs = this.command.args?.parsedProcessArgs || {};
96
111
  let parallelArg = parsedProcessArgs.parallel;
@@ -112,9 +127,10 @@ export default class TenantDatabaseCommandHelper {
112
127
  return parallelCount;
113
128
  }
114
129
  /**
130
+ * Runs run tenant callback.
115
131
  * @param {object} args - Tenant callback args.
116
- * @param {function({databaseConfiguration: import("../configuration-types.js").DatabaseConfigurationType, tenant: unknown}) : Promise<void>} args.callback - Callback.
117
- * @param {unknown} args.tenant - Tenant.
132
+ * @param {function({databaseConfiguration: import("../configuration-types.js").DatabaseConfigurationType, tenant: ?}) : Promise<void>} args.callback - Callback.
133
+ * @param {?} args.tenant - Tenant.
118
134
  * @returns {Promise<void>}
119
135
  */
120
136
  async runTenantCallback({ callback, tenant }) {
@@ -129,12 +145,15 @@ export default class TenantDatabaseCommandHelper {
129
145
  });
130
146
  }
131
147
  /**
132
- * @param {unknown} tenant - Tenant.
148
+ * Runs tenant label.
149
+ * @param {?} tenant - Tenant.
133
150
  * @returns {string} - Human readable tenant label.
134
151
  */
135
152
  tenantLabel(tenant) {
136
153
  if (tenant && typeof tenant === "object") {
137
- const tenantObject = /** @type {{id?: unknown, name?: unknown, slug?: unknown}} */ (tenant);
154
+ const tenantObject = /**
155
+ * Narrows the runtime value to the documented type.
156
+ @type {{id?: ?, name?: ?, slug?: ?}} */ (tenant);
138
157
  if (tenantObject.slug)
139
158
  return String(tenantObject.slug);
140
159
  if (tenantObject.name)
@@ -145,4 +164,4 @@ export default class TenantDatabaseCommandHelper {
145
164
  return JSON.stringify(tenant);
146
165
  }
147
166
  }
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWRhdGFiYXNlLWNvbW1hbmQtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS90ZW5hbnQtZGF0YWJhc2UtY29tbWFuZC1oZWxwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE1BQU0sQ0FBQyxPQUFPLE9BQU8sMkJBQTJCO0lBQzlDOzs7O09BSUc7SUFDSCxZQUFZLEVBQUMsT0FBTyxFQUFFLFVBQVUsRUFBQztRQUMvQixJQUFJLENBQUMsVUFBVTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQTtRQUUvRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUMxRSxDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLGdDQUFnQztRQUM5QixNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFNUYsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFDL0UsQ0FBQztRQUVELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixJQUFJLENBQUMsVUFBVSwwQ0FBMEMsQ0FBQyxDQUFBO1FBQ25HLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsOEJBQThCLEVBQUUs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SCxDQUFDO1lBRUQsTUFBTSxRQUFRLENBQUM7Z0JBQ2IscUJBQXFCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUN2RixNQUFNO2FBQ1AsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLE1BQU07UUFDaEIsSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDekMsTUFBTSxZQUFZLEdBQUcsNkRBQTZELENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUUzRixJQUFJLFlBQVksQ0FBQyxJQUFJO2dCQUFFLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUN2RCxJQUFJLFlBQVksQ0FBQyxJQUFJO2dCQUFFLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUN2RCxJQUFJLFlBQVksQ0FBQyxFQUFFO2dCQUFFLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNyRCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZW5hbnREYXRhYmFzZUNvbW1hbmRIZWxwZXIge1xuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2Jhc2UtY29tbWFuZC5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbW1hbmQgLSBDTEkgY29tbWFuZCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IGFyZ3MuaWRlbnRpZmllciAtIFRlbmFudCBkYXRhYmFzZSBpZGVudGlmaWVyLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NvbW1hbmQsIGlkZW50aWZpZXJ9KSB7XG4gICAgaWYgKCFpZGVudGlmaWVyKSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRlbmFudCBkYXRhYmFzZSBpZGVudGlmaWVyIGFyZ3VtZW50XCIpXG5cbiAgICB0aGlzLmNvbW1hbmQgPSBjb21tYW5kXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29tbWFuZC5nZXRDb25maWd1cmF0aW9uKClcbiAgICB0aGlzLmlkZW50aWZpZXIgPSBpZGVudGlmaWVyXG4gICAgdGhpcy5wcm92aWRlciA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXRUZW5hbnREYXRhYmFzZVByb3ZpZGVyKGlkZW50aWZpZXIpXG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIHZhbGlkYXRlVGVuYW50RGF0YWJhc2VJZGVudGlmaWVyKCkge1xuICAgIGNvbnN0IGRhdGFiYXNlQ29uZmlndXJhdGlvbiA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXREYXRhYmFzZUNvbmZpZ3VyYXRpb24oKVt0aGlzLmlkZW50aWZpZXJdXG5cbiAgICBpZiAoIWRhdGFiYXNlQ29uZmlndXJhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBzdWNoIGRhdGFiYXNlIGlkZW50aWZpZXIgY29uZmlndXJlZDogJHt0aGlzLmlkZW50aWZpZXJ9YClcbiAgICB9XG5cbiAgICBpZiAoIWRhdGFiYXNlQ29uZmlndXJhdGlvbi50ZW5hbnRPbmx5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYERhdGFiYXNlIGlkZW50aWZpZXIgJHt0aGlzLmlkZW50aWZpZXJ9IGlzIG5vdCBjb25maWd1cmVkIHdpdGggdGVuYW50T25seTogdHJ1ZWApXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5nZXREaXNhYmxlZERhdGFiYXNlSWRlbnRpZmllcnMoKS5oYXModGhpcy5pZGVudGlmaWVyKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW5hbnQgZGF0YWJhc2UgaWRlbnRpZmllciAke3RoaXMuaWRlbnRpZmllcn0gaXMgZGlzYWJsZWQgYnkgVkVMT0NJT1VTX0RJU0FCTEVEX0RBVEFCQVNFX0lERU5USUZJRVJTYClcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMucHJvdmlkZXIubGlzdFRlbmFudHMgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW5hbnQgZGF0YWJhc2UgcHJvdmlkZXIgZm9yICR7dGhpcy5pZGVudGlmaWVyfSBtdXN0IGRlZmluZSBsaXN0VGVuYW50c2ApXG4gICAgfVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gYXBwIHJ1bnRpbWUgaXMgaW5pdGlhbGl6ZWQuICovXG4gIGFzeW5jIGluaXRpYWxpemVSdW50aW1lKCkge1xuICAgIGF3YWl0IHRoaXMuY29uZmlndXJhdGlvbi5pbml0aWFsaXplKHt0eXBlOiBcImRiLXRlbmFudHNcIn0pXG4gIH1cblxuICAvKiogQHJldHVybnMge1Byb21pc2U8dW5rbm93bltdPn0gLSBUZW5hbnRzLiAqL1xuICBhc3luYyBsaXN0VGVuYW50cygpIHtcbiAgICB0aGlzLnZhbGlkYXRlVGVuYW50RGF0YWJhc2VJZGVudGlmaWVyKClcbiAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVSdW50aW1lKClcblxuICAgIGNvbnN0IHRlbmFudHMgPSBhd2FpdCB0aGlzLmNvbmZpZ3VyYXRpb24uZW5zdXJlQ29ubmVjdGlvbnMoe25hbWU6IGBUZW5hbnQgZGF0YWJhc2UgbGlzdDogJHt0aGlzLmlkZW50aWZpZXJ9YH0sIGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3ZpZGVyLmxpc3RUZW5hbnRzKHtcbiAgICAgICAgY29uZmlndXJhdGlvbjogdGhpcy5jb25maWd1cmF0aW9uLFxuICAgICAgICBpZGVudGlmaWVyOiB0aGlzLmlkZW50aWZpZXJcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0ZW5hbnRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW5hbnQgZGF0YWJhc2UgcHJvdmlkZXIgZm9yICR7dGhpcy5pZGVudGlmaWVyfSBtdXN0IHJldHVybiBhbiBhcnJheSBmcm9tIGxpc3RUZW5hbnRzYClcbiAgICB9XG5cbiAgICByZXR1cm4gdGVuYW50c1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oe2RhdGFiYXNlQ29uZmlndXJhdGlvbjogaW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5EYXRhYmFzZUNvbmZpZ3VyYXRpb25UeXBlLCB0ZW5hbnQ6IHVua25vd259KSA6IFByb21pc2U8dm9pZD59IGNhbGxiYWNrIC0gQ2FsbGJhY2suXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPG51bWJlcj59IC0gTnVtYmVyIG9mIHRlbmFudHMgcHJvY2Vzc2VkLlxuICAgKi9cbiAgYXN5bmMgZWFjaFRlbmFudChjYWxsYmFjaykge1xuICAgIGNvbnN0IHRlbmFudHMgPSBhd2FpdCB0aGlzLmxpc3RUZW5hbnRzKClcbiAgICBjb25zdCBwYXJhbGxlbENvdW50ID0gdGhpcy5wYXJhbGxlbENvdW50KClcblxuICAgIGlmIChwYXJhbGxlbENvdW50IDw9IDEpIHtcbiAgICAgIGZvciAoY29uc3QgdGVuYW50IG9mIHRlbmFudHMpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5ydW5UZW5hbnRDYWxsYmFjayh7Y2FsbGJhY2ssIHRlbmFudH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0ZW5hbnRzLmxlbmd0aFxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7QXJyYXk8e2Vycm9yOiBFcnJvciwgdGVuYW50OiB1bmtub3dufT59ICovXG4gICAgY29uc3QgZmFpbHVyZXMgPSBbXVxuICAgIGNvbnN0IHdvcmtlcnMgPSBbXVxuICAgIGxldCB0ZW5hbnRJbmRleCA9IDBcbiAgICBjb25zdCB3b3JrZXJDb3VudCA9IE1hdGgubWluKHBhcmFsbGVsQ291bnQsIHRlbmFudHMubGVuZ3RoKVxuXG4gICAgZm9yIChsZXQgd29ya2VySW5kZXggPSAwOyB3b3JrZXJJbmRleCA8IHdvcmtlckNvdW50OyB3b3JrZXJJbmRleCsrKSB7XG4gICAgICB3b3JrZXJzLnB1c2goKGFzeW5jICgpID0+IHtcbiAgICAgICAgd2hpbGUgKHRlbmFudEluZGV4IDwgdGVuYW50cy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCB0ZW5hbnQgPSB0ZW5hbnRzW3RlbmFudEluZGV4XVxuXG4gICAgICAgICAgdGVuYW50SW5kZXgrK1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucnVuVGVuYW50Q2FsbGJhY2soe2NhbGxiYWNrLCB0ZW5hbnR9KVxuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBmYWlsdXJlcy5wdXNoKHtcbiAgICAgICAgICAgICAgZXJyb3I6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvciA6IG5ldyBFcnJvcihTdHJpbmcoZXJyb3IpKSxcbiAgICAgICAgICAgICAgdGVuYW50XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSkoKSlcbiAgICB9XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbCh3b3JrZXJzKVxuXG4gICAgaWYgKGZhaWx1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZhaWxlZFRlbmFudExhYmVscyA9IGZhaWx1cmVzLm1hcCgoZmFpbHVyZSkgPT4gdGhpcy50ZW5hbnRMYWJlbChmYWlsdXJlLnRlbmFudCkpLmpvaW4oXCIsIFwiKVxuXG4gICAgICB0aHJvdyBuZXcgQWdncmVnYXRlRXJyb3IoXG4gICAgICAgIGZhaWx1cmVzLm1hcCgoZmFpbHVyZSkgPT4gZmFpbHVyZS5lcnJvciksXG4gICAgICAgIGBGYWlsZWQgdGVuYW50IGRhdGFiYXNlIGNvbW1hbmQgZm9yIHRlbmFudChzKTogJHtmYWlsZWRUZW5hbnRMYWJlbHN9YFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiB0ZW5hbnRzLmxlbmd0aFxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtudW1iZXJ9IC0gTnVtYmVyIG9mIHRlbmFudHMgdG8gcHJvY2VzcyBjb25jdXJyZW50bHkuICovXG4gIHBhcmFsbGVsQ291bnQoKSB7XG4gICAgY29uc3QgcGFyc2VkUHJvY2Vzc0FyZ3MgPSB0aGlzLmNvbW1hbmQuYXJncz8ucGFyc2VkUHJvY2Vzc0FyZ3MgfHwge31cbiAgICBsZXQgcGFyYWxsZWxBcmcgPSBwYXJzZWRQcm9jZXNzQXJncy5wYXJhbGxlbFxuXG4gICAgaWYgKHBhcmFsbGVsQXJnID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHBhcmFsbGVsQXJnSW5kZXggPSB0aGlzLmNvbW1hbmQucHJvY2Vzc0FyZ3M/LmluZGV4T2YoXCItLXBhcmFsbGVsXCIpID8/IC0xXG5cbiAgICAgIGlmIChwYXJhbGxlbEFyZ0luZGV4ID49IDApIHtcbiAgICAgICAgY29uc3QgbmV4dEFyZyA9IHRoaXMuY29tbWFuZC5wcm9jZXNzQXJncz8uW3BhcmFsbGVsQXJnSW5kZXggKyAxXVxuXG4gICAgICAgIHBhcmFsbGVsQXJnID0gbmV4dEFyZyAmJiAhbmV4dEFyZy5zdGFydHNXaXRoKFwiLVwiKSA/IG5leHRBcmcgOiB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcmFsbGVsQXJnID09PSB1bmRlZmluZWQgfHwgcGFyYWxsZWxBcmcgPT09IGZhbHNlKSByZXR1cm4gMVxuICAgIGlmIChwYXJhbGxlbEFyZyA9PT0gdHJ1ZSkgcmV0dXJuIDIwXG5cbiAgICBjb25zdCBwYXJhbGxlbENvdW50ID0gTnVtYmVyKHBhcmFsbGVsQXJnKVxuXG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHBhcmFsbGVsQ291bnQpIHx8IHBhcmFsbGVsQ291bnQgPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYC0tcGFyYWxsZWwgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgd2hlbiBhIHZhbHVlIGlzIHByb3ZpZGVkOiAke3BhcmFsbGVsQXJnfWApXG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFsbGVsQ291bnRcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIFRlbmFudCBjYWxsYmFjayBhcmdzLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHtkYXRhYmFzZUNvbmZpZ3VyYXRpb246IGltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuRGF0YWJhc2VDb25maWd1cmF0aW9uVHlwZSwgdGVuYW50OiB1bmtub3dufSkgOiBQcm9taXNlPHZvaWQ+fSBhcmdzLmNhbGxiYWNrIC0gQ2FsbGJhY2suXG4gICAqIEBwYXJhbSB7dW5rbm93bn0gYXJncy50ZW5hbnQgLSBUZW5hbnQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgcnVuVGVuYW50Q2FsbGJhY2soe2NhbGxiYWNrLCB0ZW5hbnR9KSB7XG4gICAgYXdhaXQgdGhpcy5jb25maWd1cmF0aW9uLnJ1bldpdGhUZW5hbnQodGVuYW50LCBhc3luYyAoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuY29uZmlndXJhdGlvbi5pc0RhdGFiYXNlSWRlbnRpZmllckFjdGl2ZSh0aGlzLmlkZW50aWZpZXIpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGVuYW50IGRhdGFiYXNlIGlkZW50aWZpZXIgJHt0aGlzLmlkZW50aWZpZXJ9IGlzIGluYWN0aXZlIGZvciB0ZW5hbnQ6ICR7dGhpcy50ZW5hbnRMYWJlbCh0ZW5hbnQpfWApXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGNhbGxiYWNrKHtcbiAgICAgICAgZGF0YWJhc2VDb25maWd1cmF0aW9uOiB0aGlzLmNvbmZpZ3VyYXRpb24ucmVzb2x2ZURhdGFiYXNlQ29uZmlndXJhdGlvbih0aGlzLmlkZW50aWZpZXIpLFxuICAgICAgICB0ZW5hbnRcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3Vua25vd259IHRlbmFudCAtIFRlbmFudC5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBIdW1hbiByZWFkYWJsZSB0ZW5hbnQgbGFiZWwuXG4gICAqL1xuICB0ZW5hbnRMYWJlbCh0ZW5hbnQpIHtcbiAgICBpZiAodGVuYW50ICYmIHR5cGVvZiB0ZW5hbnQgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGNvbnN0IHRlbmFudE9iamVjdCA9IC8qKiBAdHlwZSB7e2lkPzogdW5rbm93biwgbmFtZT86IHVua25vd24sIHNsdWc/OiB1bmtub3dufX0gKi8gKHRlbmFudClcblxuICAgICAgaWYgKHRlbmFudE9iamVjdC5zbHVnKSByZXR1cm4gU3RyaW5nKHRlbmFudE9iamVjdC5zbHVnKVxuICAgICAgaWYgKHRlbmFudE9iamVjdC5uYW1lKSByZXR1cm4gU3RyaW5nKHRlbmFudE9iamVjdC5uYW1lKVxuICAgICAgaWYgKHRlbmFudE9iamVjdC5pZCkgcmV0dXJuIFN0cmluZyh0ZW5hbnRPYmplY3QuaWQpXG4gICAgfVxuXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRlbmFudClcbiAgfVxufVxuIl19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWRhdGFiYXNlLWNvbW1hbmQtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS90ZW5hbnQtZGF0YWJhc2UtY29tbWFuZC1oZWxwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE1BQU0sQ0FBQyxPQUFPLE9BQU8sMkJBQTJCO0lBQzlDOzs7OztPQUtHO0lBQ0gsWUFBWSxFQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUE7UUFFL0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDMUUsQ0FBQztJQUVEOzt3QkFFb0I7SUFDcEIsZ0NBQWdDO1FBQzlCLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUU1RixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtRQUMvRSxDQUFDO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLElBQUksQ0FBQyxVQUFVLDBDQUEwQyxDQUFDLENBQUE7UUFDbkcsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsRUFB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Q3RILENBQUM7WUFFRCxNQUFNLFFBQVEsQ0FBQztnQkFDYixxQkFBcUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQ3ZGLE1BQU07YUFDUCxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLE1BQU07UUFDaEIsSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDekMsTUFBTSxZQUFZLEdBQUc7OzBFQUV5QyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7WUFFdkUsSUFBSSxZQUFZLENBQUMsSUFBSTtnQkFBRSxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdkQsSUFBSSxZQUFZLENBQUMsSUFBSTtnQkFBRSxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdkQsSUFBSSxZQUFZLENBQUMsRUFBRTtnQkFBRSxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDckQsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMvQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVuYW50RGF0YWJhc2VDb21tYW5kSGVscGVyIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9iYXNlLWNvbW1hbmQuanNcIikuZGVmYXVsdH0gYXJncy5jb21tYW5kIC0gQ0xJIGNvbW1hbmQgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBhcmdzLmlkZW50aWZpZXIgLSBUZW5hbnQgZGF0YWJhc2UgaWRlbnRpZmllci5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjb21tYW5kLCBpZGVudGlmaWVyfSkge1xuICAgIGlmICghaWRlbnRpZmllcikgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0ZW5hbnQgZGF0YWJhc2UgaWRlbnRpZmllciBhcmd1bWVudFwiKVxuXG4gICAgdGhpcy5jb21tYW5kID0gY29tbWFuZFxuICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbW1hbmQuZ2V0Q29uZmlndXJhdGlvbigpXG4gICAgdGhpcy5pZGVudGlmaWVyID0gaWRlbnRpZmllclxuICAgIHRoaXMucHJvdmlkZXIgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0VGVuYW50RGF0YWJhc2VQcm92aWRlcihpZGVudGlmaWVyKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgdmFsaWRhdGUgdGVuYW50IGRhdGFiYXNlIGlkZW50aWZpZXIuXG4gICAgQHJldHVybnMge3ZvaWR9ICovXG4gIHZhbGlkYXRlVGVuYW50RGF0YWJhc2VJZGVudGlmaWVyKCkge1xuICAgIGNvbnN0IGRhdGFiYXNlQ29uZmlndXJhdGlvbiA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXREYXRhYmFzZUNvbmZpZ3VyYXRpb24oKVt0aGlzLmlkZW50aWZpZXJdXG5cbiAgICBpZiAoIWRhdGFiYXNlQ29uZmlndXJhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBzdWNoIGRhdGFiYXNlIGlkZW50aWZpZXIgY29uZmlndXJlZDogJHt0aGlzLmlkZW50aWZpZXJ9YClcbiAgICB9XG5cbiAgICBpZiAoIWRhdGFiYXNlQ29uZmlndXJhdGlvbi50ZW5hbnRPbmx5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYERhdGFiYXNlIGlkZW50aWZpZXIgJHt0aGlzLmlkZW50aWZpZXJ9IGlzIG5vdCBjb25maWd1cmVkIHdpdGggdGVuYW50T25seTogdHJ1ZWApXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5nZXREaXNhYmxlZERhdGFiYXNlSWRlbnRpZmllcnMoKS5oYXModGhpcy5pZGVudGlmaWVyKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW5hbnQgZGF0YWJhc2UgaWRlbnRpZmllciAke3RoaXMuaWRlbnRpZmllcn0gaXMgZGlzYWJsZWQgYnkgVkVMT0NJT1VTX0RJU0FCTEVEX0RBVEFCQVNFX0lERU5USUZJRVJTYClcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMucHJvdmlkZXIubGlzdFRlbmFudHMgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW5hbnQgZGF0YWJhc2UgcHJvdmlkZXIgZm9yICR7dGhpcy5pZGVudGlmaWVyfSBtdXN0IGRlZmluZSBsaXN0VGVuYW50c2ApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgaW5pdGlhbGl6ZSBydW50aW1lLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGFwcCBydW50aW1lIGlzIGluaXRpYWxpemVkLlxuICAgKi9cbiAgYXN5bmMgaW5pdGlhbGl6ZVJ1bnRpbWUoKSB7XG4gICAgYXdhaXQgdGhpcy5jb25maWd1cmF0aW9uLmluaXRpYWxpemUoe3R5cGU6IFwiZGItdGVuYW50c1wifSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGxpc3QgdGVuYW50cy5cbiAgICogQHJldHVybnMge1Byb21pc2U8QXJyYXk8Pz4+fSAtIFRlbmFudHMuXG4gICAqL1xuICBhc3luYyBsaXN0VGVuYW50cygpIHtcbiAgICB0aGlzLnZhbGlkYXRlVGVuYW50RGF0YWJhc2VJZGVudGlmaWVyKClcbiAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVSdW50aW1lKClcblxuICAgIGNvbnN0IHRlbmFudHMgPSBhd2FpdCB0aGlzLmNvbmZpZ3VyYXRpb24uZW5zdXJlQ29ubmVjdGlvbnMoe25hbWU6IGBUZW5hbnQgZGF0YWJhc2UgbGlzdDogJHt0aGlzLmlkZW50aWZpZXJ9YH0sIGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3ZpZGVyLmxpc3RUZW5hbnRzKHtcbiAgICAgICAgY29uZmlndXJhdGlvbjogdGhpcy5jb25maWd1cmF0aW9uLFxuICAgICAgICBpZGVudGlmaWVyOiB0aGlzLmlkZW50aWZpZXJcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0ZW5hbnRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW5hbnQgZGF0YWJhc2UgcHJvdmlkZXIgZm9yICR7dGhpcy5pZGVudGlmaWVyfSBtdXN0IHJldHVybiBhbiBhcnJheSBmcm9tIGxpc3RUZW5hbnRzYClcbiAgICB9XG5cbiAgICByZXR1cm4gdGVuYW50c1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZWFjaCB0ZW5hbnQuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oe2RhdGFiYXNlQ29uZmlndXJhdGlvbjogaW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5EYXRhYmFzZUNvbmZpZ3VyYXRpb25UeXBlLCB0ZW5hbnQ6ID99KSA6IFByb21pc2U8dm9pZD59IGNhbGxiYWNrIC0gQ2FsbGJhY2suXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPG51bWJlcj59IC0gTnVtYmVyIG9mIHRlbmFudHMgcHJvY2Vzc2VkLlxuICAgKi9cbiAgYXN5bmMgZWFjaFRlbmFudChjYWxsYmFjaykge1xuICAgIGNvbnN0IHRlbmFudHMgPSBhd2FpdCB0aGlzLmxpc3RUZW5hbnRzKClcbiAgICBjb25zdCBwYXJhbGxlbENvdW50ID0gdGhpcy5wYXJhbGxlbENvdW50KClcblxuICAgIGlmIChwYXJhbGxlbENvdW50IDw9IDEpIHtcbiAgICAgIGZvciAoY29uc3QgdGVuYW50IG9mIHRlbmFudHMpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5ydW5UZW5hbnRDYWxsYmFjayh7Y2FsbGJhY2ssIHRlbmFudH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0ZW5hbnRzLmxlbmd0aFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZhaWx1cmVzLlxuICAgICAgQHR5cGUge0FycmF5PHtlcnJvcjogRXJyb3IsIHRlbmFudDogP30+fSAqL1xuICAgIGNvbnN0IGZhaWx1cmVzID0gW11cbiAgICBjb25zdCB3b3JrZXJzID0gW11cbiAgICBsZXQgdGVuYW50SW5kZXggPSAwXG4gICAgY29uc3Qgd29ya2VyQ291bnQgPSBNYXRoLm1pbihwYXJhbGxlbENvdW50LCB0ZW5hbnRzLmxlbmd0aClcblxuICAgIGZvciAobGV0IHdvcmtlckluZGV4ID0gMDsgd29ya2VySW5kZXggPCB3b3JrZXJDb3VudDsgd29ya2VySW5kZXgrKykge1xuICAgICAgd29ya2Vycy5wdXNoKChhc3luYyAoKSA9PiB7XG4gICAgICAgIHdoaWxlICh0ZW5hbnRJbmRleCA8IHRlbmFudHMubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgdGVuYW50ID0gdGVuYW50c1t0ZW5hbnRJbmRleF1cblxuICAgICAgICAgIHRlbmFudEluZGV4KytcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnJ1blRlbmFudENhbGxiYWNrKHtjYWxsYmFjaywgdGVuYW50fSlcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgZmFpbHVyZXMucHVzaCh7XG4gICAgICAgICAgICAgIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoU3RyaW5nKGVycm9yKSksXG4gICAgICAgICAgICAgIHRlbmFudFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pKCkpXG4gICAgfVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwod29ya2VycylcblxuICAgIGlmIChmYWlsdXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmYWlsZWRUZW5hbnRMYWJlbHMgPSBmYWlsdXJlcy5tYXAoKGZhaWx1cmUpID0+IHRoaXMudGVuYW50TGFiZWwoZmFpbHVyZS50ZW5hbnQpKS5qb2luKFwiLCBcIilcblxuICAgICAgdGhyb3cgbmV3IEFnZ3JlZ2F0ZUVycm9yKFxuICAgICAgICBmYWlsdXJlcy5tYXAoKGZhaWx1cmUpID0+IGZhaWx1cmUuZXJyb3IpLFxuICAgICAgICBgRmFpbGVkIHRlbmFudCBkYXRhYmFzZSBjb21tYW5kIGZvciB0ZW5hbnQocyk6ICR7ZmFpbGVkVGVuYW50TGFiZWxzfWBcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gdGVuYW50cy5sZW5ndGhcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHBhcmFsbGVsIGNvdW50LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSAtIE51bWJlciBvZiB0ZW5hbnRzIHRvIHByb2Nlc3MgY29uY3VycmVudGx5LlxuICAgKi9cbiAgcGFyYWxsZWxDb3VudCgpIHtcbiAgICBjb25zdCBwYXJzZWRQcm9jZXNzQXJncyA9IHRoaXMuY29tbWFuZC5hcmdzPy5wYXJzZWRQcm9jZXNzQXJncyB8fCB7fVxuICAgIGxldCBwYXJhbGxlbEFyZyA9IHBhcnNlZFByb2Nlc3NBcmdzLnBhcmFsbGVsXG5cbiAgICBpZiAocGFyYWxsZWxBcmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgcGFyYWxsZWxBcmdJbmRleCA9IHRoaXMuY29tbWFuZC5wcm9jZXNzQXJncz8uaW5kZXhPZihcIi0tcGFyYWxsZWxcIikgPz8gLTFcblxuICAgICAgaWYgKHBhcmFsbGVsQXJnSW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCBuZXh0QXJnID0gdGhpcy5jb21tYW5kLnByb2Nlc3NBcmdzPy5bcGFyYWxsZWxBcmdJbmRleCArIDFdXG5cbiAgICAgICAgcGFyYWxsZWxBcmcgPSBuZXh0QXJnICYmICFuZXh0QXJnLnN0YXJ0c1dpdGgoXCItXCIpID8gbmV4dEFyZyA6IHRydWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGFyYWxsZWxBcmcgPT09IHVuZGVmaW5lZCB8fCBwYXJhbGxlbEFyZyA9PT0gZmFsc2UpIHJldHVybiAxXG4gICAgaWYgKHBhcmFsbGVsQXJnID09PSB0cnVlKSByZXR1cm4gMjBcblxuICAgIGNvbnN0IHBhcmFsbGVsQ291bnQgPSBOdW1iZXIocGFyYWxsZWxBcmcpXG5cbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIocGFyYWxsZWxDb3VudCkgfHwgcGFyYWxsZWxDb3VudCA8IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgLS1wYXJhbGxlbCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciB3aGVuIGEgdmFsdWUgaXMgcHJvdmlkZWQ6ICR7cGFyYWxsZWxBcmd9YClcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYWxsZWxDb3VudFxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgcnVuIHRlbmFudCBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBUZW5hbnQgY2FsbGJhY2sgYXJncy5cbiAgICogQHBhcmFtIHtmdW5jdGlvbih7ZGF0YWJhc2VDb25maWd1cmF0aW9uOiBpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkRhdGFiYXNlQ29uZmlndXJhdGlvblR5cGUsIHRlbmFudDogP30pIDogUHJvbWlzZTx2b2lkPn0gYXJncy5jYWxsYmFjayAtIENhbGxiYWNrLlxuICAgKiBAcGFyYW0gez99IGFyZ3MudGVuYW50IC0gVGVuYW50LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHJ1blRlbmFudENhbGxiYWNrKHtjYWxsYmFjaywgdGVuYW50fSkge1xuICAgIGF3YWl0IHRoaXMuY29uZmlndXJhdGlvbi5ydW5XaXRoVGVuYW50KHRlbmFudCwgYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmNvbmZpZ3VyYXRpb24uaXNEYXRhYmFzZUlkZW50aWZpZXJBY3RpdmUodGhpcy5pZGVudGlmaWVyKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRlbmFudCBkYXRhYmFzZSBpZGVudGlmaWVyICR7dGhpcy5pZGVudGlmaWVyfSBpcyBpbmFjdGl2ZSBmb3IgdGVuYW50OiAke3RoaXMudGVuYW50TGFiZWwodGVuYW50KX1gKVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBjYWxsYmFjayh7XG4gICAgICAgIGRhdGFiYXNlQ29uZmlndXJhdGlvbjogdGhpcy5jb25maWd1cmF0aW9uLnJlc29sdmVEYXRhYmFzZUNvbmZpZ3VyYXRpb24odGhpcy5pZGVudGlmaWVyKSxcbiAgICAgICAgdGVuYW50XG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyB0ZW5hbnQgbGFiZWwuXG4gICAqIEBwYXJhbSB7P30gdGVuYW50IC0gVGVuYW50LlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIEh1bWFuIHJlYWRhYmxlIHRlbmFudCBsYWJlbC5cbiAgICovXG4gIHRlbmFudExhYmVsKHRlbmFudCkge1xuICAgIGlmICh0ZW5hbnQgJiYgdHlwZW9mIHRlbmFudCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgY29uc3QgdGVuYW50T2JqZWN0ID0gLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEB0eXBlIHt7aWQ/OiA/LCBuYW1lPzogPywgc2x1Zz86ID99fSAqLyAodGVuYW50KVxuXG4gICAgICBpZiAodGVuYW50T2JqZWN0LnNsdWcpIHJldHVybiBTdHJpbmcodGVuYW50T2JqZWN0LnNsdWcpXG4gICAgICBpZiAodGVuYW50T2JqZWN0Lm5hbWUpIHJldHVybiBTdHJpbmcodGVuYW50T2JqZWN0Lm5hbWUpXG4gICAgICBpZiAodGVuYW50T2JqZWN0LmlkKSByZXR1cm4gU3RyaW5nKHRlbmFudE9iamVjdC5pZClcbiAgICB9XG5cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGVuYW50KVxuICB9XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  /**
2
+ * Runs velocious use browser cli.
2
3
  * @param {object} args - Options object.
3
4
  * @param {import("../configuration.js").default} args.configuration - Configuration instance.
4
5
  * @returns {BrowserCli} browserCli
@@ -1 +1 @@
1
- {"version":3,"file":"use-browser-cli.d.ts","sourceRoot":"","sources":["../../../src/cli/use-browser-cli.js"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,+EAHG;IAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO;CAC7C,GAAU,UAAU,CAetB;uBAxBsB,kBAAkB"}
1
+ {"version":3,"file":"use-browser-cli.d.ts","sourceRoot":"","sources":["../../../src/cli/use-browser-cli.js"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH,+EAHG;IAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO;CAC7C,GAAU,UAAU,CAetB;uBA3BsB,kBAAkB"}
@@ -1,9 +1,12 @@
1
1
  import React from "react";
2
2
  import BrowserCli from "./browser-cli.js";
3
3
  import restArgsError from "../utils/rest-args-error.js";
4
- /** @type {{browserCli?: BrowserCli}} */
4
+ /**
5
+ * Shared.
6
+ @type {{browserCli?: BrowserCli}} */
5
7
  const shared = {};
6
8
  /**
9
+ * Runs velocious use browser cli.
7
10
  * @param {object} args - Options object.
8
11
  * @param {import("../configuration.js").default} args.configuration - Configuration instance.
9
12
  * @returns {BrowserCli} browserCli
@@ -19,4 +22,4 @@ export default function velociousUseBrowserCli({ configuration, ...restArgs }) {
19
22
  restArgsError(restArgs);
20
23
  return browserCli;
21
24
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWJyb3dzZXItY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS91c2UtYnJvd3Nlci1jbGkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBRXpCLE9BQU8sVUFBVSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sYUFBYSxNQUFNLDZCQUE2QixDQUFBO0FBRXZELHdDQUF3QztBQUN4QyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUE7QUFFakI7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLFVBQVUsc0JBQXNCLENBQUMsRUFBQyxhQUFhLEVBQUUsR0FBRyxRQUFRLEVBQUM7SUFDekUsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN2QixNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQTtZQUNuRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQzVCLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUE7SUFDMUIsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtJQUVuQixhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFdkIsT0FBTyxVQUFVLENBQUE7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgQnJvd3NlckNsaSBmcm9tIFwiLi9icm93c2VyLWNsaS5qc1wiXG5pbXBvcnQgcmVzdEFyZ3NFcnJvciBmcm9tIFwiLi4vdXRpbHMvcmVzdC1hcmdzLWVycm9yLmpzXCJcblxuLyoqIEB0eXBlIHt7YnJvd3NlckNsaT86IEJyb3dzZXJDbGl9fSAqL1xuY29uc3Qgc2hhcmVkID0ge31cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gKiBAcmV0dXJucyB7QnJvd3NlckNsaX0gYnJvd3NlckNsaVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZWxvY2lvdXNVc2VCcm93c2VyQ2xpKHtjb25maWd1cmF0aW9uLCAuLi5yZXN0QXJnc30pIHtcbiAgY29uc3QgYnJvd3NlckNsaSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2hhcmVkLmJyb3dzZXJDbGkpIHtcbiAgICAgIHNoYXJlZC5icm93c2VyQ2xpID0gbmV3IEJyb3dzZXJDbGkoe2NvbmZpZ3VyYXRpb259KVxuICAgICAgc2hhcmVkLmJyb3dzZXJDbGkuZW5hYmxlKClcbiAgICB9XG5cbiAgICByZXR1cm4gc2hhcmVkLmJyb3dzZXJDbGlcbiAgfSwgW2NvbmZpZ3VyYXRpb25dKVxuXG4gIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgcmV0dXJuIGJyb3dzZXJDbGlcbn1cbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWJyb3dzZXItY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS91c2UtYnJvd3Nlci1jbGkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBRXpCLE9BQU8sVUFBVSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sYUFBYSxNQUFNLDZCQUE2QixDQUFBO0FBRXZEOztzQ0FFc0M7QUFDdEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO0FBRWpCOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxzQkFBc0IsQ0FBQyxFQUFDLGFBQWEsRUFBRSxHQUFHLFFBQVEsRUFBQztJQUN6RSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsRUFBQyxhQUFhLEVBQUMsQ0FBQyxDQUFBO1lBQ25ELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDNUIsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQTtJQUMxQixDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFBO0lBRW5CLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUV2QixPQUFPLFVBQVUsQ0FBQTtBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCBCcm93c2VyQ2xpIGZyb20gXCIuL2Jyb3dzZXItY2xpLmpzXCJcbmltcG9ydCByZXN0QXJnc0Vycm9yIGZyb20gXCIuLi91dGlscy9yZXN0LWFyZ3MtZXJyb3IuanNcIlxuXG4vKipcbiAqIFNoYXJlZC5cbiAgQHR5cGUge3ticm93c2VyQ2xpPzogQnJvd3NlckNsaX19ICovXG5jb25zdCBzaGFyZWQgPSB7fVxuXG4vKipcbiAqIFJ1bnMgdmVsb2Npb3VzIHVzZSBicm93c2VyIGNsaS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIHtCcm93c2VyQ2xpfSBicm93c2VyQ2xpXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlbG9jaW91c1VzZUJyb3dzZXJDbGkoe2NvbmZpZ3VyYXRpb24sIC4uLnJlc3RBcmdzfSkge1xuICBjb25zdCBicm93c2VyQ2xpID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFzaGFyZWQuYnJvd3NlckNsaSkge1xuICAgICAgc2hhcmVkLmJyb3dzZXJDbGkgPSBuZXcgQnJvd3NlckNsaSh7Y29uZmlndXJhdGlvbn0pXG4gICAgICBzaGFyZWQuYnJvd3NlckNsaS5lbmFibGUoKVxuICAgIH1cblxuICAgIHJldHVybiBzaGFyZWQuYnJvd3NlckNsaVxuICB9LCBbY29uZmlndXJhdGlvbl0pXG5cbiAgcmVzdEFyZ3NFcnJvcihyZXN0QXJncylcblxuICByZXR1cm4gYnJvd3NlckNsaVxufVxuIl19
@@ -1,4 +1,5 @@
1
1
  /**
2
+ * Runs configuration resolver.
2
3
  * @param {import("./configuration-types.js").ConfigurationArgsType} [args] - Options object.
3
4
  * @returns {Promise<Configuration>} - Resolves with value.
4
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"configuration-resolver.d.ts","sourceRoot":"","sources":["../../src/configuration-resolver.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH,qDAHW,OAAO,0BAA0B,EAAE,qBAAqB,GACtD,OAAO,CAAC,aAAa,CAAC,CAsDlC;0BA7D4D,oBAAoB"}
1
+ {"version":3,"file":"configuration-resolver.d.ts","sourceRoot":"","sources":["../../src/configuration-resolver.js"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,qDAHW,OAAO,0BAA0B,EAAE,qBAAqB,GACtD,OAAO,CAAC,aAAa,CAAC,CAsDlC;0BA9D4D,oBAAoB"}
@@ -4,6 +4,7 @@ import envSense from "env-sense/build/use-env-sense.js";
4
4
  import fileExists from "./utils/file-exists.js";
5
5
  import toImportSpecifier from "./utils/to-import-specifier.js";
6
6
  /**
7
+ * Runs configuration resolver.
7
8
  * @param {import("./configuration-types.js").ConfigurationArgsType} [args] - Options object.
8
9
  * @returns {Promise<Configuration>} - Resolves with value.
9
10
  */
@@ -54,4 +55,4 @@ export default async function configurationResolver(args) {
54
55
  }
55
56
  return configuration;
56
57
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWd1cmF0aW9uLXJlc29sdmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLGFBQWEsRUFBRSxFQUFDLCtCQUErQixFQUFDLE1BQU0sb0JBQW9CLENBQUE7QUFDakYsT0FBTyxRQUFRLE1BQU0sa0NBQWtDLENBQUE7QUFDdkQsT0FBTyxVQUFVLE1BQU0sd0JBQXdCLENBQUE7QUFDL0MsT0FBTyxpQkFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUU5RDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssVUFBVSxxQkFBcUIsQ0FBQyxJQUFJO0lBQ3RELElBQUksYUFBYSxDQUFBO0lBRWpCLElBQUksQ0FBQztRQUNILGFBQWEsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDekMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSwrQkFBK0IsRUFBRSxDQUFDO1lBQ3JELFNBQVM7UUFDWCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ2hDLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLEVBQUUsU0FBUyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUNsRCxJQUFJLG9CQUFvQixHQUFHLEdBQUcsU0FBUywyQkFBMkIsQ0FBQTtJQUNsRSxNQUFNLHdCQUF3QixHQUFHLEdBQUcsb0JBQW9CLFVBQVUsQ0FBQTtJQUNsRSxNQUFNLHdCQUF3QixHQUFHLEdBQUcsb0JBQW9CLEtBQUssQ0FBQTtJQUM3RCxNQUFNLEVBQUMsUUFBUSxFQUFDLEdBQUcsUUFBUSxFQUFFLENBQUE7SUFDN0IsSUFBSSxpQkFBaUIsQ0FBQTtJQUVyQixJQUFJLFFBQVEsSUFBSSxNQUFNLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUM7UUFDM0QsaUJBQWlCLEdBQUcsd0JBQXdCLENBQUE7SUFDOUMsQ0FBQztTQUFNLENBQUM7UUFDTixpQkFBaUIsR0FBRyx3QkFBd0IsQ0FBQTtJQUM5QyxDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUE7UUFFOUUsYUFBYSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQTtJQUM3QyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLGlCQUFpQixnQkFBZ0IsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUVsSSxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztZQUMzQiw0RkFBNEY7WUFDNUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLCtDQUErQyxDQUFDLEVBQUUsQ0FBQztnQkFDMUUsTUFBTSxLQUFLLENBQUE7WUFDYixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsOEVBQThFLEVBQUUsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQTtRQUNqSCxDQUFDO1FBRUQsYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQTtBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBDb25maWd1cmF0aW9uLCB7Q3VycmVudENvbmZpZ3VyYXRpb25Ob3RTZXRFcnJvcn0gZnJvbSBcIi4vY29uZmlndXJhdGlvbi5qc1wiXG5pbXBvcnQgZW52U2Vuc2UgZnJvbSBcImVudi1zZW5zZS9idWlsZC91c2UtZW52LXNlbnNlLmpzXCJcbmltcG9ydCBmaWxlRXhpc3RzIGZyb20gXCIuL3V0aWxzL2ZpbGUtZXhpc3RzLmpzXCJcbmltcG9ydCB0b0ltcG9ydFNwZWNpZmllciBmcm9tIFwiLi91dGlscy90by1pbXBvcnQtc3BlY2lmaWVyLmpzXCJcblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5Db25maWd1cmF0aW9uQXJnc1R5cGV9IFthcmdzXSAtIE9wdGlvbnMgb2JqZWN0LlxuICogQHJldHVybnMge1Byb21pc2U8Q29uZmlndXJhdGlvbj59IC0gUmVzb2x2ZXMgd2l0aCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gY29uZmlndXJhdGlvblJlc29sdmVyKGFyZ3MpIHtcbiAgbGV0IGNvbmZpZ3VyYXRpb25cblxuICB0cnkge1xuICAgIGNvbmZpZ3VyYXRpb24gPSBDb25maWd1cmF0aW9uLmN1cnJlbnQoKVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEN1cnJlbnRDb25maWd1cmF0aW9uTm90U2V0RXJyb3IpIHtcbiAgICAgIC8vIElnbm9yZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cbiAgfVxuXG4gIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgcmV0dXJuIENvbmZpZ3VyYXRpb24uY3VycmVudCgpXG4gIH1cblxuICBjb25zdCBkaXJlY3RvcnkgPSBhcmdzPy5kaXJlY3RvcnkgfHwgcHJvY2Vzcy5jd2QoKVxuICBsZXQgY29uZmlndXJhdGlvblByZVBhdGggPSBgJHtkaXJlY3Rvcnl9L3NyYy9jb25maWcvY29uZmlndXJhdGlvbmBcbiAgY29uc3QgY29uZmlndXJhdGlvblBhdGhGb3JOb2RlID0gYCR7Y29uZmlndXJhdGlvblByZVBhdGh9Lm5vZGUuanNgXG4gIGNvbnN0IGNvbmZpZ3VyYXRpb25QYXRoRGVmYXVsdCA9IGAke2NvbmZpZ3VyYXRpb25QcmVQYXRofS5qc2BcbiAgY29uc3Qge2lzU2VydmVyfSA9IGVudlNlbnNlKClcbiAgbGV0IGNvbmZpZ3VyYXRpb25QYXRoXG5cbiAgaWYgKGlzU2VydmVyICYmIGF3YWl0IGZpbGVFeGlzdHMoY29uZmlndXJhdGlvblBhdGhGb3JOb2RlKSkge1xuICAgIGNvbmZpZ3VyYXRpb25QYXRoID0gY29uZmlndXJhdGlvblBhdGhGb3JOb2RlXG4gIH0gZWxzZSB7XG4gICAgY29uZmlndXJhdGlvblBhdGggPSBjb25maWd1cmF0aW9uUGF0aERlZmF1bHRcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgY29uZmlndXJhdGlvbkltcG9ydCA9IGF3YWl0IGltcG9ydCh0b0ltcG9ydFNwZWNpZmllcihjb25maWd1cmF0aW9uUGF0aCkpXG5cbiAgICBjb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbkltcG9ydC5kZWZhdWx0XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5sb2coYENvdWxkbid0IGxvYWQgY29uZmlndXJhdGlvbiBmcm9tICR7Y29uZmlndXJhdGlvblBhdGh9IGJlY2F1c2Ugb2Y6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBlcnJvcn1gKVxuXG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIC8vIFRoaXMgbWlnaHQgaGFwcGVuIGR1cmluZyBhbiBcImluaXRcIiBDTEkgY29tbWFuZCB3aGVyZSB3ZSBjb3B5IGEgc2FtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICAgIGlmICghZXJyb3IubWVzc2FnZS5tYXRjaCgvXkNhbm5vdCBmaW5kIG1vZHVsZSAnKC4rKVxcL2NvbmZpZ3VyYXRpb25cXC5qcycvKSkge1xuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghYXJncykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FuJ3Qgc3Bhd24gYSBuZXcgY29uZmlndXJhdGlvbiBiZWNhdXNlIG5vIGNvbmZpZ3VyYXRpb24tYXJndW1lbnRzIHdhcyBnaXZlblwiLCB7Y2F1c2U6IGVycm9yfSlcbiAgICB9XG5cbiAgICBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oYXJncylcbiAgfVxuXG4gIHJldHVybiBjb25maWd1cmF0aW9uXG59XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWd1cmF0aW9uLXJlc29sdmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLGFBQWEsRUFBRSxFQUFDLCtCQUErQixFQUFDLE1BQU0sb0JBQW9CLENBQUE7QUFDakYsT0FBTyxRQUFRLE1BQU0sa0NBQWtDLENBQUE7QUFDdkQsT0FBTyxVQUFVLE1BQU0sd0JBQXdCLENBQUE7QUFDL0MsT0FBTyxpQkFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUU5RDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUscUJBQXFCLENBQUMsSUFBSTtJQUN0RCxJQUFJLGFBQWEsQ0FBQTtJQUVqQixJQUFJLENBQUM7UUFDSCxhQUFhLEdBQUcsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ3pDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxLQUFLLFlBQVksK0JBQStCLEVBQUUsQ0FBQztZQUNyRCxTQUFTO1FBQ1gsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEtBQUssQ0FBQTtRQUNiLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNsQixPQUFPLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxFQUFFLFNBQVMsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUE7SUFDbEQsSUFBSSxvQkFBb0IsR0FBRyxHQUFHLFNBQVMsMkJBQTJCLENBQUE7SUFDbEUsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLG9CQUFvQixVQUFVLENBQUE7SUFDbEUsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLG9CQUFvQixLQUFLLENBQUE7SUFDN0QsTUFBTSxFQUFDLFFBQVEsRUFBQyxHQUFHLFFBQVEsRUFBRSxDQUFBO0lBQzdCLElBQUksaUJBQWlCLENBQUE7SUFFckIsSUFBSSxRQUFRLElBQUksTUFBTSxVQUFVLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDO1FBQzNELGlCQUFpQixHQUFHLHdCQUF3QixDQUFBO0lBQzlDLENBQUM7U0FBTSxDQUFDO1FBQ04saUJBQWlCLEdBQUcsd0JBQXdCLENBQUE7SUFDOUMsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFBO1FBRTlFLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUE7SUFDN0MsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxpQkFBaUIsZ0JBQWdCLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7UUFFbEksSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7WUFDM0IsNEZBQTRGO1lBQzVGLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxFQUFFLENBQUM7Z0JBQzFFLE1BQU0sS0FBSyxDQUFBO1lBQ2IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDhFQUE4RSxFQUFFLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7UUFDakgsQ0FBQztRQUVELGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN6QyxDQUFDO0lBRUQsT0FBTyxhQUFhLENBQUE7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQ29uZmlndXJhdGlvbiwge0N1cnJlbnRDb25maWd1cmF0aW9uTm90U2V0RXJyb3J9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb24uanNcIlxuaW1wb3J0IGVudlNlbnNlIGZyb20gXCJlbnYtc2Vuc2UvYnVpbGQvdXNlLWVudi1zZW5zZS5qc1wiXG5pbXBvcnQgZmlsZUV4aXN0cyBmcm9tIFwiLi91dGlscy9maWxlLWV4aXN0cy5qc1wiXG5pbXBvcnQgdG9JbXBvcnRTcGVjaWZpZXIgZnJvbSBcIi4vdXRpbHMvdG8taW1wb3J0LXNwZWNpZmllci5qc1wiXG5cbi8qKlxuICogUnVucyBjb25maWd1cmF0aW9uIHJlc29sdmVyLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuQ29uZmlndXJhdGlvbkFyZ3NUeXBlfSBbYXJnc10gLSBPcHRpb25zIG9iamVjdC5cbiAqIEByZXR1cm5zIHtQcm9taXNlPENvbmZpZ3VyYXRpb24+fSAtIFJlc29sdmVzIHdpdGggdmFsdWUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGNvbmZpZ3VyYXRpb25SZXNvbHZlcihhcmdzKSB7XG4gIGxldCBjb25maWd1cmF0aW9uXG5cbiAgdHJ5IHtcbiAgICBjb25maWd1cmF0aW9uID0gQ29uZmlndXJhdGlvbi5jdXJyZW50KClcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBDdXJyZW50Q29uZmlndXJhdGlvbk5vdFNldEVycm9yKSB7XG4gICAgICAvLyBJZ25vcmVcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG4gIH1cblxuICBpZiAoY29uZmlndXJhdGlvbikge1xuICAgIHJldHVybiBDb25maWd1cmF0aW9uLmN1cnJlbnQoKVxuICB9XG5cbiAgY29uc3QgZGlyZWN0b3J5ID0gYXJncz8uZGlyZWN0b3J5IHx8IHByb2Nlc3MuY3dkKClcbiAgbGV0IGNvbmZpZ3VyYXRpb25QcmVQYXRoID0gYCR7ZGlyZWN0b3J5fS9zcmMvY29uZmlnL2NvbmZpZ3VyYXRpb25gXG4gIGNvbnN0IGNvbmZpZ3VyYXRpb25QYXRoRm9yTm9kZSA9IGAke2NvbmZpZ3VyYXRpb25QcmVQYXRofS5ub2RlLmpzYFxuICBjb25zdCBjb25maWd1cmF0aW9uUGF0aERlZmF1bHQgPSBgJHtjb25maWd1cmF0aW9uUHJlUGF0aH0uanNgXG4gIGNvbnN0IHtpc1NlcnZlcn0gPSBlbnZTZW5zZSgpXG4gIGxldCBjb25maWd1cmF0aW9uUGF0aFxuXG4gIGlmIChpc1NlcnZlciAmJiBhd2FpdCBmaWxlRXhpc3RzKGNvbmZpZ3VyYXRpb25QYXRoRm9yTm9kZSkpIHtcbiAgICBjb25maWd1cmF0aW9uUGF0aCA9IGNvbmZpZ3VyYXRpb25QYXRoRm9yTm9kZVxuICB9IGVsc2Uge1xuICAgIGNvbmZpZ3VyYXRpb25QYXRoID0gY29uZmlndXJhdGlvblBhdGhEZWZhdWx0XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb25JbXBvcnQgPSBhd2FpdCBpbXBvcnQodG9JbXBvcnRTcGVjaWZpZXIoY29uZmlndXJhdGlvblBhdGgpKVxuXG4gICAgY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25JbXBvcnQuZGVmYXVsdFxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUubG9nKGBDb3VsZG4ndCBsb2FkIGNvbmZpZ3VyYXRpb24gZnJvbSAke2NvbmZpZ3VyYXRpb25QYXRofSBiZWNhdXNlIG9mOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogZXJyb3J9YClcblxuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBUaGlzIG1pZ2h0IGhhcHBlbiBkdXJpbmcgYW4gXCJpbml0XCIgQ0xJIGNvbW1hbmQgd2hlcmUgd2UgY29weSBhIHNhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAgICBpZiAoIWVycm9yLm1lc3NhZ2UubWF0Y2goL15DYW5ub3QgZmluZCBtb2R1bGUgJyguKylcXC9jb25maWd1cmF0aW9uXFwuanMnLykpIHtcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWFyZ3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbid0IHNwYXduIGEgbmV3IGNvbmZpZ3VyYXRpb24gYmVjYXVzZSBubyBjb25maWd1cmF0aW9uLWFyZ3VtZW50cyB3YXMgZ2l2ZW5cIiwge2NhdXNlOiBlcnJvcn0pXG4gICAgfVxuXG4gICAgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKGFyZ3MpXG4gIH1cblxuICByZXR1cm4gY29uZmlndXJhdGlvblxufVxuIl19