velocious 1.0.263 → 1.0.265

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 (389) hide show
  1. package/README.md +14 -0
  2. package/build/bin/velocious.js +7 -2
  3. package/build/src/application.d.ts +6 -6
  4. package/build/src/application.d.ts.map +1 -1
  5. package/build/src/authorization/ability.d.ts +4 -4
  6. package/build/src/authorization/ability.d.ts.map +1 -1
  7. package/build/src/authorization/base-resource.d.ts +4 -4
  8. package/build/src/authorization/base-resource.d.ts.map +1 -1
  9. package/build/src/background-jobs/client.d.ts +2 -2
  10. package/build/src/background-jobs/client.d.ts.map +1 -1
  11. package/build/src/background-jobs/job-runner.d.ts +2 -2
  12. package/build/src/background-jobs/job-runner.d.ts.map +1 -1
  13. package/build/src/background-jobs/job-runner.js +5 -3
  14. package/build/src/background-jobs/job.d.ts +1 -1
  15. package/build/src/background-jobs/job.d.ts.map +1 -1
  16. package/build/src/background-jobs/json-socket.d.ts +1 -1
  17. package/build/src/background-jobs/json-socket.d.ts.map +1 -1
  18. package/build/src/background-jobs/main.d.ts +34 -12
  19. package/build/src/background-jobs/main.d.ts.map +1 -1
  20. package/build/src/background-jobs/main.js +36 -6
  21. package/build/src/background-jobs/scheduler.d.ts +21 -0
  22. package/build/src/background-jobs/scheduler.d.ts.map +1 -1
  23. package/build/src/background-jobs/scheduler.js +3 -2
  24. package/build/src/background-jobs/status-reporter.d.ts +14 -10
  25. package/build/src/background-jobs/status-reporter.d.ts.map +1 -1
  26. package/build/src/background-jobs/status-reporter.js +11 -6
  27. package/build/src/background-jobs/store.d.ts +73 -117
  28. package/build/src/background-jobs/store.d.ts.map +1 -1
  29. package/build/src/background-jobs/store.js +62 -24
  30. package/build/src/background-jobs/types.d.ts +175 -2
  31. package/build/src/background-jobs/types.d.ts.map +1 -1
  32. package/build/src/background-jobs/types.js +44 -1
  33. package/build/src/background-jobs/worker.d.ts +21 -17
  34. package/build/src/background-jobs/worker.d.ts.map +1 -1
  35. package/build/src/background-jobs/worker.js +30 -9
  36. package/build/src/cli/base-command.d.ts +5 -5
  37. package/build/src/cli/base-command.d.ts.map +1 -1
  38. package/build/src/cli/commands/db/create.d.ts.map +1 -1
  39. package/build/src/cli/commands/db/create.js +11 -3
  40. package/build/src/cli/commands/db/schema/load.d.ts +7 -0
  41. package/build/src/cli/commands/db/schema/load.d.ts.map +1 -0
  42. package/build/src/cli/commands/db/schema/load.js +9 -0
  43. package/build/src/cli/index.d.ts +25 -13
  44. package/build/src/cli/index.d.ts.map +1 -1
  45. package/build/src/cli/index.js +62 -4
  46. package/build/src/cli/use-browser-cli.d.ts +2 -2
  47. package/build/src/cli/use-browser-cli.d.ts.map +1 -1
  48. package/build/src/cli/use-browser-cli.js +4 -4
  49. package/build/src/configuration-types.d.ts +160 -136
  50. package/build/src/configuration-types.d.ts.map +1 -1
  51. package/build/src/configuration.d.ts +32 -31
  52. package/build/src/configuration.d.ts.map +1 -1
  53. package/build/src/configuration.js +6 -5
  54. package/build/src/controller.d.ts +14 -14
  55. package/build/src/controller.d.ts.map +1 -1
  56. package/build/src/controller.js +19 -8
  57. package/build/src/database/drivers/base-columns-index.d.ts +1 -1
  58. package/build/src/database/drivers/base-columns-index.d.ts.map +1 -1
  59. package/build/src/database/drivers/base.d.ts +15 -14
  60. package/build/src/database/drivers/base.d.ts.map +1 -1
  61. package/build/src/database/drivers/base.js +6 -3
  62. package/build/src/database/drivers/mssql/column.d.ts +1 -0
  63. package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
  64. package/build/src/database/drivers/mssql/connect-connection.d.ts +1 -1
  65. package/build/src/database/drivers/mssql/connect-connection.d.ts.map +1 -1
  66. package/build/src/database/drivers/mssql/index.d.ts +4 -3
  67. package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
  68. package/build/src/database/drivers/mssql/index.js +8 -12
  69. package/build/src/database/drivers/mssql/table.d.ts +1 -0
  70. package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
  71. package/build/src/database/drivers/mysql/column.d.ts +1 -0
  72. package/build/src/database/drivers/mysql/column.d.ts.map +1 -1
  73. package/build/src/database/drivers/mysql/index.d.ts +3 -2
  74. package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
  75. package/build/src/database/drivers/mysql/index.js +3 -1
  76. package/build/src/database/drivers/mysql/query.d.ts +1 -1
  77. package/build/src/database/drivers/mysql/query.d.ts.map +1 -1
  78. package/build/src/database/drivers/mysql/query.js +7 -5
  79. package/build/src/database/drivers/mysql/table.d.ts +1 -0
  80. package/build/src/database/drivers/mysql/table.d.ts.map +1 -1
  81. package/build/src/database/drivers/pgsql/column.d.ts +1 -0
  82. package/build/src/database/drivers/pgsql/column.d.ts.map +1 -1
  83. package/build/src/database/drivers/pgsql/index.d.ts +3 -2
  84. package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
  85. package/build/src/database/drivers/pgsql/index.js +3 -1
  86. package/build/src/database/drivers/pgsql/table.d.ts +1 -0
  87. package/build/src/database/drivers/pgsql/table.d.ts.map +1 -1
  88. package/build/src/database/drivers/sqlite/base.d.ts +9 -6
  89. package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
  90. package/build/src/database/drivers/sqlite/base.js +22 -6
  91. package/build/src/database/drivers/sqlite/column.d.ts +1 -0
  92. package/build/src/database/drivers/sqlite/column.d.ts.map +1 -1
  93. package/build/src/database/drivers/sqlite/connection-sql-js.d.ts +2 -2
  94. package/build/src/database/drivers/sqlite/connection-sql-js.d.ts.map +1 -1
  95. package/build/src/database/drivers/sqlite/index.native.d.ts +1 -2
  96. package/build/src/database/drivers/sqlite/index.native.d.ts.map +1 -1
  97. package/build/src/database/drivers/sqlite/index.native.js +8 -3
  98. package/build/src/database/drivers/sqlite/index.web.d.ts +3 -2
  99. package/build/src/database/drivers/sqlite/index.web.d.ts.map +1 -1
  100. package/build/src/database/drivers/sqlite/index.web.js +5 -1
  101. package/build/src/database/drivers/sqlite/query.web.d.ts +1 -1
  102. package/build/src/database/drivers/sqlite/query.web.d.ts.map +1 -1
  103. package/build/src/database/drivers/sqlite/table.d.ts +2 -1
  104. package/build/src/database/drivers/sqlite/table.d.ts.map +1 -1
  105. package/build/src/database/drivers/sqlite/table.js +3 -2
  106. package/build/src/database/migration/index.d.ts +10 -10
  107. package/build/src/database/migration/index.d.ts.map +1 -1
  108. package/build/src/database/migrator/types.d.ts +1 -1
  109. package/build/src/database/migrator/types.d.ts.map +1 -1
  110. package/build/src/database/migrator.d.ts +1 -1
  111. package/build/src/database/migrator.d.ts.map +1 -1
  112. package/build/src/database/pool/async-tracked-multi-connection.d.ts +1 -0
  113. package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
  114. package/build/src/database/pool/async-tracked-multi-connection.js +12 -8
  115. package/build/src/database/pool/base-methods-forward.d.ts.map +1 -1
  116. package/build/src/database/pool/base-methods-forward.js +6 -4
  117. package/build/src/database/pool/base.d.ts +2 -1
  118. package/build/src/database/pool/base.d.ts.map +1 -1
  119. package/build/src/database/pool/base.js +6 -4
  120. package/build/src/database/pool/single-multi-use.d.ts +1 -1
  121. package/build/src/database/pool/single-multi-use.d.ts.map +1 -1
  122. package/build/src/database/query/alter-table-base.d.ts.map +1 -1
  123. package/build/src/database/query/alter-table-base.js +8 -4
  124. package/build/src/database/query/base.d.ts +1 -1
  125. package/build/src/database/query/base.d.ts.map +1 -1
  126. package/build/src/database/query/create-database-base.d.ts +2 -2
  127. package/build/src/database/query/create-database-base.d.ts.map +1 -1
  128. package/build/src/database/query/create-index-base.d.ts +6 -6
  129. package/build/src/database/query/create-index-base.d.ts.map +1 -1
  130. package/build/src/database/query/create-table-base.d.ts +3 -3
  131. package/build/src/database/query/create-table-base.d.ts.map +1 -1
  132. package/build/src/database/query/create-table-base.js +8 -4
  133. package/build/src/database/query/drop-table-base.d.ts +4 -4
  134. package/build/src/database/query/drop-table-base.d.ts.map +1 -1
  135. package/build/src/database/query/index.d.ts +16 -16
  136. package/build/src/database/query/index.d.ts.map +1 -1
  137. package/build/src/database/query/index.js +4 -4
  138. package/build/src/database/query/insert-base.d.ts +10 -10
  139. package/build/src/database/query/insert-base.d.ts.map +1 -1
  140. package/build/src/database/query/join-base.d.ts +1 -1
  141. package/build/src/database/query/join-base.d.ts.map +1 -1
  142. package/build/src/database/query/join-object.d.ts +1 -1
  143. package/build/src/database/query/join-object.d.ts.map +1 -1
  144. package/build/src/database/query/join-object.js +4 -1
  145. package/build/src/database/query/model-class-query.d.ts +11 -11
  146. package/build/src/database/query/model-class-query.d.ts.map +1 -1
  147. package/build/src/database/query/model-class-query.js +29 -18
  148. package/build/src/database/query/select-base.d.ts +1 -1
  149. package/build/src/database/query/select-base.d.ts.map +1 -1
  150. package/build/src/database/query/where-base.d.ts +1 -1
  151. package/build/src/database/query/where-base.d.ts.map +1 -1
  152. package/build/src/database/query/where-hash.d.ts +1 -0
  153. package/build/src/database/query/where-hash.d.ts.map +1 -1
  154. package/build/src/database/query/where-model-class-hash.d.ts +2 -1
  155. package/build/src/database/query/where-model-class-hash.d.ts.map +1 -1
  156. package/build/src/database/query/where-model-class-hash.js +15 -7
  157. package/build/src/database/query/where-not.d.ts +1 -0
  158. package/build/src/database/query/where-not.d.ts.map +1 -1
  159. package/build/src/database/query/where-plain.d.ts +1 -0
  160. package/build/src/database/query/where-plain.d.ts.map +1 -1
  161. package/build/src/database/query-parser/base-query-parser.d.ts +1 -1
  162. package/build/src/database/query-parser/base-query-parser.d.ts.map +1 -1
  163. package/build/src/database/record/attachments/download.d.ts +3 -3
  164. package/build/src/database/record/attachments/download.d.ts.map +1 -1
  165. package/build/src/database/record/attachments/handle.d.ts +2 -1
  166. package/build/src/database/record/attachments/handle.d.ts.map +1 -1
  167. package/build/src/database/record/attachments/handle.js +3 -2
  168. package/build/src/database/record/attachments/normalize-input.d.ts +4 -4
  169. package/build/src/database/record/attachments/normalize-input.d.ts.map +1 -1
  170. package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts +1 -1
  171. package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts.map +1 -1
  172. package/build/src/database/record/attachments/storage-drivers/native.d.ts +3 -3
  173. package/build/src/database/record/attachments/storage-drivers/native.d.ts.map +1 -1
  174. package/build/src/database/record/attachments/storage-drivers/s3.d.ts +2 -2
  175. package/build/src/database/record/attachments/storage-drivers/s3.d.ts.map +1 -1
  176. package/build/src/database/record/attachments/storage-drivers/s3.js +11 -3
  177. package/build/src/database/record/attachments/store.d.ts +3 -3
  178. package/build/src/database/record/attachments/store.d.ts.map +1 -1
  179. package/build/src/database/record/attachments/store.js +3 -2
  180. package/build/src/database/record/index.d.ts +19 -19
  181. package/build/src/database/record/index.d.ts.map +1 -1
  182. package/build/src/database/record/index.js +53 -35
  183. package/build/src/database/record/instance-relationships/base.d.ts +10 -8
  184. package/build/src/database/record/instance-relationships/base.d.ts.map +1 -1
  185. package/build/src/database/record/instance-relationships/base.js +9 -5
  186. package/build/src/database/record/instance-relationships/belongs-to.d.ts +4 -4
  187. package/build/src/database/record/instance-relationships/belongs-to.d.ts.map +1 -1
  188. package/build/src/database/record/instance-relationships/belongs-to.js +9 -2
  189. package/build/src/database/record/instance-relationships/has-many.d.ts +4 -9
  190. package/build/src/database/record/instance-relationships/has-many.d.ts.map +1 -1
  191. package/build/src/database/record/instance-relationships/has-many.js +12 -8
  192. package/build/src/database/record/instance-relationships/has-one.d.ts +7 -14
  193. package/build/src/database/record/instance-relationships/has-one.d.ts.map +1 -1
  194. package/build/src/database/record/instance-relationships/has-one.js +11 -5
  195. package/build/src/database/record/relationships/base.d.ts +18 -18
  196. package/build/src/database/record/relationships/base.d.ts.map +1 -1
  197. package/build/src/database/record/relationships/base.js +3 -3
  198. package/build/src/database/record/relationships/belongs-to.d.ts +1 -1
  199. package/build/src/database/record/relationships/belongs-to.d.ts.map +1 -1
  200. package/build/src/database/record/relationships/has-many.d.ts +1 -1
  201. package/build/src/database/record/relationships/has-many.d.ts.map +1 -1
  202. package/build/src/database/record/relationships/has-one.d.ts +1 -1
  203. package/build/src/database/record/relationships/has-one.d.ts.map +1 -1
  204. package/build/src/database/table-data/index.d.ts +1 -1
  205. package/build/src/database/table-data/index.d.ts.map +1 -1
  206. package/build/src/database/table-data/table-column.d.ts +12 -12
  207. package/build/src/database/table-data/table-column.d.ts.map +1 -1
  208. package/build/src/database/table-data/table-foreign-key.d.ts +4 -4
  209. package/build/src/database/table-data/table-foreign-key.d.ts.map +1 -1
  210. package/build/src/database/table-data/table-foreign-key.js +2 -2
  211. package/build/src/database/table-data/table-index.d.ts +3 -3
  212. package/build/src/database/table-data/table-index.d.ts.map +1 -1
  213. package/build/src/database/table-data/table-reference.d.ts +1 -1
  214. package/build/src/database/table-data/table-reference.d.ts.map +1 -1
  215. package/build/src/environment-handlers/base.d.ts +10 -5
  216. package/build/src/environment-handlers/base.d.ts.map +1 -1
  217. package/build/src/environment-handlers/base.js +10 -2
  218. package/build/src/environment-handlers/browser.d.ts +5 -26
  219. package/build/src/environment-handlers/browser.d.ts.map +1 -1
  220. package/build/src/environment-handlers/browser.js +14 -4
  221. package/build/src/environment-handlers/node/cli/commands/console.js +3 -3
  222. package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts +24 -0
  223. package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts.map +1 -0
  224. package/build/src/environment-handlers/node/cli/commands/db/schema/load.js +57 -0
  225. package/build/src/environment-handlers/node/cli/commands/db/seed.d.ts.map +1 -1
  226. package/build/src/environment-handlers/node/cli/commands/db/seed.js +4 -2
  227. package/build/src/environment-handlers/node/cli/commands/destroy/migration.d.ts.map +1 -1
  228. package/build/src/environment-handlers/node/cli/commands/destroy/migration.js +4 -2
  229. package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts.map +1 -1
  230. package/build/src/environment-handlers/node/cli/commands/generate/base-models.js +9 -4
  231. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts +1 -1
  232. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts.map +1 -1
  233. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.js +9 -4
  234. package/build/src/environment-handlers/node/cli/commands/generate/migration.d.ts.map +1 -1
  235. package/build/src/environment-handlers/node/cli/commands/generate/migration.js +4 -2
  236. package/build/src/environment-handlers/node/cli/commands/generate/model.d.ts.map +1 -1
  237. package/build/src/environment-handlers/node/cli/commands/generate/model.js +4 -2
  238. package/build/src/environment-handlers/node/cli/commands/routes.d.ts.map +1 -1
  239. package/build/src/environment-handlers/node/cli/commands/routes.js +3 -1
  240. package/build/src/environment-handlers/node/cli/commands/run-script.d.ts.map +1 -1
  241. package/build/src/environment-handlers/node/cli/commands/run-script.js +5 -3
  242. package/build/src/environment-handlers/node/cli/commands/runner.d.ts.map +1 -1
  243. package/build/src/environment-handlers/node/cli/commands/runner.js +5 -3
  244. package/build/src/environment-handlers/node/cli/commands/server.d.ts +3 -3
  245. package/build/src/environment-handlers/node/cli/commands/server.d.ts.map +1 -1
  246. package/build/src/environment-handlers/node/cli/commands/server.js +2 -2
  247. package/build/src/environment-handlers/node/cli/commands/test.js +2 -2
  248. package/build/src/environment-handlers/node.d.ts +9 -1
  249. package/build/src/environment-handlers/node.d.ts.map +1 -1
  250. package/build/src/environment-handlers/node.js +10 -2
  251. package/build/src/error-logger.d.ts.map +1 -1
  252. package/build/src/error-logger.js +1 -5
  253. package/build/src/frontend-model-controller.d.ts +17 -17
  254. package/build/src/frontend-model-controller.d.ts.map +1 -1
  255. package/build/src/frontend-model-controller.js +31 -12
  256. package/build/src/frontend-model-resource/base-resource.d.ts +14 -12
  257. package/build/src/frontend-model-resource/base-resource.d.ts.map +1 -1
  258. package/build/src/frontend-model-resource/base-resource.js +16 -4
  259. package/build/src/frontend-models/base.d.ts +27 -20
  260. package/build/src/frontend-models/base.d.ts.map +1 -1
  261. package/build/src/frontend-models/base.js +31 -12
  262. package/build/src/frontend-models/query.d.ts +29 -8
  263. package/build/src/frontend-models/query.d.ts.map +1 -1
  264. package/build/src/frontend-models/query.js +18 -4
  265. package/build/src/http-client/index.d.ts +11 -11
  266. package/build/src/http-client/index.d.ts.map +1 -1
  267. package/build/src/http-client/request.d.ts +2 -2
  268. package/build/src/http-client/request.d.ts.map +1 -1
  269. package/build/src/http-client/response.d.ts +1 -1
  270. package/build/src/http-client/response.d.ts.map +1 -1
  271. package/build/src/http-client/websocket-client.d.ts +26 -12
  272. package/build/src/http-client/websocket-client.d.ts.map +1 -1
  273. package/build/src/http-client/websocket-client.js +26 -12
  274. package/build/src/http-server/client/index.d.ts +4 -4
  275. package/build/src/http-server/client/index.d.ts.map +1 -1
  276. package/build/src/http-server/client/index.js +17 -11
  277. package/build/src/http-server/client/params-to-object.d.ts.map +1 -1
  278. package/build/src/http-server/client/params-to-object.js +14 -11
  279. package/build/src/http-server/client/request-buffer/form-data-part.d.ts +15 -7
  280. package/build/src/http-server/client/request-buffer/form-data-part.d.ts.map +1 -1
  281. package/build/src/http-server/client/request-buffer/form-data-part.js +9 -1
  282. package/build/src/http-server/client/request-buffer/index.d.ts +15 -14
  283. package/build/src/http-server/client/request-buffer/index.d.ts.map +1 -1
  284. package/build/src/http-server/client/request-buffer/index.js +19 -7
  285. package/build/src/http-server/client/request-parser.d.ts +1 -1
  286. package/build/src/http-server/client/request-parser.d.ts.map +1 -1
  287. package/build/src/http-server/client/request-parser.js +2 -2
  288. package/build/src/http-server/client/request-runner.d.ts.map +1 -1
  289. package/build/src/http-server/client/request-runner.js +4 -2
  290. package/build/src/http-server/client/request.d.ts +3 -3
  291. package/build/src/http-server/client/request.d.ts.map +1 -1
  292. package/build/src/http-server/client/response.d.ts +4 -4
  293. package/build/src/http-server/client/response.d.ts.map +1 -1
  294. package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts +2 -2
  295. package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts.map +1 -1
  296. package/build/src/http-server/client/websocket-request.d.ts +22 -16
  297. package/build/src/http-server/client/websocket-request.d.ts.map +1 -1
  298. package/build/src/http-server/client/websocket-request.js +13 -5
  299. package/build/src/http-server/client/websocket-session.d.ts +52 -17
  300. package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
  301. package/build/src/http-server/client/websocket-session.js +59 -10
  302. package/build/src/http-server/cookie.d.ts +17 -17
  303. package/build/src/http-server/cookie.d.ts.map +1 -1
  304. package/build/src/http-server/index.d.ts +4 -4
  305. package/build/src/http-server/index.d.ts.map +1 -1
  306. package/build/src/http-server/index.js +4 -4
  307. package/build/src/http-server/server-client.d.ts +3 -3
  308. package/build/src/http-server/server-client.d.ts.map +1 -1
  309. package/build/src/http-server/server-client.js +4 -4
  310. package/build/src/http-server/websocket-channel.d.ts +3 -3
  311. package/build/src/http-server/websocket-channel.d.ts.map +1 -1
  312. package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
  313. package/build/src/http-server/websocket-events-host.js +6 -3
  314. package/build/src/http-server/websocket-events.d.ts +2 -2
  315. package/build/src/http-server/websocket-events.d.ts.map +1 -1
  316. package/build/src/http-server/websocket-events.js +3 -1
  317. package/build/src/http-server/worker-handler/index.d.ts +7 -7
  318. package/build/src/http-server/worker-handler/index.d.ts.map +1 -1
  319. package/build/src/http-server/worker-handler/index.js +16 -7
  320. package/build/src/http-server/worker-handler/worker-thread.d.ts +9 -9
  321. package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
  322. package/build/src/http-server/worker-handler/worker-thread.js +23 -13
  323. package/build/src/logger/console-logger.d.ts +2 -2
  324. package/build/src/logger/console-logger.d.ts.map +1 -1
  325. package/build/src/logger/file-logger.d.ts +2 -2
  326. package/build/src/logger/file-logger.d.ts.map +1 -1
  327. package/build/src/logger/outputs/array-output.d.ts +1 -1
  328. package/build/src/logger/outputs/array-output.d.ts.map +1 -1
  329. package/build/src/logger/outputs/file-output.d.ts +8 -5
  330. package/build/src/logger/outputs/file-output.d.ts.map +1 -1
  331. package/build/src/logger/outputs/file-output.js +4 -1
  332. package/build/src/logger.d.ts +7 -7
  333. package/build/src/logger.d.ts.map +1 -1
  334. package/build/src/mailer/backends/smtp.d.ts +3 -3
  335. package/build/src/mailer/backends/smtp.d.ts.map +1 -1
  336. package/build/src/mailer/backends/smtp.js +3 -3
  337. package/build/src/mailer/base.d.ts +7 -7
  338. package/build/src/mailer/base.d.ts.map +1 -1
  339. package/build/src/mailer/base.js +3 -3
  340. package/build/src/plugins/sqljs-wasm-route.d.ts +2 -2
  341. package/build/src/plugins/sqljs-wasm-route.d.ts.map +1 -1
  342. package/build/src/routes/base-route.d.ts +2 -2
  343. package/build/src/routes/base-route.d.ts.map +1 -1
  344. package/build/src/routes/base-route.js +2 -2
  345. package/build/src/routes/get-route.d.ts +5 -0
  346. package/build/src/routes/get-route.d.ts.map +1 -1
  347. package/build/src/routes/namespace-route.d.ts +1 -1
  348. package/build/src/routes/plugin-routes.d.ts +2 -2
  349. package/build/src/routes/plugin-routes.d.ts.map +1 -1
  350. package/build/src/routes/post-route.d.ts +5 -0
  351. package/build/src/routes/post-route.d.ts.map +1 -1
  352. package/build/src/routes/resolver.d.ts +4 -2
  353. package/build/src/routes/resolver.d.ts.map +1 -1
  354. package/build/src/routes/resolver.js +7 -3
  355. package/build/src/routes/resource-route.d.ts +5 -0
  356. package/build/src/routes/resource-route.d.ts.map +1 -1
  357. package/build/src/routes/root-route.d.ts +5 -0
  358. package/build/src/routes/root-route.d.ts.map +1 -1
  359. package/build/src/testing/expect-to-change.d.ts +3 -3
  360. package/build/src/testing/expect-to-change.d.ts.map +1 -1
  361. package/build/src/testing/expect-utils.d.ts.map +1 -1
  362. package/build/src/testing/expect-utils.js +7 -5
  363. package/build/src/testing/expect.d.ts +1 -1
  364. package/build/src/testing/expect.d.ts.map +1 -1
  365. package/build/src/testing/request-client.d.ts +1 -1
  366. package/build/src/testing/request-client.d.ts.map +1 -1
  367. package/build/src/testing/test-files-finder.d.ts +1 -1
  368. package/build/src/testing/test-files-finder.d.ts.map +1 -1
  369. package/build/src/testing/test-runner.d.ts +57 -37
  370. package/build/src/testing/test-runner.d.ts.map +1 -1
  371. package/build/src/testing/test-runner.js +14 -3
  372. package/build/src/testing/test-suite-splitter.d.ts +1 -1
  373. package/build/src/testing/test-suite-splitter.d.ts.map +1 -1
  374. package/build/src/testing/test.d.ts +14 -6
  375. package/build/src/testing/test.d.ts.map +1 -1
  376. package/build/src/testing/test.js +14 -5
  377. package/build/src/utils/backtrace-cleaner.d.ts +2 -2
  378. package/build/src/utils/backtrace-cleaner.d.ts.map +1 -1
  379. package/build/src/utils/split-sql-statements.d.ts +7 -0
  380. package/build/src/utils/split-sql-statements.d.ts.map +1 -0
  381. package/build/src/utils/split-sql-statements.js +77 -0
  382. package/build/src/utils/with-tracked-stack-async-hooks.d.ts.map +1 -1
  383. package/build/src/utils/with-tracked-stack-async-hooks.js +5 -3
  384. package/build/src/utils/with-tracked-stack.d.ts.map +1 -1
  385. package/build/src/utils/with-tracked-stack.js +5 -3
  386. package/build/src/velocious-error.d.ts +4 -4
  387. package/build/src/velocious-error.d.ts.map +1 -1
  388. package/build/tsconfig.tsbuildinfo +1 -1
  389. package/package.json +10 -2
@@ -1,24 +1,3 @@
1
- /**
2
- * @typedef {(id: string) => {default: typeof import("../database/migration/index.js").default}} MigrationsRequireContextIDFunctionType
3
- * @typedef {MigrationsRequireContextIDFunctionType & {
4
- * keys: () => string[],
5
- * id: string
6
- * }} MigrationsRequireContextType
7
- */
8
- /**
9
- * @typedef {(id: string) => {default: typeof import("../cli/base-command.js").default}} CommandsRequireContextIDFunctionType
10
- * @typedef {CommandsRequireContextIDFunctionType & {
11
- * keys: () => string[],
12
- * id: string
13
- * }} CommandsRequireContextType
14
- */
15
- /**
16
- * @typedef {(id: string) => unknown} TestFilesRequireContextIDFunctionType
17
- * @typedef {TestFilesRequireContextIDFunctionType & {
18
- * keys: () => string[],
19
- * id: string
20
- * }} TestFilesRequireContextType
21
- */
22
1
  export default class VelociousEnvironmentsHandlerBrowser extends Base {
23
2
  /**
24
3
  * @param {object} args - Options object.
@@ -26,8 +5,8 @@ export default class VelociousEnvironmentsHandlerBrowser extends Base {
26
5
  * @param {() => Promise<TestFilesRequireContextType>} [args.testFilesRequireContextCallback] - Test files require context callback.
27
6
  */
28
7
  constructor({ migrationsRequireContextCallback, testFilesRequireContextCallback, ...restArgs }?: {
29
- migrationsRequireContextCallback?: () => Promise<MigrationsRequireContextType>;
30
- testFilesRequireContextCallback?: () => Promise<TestFilesRequireContextType>;
8
+ migrationsRequireContextCallback?: (() => Promise<MigrationsRequireContextType>) | undefined;
9
+ testFilesRequireContextCallback?: (() => Promise<TestFilesRequireContextType>) | undefined;
31
10
  });
32
11
  /** @type {CommandsRequireContextType | undefined} */
33
12
  findCommandsRequireContextResult: CommandsRequireContextType | undefined;
@@ -35,8 +14,8 @@ export default class VelociousEnvironmentsHandlerBrowser extends Base {
35
14
  _migrationsRequireContextResult: MigrationsRequireContextType | undefined;
36
15
  /** @type {TestFilesRequireContextType | undefined} */
37
16
  _testFilesRequireContextResult: TestFilesRequireContextType | undefined;
38
- migrationsRequireContextCallback: () => Promise<MigrationsRequireContextType>;
39
- testFilesRequireContextCallback: () => Promise<TestFilesRequireContextType>;
17
+ migrationsRequireContextCallback: (() => Promise<MigrationsRequireContextType>) | undefined;
18
+ testFilesRequireContextCallback: (() => Promise<TestFilesRequireContextType>) | undefined;
40
19
  logger: Logger;
41
20
  /**
42
21
  * @returns {Promise<MigrationsRequireContextType>} - Resolves with the migrations require context.
@@ -49,7 +28,7 @@ export default class VelociousEnvironmentsHandlerBrowser extends Base {
49
28
  _findCommandsResult: {
50
29
  name: string;
51
30
  file: string;
52
- }[];
31
+ }[] | undefined;
53
32
  /**
54
33
  * @returns {CommandsRequireContextType} - The commands require context.
55
34
  */
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/environment-handlers/browser.js"],"names":[],"mappings":"AAKA;;;;;;GAMG;AAEH;;;;;;GAMG;AAEH;;;;;;GAMG;AAEH;IAUE;;;;OAIG;IACH,iGAHG;QAA2D,gCAAgC,GAAnF,MAAM,OAAO,CAAC,4BAA4B,CAAC;QACO,+BAA+B,GAAjF,MAAM,OAAO,CAAC,2BAA2B,CAAC;KACpD,EAQA;IArBD,qDAAqD;IACrD,kCADW,0BAA0B,GAAG,SAAS,CACL;IAE5C,uDAAuD;IACvD,iCADW,4BAA4B,GAAG,SAAS,CACR;IAE3C,sDAAsD;IACtD,gCADW,2BAA2B,GAAG,SAAS,CACR;IAWxC,wCAPe,OAAO,CAAC,4BAA4B,CAAC,CAOoB;IACxE,uCAPe,OAAO,CAAC,2BAA2B,CAAC,CAOmB;IACtE,eAA8B;IAIhC;;OAEG;IACH,4BAFa,OAAO,CAAC,4BAA4B,CAAC,CAUjD;IAED;;OAEG;IACH,2BAFa,OAAO,CAAC,2BAA2B,CAAC,CAYhD;IAMC;;;QAAqD;IAKvD;;OAEG;IACH,+BAFa,0BAA0B,CAOtC;IAED;;;QAmBC;IAiHD;;;OAGG;IACH,mBAA0B,UAHf,MAGuB,KAFrB,OAAO,CAAC,cAAc,gCAAgC,EAAE,OAAO,CAAC,CAgB5E;IAeD;;;;OAIG;IACH,6BAHG;QAA4E,GAAG,EAAvE,MAAM,CAAC,MAAM,EAAE,OAAO,6BAA6B,EAAE,OAAO,CAAC;KACrE,GAAU,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2BlC;CACF;qDAnSY,CAAC,EAAE,EAAE,MAAM,KAAK;IAAC,OAAO,EAAE,cAAc,gCAAgC,EAAE,OAAO,CAAA;CAAC;2CAClF,sCAAsC,GAAG;IACjD,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAA;CACX;mDAIS,CAAC,EAAE,EAAE,MAAM,KAAK;IAAC,OAAO,EAAE,cAAc,wBAAwB,EAAE,OAAO,CAAA;CAAC;yCAC1E,oCAAoC,GAAG;IAC/C,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAA;CACX;oDAIS,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO;0CACvB,qCAAqC,GAAG;IAChD,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAA;CACX;iBA1Ba,WAAW;mBAGT,cAAc"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/environment-handlers/browser.js"],"names":[],"mappings":"AAqCA;IAUE;;;;OAIG;IACH,iGAHG;QAA2D,gCAAgC,UAA7E,OAAO,CAAC,4BAA4B,CAAC;QACO,+BAA+B,UAA3E,OAAO,CAAC,2BAA2B,CAAC;KACpD,EAQA;IArBD,qDAAqD;IACrD,kCADW,0BAA0B,GAAG,SAAS,CACL;IAE5C,uDAAuD;IACvD,iCADW,4BAA4B,GAAG,SAAS,CACR;IAE3C,sDAAsD;IACtD,gCADW,2BAA2B,GAAG,SAAS,CACR;IAWxC,yCAPe,OAAO,CAAC,4BAA4B,CAAC,cAOoB;IACxE,wCAPe,OAAO,CAAC,2BAA2B,CAAC,cAOmB;IACtE,eAA8B;IAIhC;;OAEG;IACH,4BAFa,OAAO,CAAC,4BAA4B,CAAC,CAUjD;IAED;;OAEG;IACH,2BAFa,OAAO,CAAC,2BAA2B,CAAC,CAYhD;IAMC;;;oBAAqD;IAKvD;;OAEG;IACH,+BAFa,0BAA0B,CAOtC;IAED;;;QAmBC;IAqHD;;;OAGG;IACH,mBAA0B,UAHf,MAGuB,KAFrB,OAAO,CAAC,cAAc,gCAAgC,EAAE,OAAO,CAAC,CAgB5E;IAeD;;;;OAIG;IACH,6BAHG;QAA4E,GAAG,EAAvE,MAAM,CAAC,MAAM,EAAE,OAAO,6BAA6B,EAAE,OAAO,CAAC;KACrE,GAAU,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2BlC;CACF;qDA/SY,CAAC,EAAE,EAAE,MAAM,KAAK;IAAC,OAAO,EAAE,cAAc,gCAAgC,EAAE,OAAO,CAAA;CAAC;2CAClF,sCAAsC,GAAG;IACjD,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAA;CACX;mDAIS,CAAC,EAAE,EAAE,MAAM,KAAK;IAAC,OAAO,EAAE,cAAc,wBAAwB,EAAE,OAAO,CAAA;CAAC;yCAC1E,oCAAoC,GAAG;IAC/C,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAA;CACX;oDAIS,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO;0CACvB,qCAAqC,GAAG;IAChD,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAA;CACX;iBA1Ba,WAAW;mBAGT,cAAc"}
@@ -23,6 +23,13 @@ import Logger from "../logger.js";
23
23
  * id: string
24
24
  * }} TestFilesRequireContextType
25
25
  */
26
+ /**
27
+ * @param {import("./base.js").MigrationObjectType | null} migration - Candidate migration object.
28
+ * @returns {migration is import("./base.js").MigrationObjectType} - Whether migration exists.
29
+ */
30
+ function isMigrationObject(migration) {
31
+ return Boolean(migration);
32
+ }
26
33
  export default class VelociousEnvironmentsHandlerBrowser extends Base {
27
34
  /** @type {CommandsRequireContextType | undefined} */
28
35
  findCommandsRequireContextResult = undefined;
@@ -136,7 +143,8 @@ export default class VelociousEnvironmentsHandlerBrowser extends Base {
136
143
  */
137
144
  async findMigrations() {
138
145
  const migrationsRequireContext = await this.migrationsRequireContext();
139
- const files = migrationsRequireContext
146
+ /** @type {Array<import("./base.js").MigrationObjectType | null>} */
147
+ const migrations = migrationsRequireContext
140
148
  .keys()
141
149
  .map((file) => {
142
150
  // "13,14" because somes "require-context"-npm-module deletes first character!?
@@ -161,8 +169,10 @@ export default class VelociousEnvironmentsHandlerBrowser extends Base {
161
169
  migrationClassName
162
170
  };
163
171
  })
164
- .filter((migration) => Boolean(migration))
165
- .sort((migration1, migration2) => migration1.date - migration2.date);
172
+ .filter(isMigrationObject);
173
+ /** @type {import("./base.js").MigrationObjectType[]} */
174
+ const files = /** @type {import("./base.js").MigrationObjectType[]} */ (migrations);
175
+ files.sort((migration1, migration2) => migration1.date - migration2.date);
166
176
  return files;
167
177
  }
168
178
  /**
@@ -244,4 +254,4 @@ export default class VelociousEnvironmentsHandlerBrowser extends Base {
244
254
  return `${sections.join("\n\n")}\n`;
245
255
  }
246
256
  }
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9icm93c2VyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUM1QixPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLGFBQWEsTUFBTSw2QkFBNkIsQ0FBQTtBQUN2RCxPQUFPLE1BQU0sTUFBTSxjQUFjLENBQUE7QUFFakM7Ozs7OztHQU1HO0FBRUg7Ozs7OztHQU1HO0FBRUg7Ozs7OztHQU1HO0FBRUgsTUFBTSxDQUFDLE9BQU8sT0FBTyxtQ0FBb0MsU0FBUSxJQUFJO0lBQ25FLHFEQUFxRDtJQUNyRCxnQ0FBZ0MsR0FBRyxTQUFTLENBQUE7SUFFNUMsdURBQXVEO0lBQ3ZELCtCQUErQixHQUFHLFNBQVMsQ0FBQTtJQUUzQyxzREFBc0Q7SUFDdEQsOEJBQThCLEdBQUcsU0FBUyxDQUFBO0lBRTFDOzs7O09BSUc7SUFDSCxZQUFZLEVBQUMsZ0NBQWdDLEVBQUUsK0JBQStCLEVBQUUsR0FBRyxRQUFRLEVBQUMsR0FBRyxFQUFFO1FBQy9GLEtBQUssRUFBRSxDQUFBO1FBQ1AsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZCLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxnQ0FBZ0MsQ0FBQTtRQUN4RSxJQUFJLENBQUMsK0JBQStCLEdBQUcsK0JBQStCLENBQUE7UUFDdEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0lBR0Q7O09BRUc7SUFDSCxLQUFLLENBQUMsd0JBQXdCO1FBQzVCLE1BQU0sRUFBQyxnQ0FBZ0MsRUFBQyxHQUFHLElBQUksQ0FBQTtRQUUvQyxJQUFJLENBQUMsZ0NBQWdDO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFBO1FBRXRHLElBQUksQ0FBQywrQkFBK0IsS0FBSyxNQUFNLGdDQUFnQyxFQUFFLENBQUE7UUFFakYsT0FBTyxJQUFJLENBQUMsK0JBQStCLENBQUE7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLHVCQUF1QjtRQUMzQixNQUFNLEVBQUMsK0JBQStCLEVBQUMsR0FBRyxJQUFJLENBQUE7UUFFOUMsSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3RUFBd0UsQ0FBQyxDQUFBO1FBQzNGLENBQUM7UUFFRCxJQUFJLENBQUMsOEJBQThCLEtBQUssTUFBTSwrQkFBK0IsRUFBRSxDQUFBO1FBRS9FLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFBO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxZQUFZO1FBQ2hCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtRQUVyRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQTtJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCwyQkFBMkI7UUFDekIsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxnQ0FBZ0MsS0FBSyx5Q0FBeUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFFdkksT0FBTyxJQUFJLENBQUMsZ0NBQWdDLENBQUE7SUFDOUMsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQTtRQUN2RCxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFFbkIsS0FBSyxNQUFNLFNBQVMsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUM1QyxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQzNDLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQzFELElBQUksSUFBSSxDQUFBO1lBRVIsSUFBSSxRQUFRLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQzNCLElBQUksR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQTtZQUNsRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBQ3BDLENBQUM7WUFFRCxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFBO1FBQ3hDLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBQyxZQUFZLEVBQUM7UUFDakMsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFBO1FBRWxCLEtBQUssSUFBSSxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7WUFDckMsSUFBSSxXQUFXLElBQUksR0FBRztnQkFBRSxXQUFXLEdBQUcsU0FBUyxDQUFBO1lBQy9DLElBQUksV0FBVyxJQUFJLEdBQUc7Z0JBQUUsV0FBVyxHQUFHLFNBQVMsQ0FBQTtZQUMvQyxJQUFJLFdBQVcsSUFBSSxHQUFHO2dCQUFFLFdBQVcsR0FBRyxVQUFVLENBQUE7WUFDaEQsSUFBSSxXQUFXLElBQUksR0FBRztnQkFBRSxXQUFXLEdBQUcsUUFBUSxDQUFBO1lBRTlDLFFBQVEsSUFBSSxJQUFJLFdBQVcsRUFBRSxDQUFBO1FBQy9CLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUE7UUFFcEIsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsV0FBVyxDQUFDLENBQUE7UUFDdEMsUUFBUSxJQUFJLEtBQUssQ0FBQTtRQUNqQixTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXhCLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQTtRQUN2RSxJQUFJLGtCQUFrQixDQUFBO1FBRXRCLEtBQUssTUFBTSxTQUFTLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbEMsa0JBQWtCLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUE7WUFFdEQsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO2dCQUN2QixNQUFLO1lBQ1AsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0Isc0JBQXNCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ3BILENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUE7UUFFL0MsT0FBTyxZQUFZLENBQUE7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLGNBQWM7UUFDbEIsTUFBTSx3QkFBd0IsR0FBRyxNQUFNLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFBO1FBQ3RFLE1BQU0sS0FBSyxHQUFHLHdCQUF3QjthQUNuQyxJQUFJLEVBQUU7YUFDTixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNaLCtFQUErRTtZQUMvRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUE7WUFFakQsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxJQUFJLENBQUE7WUFFdkIseURBQXlEO1lBQ3pELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQTtZQUNuQixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFFekIsSUFBSSxVQUFVLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUM1QixVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQTtnQkFDN0IsUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUE7WUFDM0IsQ0FBQztZQUVELGNBQWM7WUFDZCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDakMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzlCLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBRWxGLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsSUFBSTtnQkFDSixrQkFBa0I7YUFDbkIsQ0FBQTtRQUNILENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3pDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRXRFLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBUztRQUM3QixNQUFNLHVCQUF1QixHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUE7UUFDcEUsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDbEQsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvQyxHQUFHO1lBQ0gsVUFBVSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1NBQ3pELENBQUMsQ0FBQyxDQUFBO1FBRUgsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNqQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUNuRCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQTtZQUVqRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxRQUFRLGdEQUFnRCxDQUFDLENBQUE7WUFDeEYsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBRXBELElBQUksUUFBUSxJQUFJLE9BQU8sUUFBUSxJQUFJLFFBQVEsSUFBSSxNQUFNLElBQUksUUFBUSxJQUFJLE9BQU8sUUFBUSxDQUFDLElBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDeEcsTUFBTSxRQUFRLENBQUE7WUFDaEIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZ0JBQWdCLEdBQUcsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQ3BDLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1FBRXRELE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQTtRQUN0RSxNQUFNLGVBQWUsR0FBRyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUUxRCxJQUFJLENBQUMsZUFBZTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLFFBQVEsWUFBWSxDQUFDLENBQUE7UUFFN0UsTUFBTSxzQkFBc0IsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFBO1FBRXRELElBQUksQ0FBQyxzQkFBc0I7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUE7UUFDcEcsSUFBSSxPQUFPLHNCQUFzQixLQUFLLFVBQVU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHlGQUF5RixDQUFDLENBQUE7UUFFNUosT0FBTyxzQkFBc0IsQ0FBQTtJQUMvQixDQUFDLENBQUE7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFDLEdBQUcsRUFBQztRQUN6QixNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUE7UUFFMUQsSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFNO1FBRXpCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFBO0lBQ2pFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEVBQUMsR0FBRyxFQUFDO1FBQzdCLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDdkMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksUUFBUSxDQUFDLENBQUE7UUFFMUYsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFBO1FBRTlDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUVuQixLQUFLLE1BQU0sVUFBVSxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDM0MsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQzFCLE1BQU0sWUFBWSxHQUFHLE9BQU8sRUFBRSxDQUFDLFlBQVksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7WUFDM0YsTUFBTSxVQUFVLEdBQUcsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFBO1lBRTFDLElBQUksQ0FBQyxVQUFVO2dCQUFFLFNBQVE7WUFFekIsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxVQUFVLEVBQUUsQ0FBQyxDQUFBO1lBQ25DLENBQUM7WUFFRCxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzNCLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFBO1FBRXJDLE9BQU8sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUE7SUFDckMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2UgZnJvbSBcIi4vYmFzZS5qc1wiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCByZXN0QXJnc0Vycm9yIGZyb20gXCIuLi91dGlscy9yZXN0LWFyZ3MtZXJyb3IuanNcIlxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi4vbG9nZ2VyLmpzXCJcblxuLyoqXG4gKiBAdHlwZWRlZiB7KGlkOiBzdHJpbmcpID0+IHtkZWZhdWx0OiB0eXBlb2YgaW1wb3J0KFwiLi4vZGF0YWJhc2UvbWlncmF0aW9uL2luZGV4LmpzXCIpLmRlZmF1bHR9fSBNaWdyYXRpb25zUmVxdWlyZUNvbnRleHRJREZ1bmN0aW9uVHlwZVxuICogQHR5cGVkZWYge01pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dElERnVuY3Rpb25UeXBlICYge1xuICogICBrZXlzOiAoKSA9PiBzdHJpbmdbXSxcbiAqICAgaWQ6IHN0cmluZ1xuICogfX0gTWlncmF0aW9uc1JlcXVpcmVDb250ZXh0VHlwZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhpZDogc3RyaW5nKSA9PiB7ZGVmYXVsdDogdHlwZW9mIGltcG9ydChcIi4uL2NsaS9iYXNlLWNvbW1hbmQuanNcIikuZGVmYXVsdH19IENvbW1hbmRzUmVxdWlyZUNvbnRleHRJREZ1bmN0aW9uVHlwZVxuICogQHR5cGVkZWYge0NvbW1hbmRzUmVxdWlyZUNvbnRleHRJREZ1bmN0aW9uVHlwZSAmIHtcbiAqICAga2V5czogKCkgPT4gc3RyaW5nW10sXG4gKiAgIGlkOiBzdHJpbmdcbiAqIH19IENvbW1hbmRzUmVxdWlyZUNvbnRleHRUeXBlXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KGlkOiBzdHJpbmcpID0+IHVua25vd259IFRlc3RGaWxlc1JlcXVpcmVDb250ZXh0SURGdW5jdGlvblR5cGVcbiAqIEB0eXBlZGVmIHtUZXN0RmlsZXNSZXF1aXJlQ29udGV4dElERnVuY3Rpb25UeXBlICYge1xuICogICBrZXlzOiAoKSA9PiBzdHJpbmdbXSxcbiAqICAgaWQ6IHN0cmluZ1xuICogfX0gVGVzdEZpbGVzUmVxdWlyZUNvbnRleHRUeXBlXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRW52aXJvbm1lbnRzSGFuZGxlckJyb3dzZXIgZXh0ZW5kcyBCYXNlIHtcbiAgLyoqIEB0eXBlIHtDb21tYW5kc1JlcXVpcmVDb250ZXh0VHlwZSB8IHVuZGVmaW5lZH0gKi9cbiAgZmluZENvbW1hbmRzUmVxdWlyZUNvbnRleHRSZXN1bHQgPSB1bmRlZmluZWRcblxuICAvKiogQHR5cGUge01pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dFR5cGUgfCB1bmRlZmluZWR9ICovXG4gIF9taWdyYXRpb25zUmVxdWlyZUNvbnRleHRSZXN1bHQgPSB1bmRlZmluZWRcblxuICAvKiogQHR5cGUge1Rlc3RGaWxlc1JlcXVpcmVDb250ZXh0VHlwZSB8IHVuZGVmaW5lZH0gKi9cbiAgX3Rlc3RGaWxlc1JlcXVpcmVDb250ZXh0UmVzdWx0ID0gdW5kZWZpbmVkXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7KCkgPT4gUHJvbWlzZTxNaWdyYXRpb25zUmVxdWlyZUNvbnRleHRUeXBlPn0gW2FyZ3MubWlncmF0aW9uc1JlcXVpcmVDb250ZXh0Q2FsbGJhY2tdIC0gTWlncmF0aW9ucyByZXF1aXJlIGNvbnRleHQgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7KCkgPT4gUHJvbWlzZTxUZXN0RmlsZXNSZXF1aXJlQ29udGV4dFR5cGU+fSBbYXJncy50ZXN0RmlsZXNSZXF1aXJlQ29udGV4dENhbGxiYWNrXSAtIFRlc3QgZmlsZXMgcmVxdWlyZSBjb250ZXh0IGNhbGxiYWNrLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe21pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dENhbGxiYWNrLCB0ZXN0RmlsZXNSZXF1aXJlQ29udGV4dENhbGxiYWNrLCAuLi5yZXN0QXJnc30gPSB7fSkge1xuICAgIHN1cGVyKClcbiAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuXG4gICAgdGhpcy5taWdyYXRpb25zUmVxdWlyZUNvbnRleHRDYWxsYmFjayA9IG1pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dENhbGxiYWNrXG4gICAgdGhpcy50ZXN0RmlsZXNSZXF1aXJlQ29udGV4dENhbGxiYWNrID0gdGVzdEZpbGVzUmVxdWlyZUNvbnRleHRDYWxsYmFja1xuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlcih0aGlzKVxuICB9XG5cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8TWlncmF0aW9uc1JlcXVpcmVDb250ZXh0VHlwZT59IC0gUmVzb2x2ZXMgd2l0aCB0aGUgbWlncmF0aW9ucyByZXF1aXJlIGNvbnRleHQuXG4gICAqL1xuICBhc3luYyBtaWdyYXRpb25zUmVxdWlyZUNvbnRleHQoKSB7XG4gICAgY29uc3Qge21pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dENhbGxiYWNrfSA9IHRoaXNcblxuICAgIGlmICghbWlncmF0aW9uc1JlcXVpcmVDb250ZXh0Q2FsbGJhY2spIHRocm93IG5ldyBFcnJvcihcIm1pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dENhbGxiYWNrIGlzIHJlcXVpcmVkXCIpXG5cbiAgICB0aGlzLl9taWdyYXRpb25zUmVxdWlyZUNvbnRleHRSZXN1bHQgfHw9IGF3YWl0IG1pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dENhbGxiYWNrKClcblxuICAgIHJldHVybiB0aGlzLl9taWdyYXRpb25zUmVxdWlyZUNvbnRleHRSZXN1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUZXN0RmlsZXNSZXF1aXJlQ29udGV4dFR5cGU+fSAtIFJlc29sdmVzIHdpdGggdGhlIHRlc3QgZmlsZXMgcmVxdWlyZSBjb250ZXh0LlxuICAgKi9cbiAgYXN5bmMgdGVzdEZpbGVzUmVxdWlyZUNvbnRleHQoKSB7XG4gICAgY29uc3Qge3Rlc3RGaWxlc1JlcXVpcmVDb250ZXh0Q2FsbGJhY2t9ID0gdGhpc1xuXG4gICAgaWYgKCF0ZXN0RmlsZXNSZXF1aXJlQ29udGV4dENhbGxiYWNrKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ0ZXN0RmlsZXNSZXF1aXJlQ29udGV4dENhbGxiYWNrIGlzIHJlcXVpcmVkIHdoZW4gcnVubmluZyBicm93c2VyIHRlc3RzXCIpXG4gICAgfVxuXG4gICAgdGhpcy5fdGVzdEZpbGVzUmVxdWlyZUNvbnRleHRSZXN1bHQgfHw9IGF3YWl0IHRlc3RGaWxlc1JlcXVpcmVDb250ZXh0Q2FsbGJhY2soKVxuXG4gICAgcmV0dXJuIHRoaXMuX3Rlc3RGaWxlc1JlcXVpcmVDb250ZXh0UmVzdWx0XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8QXJyYXk8aW1wb3J0KFwiLi9iYXNlLmpzXCIpLkNvbW1hbmRGaWxlT2JqZWN0VHlwZT4+fSAtIFJlc29sdmVzIHdpdGggdGhlIGNvbW1hbmRzLlxuICAgKi9cbiAgYXN5bmMgZmluZENvbW1hbmRzKCkge1xuICAgIHRoaXMuX2ZpbmRDb21tYW5kc1Jlc3VsdCA9IHRoaXMuX2FjdHVhbEZpbmRDb21tYW5kcygpXG5cbiAgICByZXR1cm4gdGhpcy5fZmluZENvbW1hbmRzUmVzdWx0XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge0NvbW1hbmRzUmVxdWlyZUNvbnRleHRUeXBlfSAtIFRoZSBjb21tYW5kcyByZXF1aXJlIGNvbnRleHQuXG4gICAqL1xuICBfZmluZENvbW1hbmRzUmVxdWlyZUNvbnRleHQoKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHRoaXMuZmluZENvbW1hbmRzUmVxdWlyZUNvbnRleHRSZXN1bHQgfHw9IC8qKiBAdHlwZSB7Q29tbWFuZHNSZXF1aXJlQ29udGV4dFR5cGV9ICovIChyZXF1aXJlLmNvbnRleHQoXCIuLi9jbGkvY29tbWFuZHNcIiwgdHJ1ZSwgL1xcLmpzJC8pKVxuXG4gICAgcmV0dXJuIHRoaXMuZmluZENvbW1hbmRzUmVxdWlyZUNvbnRleHRSZXN1bHRcbiAgfVxuXG4gIF9hY3R1YWxGaW5kQ29tbWFuZHMoKSB7XG4gICAgY29uc3QgY29tbWFuZEZpbGVzID0gdGhpcy5fZmluZENvbW1hbmRzUmVxdWlyZUNvbnRleHQoKVxuICAgIGNvbnN0IGNvbW1hbmRzID0gW11cblxuICAgIGZvciAoY29uc3QgYUZpbGVQYXRoIG9mIGNvbW1hbmRGaWxlcy5rZXlzKCkpIHtcbiAgICAgIGNvbnN0IGFGaWxlUGF0aFBhcnRzID0gYUZpbGVQYXRoLnNwbGl0KFwiL1wiKVxuICAgICAgY29uc3QgbGFzdFBhcnQgPSBhRmlsZVBhdGhQYXJ0c1thRmlsZVBhdGhQYXJ0cy5sZW5ndGggLSAxXVxuICAgICAgbGV0IG5hbWVcblxuICAgICAgaWYgKGxhc3RQYXJ0ID09IFwiaW5kZXguanNcIikge1xuICAgICAgICBuYW1lID0gYUZpbGVQYXRoUGFydHNbYUZpbGVQYXRoUGFydHMubGVuZ3RoIC0gMl1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5hbWUgPSBsYXN0UGFydC5yZXBsYWNlKFwiLmpzXCIsIFwiXCIpXG4gICAgICB9XG5cbiAgICAgIGNvbW1hbmRzLnB1c2goe25hbWUsIGZpbGU6IGFGaWxlUGF0aH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbW1hbmRzXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBhcmdzLmNvbW1hbmRQYXJ0cyAtIENvbW1hbmQgcGFydHMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHR5cGVvZiBpbXBvcnQoXCIuLi9jbGkvYmFzZS1jb21tYW5kLmpzXCIpLmRlZmF1bHQ+fSAtIFJlc29sdmVzIHdpdGggdGhlIHJlcXVpcmUgY29tbWFuZC5cbiAgICovXG4gIGFzeW5jIHJlcXVpcmVDb21tYW5kKHtjb21tYW5kUGFydHN9KSB7XG4gICAgbGV0IGZpbGVQYXRoID0gXCIuXCJcblxuICAgIGZvciAobGV0IGNvbW1hbmRQYXJ0IG9mIGNvbW1hbmRQYXJ0cykge1xuICAgICAgaWYgKGNvbW1hbmRQYXJ0ID09IFwiY1wiKSBjb21tYW5kUGFydCA9IFwiY29uc29sZVwiXG4gICAgICBpZiAoY29tbWFuZFBhcnQgPT0gXCJkXCIpIGNvbW1hbmRQYXJ0ID0gXCJkZXN0cm95XCJcbiAgICAgIGlmIChjb21tYW5kUGFydCA9PSBcImdcIikgY29tbWFuZFBhcnQgPSBcImdlbmVyYXRlXCJcbiAgICAgIGlmIChjb21tYW5kUGFydCA9PSBcInNcIikgY29tbWFuZFBhcnQgPSBcInNlcnZlclwiXG5cbiAgICAgIGZpbGVQYXRoICs9IGAvJHtjb21tYW5kUGFydH1gXG4gICAgfVxuXG4gICAgY29uc3QgZmlsZVBhdGhzID0gW11cblxuICAgIGZpbGVQYXRocy5wdXNoKGAke2ZpbGVQYXRofS9pbmRleC5qc2ApXG4gICAgZmlsZVBhdGggKz0gXCIuanNcIlxuICAgIGZpbGVQYXRocy5wdXNoKGZpbGVQYXRoKVxuXG4gICAgY29uc3QgY29tbWFuZHNSZXF1aXJlQ29udGV4dCA9IGF3YWl0IHRoaXMuX2ZpbmRDb21tYW5kc1JlcXVpcmVDb250ZXh0KClcbiAgICBsZXQgY29tbWFuZENsYXNzSW1wb3J0XG5cbiAgICBmb3IgKGNvbnN0IGFGaWxlUGF0aCBvZiBmaWxlUGF0aHMpIHtcbiAgICAgIGNvbW1hbmRDbGFzc0ltcG9ydCA9IGNvbW1hbmRzUmVxdWlyZUNvbnRleHQoYUZpbGVQYXRoKVxuXG4gICAgICBpZiAoY29tbWFuZENsYXNzSW1wb3J0KSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFjb21tYW5kQ2xhc3NJbXBvcnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjb21tYW5kOiAke2NvbW1hbmRQYXJ0cy5qb2luKFwiOlwiKX0uIFBvc3NpYmxlIGNvbW1hbmRzOiAke2NvbW1hbmRzUmVxdWlyZUNvbnRleHQua2V5cygpfWApXG4gICAgfVxuXG4gICAgY29uc3QgQ29tbWFuZENsYXNzID0gY29tbWFuZENsYXNzSW1wb3J0LmRlZmF1bHRcblxuICAgIHJldHVybiBDb21tYW5kQ2xhc3NcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheTxpbXBvcnQoXCIuL2Jhc2UuanNcIikuTWlncmF0aW9uT2JqZWN0VHlwZT4+fSAtIFJlc29sdmVzIHdpdGggdGhlIG1pZ3JhdGlvbnMuXG4gICAqL1xuICBhc3luYyBmaW5kTWlncmF0aW9ucygpIHtcbiAgICBjb25zdCBtaWdyYXRpb25zUmVxdWlyZUNvbnRleHQgPSBhd2FpdCB0aGlzLm1pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dCgpXG4gICAgY29uc3QgZmlsZXMgPSBtaWdyYXRpb25zUmVxdWlyZUNvbnRleHRcbiAgICAgIC5rZXlzKClcbiAgICAgIC5tYXAoKGZpbGUpID0+IHtcbiAgICAgICAgLy8gXCIxMywxNFwiIGJlY2F1c2Ugc29tZXMgXCJyZXF1aXJlLWNvbnRleHRcIi1ucG0tbW9kdWxlIGRlbGV0ZXMgZmlyc3QgY2hhcmFjdGVyIT9cbiAgICAgICAgY29uc3QgbWF0Y2ggPSBmaWxlLm1hdGNoKC8oXFxkezEzLDE0fSktKC4rKVxcLmpzJC8pXG5cbiAgICAgICAgaWYgKCFtYXRjaCkgcmV0dXJuIG51bGxcblxuICAgICAgICAvLyBGaXggcmVxdWlyZS1jb250ZXh0LW5wbS1tb2R1bGUgZGVsZXRlcyBmaXJzdCBjaGFyYWN0ZXJcbiAgICAgICAgbGV0IGZpbGVOYW1lID0gZmlsZVxuICAgICAgICBsZXQgZGF0ZU51bWJlciA9IG1hdGNoWzFdXG5cbiAgICAgICAgaWYgKGRhdGVOdW1iZXIubGVuZ3RoID09IDEzKSB7XG4gICAgICAgICAgZGF0ZU51bWJlciA9IGAyJHtkYXRlTnVtYmVyfWBcbiAgICAgICAgICBmaWxlTmFtZSA9IGAyJHtmaWxlTmFtZX1gXG4gICAgICAgIH1cblxuICAgICAgICAvLyBQYXJzZSByZWdleFxuICAgICAgICBjb25zdCBkYXRlID0gcGFyc2VJbnQoZGF0ZU51bWJlcilcbiAgICAgICAgY29uc3QgbWlncmF0aW9uTmFtZSA9IG1hdGNoWzJdXG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbkNsYXNzTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUobWlncmF0aW9uTmFtZS5yZXBsYWNlQWxsKFwiLVwiLCBcIl9cIikpXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBmaWxlOiBmaWxlTmFtZSxcbiAgICAgICAgICBmdWxsUGF0aDogZmlsZSxcbiAgICAgICAgICBkYXRlLFxuICAgICAgICAgIG1pZ3JhdGlvbkNsYXNzTmFtZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigobWlncmF0aW9uKSA9PiBCb29sZWFuKG1pZ3JhdGlvbikpXG4gICAgICAuc29ydCgobWlncmF0aW9uMSwgbWlncmF0aW9uMikgPT4gbWlncmF0aW9uMS5kYXRlIC0gbWlncmF0aW9uMi5kYXRlKVxuXG4gICAgcmV0dXJuIGZpbGVzXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gdGVzdEZpbGVzIC0gVGVzdCBmaWxlcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIGltcG9ydFRlc3RGaWxlcyh0ZXN0RmlsZXMpIHtcbiAgICBjb25zdCB0ZXN0RmlsZXNSZXF1aXJlQ29udGV4dCA9IGF3YWl0IHRoaXMudGVzdEZpbGVzUmVxdWlyZUNvbnRleHQoKVxuICAgIGNvbnN0IHJlcXVpcmVLZXlzID0gdGVzdEZpbGVzUmVxdWlyZUNvbnRleHQua2V5cygpXG4gICAgY29uc3Qgbm9ybWFsaXplZEtleXMgPSByZXF1aXJlS2V5cy5tYXAoKGtleSkgPT4gKHtcbiAgICAgIGtleSxcbiAgICAgIG5vcm1hbGl6ZWQ6IGtleS5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKS5yZXBsYWNlKC9eXFwuXFwvLywgXCJcIilcbiAgICB9KSlcblxuICAgIGZvciAoY29uc3QgdGVzdEZpbGUgb2YgdGVzdEZpbGVzKSB7XG4gICAgICBjb25zdCBub3JtYWxpemVkRmlsZSA9IHRlc3RGaWxlLnJlcGxhY2UoL1xcXFwvZywgXCIvXCIpXG4gICAgICBjb25zdCBtYXRjaGVkS2V5ID0gbm9ybWFsaXplZEtleXMuZmluZCgoZW50cnkpID0+IG5vcm1hbGl6ZWRGaWxlLmVuZHNXaXRoKGVudHJ5Lm5vcm1hbGl6ZWQpKT8ua2V5XG5cbiAgICAgIGlmICghbWF0Y2hlZEtleSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRlc3QgZmlsZSAke3Rlc3RGaWxlfSB3YXMgbm90IGZvdW5kIGluIHRoZSBwcm92aWRlZCByZXF1aXJlIGNvbnRleHRgKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBpbXBvcnRlZCA9IHRlc3RGaWxlc1JlcXVpcmVDb250ZXh0KG1hdGNoZWRLZXkpXG5cbiAgICAgIGlmIChpbXBvcnRlZCAmJiB0eXBlb2YgaW1wb3J0ZWQgPT0gXCJvYmplY3RcIiAmJiBcInRoZW5cIiBpbiBpbXBvcnRlZCAmJiB0eXBlb2YgaW1wb3J0ZWQudGhlbiA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgYXdhaXQgaW1wb3J0ZWRcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVQYXRoIC0gRmlsZSBwYXRoLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx0eXBlb2YgaW1wb3J0KFwiLi4vZGF0YWJhc2UvbWlncmF0aW9uL2luZGV4LmpzXCIpLmRlZmF1bHQ+fSAtIFJlc29sdmVzIHdpdGggdGhlIHJlcXVpcmUgbWlncmF0aW9uLlxuICAgKi9cbiAgcmVxdWlyZU1pZ3JhdGlvbiA9IGFzeW5jIChmaWxlUGF0aCkgPT4ge1xuICAgIGlmICghZmlsZVBhdGgpIHRocm93IG5ldyBFcnJvcihcImZpbGVQYXRoIGlzIHJlcXVpcmVkXCIpXG5cbiAgICBjb25zdCBtaWdyYXRpb25zUmVxdWlyZUNvbnRleHQgPSBhd2FpdCB0aGlzLm1pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dCgpXG4gICAgY29uc3QgbWlncmF0aW9uSW1wb3J0ID0gbWlncmF0aW9uc1JlcXVpcmVDb250ZXh0KGZpbGVQYXRoKVxuXG4gICAgaWYgKCFtaWdyYXRpb25JbXBvcnQpIHRocm93IG5ldyBFcnJvcihgTWlncmF0aW9uIGZpbGUgJHtmaWxlUGF0aH0gbm90IGZvdW5kYClcblxuICAgIGNvbnN0IG1pZ3JhdGlvbkltcG9ydERlZmF1bHQgPSBtaWdyYXRpb25JbXBvcnQuZGVmYXVsdFxuXG4gICAgaWYgKCFtaWdyYXRpb25JbXBvcnREZWZhdWx0KSB0aHJvdyBuZXcgRXJyb3IoXCJNaWdyYXRpb24gZmlsZSBtdXN0IGV4cG9ydCBhIGRlZmF1bHQgbWlncmF0aW9uIGNsYXNzXCIpXG4gICAgaWYgKHR5cGVvZiBtaWdyYXRpb25JbXBvcnREZWZhdWx0ICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBFcnJvcihcIk1pZ3JhdGlvbiBkZWZhdWx0IGV4cG9ydCBpc24ndCBhIGZ1bmN0aW9uIChzaG91bGQgYmUgYSBjbGFzcyB3aGljaCBpcyBhIGZ1bmN0aW9uIGluIEpTKVwiKVxuXG4gICAgcmV0dXJuIG1pZ3JhdGlvbkltcG9ydERlZmF1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGltcG9ydChcIi4uL2RhdGFiYXNlL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0Pn0gYXJncy5kYnMgLSBEYnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBhZnRlck1pZ3JhdGlvbnMoe2Ric30pIHtcbiAgICBjb25zdCBzdHJ1Y3R1cmVTcWwgPSBhd2FpdCB0aGlzLl9zcWxpdGVTdHJ1Y3R1cmVTcWwoe2Ric30pXG5cbiAgICBpZiAoIXN0cnVjdHVyZVNxbCkgcmV0dXJuXG5cbiAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZygoKSA9PiBbXCJzdHJ1Y3R1cmUuc3FsOlwiLCBzdHJ1Y3R1cmVTcWxdKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgaW1wb3J0KFwiLi4vZGF0YWJhc2UvZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHQ+fSBhcmdzLmRicyAtIERicy5cbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nIHwgbnVsbD59IC0gUmVzb2x2ZXMgd2l0aCBTUUwgc3RyaW5nLlxuICAgKi9cbiAgYXN5bmMgX3NxbGl0ZVN0cnVjdHVyZVNxbCh7ZGJzfSkge1xuICAgIGNvbnN0IHNxbGl0ZUlkZW50aWZpZXJzID0gT2JqZWN0LmtleXMoZGJzKVxuICAgICAgLmZpbHRlcigoaWRlbnRpZmllcikgPT4gdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0RGF0YWJhc2VUeXBlKGlkZW50aWZpZXIpID09IFwic3FsaXRlXCIpXG5cbiAgICBpZiAoc3FsaXRlSWRlbnRpZmllcnMubGVuZ3RoID09IDApIHJldHVybiBudWxsXG5cbiAgICBjb25zdCBzZWN0aW9ucyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGlkZW50aWZpZXIgb2Ygc3FsaXRlSWRlbnRpZmllcnMpIHtcbiAgICAgIGNvbnN0IGRiID0gZGJzW2lkZW50aWZpZXJdXG4gICAgICBjb25zdCBzdHJ1Y3R1cmVTcWwgPSB0eXBlb2YgZGIuc3RydWN0dXJlU3FsID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBkYi5zdHJ1Y3R1cmVTcWwoKSA6IG51bGxcbiAgICAgIGNvbnN0IHRyaW1tZWRTcWwgPSBzdHJ1Y3R1cmVTcWw/LnRyaW1FbmQoKVxuXG4gICAgICBpZiAoIXRyaW1tZWRTcWwpIGNvbnRpbnVlXG5cbiAgICAgIGlmIChzcWxpdGVJZGVudGlmaWVycy5sZW5ndGggPiAxKSB7XG4gICAgICAgIHNlY3Rpb25zLnB1c2goYC0tICR7aWRlbnRpZmllcn1gKVxuICAgICAgfVxuXG4gICAgICBzZWN0aW9ucy5wdXNoKHRyaW1tZWRTcWwpXG4gICAgfVxuXG4gICAgaWYgKHNlY3Rpb25zLmxlbmd0aCA9PSAwKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIGAke3NlY3Rpb25zLmpvaW4oXCJcXG5cXG5cIil9XFxuYFxuICB9XG59XG4iXX0=
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9icm93c2VyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUM1QixPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLGFBQWEsTUFBTSw2QkFBNkIsQ0FBQTtBQUN2RCxPQUFPLE1BQU0sTUFBTSxjQUFjLENBQUE7QUFFakM7Ozs7OztHQU1HO0FBRUg7Ozs7OztHQU1HO0FBRUg7Ozs7OztHQU1HO0FBRUg7OztHQUdHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxTQUFTO0lBQ2xDLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBQzNCLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxPQUFPLG1DQUFvQyxTQUFRLElBQUk7SUFDbkUscURBQXFEO0lBQ3JELGdDQUFnQyxHQUFHLFNBQVMsQ0FBQTtJQUU1Qyx1REFBdUQ7SUFDdkQsK0JBQStCLEdBQUcsU0FBUyxDQUFBO0lBRTNDLHNEQUFzRDtJQUN0RCw4QkFBOEIsR0FBRyxTQUFTLENBQUE7SUFFMUM7Ozs7T0FJRztJQUNILFlBQVksRUFBQyxnQ0FBZ0MsRUFBRSwrQkFBK0IsRUFBRSxHQUFHLFFBQVEsRUFBQyxHQUFHLEVBQUU7UUFDL0YsS0FBSyxFQUFFLENBQUE7UUFDUCxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFdkIsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLGdDQUFnQyxDQUFBO1FBQ3hFLElBQUksQ0FBQywrQkFBK0IsR0FBRywrQkFBK0IsQ0FBQTtRQUN0RSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFHRDs7T0FFRztJQUNILEtBQUssQ0FBQyx3QkFBd0I7UUFDNUIsTUFBTSxFQUFDLGdDQUFnQyxFQUFDLEdBQUcs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QixNQUFNLFlBQVksR0FBRyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO1lBQzNGLE1BQU0sVUFBVSxHQUFHLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQTtZQUUxQyxJQUFJLENBQUMsVUFBVTtnQkFBRSxTQUFRO1lBRXpCLElBQUksaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sVUFBVSxFQUFFLENBQUMsQ0FBQTtZQUNuQyxDQUFDO1lBRUQsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUMzQixDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQTtRQUVyQyxPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFBO0lBQ3JDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlIGZyb20gXCIuL2Jhc2UuanNcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgcmVzdEFyZ3NFcnJvciBmcm9tIFwiLi4vdXRpbHMvcmVzdC1hcmdzLWVycm9yLmpzXCJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4uL2xvZ2dlci5qc1wiXG5cbi8qKlxuICogQHR5cGVkZWYgeyhpZDogc3RyaW5nKSA9PiB7ZGVmYXVsdDogdHlwZW9mIGltcG9ydChcIi4uL2RhdGFiYXNlL21pZ3JhdGlvbi9pbmRleC5qc1wiKS5kZWZhdWx0fX0gTWlncmF0aW9uc1JlcXVpcmVDb250ZXh0SURGdW5jdGlvblR5cGVcbiAqIEB0eXBlZGVmIHtNaWdyYXRpb25zUmVxdWlyZUNvbnRleHRJREZ1bmN0aW9uVHlwZSAmIHtcbiAqICAga2V5czogKCkgPT4gc3RyaW5nW10sXG4gKiAgIGlkOiBzdHJpbmdcbiAqIH19IE1pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dFR5cGVcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoaWQ6IHN0cmluZykgPT4ge2RlZmF1bHQ6IHR5cGVvZiBpbXBvcnQoXCIuLi9jbGkvYmFzZS1jb21tYW5kLmpzXCIpLmRlZmF1bHR9fSBDb21tYW5kc1JlcXVpcmVDb250ZXh0SURGdW5jdGlvblR5cGVcbiAqIEB0eXBlZGVmIHtDb21tYW5kc1JlcXVpcmVDb250ZXh0SURGdW5jdGlvblR5cGUgJiB7XG4gKiAgIGtleXM6ICgpID0+IHN0cmluZ1tdLFxuICogICBpZDogc3RyaW5nXG4gKiB9fSBDb21tYW5kc1JlcXVpcmVDb250ZXh0VHlwZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhpZDogc3RyaW5nKSA9PiB1bmtub3dufSBUZXN0RmlsZXNSZXF1aXJlQ29udGV4dElERnVuY3Rpb25UeXBlXG4gKiBAdHlwZWRlZiB7VGVzdEZpbGVzUmVxdWlyZUNvbnRleHRJREZ1bmN0aW9uVHlwZSAmIHtcbiAqICAga2V5czogKCkgPT4gc3RyaW5nW10sXG4gKiAgIGlkOiBzdHJpbmdcbiAqIH19IFRlc3RGaWxlc1JlcXVpcmVDb250ZXh0VHlwZVxuICovXG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL2Jhc2UuanNcIikuTWlncmF0aW9uT2JqZWN0VHlwZSB8IG51bGx9IG1pZ3JhdGlvbiAtIENhbmRpZGF0ZSBtaWdyYXRpb24gb2JqZWN0LlxuICogQHJldHVybnMge21pZ3JhdGlvbiBpcyBpbXBvcnQoXCIuL2Jhc2UuanNcIikuTWlncmF0aW9uT2JqZWN0VHlwZX0gLSBXaGV0aGVyIG1pZ3JhdGlvbiBleGlzdHMuXG4gKi9cbmZ1bmN0aW9uIGlzTWlncmF0aW9uT2JqZWN0KG1pZ3JhdGlvbikge1xuICByZXR1cm4gQm9vbGVhbihtaWdyYXRpb24pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0Vudmlyb25tZW50c0hhbmRsZXJCcm93c2VyIGV4dGVuZHMgQmFzZSB7XG4gIC8qKiBAdHlwZSB7Q29tbWFuZHNSZXF1aXJlQ29udGV4dFR5cGUgfCB1bmRlZmluZWR9ICovXG4gIGZpbmRDb21tYW5kc1JlcXVpcmVDb250ZXh0UmVzdWx0ID0gdW5kZWZpbmVkXG5cbiAgLyoqIEB0eXBlIHtNaWdyYXRpb25zUmVxdWlyZUNvbnRleHRUeXBlIHwgdW5kZWZpbmVkfSAqL1xuICBfbWlncmF0aW9uc1JlcXVpcmVDb250ZXh0UmVzdWx0ID0gdW5kZWZpbmVkXG5cbiAgLyoqIEB0eXBlIHtUZXN0RmlsZXNSZXF1aXJlQ29udGV4dFR5cGUgfCB1bmRlZmluZWR9ICovXG4gIF90ZXN0RmlsZXNSZXF1aXJlQ29udGV4dFJlc3VsdCA9IHVuZGVmaW5lZFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0geygpID0+IFByb21pc2U8TWlncmF0aW9uc1JlcXVpcmVDb250ZXh0VHlwZT59IFthcmdzLm1pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dENhbGxiYWNrXSAtIE1pZ3JhdGlvbnMgcmVxdWlyZSBjb250ZXh0IGNhbGxiYWNrLlxuICAgKiBAcGFyYW0geygpID0+IFByb21pc2U8VGVzdEZpbGVzUmVxdWlyZUNvbnRleHRUeXBlPn0gW2FyZ3MudGVzdEZpbGVzUmVxdWlyZUNvbnRleHRDYWxsYmFja10gLSBUZXN0IGZpbGVzIHJlcXVpcmUgY29udGV4dCBjYWxsYmFjay5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHttaWdyYXRpb25zUmVxdWlyZUNvbnRleHRDYWxsYmFjaywgdGVzdEZpbGVzUmVxdWlyZUNvbnRleHRDYWxsYmFjaywgLi4ucmVzdEFyZ3N9ID0ge30pIHtcbiAgICBzdXBlcigpXG4gICAgcmVzdEFyZ3NFcnJvcihyZXN0QXJncylcblxuICAgIHRoaXMubWlncmF0aW9uc1JlcXVpcmVDb250ZXh0Q2FsbGJhY2sgPSBtaWdyYXRpb25zUmVxdWlyZUNvbnRleHRDYWxsYmFja1xuICAgIHRoaXMudGVzdEZpbGVzUmVxdWlyZUNvbnRleHRDYWxsYmFjayA9IHRlc3RGaWxlc1JlcXVpcmVDb250ZXh0Q2FsbGJhY2tcbiAgICB0aGlzLmxvZ2dlciA9IG5ldyBMb2dnZXIodGhpcylcbiAgfVxuXG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPE1pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dFR5cGU+fSAtIFJlc29sdmVzIHdpdGggdGhlIG1pZ3JhdGlvbnMgcmVxdWlyZSBjb250ZXh0LlxuICAgKi9cbiAgYXN5bmMgbWlncmF0aW9uc1JlcXVpcmVDb250ZXh0KCkge1xuICAgIGNvbnN0IHttaWdyYXRpb25zUmVxdWlyZUNvbnRleHRDYWxsYmFja30gPSB0aGlzXG5cbiAgICBpZiAoIW1pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dENhbGxiYWNrKSB0aHJvdyBuZXcgRXJyb3IoXCJtaWdyYXRpb25zUmVxdWlyZUNvbnRleHRDYWxsYmFjayBpcyByZXF1aXJlZFwiKVxuXG4gICAgdGhpcy5fbWlncmF0aW9uc1JlcXVpcmVDb250ZXh0UmVzdWx0IHx8PSBhd2FpdCBtaWdyYXRpb25zUmVxdWlyZUNvbnRleHRDYWxsYmFjaygpXG5cbiAgICByZXR1cm4gdGhpcy5fbWlncmF0aW9uc1JlcXVpcmVDb250ZXh0UmVzdWx0XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8VGVzdEZpbGVzUmVxdWlyZUNvbnRleHRUeXBlPn0gLSBSZXNvbHZlcyB3aXRoIHRoZSB0ZXN0IGZpbGVzIHJlcXVpcmUgY29udGV4dC5cbiAgICovXG4gIGFzeW5jIHRlc3RGaWxlc1JlcXVpcmVDb250ZXh0KCkge1xuICAgIGNvbnN0IHt0ZXN0RmlsZXNSZXF1aXJlQ29udGV4dENhbGxiYWNrfSA9IHRoaXNcblxuICAgIGlmICghdGVzdEZpbGVzUmVxdWlyZUNvbnRleHRDYWxsYmFjaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwidGVzdEZpbGVzUmVxdWlyZUNvbnRleHRDYWxsYmFjayBpcyByZXF1aXJlZCB3aGVuIHJ1bm5pbmcgYnJvd3NlciB0ZXN0c1wiKVxuICAgIH1cblxuICAgIHRoaXMuX3Rlc3RGaWxlc1JlcXVpcmVDb250ZXh0UmVzdWx0IHx8PSBhd2FpdCB0ZXN0RmlsZXNSZXF1aXJlQ29udGV4dENhbGxiYWNrKClcblxuICAgIHJldHVybiB0aGlzLl90ZXN0RmlsZXNSZXF1aXJlQ29udGV4dFJlc3VsdFxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5PGltcG9ydChcIi4vYmFzZS5qc1wiKS5Db21tYW5kRmlsZU9iamVjdFR5cGU+Pn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBjb21tYW5kcy5cbiAgICovXG4gIGFzeW5jIGZpbmRDb21tYW5kcygpIHtcbiAgICB0aGlzLl9maW5kQ29tbWFuZHNSZXN1bHQgPSB0aGlzLl9hY3R1YWxGaW5kQ29tbWFuZHMoKVxuXG4gICAgcmV0dXJuIHRoaXMuX2ZpbmRDb21tYW5kc1Jlc3VsdFxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtDb21tYW5kc1JlcXVpcmVDb250ZXh0VHlwZX0gLSBUaGUgY29tbWFuZHMgcmVxdWlyZSBjb250ZXh0LlxuICAgKi9cbiAgX2ZpbmRDb21tYW5kc1JlcXVpcmVDb250ZXh0KCkge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICB0aGlzLmZpbmRDb21tYW5kc1JlcXVpcmVDb250ZXh0UmVzdWx0IHx8PSAvKiogQHR5cGUge0NvbW1hbmRzUmVxdWlyZUNvbnRleHRUeXBlfSAqLyAocmVxdWlyZS5jb250ZXh0KFwiLi4vY2xpL2NvbW1hbmRzXCIsIHRydWUsIC9cXC5qcyQvKSlcblxuICAgIHJldHVybiB0aGlzLmZpbmRDb21tYW5kc1JlcXVpcmVDb250ZXh0UmVzdWx0XG4gIH1cblxuICBfYWN0dWFsRmluZENvbW1hbmRzKCkge1xuICAgIGNvbnN0IGNvbW1hbmRGaWxlcyA9IHRoaXMuX2ZpbmRDb21tYW5kc1JlcXVpcmVDb250ZXh0KClcbiAgICBjb25zdCBjb21tYW5kcyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGFGaWxlUGF0aCBvZiBjb21tYW5kRmlsZXMua2V5cygpKSB7XG4gICAgICBjb25zdCBhRmlsZVBhdGhQYXJ0cyA9IGFGaWxlUGF0aC5zcGxpdChcIi9cIilcbiAgICAgIGNvbnN0IGxhc3RQYXJ0ID0gYUZpbGVQYXRoUGFydHNbYUZpbGVQYXRoUGFydHMubGVuZ3RoIC0gMV1cbiAgICAgIGxldCBuYW1lXG5cbiAgICAgIGlmIChsYXN0UGFydCA9PSBcImluZGV4LmpzXCIpIHtcbiAgICAgICAgbmFtZSA9IGFGaWxlUGF0aFBhcnRzW2FGaWxlUGF0aFBhcnRzLmxlbmd0aCAtIDJdXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuYW1lID0gbGFzdFBhcnQucmVwbGFjZShcIi5qc1wiLCBcIlwiKVxuICAgICAgfVxuXG4gICAgICBjb21tYW5kcy5wdXNoKHtuYW1lLCBmaWxlOiBhRmlsZVBhdGh9KVxuICAgIH1cblxuICAgIHJldHVybiBjb21tYW5kc1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gYXJncy5jb21tYW5kUGFydHMgLSBDb21tYW5kIHBhcnRzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx0eXBlb2YgaW1wb3J0KFwiLi4vY2xpL2Jhc2UtY29tbWFuZC5qc1wiKS5kZWZhdWx0Pn0gLSBSZXNvbHZlcyB3aXRoIHRoZSByZXF1aXJlIGNvbW1hbmQuXG4gICAqL1xuICBhc3luYyByZXF1aXJlQ29tbWFuZCh7Y29tbWFuZFBhcnRzfSkge1xuICAgIGxldCBmaWxlUGF0aCA9IFwiLlwiXG5cbiAgICBmb3IgKGxldCBjb21tYW5kUGFydCBvZiBjb21tYW5kUGFydHMpIHtcbiAgICAgIGlmIChjb21tYW5kUGFydCA9PSBcImNcIikgY29tbWFuZFBhcnQgPSBcImNvbnNvbGVcIlxuICAgICAgaWYgKGNvbW1hbmRQYXJ0ID09IFwiZFwiKSBjb21tYW5kUGFydCA9IFwiZGVzdHJveVwiXG4gICAgICBpZiAoY29tbWFuZFBhcnQgPT0gXCJnXCIpIGNvbW1hbmRQYXJ0ID0gXCJnZW5lcmF0ZVwiXG4gICAgICBpZiAoY29tbWFuZFBhcnQgPT0gXCJzXCIpIGNvbW1hbmRQYXJ0ID0gXCJzZXJ2ZXJcIlxuXG4gICAgICBmaWxlUGF0aCArPSBgLyR7Y29tbWFuZFBhcnR9YFxuICAgIH1cblxuICAgIGNvbnN0IGZpbGVQYXRocyA9IFtdXG5cbiAgICBmaWxlUGF0aHMucHVzaChgJHtmaWxlUGF0aH0vaW5kZXguanNgKVxuICAgIGZpbGVQYXRoICs9IFwiLmpzXCJcbiAgICBmaWxlUGF0aHMucHVzaChmaWxlUGF0aClcblxuICAgIGNvbnN0IGNvbW1hbmRzUmVxdWlyZUNvbnRleHQgPSBhd2FpdCB0aGlzLl9maW5kQ29tbWFuZHNSZXF1aXJlQ29udGV4dCgpXG4gICAgbGV0IGNvbW1hbmRDbGFzc0ltcG9ydFxuXG4gICAgZm9yIChjb25zdCBhRmlsZVBhdGggb2YgZmlsZVBhdGhzKSB7XG4gICAgICBjb21tYW5kQ2xhc3NJbXBvcnQgPSBjb21tYW5kc1JlcXVpcmVDb250ZXh0KGFGaWxlUGF0aClcblxuICAgICAgaWYgKGNvbW1hbmRDbGFzc0ltcG9ydCkge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghY29tbWFuZENsYXNzSW1wb3J0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gY29tbWFuZDogJHtjb21tYW5kUGFydHMuam9pbihcIjpcIil9LiBQb3NzaWJsZSBjb21tYW5kczogJHtjb21tYW5kc1JlcXVpcmVDb250ZXh0LmtleXMoKX1gKVxuICAgIH1cblxuICAgIGNvbnN0IENvbW1hbmRDbGFzcyA9IGNvbW1hbmRDbGFzc0ltcG9ydC5kZWZhdWx0XG5cbiAgICByZXR1cm4gQ29tbWFuZENsYXNzXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8QXJyYXk8aW1wb3J0KFwiLi9iYXNlLmpzXCIpLk1pZ3JhdGlvbk9iamVjdFR5cGU+Pn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBtaWdyYXRpb25zLlxuICAgKi9cbiAgYXN5bmMgZmluZE1pZ3JhdGlvbnMoKSB7XG4gICAgY29uc3QgbWlncmF0aW9uc1JlcXVpcmVDb250ZXh0ID0gYXdhaXQgdGhpcy5taWdyYXRpb25zUmVxdWlyZUNvbnRleHQoKVxuICAgIC8qKiBAdHlwZSB7QXJyYXk8aW1wb3J0KFwiLi9iYXNlLmpzXCIpLk1pZ3JhdGlvbk9iamVjdFR5cGUgfCBudWxsPn0gKi9cbiAgICBjb25zdCBtaWdyYXRpb25zID0gbWlncmF0aW9uc1JlcXVpcmVDb250ZXh0XG4gICAgICAua2V5cygpXG4gICAgICAubWFwKChmaWxlKSA9PiB7XG4gICAgICAgIC8vIFwiMTMsMTRcIiBiZWNhdXNlIHNvbWVzIFwicmVxdWlyZS1jb250ZXh0XCItbnBtLW1vZHVsZSBkZWxldGVzIGZpcnN0IGNoYXJhY3RlciE/XG4gICAgICAgIGNvbnN0IG1hdGNoID0gZmlsZS5tYXRjaCgvKFxcZHsxMywxNH0pLSguKylcXC5qcyQvKVxuXG4gICAgICAgIGlmICghbWF0Y2gpIHJldHVybiBudWxsXG5cbiAgICAgICAgLy8gRml4IHJlcXVpcmUtY29udGV4dC1ucG0tbW9kdWxlIGRlbGV0ZXMgZmlyc3QgY2hhcmFjdGVyXG4gICAgICAgIGxldCBmaWxlTmFtZSA9IGZpbGVcbiAgICAgICAgbGV0IGRhdGVOdW1iZXIgPSBtYXRjaFsxXVxuXG4gICAgICAgIGlmIChkYXRlTnVtYmVyLmxlbmd0aCA9PSAxMykge1xuICAgICAgICAgIGRhdGVOdW1iZXIgPSBgMiR7ZGF0ZU51bWJlcn1gXG4gICAgICAgICAgZmlsZU5hbWUgPSBgMiR7ZmlsZU5hbWV9YFxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUGFyc2UgcmVnZXhcbiAgICAgICAgY29uc3QgZGF0ZSA9IHBhcnNlSW50KGRhdGVOdW1iZXIpXG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbk5hbWUgPSBtYXRjaFsyXVxuICAgICAgICBjb25zdCBtaWdyYXRpb25DbGFzc05hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKG1pZ3JhdGlvbk5hbWUucmVwbGFjZUFsbChcIi1cIiwgXCJfXCIpKVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZmlsZTogZmlsZU5hbWUsXG4gICAgICAgICAgZnVsbFBhdGg6IGZpbGUsXG4gICAgICAgICAgZGF0ZSxcbiAgICAgICAgICBtaWdyYXRpb25DbGFzc05hbWVcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoaXNNaWdyYXRpb25PYmplY3QpXG4gICAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuL2Jhc2UuanNcIikuTWlncmF0aW9uT2JqZWN0VHlwZVtdfSAqL1xuICAgIGNvbnN0IGZpbGVzID0gLyoqIEB0eXBlIHtpbXBvcnQoXCIuL2Jhc2UuanNcIikuTWlncmF0aW9uT2JqZWN0VHlwZVtdfSAqLyAobWlncmF0aW9ucylcblxuICAgIGZpbGVzLnNvcnQoKG1pZ3JhdGlvbjEsIG1pZ3JhdGlvbjIpID0+IG1pZ3JhdGlvbjEuZGF0ZSAtIG1pZ3JhdGlvbjIuZGF0ZSlcblxuICAgIHJldHVybiBmaWxlc1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHRlc3RGaWxlcyAtIFRlc3QgZmlsZXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBpbXBvcnRUZXN0RmlsZXModGVzdEZpbGVzKSB7XG4gICAgY29uc3QgdGVzdEZpbGVzUmVxdWlyZUNvbnRleHQgPSBhd2FpdCB0aGlzLnRlc3RGaWxlc1JlcXVpcmVDb250ZXh0KClcbiAgICBjb25zdCByZXF1aXJlS2V5cyA9IHRlc3RGaWxlc1JlcXVpcmVDb250ZXh0LmtleXMoKVxuICAgIGNvbnN0IG5vcm1hbGl6ZWRLZXlzID0gcmVxdWlyZUtleXMubWFwKChrZXkpID0+ICh7XG4gICAgICBrZXksXG4gICAgICBub3JtYWxpemVkOiBrZXkucmVwbGFjZSgvXFxcXC9nLCBcIi9cIikucmVwbGFjZSgvXlxcLlxcLy8sIFwiXCIpXG4gICAgfSkpXG5cbiAgICBmb3IgKGNvbnN0IHRlc3RGaWxlIG9mIHRlc3RGaWxlcykge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZEZpbGUgPSB0ZXN0RmlsZS5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKVxuICAgICAgY29uc3QgbWF0Y2hlZEtleSA9IG5vcm1hbGl6ZWRLZXlzLmZpbmQoKGVudHJ5KSA9PiBub3JtYWxpemVkRmlsZS5lbmRzV2l0aChlbnRyeS5ub3JtYWxpemVkKSk/LmtleVxuXG4gICAgICBpZiAoIW1hdGNoZWRLZXkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZXN0IGZpbGUgJHt0ZXN0RmlsZX0gd2FzIG5vdCBmb3VuZCBpbiB0aGUgcHJvdmlkZWQgcmVxdWlyZSBjb250ZXh0YClcbiAgICAgIH1cblxuICAgICAgY29uc3QgaW1wb3J0ZWQgPSB0ZXN0RmlsZXNSZXF1aXJlQ29udGV4dChtYXRjaGVkS2V5KVxuXG4gICAgICBpZiAoaW1wb3J0ZWQgJiYgdHlwZW9mIGltcG9ydGVkID09IFwib2JqZWN0XCIgJiYgXCJ0aGVuXCIgaW4gaW1wb3J0ZWQgJiYgdHlwZW9mIGltcG9ydGVkLnRoZW4gPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGF3YWl0IGltcG9ydGVkXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlUGF0aCAtIEZpbGUgcGF0aC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dHlwZW9mIGltcG9ydChcIi4uL2RhdGFiYXNlL21pZ3JhdGlvbi9pbmRleC5qc1wiKS5kZWZhdWx0Pn0gLSBSZXNvbHZlcyB3aXRoIHRoZSByZXF1aXJlIG1pZ3JhdGlvbi5cbiAgICovXG4gIHJlcXVpcmVNaWdyYXRpb24gPSBhc3luYyAoZmlsZVBhdGgpID0+IHtcbiAgICBpZiAoIWZpbGVQYXRoKSB0aHJvdyBuZXcgRXJyb3IoXCJmaWxlUGF0aCBpcyByZXF1aXJlZFwiKVxuXG4gICAgY29uc3QgbWlncmF0aW9uc1JlcXVpcmVDb250ZXh0ID0gYXdhaXQgdGhpcy5taWdyYXRpb25zUmVxdWlyZUNvbnRleHQoKVxuICAgIGNvbnN0IG1pZ3JhdGlvbkltcG9ydCA9IG1pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dChmaWxlUGF0aClcblxuICAgIGlmICghbWlncmF0aW9uSW1wb3J0KSB0aHJvdyBuZXcgRXJyb3IoYE1pZ3JhdGlvbiBmaWxlICR7ZmlsZVBhdGh9IG5vdCBmb3VuZGApXG5cbiAgICBjb25zdCBtaWdyYXRpb25JbXBvcnREZWZhdWx0ID0gbWlncmF0aW9uSW1wb3J0LmRlZmF1bHRcblxuICAgIGlmICghbWlncmF0aW9uSW1wb3J0RGVmYXVsdCkgdGhyb3cgbmV3IEVycm9yKFwiTWlncmF0aW9uIGZpbGUgbXVzdCBleHBvcnQgYSBkZWZhdWx0IG1pZ3JhdGlvbiBjbGFzc1wiKVxuICAgIGlmICh0eXBlb2YgbWlncmF0aW9uSW1wb3J0RGVmYXVsdCAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgRXJyb3IoXCJNaWdyYXRpb24gZGVmYXVsdCBleHBvcnQgaXNuJ3QgYSBmdW5jdGlvbiAoc2hvdWxkIGJlIGEgY2xhc3Mgd2hpY2ggaXMgYSBmdW5jdGlvbiBpbiBKUylcIilcblxuICAgIHJldHVybiBtaWdyYXRpb25JbXBvcnREZWZhdWx0XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBpbXBvcnQoXCIuLi9kYXRhYmFzZS9kcml2ZXJzL2Jhc2UuanNcIikuZGVmYXVsdD59IGFyZ3MuZGJzIC0gRGJzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgYWZ0ZXJNaWdyYXRpb25zKHtkYnN9KSB7XG4gICAgY29uc3Qgc3RydWN0dXJlU3FsID0gYXdhaXQgdGhpcy5fc3FsaXRlU3RydWN0dXJlU3FsKHtkYnN9KVxuXG4gICAgaWYgKCFzdHJ1Y3R1cmVTcWwpIHJldHVyblxuXG4gICAgYXdhaXQgdGhpcy5sb2dnZXIuZGVidWcoKCkgPT4gW1wic3RydWN0dXJlLnNxbDpcIiwgc3RydWN0dXJlU3FsXSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGltcG9ydChcIi4uL2RhdGFiYXNlL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0Pn0gYXJncy5kYnMgLSBEYnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZyB8IG51bGw+fSAtIFJlc29sdmVzIHdpdGggU1FMIHN0cmluZy5cbiAgICovXG4gIGFzeW5jIF9zcWxpdGVTdHJ1Y3R1cmVTcWwoe2Ric30pIHtcbiAgICBjb25zdCBzcWxpdGVJZGVudGlmaWVycyA9IE9iamVjdC5rZXlzKGRicylcbiAgICAgIC5maWx0ZXIoKGlkZW50aWZpZXIpID0+IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldERhdGFiYXNlVHlwZShpZGVudGlmaWVyKSA9PSBcInNxbGl0ZVwiKVxuXG4gICAgaWYgKHNxbGl0ZUlkZW50aWZpZXJzLmxlbmd0aCA9PSAwKSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3Qgc2VjdGlvbnMgPSBbXVxuXG4gICAgZm9yIChjb25zdCBpZGVudGlmaWVyIG9mIHNxbGl0ZUlkZW50aWZpZXJzKSB7XG4gICAgICBjb25zdCBkYiA9IGRic1tpZGVudGlmaWVyXVxuICAgICAgY29uc3Qgc3RydWN0dXJlU3FsID0gdHlwZW9mIGRiLnN0cnVjdHVyZVNxbCA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgZGIuc3RydWN0dXJlU3FsKCkgOiBudWxsXG4gICAgICBjb25zdCB0cmltbWVkU3FsID0gc3RydWN0dXJlU3FsPy50cmltRW5kKClcblxuICAgICAgaWYgKCF0cmltbWVkU3FsKSBjb250aW51ZVxuXG4gICAgICBpZiAoc3FsaXRlSWRlbnRpZmllcnMubGVuZ3RoID4gMSkge1xuICAgICAgICBzZWN0aW9ucy5wdXNoKGAtLSAke2lkZW50aWZpZXJ9YClcbiAgICAgIH1cblxuICAgICAgc2VjdGlvbnMucHVzaCh0cmltbWVkU3FsKVxuICAgIH1cblxuICAgIGlmIChzZWN0aW9ucy5sZW5ndGggPT0gMCkgcmV0dXJuIG51bGxcblxuICAgIHJldHVybiBgJHtzZWN0aW9ucy5qb2luKFwiXFxuXFxuXCIpfVxcbmBcbiAgfVxufVxuIl19
@@ -82,13 +82,13 @@ async function startConsoleRepl({ configuration, context }) {
82
82
  reject(error);
83
83
  }
84
84
  else {
85
- resolve();
85
+ resolve(undefined);
86
86
  }
87
87
  });
88
88
  });
89
89
  await new Promise((resolve) => {
90
90
  replServer.on("exit", () => {
91
- resolve();
91
+ resolve(undefined);
92
92
  });
93
93
  });
94
94
  }
@@ -115,4 +115,4 @@ export default class VelociousCliCommandsConsole extends BaseCommand {
115
115
  }
116
116
  }
117
117
  }
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy9jb25zb2xlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sV0FBVyxNQUFNLDRCQUE0QixDQUFBO0FBQ3BELE9BQU8sV0FBVyxNQUFNLGlDQUFpQyxDQUFBO0FBQ3pELE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUM1QixPQUFPLElBQUksTUFBTSxXQUFXLENBQUE7QUFFNUIsK0pBQStKO0FBRS9KOzs7R0FHRztBQUNILFNBQVMsbUJBQW1CLENBQUMsRUFBQyxXQUFXLEVBQUUsYUFBYSxFQUFDO0lBQ3ZELHFGQUFxRjtJQUNyRixNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtJQUVqRCxLQUFLLE1BQU0sVUFBVSxJQUFJLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUM7UUFDaEUsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQUUsU0FBUTtRQUU3QixNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3RELE1BQU0sY0FBYyxHQUFHLCtHQUErRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDN0ksTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFBO1FBRS9ELElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsZ0JBQWdCLENBQUE7WUFDbEMsU0FBUTtRQUNWLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7UUFDL0MsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUNFLEtBQUssWUFB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LEVBQUU7UUFDNUIsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQ3pCLE9BQU8sRUFBRSxDQUFBO1FBQ1gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtBQUVKLENBQUM7QUFFRCxpQ0FBaUM7QUFDakMsTUFBTSxDQUFDLE9BQU8sT0FBTywyQkFBNEIsU0FBUSxXQUFXO0lBQ2xFLHNFQUFzRTtJQUN0RSxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQzdDLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDO1lBQ2xDLGFBQWE7WUFDYixJQUFJLEVBQUUsU0FBUztTQUNoQixDQUFDLENBQUE7UUFFRixNQUFNLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUM5QixNQUFNLGFBQWEsQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO1FBRTdDLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLEVBQUMsV0FBVyxFQUFFLGFBQWEsRUFBQyxDQUFDLENBQUE7UUFFakUsSUFBSSxDQUFDO1lBQ0gsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0JBQzFCLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxFQUFDLENBQUE7WUFDeEQsQ0FBQztZQUVELE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQyxFQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFBO1FBQ3pELENBQUM7Z0JBQVMsQ0FBQztZQUNULE1BQU0sYUFBYSxDQUFDLHdCQUF3QixFQUFFLENBQUE7UUFDaEQsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBcHBsaWNhdGlvbiBmcm9tIFwiLi4vLi4vLi4vLi4vYXBwbGljYXRpb24uanNcIlxuaW1wb3J0IEJhc2VDb21tYW5kIGZyb20gXCIuLi8uLi8uLi8uLi9jbGkvYmFzZS1jb21tYW5kLmpzXCJcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHJlcGwgZnJvbSBcIm5vZGU6cmVwbFwiXG5cbi8qKiBAdHlwZWRlZiB7e2FwcGxpY2F0aW9uOiBpbXBvcnQoXCIuLi8uLi8uLi8uLi9hcHBsaWNhdGlvbi5qc1wiKS5kZWZhdWx0LCBjb25maWd1cmF0aW9uOiBpbXBvcnQoXCIuLi8uLi8uLi8uLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9fSBDb25zb2xlQ29udGV4dEFyZ3MgKi9cblxuLyoqXG4gKiBAcGFyYW0ge0NvbnNvbGVDb250ZXh0QXJnc30gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSAtIFRoZSBjb25zb2xlIGNvbnRleHQuXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkQ29uc29sZUNvbnRleHQoe2FwcGxpY2F0aW9uLCBjb25maWd1cmF0aW9ufSkge1xuICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIGltcG9ydChcIi4uLy4uLy4uLy4uL2RhdGFiYXNlL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0Pn0gKi9cbiAgY29uc3QgZGJzID0gY29uZmlndXJhdGlvbi5nZXRDdXJyZW50Q29ubmVjdGlvbnMoKVxuXG4gIGZvciAoY29uc3QgaWRlbnRpZmllciBvZiBjb25maWd1cmF0aW9uLmdldERhdGFiYXNlSWRlbnRpZmllcnMoKSkge1xuICAgIGlmIChkYnNbaWRlbnRpZmllcl0pIGNvbnRpbnVlXG5cbiAgICBjb25zdCBwb29sID0gY29uZmlndXJhdGlvbi5nZXREYXRhYmFzZVBvb2woaWRlbnRpZmllcilcbiAgICBjb25zdCBwb29sV2l0aEdsb2JhbCA9IC8qKiBAdHlwZSB7e2dldEdsb2JhbENvbm5lY3Rpb24/OiAoKSA9PiBpbXBvcnQoXCIuLi8uLi8uLi8uLi9kYXRhYmFzZS9kcml2ZXJzL2Jhc2UuanNcIikuZGVmYXVsdCB8IHVuZGVmaW5lZH19ICovIChwb29sKVxuICAgIGNvbnN0IGdsb2JhbENvbm5lY3Rpb24gPSBwb29sV2l0aEdsb2JhbC5nZXRHbG9iYWxDb25uZWN0aW9uPy4oKVxuXG4gICAgaWYgKGdsb2JhbENvbm5lY3Rpb24pIHtcbiAgICAgIGRic1tpZGVudGlmaWVyXSA9IGdsb2JhbENvbm5lY3Rpb25cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGRic1tpZGVudGlmaWVyXSA9IHBvb2wuZ2V0Q3VycmVudENvbm5lY3Rpb24oKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiZcbiAgICAgICAgKFxuICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPT0gXCJJRCBoYXNuJ3QgYmVlbiBzZXQgZm9yIHRoaXMgYXN5bmMgY29udGV4dFwiIHx8XG4gICAgICAgICAgZXJyb3IubWVzc2FnZSA9PSBcIkEgY29ubmVjdGlvbiBoYXNuJ3QgYmVlbiBtYWRlIHlldFwiIHx8XG4gICAgICAgICAgZXJyb3IubWVzc2FnZS5zdGFydHNXaXRoKFwiTm8gYXN5bmMgY29udGV4dCBzZXQgZm9yIGRhdGFiYXNlIGNvbm5lY3Rpb25cIikgfHxcbiAgICAgICAgICBlcnJvci5tZXNzYWdlLnN0YXJ0c1dpdGgoXCJDb25uZWN0aW9uIFwiKSAmJiBlcnJvci5tZXNzYWdlLmluY2x1ZGVzKFwiZG9lc24ndCBleGlzdCBhbnkgbW9yZVwiKVxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgLy8gSWdub3JlIG1pc3NpbmcgY29ubmVjdGlvbnMgaGVyZTsgdGhleSBjYW4gYmUgZXN0YWJsaXNoZWQgbGF6aWx5LlxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBkYklkZW50aWZpZXJzID0gT2JqZWN0LmtleXMoZGJzKVxuXG4gIHJldHVybiB7XG4gICAgYXBwOiBhcHBsaWNhdGlvbixcbiAgICBhcHBsaWNhdGlvbixcbiAgICBjb25maWd1cmF0aW9uLFxuICAgIGRiOiBkYnMuZGVmYXVsdCB8fCAoZGJJZGVudGlmaWVycy5sZW5ndGggPiAwID8gZGJzW2RiSWRlbnRpZmllcnNbMF1dIDogdW5kZWZpbmVkKSxcbiAgICBkYnMsXG4gICAgbW9kZWxzOiB7Li4uY29uZmlndXJhdGlvbi5tb2RlbENsYXNzZXN9XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gYXJncy5jb250ZXh0IC0gVGhlIGJhc2UgY29udGV4dC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwibm9kZTpyZXBsXCIpLlJFUExTZXJ2ZXJ9IGFyZ3MucmVwbFNlcnZlciAtIFRoZSBSRVBMIHNlcnZlci5cbiAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gYXNzaWduQ29uc29sZUNvbnRleHQoe2NvbnRleHQsIHJlcGxTZXJ2ZXJ9KSB7XG4gIE9iamVjdC5hc3NpZ24ocmVwbFNlcnZlci5jb250ZXh0LCBjb250ZXh0KVxuXG4gIGNvbnN0IG1vZGVsQ2xhc3NlcyA9IC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgdHlwZW9mIGltcG9ydChcIi4uLy4uLy4uLy4uL2RhdGFiYXNlL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0Pn0gKi8gKFxuICAgIGNvbnRleHQubW9kZWxzIHx8IHt9XG4gIClcblxuICBmb3IgKGNvbnN0IFtuYW1lLCBtb2RlbENsYXNzXSBvZiBPYmplY3QuZW50cmllcyhtb2RlbENsYXNzZXMpKSB7XG4gICAgcmVwbFNlcnZlci5jb250ZXh0W25hbWVdID0gbW9kZWxDbGFzc1xuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vLi4vLi4vLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gYXJncy5jb250ZXh0IC0gUkVQTCBjb250ZXh0LlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiB0aGUgY29uc29sZSBleGl0cy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc3RhcnRDb25zb2xlUmVwbCh7Y29uZmlndXJhdGlvbiwgY29udGV4dH0pIHtcbiAgY29uc3QgZW52aXJvbm1lbnQgPSBjb25maWd1cmF0aW9uLmdldEVudmlyb25tZW50KClcblxuICBjb25zb2xlLmxvZyhgTG9hZGluZyAke2Vudmlyb25tZW50fSBlbnZpcm9ubWVudCAoVmVsb2Npb3VzIGNvbnNvbGUpYClcblxuICBjb25zdCByZXBsU2VydmVyID0gcmVwbC5zdGFydCh7XG4gICAgcHJvbXB0OiBcInZlbG9jaW91cz4gXCJcbiAgfSlcblxuICBhc3NpZ25Db25zb2xlQ29udGV4dCh7Y29udGV4dCwgcmVwbFNlcnZlcn0pXG4gIHJlcGxTZXJ2ZXIub24oXCJyZXNldFwiLCAoKSA9PiB7XG4gICAgYXNzaWduQ29uc29sZUNvbnRleHQoe2NvbnRleHQsIHJlcGxTZXJ2ZXJ9KVxuICB9KVxuXG4gIGNvbnN0IGhpc3RvcnlQYXRoID0gcGF0aC5qb2luKGNvbmZpZ3VyYXRpb24uZ2V0RGlyZWN0b3J5KCksIFwiLnZlbG9jaW91cy1jb25zb2xlLWhpc3RvcnlcIilcblxuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgcmVwbFNlcnZlci5zZXR1cEhpc3RvcnkoaGlzdG9yeVBhdGgsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoKVxuICAgICAgfVxuICAgIH0pXG4gIH0pXG5cbiAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICByZXBsU2VydmVyLm9uKFwiZXhpdFwiLCAoKSA9PiB7XG4gICAgICByZXNvbHZlKClcbiAgICB9KVxuICB9KVxuXG59XG5cbi8qKiBWZWxvY2lvdXMgY29uc29sZSBjb21tYW5kLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzQ2xpQ29tbWFuZHNDb25zb2xlIGV4dGVuZHMgQmFzZUNvbW1hbmR7XG4gIC8qKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBjb21tYW5kIHJlc3VsdC4gKi9cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5nZXRDb25maWd1cmF0aW9uKClcbiAgICBjb25zdCBhcHBsaWNhdGlvbiA9IG5ldyBBcHBsaWNhdGlvbih7XG4gICAgICBjb25maWd1cmF0aW9uLFxuICAgICAgdHlwZTogXCJjb25zb2xlXCJcbiAgICB9KVxuXG4gICAgYXdhaXQgYXBwbGljYXRpb24uaW5pdGlhbGl6ZSgpXG4gICAgYXdhaXQgY29uZmlndXJhdGlvbi5lbnN1cmVHbG9iYWxDb25uZWN0aW9ucygpXG5cbiAgICBjb25zdCBjb250ZXh0ID0gYnVpbGRDb25zb2xlQ29udGV4dCh7YXBwbGljYXRpb24sIGNvbmZpZ3VyYXRpb259KVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLmNsaS5nZXRUZXN0aW5nKCkpIHtcbiAgICAgICAgcmV0dXJuIHttb2RlbE5hbWVzOiBPYmplY3Qua2V5cyhjb250ZXh0Lm1vZGVscyB8fCB7fSl9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhd2FpdCBzdGFydENvbnNvbGVSZXBsKHtjb25maWd1cmF0aW9uLCBjb250ZXh0fSlcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgY29uZmlndXJhdGlvbi5jbG9zZURhdGFiYXNlQ29ubmVjdGlvbnMoKVxuICAgIH1cbiAgfVxufVxuIl19
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy9jb25zb2xlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sV0FBVyxNQUFNLDRCQUE0QixDQUFBO0FBQ3BELE9BQU8sV0FBVyxNQUFNLGlDQUFpQyxDQUFBO0FBQ3pELE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUM1QixPQUFPLElBQUksTUFBTSxXQUFXLENBQUE7QUFFNUIsK0pBQStKO0FBRS9KOzs7R0FHRztBQUNILFNBQVMsbUJBQW1CLENBQUMsRUFBQyxXQUFXLEVBQUUsYUFBYSxFQUFDO0lBQ3ZELHFGQUFxRjtJQUNyRixNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtJQUVqRCxLQUFLLE1BQU0sVUFBVSxJQUFJLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUM7UUFDaEUsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQUUsU0FBUTtRQUU3QixNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3RELE1BQU0sY0FBYyxHQUFHLCtHQUErRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDN0ksTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFBO1FBRS9ELElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsZ0JBQWdCLENBQUE7WUFDbEMsU0FBUTtRQUNWLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7UUFDL0MsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUNFLEtBQUssWUFB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QyxPQUFPLEVBQUUsRUFBRTtRQUM1QixVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDekIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3BCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7QUFFSixDQUFDO0FBRUQsaUNBQWlDO0FBQ2pDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sMkJBQTRCLFNBQVEsV0FBVztJQUNsRSxzRUFBc0U7SUFDdEUsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUM3QyxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUNsQyxhQUFhO1lBQ2IsSUFBSSxFQUFFLFNBQVM7U0FDaEIsQ0FBQyxDQUFBO1FBRUYsTUFBTSxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDOUIsTUFBTSxhQUFhLENBQUMsdUJBQXVCLEVBQUUsQ0FBQTtRQUU3QyxNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxFQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUMsQ0FBQyxDQUFBO1FBRWpFLElBQUksQ0FBQztZQUNILElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO2dCQUMxQixPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsRUFBQyxDQUFBO1lBQ3hELENBQUM7WUFFRCxPQUFPLE1BQU0sZ0JBQWdCLENBQUMsRUFBQyxhQUFhLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQTtRQUN6RCxDQUFDO2dCQUFTLENBQUM7WUFDVCxNQUFNLGFBQWEsQ0FBQyx3QkFBd0IsRUFBRSxDQUFBO1FBQ2hELENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQXBwbGljYXRpb24gZnJvbSBcIi4uLy4uLy4uLy4uL2FwcGxpY2F0aW9uLmpzXCJcbmltcG9ydCBCYXNlQ29tbWFuZCBmcm9tIFwiLi4vLi4vLi4vLi4vY2xpL2Jhc2UtY29tbWFuZC5qc1wiXG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCByZXBsIGZyb20gXCJub2RlOnJlcGxcIlxuXG4vKiogQHR5cGVkZWYge3thcHBsaWNhdGlvbjogaW1wb3J0KFwiLi4vLi4vLi4vLi4vYXBwbGljYXRpb24uanNcIikuZGVmYXVsdCwgY29uZmlndXJhdGlvbjogaW1wb3J0KFwiLi4vLi4vLi4vLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fX0gQ29uc29sZUNvbnRleHRBcmdzICovXG5cbi8qKlxuICogQHBhcmFtIHtDb25zb2xlQ29udGV4dEFyZ3N9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gLSBUaGUgY29uc29sZSBjb250ZXh0LlxuICovXG5mdW5jdGlvbiBidWlsZENvbnNvbGVDb250ZXh0KHthcHBsaWNhdGlvbiwgY29uZmlndXJhdGlvbn0pIHtcbiAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBpbXBvcnQoXCIuLi8uLi8uLi8uLi9kYXRhYmFzZS9kcml2ZXJzL2Jhc2UuanNcIikuZGVmYXVsdD59ICovXG4gIGNvbnN0IGRicyA9IGNvbmZpZ3VyYXRpb24uZ2V0Q3VycmVudENvbm5lY3Rpb25zKClcblxuICBmb3IgKGNvbnN0IGlkZW50aWZpZXIgb2YgY29uZmlndXJhdGlvbi5nZXREYXRhYmFzZUlkZW50aWZpZXJzKCkpIHtcbiAgICBpZiAoZGJzW2lkZW50aWZpZXJdKSBjb250aW51ZVxuXG4gICAgY29uc3QgcG9vbCA9IGNvbmZpZ3VyYXRpb24uZ2V0RGF0YWJhc2VQb29sKGlkZW50aWZpZXIpXG4gICAgY29uc3QgcG9vbFdpdGhHbG9iYWwgPSAvKiogQHR5cGUge3tnZXRHbG9iYWxDb25uZWN0aW9uPzogKCkgPT4gaW1wb3J0KFwiLi4vLi4vLi4vLi4vZGF0YWJhc2UvZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHQgfCB1bmRlZmluZWR9fSAqLyAocG9vbClcbiAgICBjb25zdCBnbG9iYWxDb25uZWN0aW9uID0gcG9vbFdpdGhHbG9iYWwuZ2V0R2xvYmFsQ29ubmVjdGlvbj8uKClcblxuICAgIGlmIChnbG9iYWxDb25uZWN0aW9uKSB7XG4gICAgICBkYnNbaWRlbnRpZmllcl0gPSBnbG9iYWxDb25uZWN0aW9uXG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBkYnNbaWRlbnRpZmllcl0gPSBwb29sLmdldEN1cnJlbnRDb25uZWN0aW9uKClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKFxuICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmXG4gICAgICAgIChcbiAgICAgICAgICBlcnJvci5tZXNzYWdlID09IFwiSUQgaGFzbid0IGJlZW4gc2V0IGZvciB0aGlzIGFzeW5jIGNvbnRleHRcIiB8fFxuICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPT0gXCJBIGNvbm5lY3Rpb24gaGFzbid0IGJlZW4gbWFkZSB5ZXRcIiB8fFxuICAgICAgICAgIGVycm9yLm1lc3NhZ2Uuc3RhcnRzV2l0aChcIk5vIGFzeW5jIGNvbnRleHQgc2V0IGZvciBkYXRhYmFzZSBjb25uZWN0aW9uXCIpIHx8XG4gICAgICAgICAgZXJyb3IubWVzc2FnZS5zdGFydHNXaXRoKFwiQ29ubmVjdGlvbiBcIikgJiYgZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhcImRvZXNuJ3QgZXhpc3QgYW55IG1vcmVcIilcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIC8vIElnbm9yZSBtaXNzaW5nIGNvbm5lY3Rpb25zIGhlcmU7IHRoZXkgY2FuIGJlIGVzdGFibGlzaGVkIGxhemlseS5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZGJJZGVudGlmaWVycyA9IE9iamVjdC5rZXlzKGRicylcblxuICByZXR1cm4ge1xuICAgIGFwcDogYXBwbGljYXRpb24sXG4gICAgYXBwbGljYXRpb24sXG4gICAgY29uZmlndXJhdGlvbixcbiAgICBkYjogZGJzLmRlZmF1bHQgfHwgKGRiSWRlbnRpZmllcnMubGVuZ3RoID4gMCA/IGRic1tkYklkZW50aWZpZXJzWzBdXSA6IHVuZGVmaW5lZCksXG4gICAgZGJzLFxuICAgIG1vZGVsczogey4uLmNvbmZpZ3VyYXRpb24ubW9kZWxDbGFzc2VzfVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59IGFyZ3MuY29udGV4dCAtIFRoZSBiYXNlIGNvbnRleHQuXG4gKiBAcGFyYW0ge2ltcG9ydChcIm5vZGU6cmVwbFwiKS5SRVBMU2VydmVyfSBhcmdzLnJlcGxTZXJ2ZXIgLSBUaGUgUkVQTCBzZXJ2ZXIuXG4gKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGFzc2lnbkNvbnNvbGVDb250ZXh0KHtjb250ZXh0LCByZXBsU2VydmVyfSkge1xuICBPYmplY3QuYXNzaWduKHJlcGxTZXJ2ZXIuY29udGV4dCwgY29udGV4dClcblxuICBjb25zdCBtb2RlbENsYXNzZXMgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHR5cGVvZiBpbXBvcnQoXCIuLi8uLi8uLi8uLi9kYXRhYmFzZS9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdD59ICovIChcbiAgICBjb250ZXh0Lm1vZGVscyB8fCB7fVxuICApXG5cbiAgZm9yIChjb25zdCBbbmFtZSwgbW9kZWxDbGFzc10gb2YgT2JqZWN0LmVudHJpZXMobW9kZWxDbGFzc2VzKSkge1xuICAgIHJlcGxTZXJ2ZXIuY29udGV4dFtuYW1lXSA9IG1vZGVsQ2xhc3NcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uLy4uLy4uLy4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59IGFyZ3MuY29udGV4dCAtIFJFUEwgY29udGV4dC5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gdGhlIGNvbnNvbGUgZXhpdHMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHN0YXJ0Q29uc29sZVJlcGwoe2NvbmZpZ3VyYXRpb24sIGNvbnRleHR9KSB7XG4gIGNvbnN0IGVudmlyb25tZW50ID0gY29uZmlndXJhdGlvbi5nZXRFbnZpcm9ubWVudCgpXG5cbiAgY29uc29sZS5sb2coYExvYWRpbmcgJHtlbnZpcm9ubWVudH0gZW52aXJvbm1lbnQgKFZlbG9jaW91cyBjb25zb2xlKWApXG5cbiAgY29uc3QgcmVwbFNlcnZlciA9IHJlcGwuc3RhcnQoe1xuICAgIHByb21wdDogXCJ2ZWxvY2lvdXM+IFwiXG4gIH0pXG5cbiAgYXNzaWduQ29uc29sZUNvbnRleHQoe2NvbnRleHQsIHJlcGxTZXJ2ZXJ9KVxuICByZXBsU2VydmVyLm9uKFwicmVzZXRcIiwgKCkgPT4ge1xuICAgIGFzc2lnbkNvbnNvbGVDb250ZXh0KHtjb250ZXh0LCByZXBsU2VydmVyfSlcbiAgfSlcblxuICBjb25zdCBoaXN0b3J5UGF0aCA9IHBhdGguam9pbihjb25maWd1cmF0aW9uLmdldERpcmVjdG9yeSgpLCBcIi52ZWxvY2lvdXMtY29uc29sZS1oaXN0b3J5XCIpXG5cbiAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHJlcGxTZXJ2ZXIuc2V0dXBIaXN0b3J5KGhpc3RvcnlQYXRoLCAoZXJyb3IpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKHVuZGVmaW5lZClcbiAgICAgIH1cbiAgICB9KVxuICB9KVxuXG4gIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgcmVwbFNlcnZlci5vbihcImV4aXRcIiwgKCkgPT4ge1xuICAgICAgcmVzb2x2ZSh1bmRlZmluZWQpXG4gICAgfSlcbiAgfSlcblxufVxuXG4vKiogVmVsb2Npb3VzIGNvbnNvbGUgY29tbWFuZC4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0NsaUNvbW1hbmRzQ29uc29sZSBleHRlbmRzIEJhc2VDb21tYW5ke1xuICAvKiogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IC0gUmVzb2x2ZXMgd2l0aCB0aGUgY29tbWFuZCByZXN1bHQuICovXG4gIGFzeW5jIGV4ZWN1dGUoKSB7XG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpXG4gICAgY29uc3QgYXBwbGljYXRpb24gPSBuZXcgQXBwbGljYXRpb24oe1xuICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgIHR5cGU6IFwiY29uc29sZVwiXG4gICAgfSlcblxuICAgIGF3YWl0IGFwcGxpY2F0aW9uLmluaXRpYWxpemUoKVxuICAgIGF3YWl0IGNvbmZpZ3VyYXRpb24uZW5zdXJlR2xvYmFsQ29ubmVjdGlvbnMoKVxuXG4gICAgY29uc3QgY29udGV4dCA9IGJ1aWxkQ29uc29sZUNvbnRleHQoe2FwcGxpY2F0aW9uLCBjb25maWd1cmF0aW9ufSlcblxuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5jbGkuZ2V0VGVzdGluZygpKSB7XG4gICAgICAgIHJldHVybiB7bW9kZWxOYW1lczogT2JqZWN0LmtleXMoY29udGV4dC5tb2RlbHMgfHwge30pfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXdhaXQgc3RhcnRDb25zb2xlUmVwbCh7Y29uZmlndXJhdGlvbiwgY29udGV4dH0pXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGNvbmZpZ3VyYXRpb24uY2xvc2VEYXRhYmFzZUNvbm5lY3Rpb25zKClcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,24 @@
1
+ /** Node CLI command for loading DB structure SQL files. */
2
+ export default class DbSchemaLoad extends BaseCommand {
3
+ /** @returns {Promise<void>} */
4
+ execute(): Promise<void>;
5
+ /**
6
+ * @param {object} args - Options object.
7
+ * @param {import("../../../../../../database/drivers/base.js").default} args.db - Database connection.
8
+ * @param {string} args.structureSql - Structure SQL to load.
9
+ * @returns {Promise<void>} - Resolves when complete.
10
+ */
11
+ loadStructureSql({ db, structureSql }: {
12
+ db: import("../../../../../../database/drivers/base.js").default;
13
+ structureSql: string;
14
+ }): Promise<void>;
15
+ /**
16
+ * @param {import("../../../../../../database/drivers/base.js").default} db - Database connection.
17
+ * @returns {{exec: (sql: string) => Promise<unknown>} | undefined} - Connection with exec support.
18
+ */
19
+ executableConnection(db: import("../../../../../../database/drivers/base.js").default): {
20
+ exec: (sql: string) => Promise<unknown>;
21
+ } | undefined;
22
+ }
23
+ import BaseCommand from "../../../../../../cli/base-command.js";
24
+ //# sourceMappingURL=load.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../../../../../../src/environment-handlers/node/cli/commands/db/schema/load.js"],"names":[],"mappings":"AAKA,2DAA2D;AAC3D;IACE,+BAA+B;IAC/B,WADc,OAAO,CAAC,IAAI,CAAC,CAa1B;IAED;;;;;OAKG;IACH,uCAJG;QAA2E,EAAE,EAArE,OAAO,4CAA4C,EAAE,OAAO;QAC/C,YAAY,EAAzB,MAAM;KACd,GAAU,OAAO,CAAC,IAAI,CAAC,CAsBzB;IAED;;;OAGG;IACH,yBAHW,OAAO,4CAA4C,EAAE,OAAO,GAC1D;QAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAAC,GAAG,SAAS,CASjE;CACF;wBA9DuB,uCAAuC"}
@@ -0,0 +1,57 @@
1
+ import BaseCommand from "../../../../../../cli/base-command.js";
2
+ import fs from "fs/promises";
3
+ import path from "path";
4
+ import splitSqlStatements from "../../../../../../utils/split-sql-statements.js";
5
+ /** Node CLI command for loading DB structure SQL files. */
6
+ export default class DbSchemaLoad extends BaseCommand {
7
+ /** @returns {Promise<void>} */
8
+ async execute() {
9
+ await this.getConfiguration().ensureConnections(async (dbs) => {
10
+ const dbDir = path.join(this.directory(), "db");
11
+ for (const identifier of Object.keys(dbs)) {
12
+ const db = dbs[identifier];
13
+ const structureFilePath = path.join(dbDir, `structure-${identifier}.sql`);
14
+ const structureSql = await fs.readFile(structureFilePath, "utf8");
15
+ await this.loadStructureSql({ db, structureSql });
16
+ }
17
+ });
18
+ }
19
+ /**
20
+ * @param {object} args - Options object.
21
+ * @param {import("../../../../../../database/drivers/base.js").default} args.db - Database connection.
22
+ * @param {string} args.structureSql - Structure SQL to load.
23
+ * @returns {Promise<void>} - Resolves when complete.
24
+ */
25
+ async loadStructureSql({ db, structureSql }) {
26
+ const statements = splitSqlStatements(structureSql);
27
+ if (statements.length == 0)
28
+ return;
29
+ const executableConnection = this.executableConnection(db);
30
+ await db.disableForeignKeys();
31
+ try {
32
+ if (executableConnection) {
33
+ await executableConnection.exec(structureSql);
34
+ }
35
+ else {
36
+ for (const statement of statements) {
37
+ await db.query(statement);
38
+ }
39
+ }
40
+ }
41
+ finally {
42
+ await db.enableForeignKeys();
43
+ }
44
+ }
45
+ /**
46
+ * @param {import("../../../../../../database/drivers/base.js").default} db - Database connection.
47
+ * @returns {{exec: (sql: string) => Promise<unknown>} | undefined} - Connection with exec support.
48
+ */
49
+ executableConnection(db) {
50
+ const dbWithConnection = /** @type {import("../../../../../../database/drivers/base.js").default & {connection?: unknown}} */ (db);
51
+ const connection = dbWithConnection.connection;
52
+ if (connection && typeof connection == "object" && "exec" in connection && typeof connection.exec == "function") {
53
+ return /** @type {{exec: (sql: string) => Promise<unknown>}} */ (connection);
54
+ }
55
+ }
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy9kYi9zY2hlbWEvbG9hZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFdBQVcsTUFBTSx1Q0FBdUMsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDNUIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBQ3ZCLE9BQU8sa0JBQWtCLE1BQU0saURBQWlELENBQUE7QUFFaEYsMkRBQTJEO0FBQzNELE1BQU0sQ0FBQyxPQUFPLE9BQU8sWUFBYSxTQUFRLFdBQVc7SUFDbkQsK0JBQStCO0lBQy9CLEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDNUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFFL0MsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQTtnQkFDMUIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLFVBQVUsTUFBTSxDQUFDLENBQUE7Z0JBQ3pFLE1BQU0sWUFBWSxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQTtnQkFFakUsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBQyxFQUFFLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQTtZQUNqRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBQyxFQUFFLEVBQUUsWUFBWSxFQUFDO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFBO1FBRW5ELElBQUksVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsT0FBTTtRQUVsQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUUxRCxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBRTdCLElBQUksQ0FBQztZQUNILElBQUksb0JBQW9CLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDL0MsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7b0JBQ25DLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDM0IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2dCQUFTLENBQUM7WUFDVCxNQUFNLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsb0JBQW9CLENBQUMsRUFBRTtRQUNyQixNQUFNLGdCQUFnQixHQUFHLG9HQUFvRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDbEksTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFBO1FBRTlDLElBQUksVUFBVSxJQUFJLE9BQU8sVUFBVSxJQUFJLFFBQVEsSUFBSSxNQUFNLElBQUksVUFBVSxJQUFJLE9BQU8sVUFBVSxDQUFDLElBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNoSCxPQUFPLHdEQUF3RCxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDOUUsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlQ29tbWFuZCBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vY2xpL2Jhc2UtY29tbWFuZC5qc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzL3Byb21pc2VzXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBzcGxpdFNxbFN0YXRlbWVudHMgZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL3V0aWxzL3NwbGl0LXNxbC1zdGF0ZW1lbnRzLmpzXCJcblxuLyoqIE5vZGUgQ0xJIGNvbW1hbmQgZm9yIGxvYWRpbmcgREIgc3RydWN0dXJlIFNRTCBmaWxlcy4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERiU2NoZW1hTG9hZCBleHRlbmRzIEJhc2VDb21tYW5kIHtcbiAgLyoqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAqL1xuICBhc3luYyBleGVjdXRlKCkge1xuICAgIGF3YWl0IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmVuc3VyZUNvbm5lY3Rpb25zKGFzeW5jIChkYnMpID0+IHtcbiAgICAgIGNvbnN0IGRiRGlyID0gcGF0aC5qb2luKHRoaXMuZGlyZWN0b3J5KCksIFwiZGJcIilcblxuICAgICAgZm9yIChjb25zdCBpZGVudGlmaWVyIG9mIE9iamVjdC5rZXlzKGRicykpIHtcbiAgICAgICAgY29uc3QgZGIgPSBkYnNbaWRlbnRpZmllcl1cbiAgICAgICAgY29uc3Qgc3RydWN0dXJlRmlsZVBhdGggPSBwYXRoLmpvaW4oZGJEaXIsIGBzdHJ1Y3R1cmUtJHtpZGVudGlmaWVyfS5zcWxgKVxuICAgICAgICBjb25zdCBzdHJ1Y3R1cmVTcWwgPSBhd2FpdCBmcy5yZWFkRmlsZShzdHJ1Y3R1cmVGaWxlUGF0aCwgXCJ1dGY4XCIpXG5cbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkU3RydWN0dXJlU3FsKHtkYiwgc3RydWN0dXJlU3FsfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vLi4vLi4vLi4vLi4vLi4vZGF0YWJhc2UvZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHR9IGFyZ3MuZGIgLSBEYXRhYmFzZSBjb25uZWN0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5zdHJ1Y3R1cmVTcWwgLSBTdHJ1Y3R1cmUgU1FMIHRvIGxvYWQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBsb2FkU3RydWN0dXJlU3FsKHtkYiwgc3RydWN0dXJlU3FsfSkge1xuICAgIGNvbnN0IHN0YXRlbWVudHMgPSBzcGxpdFNxbFN0YXRlbWVudHMoc3RydWN0dXJlU3FsKVxuXG4gICAgaWYgKHN0YXRlbWVudHMubGVuZ3RoID09IDApIHJldHVyblxuXG4gICAgY29uc3QgZXhlY3V0YWJsZUNvbm5lY3Rpb24gPSB0aGlzLmV4ZWN1dGFibGVDb25uZWN0aW9uKGRiKVxuXG4gICAgYXdhaXQgZGIuZGlzYWJsZUZvcmVpZ25LZXlzKClcblxuICAgIHRyeSB7XG4gICAgICBpZiAoZXhlY3V0YWJsZUNvbm5lY3Rpb24pIHtcbiAgICAgICAgYXdhaXQgZXhlY3V0YWJsZUNvbm5lY3Rpb24uZXhlYyhzdHJ1Y3R1cmVTcWwpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBzdGF0ZW1lbnRzKSB7XG4gICAgICAgICAgYXdhaXQgZGIucXVlcnkoc3RhdGVtZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGRiLmVuYWJsZUZvcmVpZ25LZXlzKClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi8uLi8uLi8uLi8uLi8uLi9kYXRhYmFzZS9kcml2ZXJzL2Jhc2UuanNcIikuZGVmYXVsdH0gZGIgLSBEYXRhYmFzZSBjb25uZWN0aW9uLlxuICAgKiBAcmV0dXJucyB7e2V4ZWM6IChzcWw6IHN0cmluZykgPT4gUHJvbWlzZTx1bmtub3duPn0gfCB1bmRlZmluZWR9IC0gQ29ubmVjdGlvbiB3aXRoIGV4ZWMgc3VwcG9ydC5cbiAgICovXG4gIGV4ZWN1dGFibGVDb25uZWN0aW9uKGRiKSB7XG4gICAgY29uc3QgZGJXaXRoQ29ubmVjdGlvbiA9IC8qKiBAdHlwZSB7aW1wb3J0KFwiLi4vLi4vLi4vLi4vLi4vLi4vZGF0YWJhc2UvZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHQgJiB7Y29ubmVjdGlvbj86IHVua25vd259fSAqLyAoZGIpXG4gICAgY29uc3QgY29ubmVjdGlvbiA9IGRiV2l0aENvbm5lY3Rpb24uY29ubmVjdGlvblxuXG4gICAgaWYgKGNvbm5lY3Rpb24gJiYgdHlwZW9mIGNvbm5lY3Rpb24gPT0gXCJvYmplY3RcIiAmJiBcImV4ZWNcIiBpbiBjb25uZWN0aW9uICYmIHR5cGVvZiBjb25uZWN0aW9uLmV4ZWMgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gLyoqIEB0eXBlIHt7ZXhlYzogKHNxbDogc3RyaW5nKSA9PiBQcm9taXNlPHVua25vd24+fX0gKi8gKGNvbm5lY3Rpb24pXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../../../../../../src/environment-handlers/node/cli/commands/db/seed.js"],"names":[],"mappings":"AA2BA,2EAA2E;AAC3E;IACE,4EAA4E;IAC5E,WADc,OAAO,CAAC,OAAO,CAAC,CAe7B;IAED,mFAAmF;IACnF,qBADc,OAAO,CAAC,IAAI,CAAC,CAS1B;IAED,2DAA2D;IAC3D,gBADc,MAAM,CAGnB;IAED,gFAAgF;IAChF,sBADc,aAAa,CAY1B;CACF;;;;;mBArEa,OAAO,iCAAiC,EAAE,OAAO;;;;QACjD,OAAO,yCAAyC,EAAE,OAAO,GAAG,SAAS;;;;SACrE,MAAM,CAAC,MAAM,EAAE,OAAO,yCAAyC,EAAE,OAAO,CAAC;;;;UACzE,MAAM,EAAE;;wBATE,oCAAoC"}
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../../../../../../src/environment-handlers/node/cli/commands/db/seed.js"],"names":[],"mappings":"AA2BA,2EAA2E;AAC3E;IACE,4EAA4E;IAC5E,WADc,OAAO,CAAC,OAAO,CAAC,CAe7B;IAED,mFAAmF;IACnF,qBADc,OAAO,CAAC,IAAI,CAAC,CAS1B;IAED,2DAA2D;IAC3D,gBADc,MAAM,CAGnB;IAED,gFAAgF;IAChF,sBADc,aAAa,CAc1B;CACF;;;;;mBAvEa,OAAO,iCAAiC,EAAE,OAAO;;;;QACjD,OAAO,yCAAyC,EAAE,OAAO,GAAG,SAAS;;;;SACrE,MAAM,CAAC,MAAM,EAAE,OAAO,yCAAyC,EAAE,OAAO,CAAC;;;;UACzE,MAAM,EAAE;;wBATE,oCAAoC"}
@@ -53,12 +53,14 @@ export default class DbSeed extends BaseCommand {
53
53
  const configuration = this.getConfiguration();
54
54
  const dbs = configuration.getCurrentConnections();
55
55
  const identifiers = Object.keys(dbs);
56
+ /** @type {string[]} */
57
+ const processArgs = this.processArgs || [];
56
58
  return {
57
59
  configuration,
58
60
  db: dbs.default || (identifiers.length > 0 ? dbs[identifiers[0]] : undefined),
59
61
  dbs,
60
- args: this.processArgs.slice(1)
62
+ args: processArgs.slice(1)
61
63
  };
62
64
  }
63
65
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy9kYi9zZWVkLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sV0FBVyxNQUFNLG9DQUFvQyxDQUFBO0FBQzVELE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUM1QixPQUFPLGlCQUFpQixNQUFNLDZDQUE2QyxDQUFBO0FBRTNFOzs7Ozs7R0FNRztBQUVIOzs7R0FHRztBQUNILEtBQUssVUFBVSxvQkFBb0IsQ0FBQyxRQUFRO0lBQzFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFDOUQsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQTtJQUUzQyxJQUFJLE9BQU8sY0FBYyxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELFFBQVEsRUFBRSxDQUFDLENBQUE7SUFDN0UsQ0FBQztJQUVELE9BQU8sY0FBYyxDQUFBO0FBQ3ZCLENBQUM7QUFFRCwyRUFBMkU7QUFDM0UsTUFBTSxDQUFDLE9BQU8sT0FBTyxNQUFPLFNBQVEsV0FBVztJQUM3Qyw0RUFBNEU7SUFDNUUsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUU3QyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQzlCLE1BQU0sYUFBYSxDQUFDLHVCQUF1QixFQUFFLENBQUE7UUFFN0MsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO1lBQ3BDLE1BQU0sY0FBYyxHQUFHLE1BQU0sb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUE7WUFFM0QsT0FBTyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFBO1FBQ3hELENBQUM7Z0JBQVMsQ0FBQztZQUNULE1BQU0sYUFBYSxDQUFDLHdCQUF3QixFQUFFLENBQUE7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxtRkFBbUY7SUFDbkYsS0FBSyxDQUFDLGlCQUFpQjtRQUNyQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUU3QyxNQUFNLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQTtRQUVqRCxJQUFJLENBQUMsYUFBYSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsQ0FBQztZQUMvQyxhQUFhLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELDJEQUEyRDtJQUMzRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQzVELENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYsa0JBQWtCO1FBQ2hCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQzdDLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO1FBQ2pELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFcEMsT0FBTztZQUNMLGFBQWE7WUFDYixFQUFFLEVBQUUsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM3RSxHQUFHO1lBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNoQyxDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21tYW5kIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9jbGkvYmFzZS1jb21tYW5kLmpzXCJcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHRvSW1wb3J0U3BlY2lmaWVyIGZyb20gXCIuLi8uLi8uLi8uLi8uLi91dGlscy90by1pbXBvcnQtc3BlY2lmaWVyLmpzXCJcblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBSdW5uZXJDb250ZXh0XG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uLy4uLy4uLy4uLy4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uLy4uLy4uLy4uLy4uL2RhdGFiYXNlL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSBkYiAtIERlZmF1bHQgZGF0YWJhc2UgY29ubmVjdGlvbi5cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgaW1wb3J0KFwiLi4vLi4vLi4vLi4vLi4vZGF0YWJhc2UvZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHQ+fSBkYnMgLSBEYXRhYmFzZSBjb25uZWN0aW9ucyBrZXllZCBieSBpZGVudGlmaWVyLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gYXJncyAtIENMSSBhcmdzIGFmdGVyIHRoZSBjb21tYW5kIG5hbWUuXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gZmlsZVBhdGggLSBBYnNvbHV0ZSBwYXRoIHRvIHNjcmlwdCBmaWxlLlxuICogQHJldHVybnMge1Byb21pc2U8KGNvbnRleHQ6IFJ1bm5lckNvbnRleHQpID0+IFByb21pc2U8dW5rbm93bj4+fSAtIFRoZSBkZWZhdWx0LWV4cG9ydGVkIGFzeW5jIGZ1bmN0aW9uLlxuICovXG5hc3luYyBmdW5jdGlvbiBpbXBvcnRSdW5uZXJGdW5jdGlvbihmaWxlUGF0aCkge1xuICBjb25zdCBydW5uZXJJbXBvcnQgPSBhd2FpdCBpbXBvcnQodG9JbXBvcnRTcGVjaWZpZXIoZmlsZVBhdGgpKVxuICBjb25zdCBydW5uZXJGdW5jdGlvbiA9IHJ1bm5lckltcG9ydC5kZWZhdWx0XG5cbiAgaWYgKHR5cGVvZiBydW5uZXJGdW5jdGlvbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBkZWZhdWx0IGV4cG9ydCB0byBiZSBhIGZ1bmN0aW9uIGluOiAke2ZpbGVQYXRofWApXG4gIH1cblxuICByZXR1cm4gcnVubmVyRnVuY3Rpb25cbn1cblxuLyoqIE5vZGUgY29tbWFuZCBmb3IgcnVubmluZyBwcm9qZWN0IGRhdGFiYXNlIHNlZWRzIGZyb20gc3JjL2RiL3NlZWQuanMuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEYlNlZWQgZXh0ZW5kcyBCYXNlQ29tbWFuZCB7XG4gIC8qKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBzZWVkIGZ1bmN0aW9uIHJlc3VsdC4gKi9cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5nZXRDb25maWd1cmF0aW9uKClcblxuICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVJ1bnRpbWUoKVxuICAgIGF3YWl0IGNvbmZpZ3VyYXRpb24uZW5zdXJlR2xvYmFsQ29ubmVjdGlvbnMoKVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlZWRQYXRoID0gdGhpcy5zZWVkRmlsZVBhdGgoKVxuICAgICAgY29uc3QgcnVubmVyRnVuY3Rpb24gPSBhd2FpdCBpbXBvcnRSdW5uZXJGdW5jdGlvbihzZWVkUGF0aClcblxuICAgICAgcmV0dXJuIGF3YWl0IHJ1bm5lckZ1bmN0aW9uKHRoaXMuYnVpbGRSdW5uZXJDb250ZXh0KCkpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGNvbmZpZ3VyYXRpb24uY2xvc2VEYXRhYmFzZUNvbm5lY3Rpb25zKClcbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBydW50aW1lIGluaXRpYWxpemF0aW9uIGlzIGNvbXBsZXRlLiAqL1xuICBhc3luYyBpbml0aWFsaXplUnVudGltZSgpIHtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5nZXRDb25maWd1cmF0aW9uKClcblxuICAgIGF3YWl0IGNvbmZpZ3VyYXRpb24uaW5pdGlhbGl6ZSh7dHlwZTogXCJkYi1zZWVkXCJ9KVxuXG4gICAgaWYgKCFjb25maWd1cmF0aW9uLmlzRGF0YWJhc2VQb29sSW5pdGlhbGl6ZWQoKSkge1xuICAgICAgY29uZmlndXJhdGlvbi5pbml0aWFsaXplRGF0YWJhc2VQb29sKClcbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZ30gLSBBYnNvbHV0ZSBwYXRoIHRvIHNyYy9kYi9zZWVkLmpzLiAqL1xuICBzZWVkRmlsZVBhdGgoKSB7XG4gICAgcmV0dXJuIHBhdGguam9pbih0aGlzLmRpcmVjdG9yeSgpLCBcInNyY1wiLCBcImRiXCIsIFwic2VlZC5qc1wiKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtSdW5uZXJDb250ZXh0fSAtIFJ1bnRpbWUgY29udGV4dCBwYXNzZWQgdG8gdGhlIHNjcmlwdCBmdW5jdGlvbi4gKi9cbiAgYnVpbGRSdW5uZXJDb250ZXh0KCkge1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB0aGlzLmdldENvbmZpZ3VyYXRpb24oKVxuICAgIGNvbnN0IGRicyA9IGNvbmZpZ3VyYXRpb24uZ2V0Q3VycmVudENvbm5lY3Rpb25zKClcbiAgICBjb25zdCBpZGVudGlmaWVycyA9IE9iamVjdC5rZXlzKGRicylcblxuICAgIHJldHVybiB7XG4gICAgICBjb25maWd1cmF0aW9uLFxuICAgICAgZGI6IGRicy5kZWZhdWx0IHx8IChpZGVudGlmaWVycy5sZW5ndGggPiAwID8gZGJzW2lkZW50aWZpZXJzWzBdXSA6IHVuZGVmaW5lZCksXG4gICAgICBkYnMsXG4gICAgICBhcmdzOiB0aGlzLnByb2Nlc3NBcmdzLnNsaWNlKDEpXG4gICAgfVxuICB9XG59XG4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy9kYi9zZWVkLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sV0FBVyxNQUFNLG9DQUFvQyxDQUFBO0FBQzVELE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUM1QixPQUFPLGlCQUFpQixNQUFNLDZDQUE2QyxDQUFBO0FBRTNFOzs7Ozs7R0FNRztBQUVIOzs7R0FHRztBQUNILEtBQUssVUFBVSxvQkFBb0IsQ0FBQyxRQUFRO0lBQzFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFDOUQsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQTtJQUUzQyxJQUFJLE9BQU8sY0FBYyxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELFFBQVEsRUFBRSxDQUFDLENBQUE7SUFDN0UsQ0FBQztJQUVELE9BQU8sY0FBYyxDQUFBO0FBQ3ZCLENBQUM7QUFFRCwyRUFBMkU7QUFDM0UsTUFBTSxDQUFDLE9BQU8sT0FBTyxNQUFPLFNBQVEsV0FBVztJQUM3Qyw0RUFBNEU7SUFDNUUsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUU3QyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQzlCLE1BQU0sYUFBYSxDQUFDLHVCQUF1QixFQUFFLENBQUE7UUFFN0MsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO1lBQ3BDLE1BQU0sY0FBYyxHQUFHLE1BQU0sb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUE7WUFFM0QsT0FBTyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFBO1FBQ3hELENBQUM7Z0JBQVMsQ0FBQztZQUNULE1BQU0sYUFBYSxDQUFDLHdCQUF3QixFQUFFLENBQUE7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxtRkFBbUY7SUFDbkYsS0FBSyxDQUFDLGlCQUFpQjtRQUNyQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUU3QyxNQUFNLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQTtRQUVqRCxJQUFJLENBQUMsYUFBYSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsQ0FBQztZQUMvQyxhQUFhLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELDJEQUEyRDtJQUMzRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQzVELENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYsa0JBQWtCO1FBQ2hCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQzdDLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO1FBQ2pELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDcEMsdUJBQXVCO1FBQ3ZCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFBO1FBRTFDLE9BQU87WUFDTCxhQUFhO1lBQ2IsRUFBRSxFQUFFLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDN0UsR0FBRztZQUNILElBQUksRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUMzQixDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21tYW5kIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9jbGkvYmFzZS1jb21tYW5kLmpzXCJcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHRvSW1wb3J0U3BlY2lmaWVyIGZyb20gXCIuLi8uLi8uLi8uLi8uLi91dGlscy90by1pbXBvcnQtc3BlY2lmaWVyLmpzXCJcblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBSdW5uZXJDb250ZXh0XG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uLy4uLy4uLy4uLy4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uLy4uLy4uLy4uLy4uL2RhdGFiYXNlL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSBkYiAtIERlZmF1bHQgZGF0YWJhc2UgY29ubmVjdGlvbi5cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgaW1wb3J0KFwiLi4vLi4vLi4vLi4vLi4vZGF0YWJhc2UvZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHQ+fSBkYnMgLSBEYXRhYmFzZSBjb25uZWN0aW9ucyBrZXllZCBieSBpZGVudGlmaWVyLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gYXJncyAtIENMSSBhcmdzIGFmdGVyIHRoZSBjb21tYW5kIG5hbWUuXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gZmlsZVBhdGggLSBBYnNvbHV0ZSBwYXRoIHRvIHNjcmlwdCBmaWxlLlxuICogQHJldHVybnMge1Byb21pc2U8KGNvbnRleHQ6IFJ1bm5lckNvbnRleHQpID0+IFByb21pc2U8dW5rbm93bj4+fSAtIFRoZSBkZWZhdWx0LWV4cG9ydGVkIGFzeW5jIGZ1bmN0aW9uLlxuICovXG5hc3luYyBmdW5jdGlvbiBpbXBvcnRSdW5uZXJGdW5jdGlvbihmaWxlUGF0aCkge1xuICBjb25zdCBydW5uZXJJbXBvcnQgPSBhd2FpdCBpbXBvcnQodG9JbXBvcnRTcGVjaWZpZXIoZmlsZVBhdGgpKVxuICBjb25zdCBydW5uZXJGdW5jdGlvbiA9IHJ1bm5lckltcG9ydC5kZWZhdWx0XG5cbiAgaWYgKHR5cGVvZiBydW5uZXJGdW5jdGlvbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBkZWZhdWx0IGV4cG9ydCB0byBiZSBhIGZ1bmN0aW9uIGluOiAke2ZpbGVQYXRofWApXG4gIH1cblxuICByZXR1cm4gcnVubmVyRnVuY3Rpb25cbn1cblxuLyoqIE5vZGUgY29tbWFuZCBmb3IgcnVubmluZyBwcm9qZWN0IGRhdGFiYXNlIHNlZWRzIGZyb20gc3JjL2RiL3NlZWQuanMuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEYlNlZWQgZXh0ZW5kcyBCYXNlQ29tbWFuZCB7XG4gIC8qKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBzZWVkIGZ1bmN0aW9uIHJlc3VsdC4gKi9cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5nZXRDb25maWd1cmF0aW9uKClcblxuICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVJ1bnRpbWUoKVxuICAgIGF3YWl0IGNvbmZpZ3VyYXRpb24uZW5zdXJlR2xvYmFsQ29ubmVjdGlvbnMoKVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlZWRQYXRoID0gdGhpcy5zZWVkRmlsZVBhdGgoKVxuICAgICAgY29uc3QgcnVubmVyRnVuY3Rpb24gPSBhd2FpdCBpbXBvcnRSdW5uZXJGdW5jdGlvbihzZWVkUGF0aClcblxuICAgICAgcmV0dXJuIGF3YWl0IHJ1bm5lckZ1bmN0aW9uKHRoaXMuYnVpbGRSdW5uZXJDb250ZXh0KCkpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGNvbmZpZ3VyYXRpb24uY2xvc2VEYXRhYmFzZUNvbm5lY3Rpb25zKClcbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBydW50aW1lIGluaXRpYWxpemF0aW9uIGlzIGNvbXBsZXRlLiAqL1xuICBhc3luYyBpbml0aWFsaXplUnVudGltZSgpIHtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5nZXRDb25maWd1cmF0aW9uKClcblxuICAgIGF3YWl0IGNvbmZpZ3VyYXRpb24uaW5pdGlhbGl6ZSh7dHlwZTogXCJkYi1zZWVkXCJ9KVxuXG4gICAgaWYgKCFjb25maWd1cmF0aW9uLmlzRGF0YWJhc2VQb29sSW5pdGlhbGl6ZWQoKSkge1xuICAgICAgY29uZmlndXJhdGlvbi5pbml0aWFsaXplRGF0YWJhc2VQb29sKClcbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZ30gLSBBYnNvbHV0ZSBwYXRoIHRvIHNyYy9kYi9zZWVkLmpzLiAqL1xuICBzZWVkRmlsZVBhdGgoKSB7XG4gICAgcmV0dXJuIHBhdGguam9pbih0aGlzLmRpcmVjdG9yeSgpLCBcInNyY1wiLCBcImRiXCIsIFwic2VlZC5qc1wiKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtSdW5uZXJDb250ZXh0fSAtIFJ1bnRpbWUgY29udGV4dCBwYXNzZWQgdG8gdGhlIHNjcmlwdCBmdW5jdGlvbi4gKi9cbiAgYnVpbGRSdW5uZXJDb250ZXh0KCkge1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB0aGlzLmdldENvbmZpZ3VyYXRpb24oKVxuICAgIGNvbnN0IGRicyA9IGNvbmZpZ3VyYXRpb24uZ2V0Q3VycmVudENvbm5lY3Rpb25zKClcbiAgICBjb25zdCBpZGVudGlmaWVycyA9IE9iamVjdC5rZXlzKGRicylcbiAgICAvKiogQHR5cGUge3N0cmluZ1tdfSAqL1xuICAgIGNvbnN0IHByb2Nlc3NBcmdzID0gdGhpcy5wcm9jZXNzQXJncyB8fCBbXVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICBkYjogZGJzLmRlZmF1bHQgfHwgKGlkZW50aWZpZXJzLmxlbmd0aCA+IDAgPyBkYnNbaWRlbnRpZmllcnNbMF1dIDogdW5kZWZpbmVkKSxcbiAgICAgIGRicyxcbiAgICAgIGFyZ3M6IHByb2Nlc3NBcmdzLnNsaWNlKDEpXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../../../../../src/environment-handlers/node/cli/commands/destroy/migration.js"],"names":[],"mappings":"AAGA;;GAEG;AAEH;IACE;;OAEG;IACH,WAFa,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC,CA+BlD;CACF;qCArCY;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAC;wBAJV,oCAAoC"}
1
+ {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../../../../../src/environment-handlers/node/cli/commands/destroy/migration.js"],"names":[],"mappings":"AAGA;;GAEG;AAEH;IACE;;OAEG;IACH,WAFa,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC,CAkClD;CACF;qCAxCY;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAC;wBAJV,oCAAoC"}
@@ -8,7 +8,9 @@ export default class DbDestroyMigration extends BaseCommand {
8
8
  * @returns {Promise<void | DestroyMigrationResult>} - Resolves with the execute.
9
9
  */
10
10
  async execute() {
11
- const migrationName = this.processArgs[1];
11
+ const migrationName = this.processArgs?.[1];
12
+ if (!migrationName)
13
+ throw new Error("Expected migration name");
12
14
  const migrationDir = `${this.getConfiguration().getDirectory()}/src/database/migrations`;
13
15
  const migrationFiles = await fs.readdir(migrationDir);
14
16
  const destroyed = [];
@@ -32,4 +34,4 @@ export default class DbDestroyMigration extends BaseCommand {
32
34
  }
33
35
  }
34
36
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Vudmlyb25tZW50LWhhbmRsZXJzL25vZGUvY2xpL2NvbW1hbmRzL2Rlc3Ryb3kvbWlncmF0aW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sV0FBVyxNQUFNLG9DQUFvQyxDQUFBO0FBQzVELE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUU1Qjs7R0FFRztBQUVILE1BQU0sQ0FBQyxPQUFPLE9BQU8sa0JBQW1CLFNBQVEsV0FBVztJQUN6RDs7T0FFRztJQUNILEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN6QyxNQUFNLFlBQVksR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFlBQVksRUFBRSwwQkFBMEIsQ0FBQTtRQUN4RixNQUFNLGNBQWMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDckQsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFBO1FBRXBCLEtBQUssTUFBTSxhQUFhLElBQUksY0FBYyxFQUFFLENBQUM7WUFDM0MsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1lBRXhELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCxTQUFRO1lBQ1YsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUV6QixJQUFJLFFBQVEsSUFBSSxhQUFhO2dCQUFFLFNBQVE7WUFFdkMsTUFBTSxZQUFZLEdBQUcsR0FBRyxZQUFZLElBQUksYUFBYSxFQUFFLENBQUE7WUFDdkQsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUV4QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsYUFBYSxFQUFFLENBQUMsQ0FBQTtnQkFDL0QsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBQy9CLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLE9BQU8sRUFBQyxTQUFTLEVBQUMsQ0FBQTtRQUNwQixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21tYW5kIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9jbGkvYmFzZS1jb21tYW5kLmpzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIlxuXG4vKipcbiAqIEB0eXBlZGVmIHt7ZGVzdHJveWVkOiBzdHJpbmdbXX19IERlc3Ryb3lNaWdyYXRpb25SZXN1bHRcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEYkRlc3Ryb3lNaWdyYXRpb24gZXh0ZW5kcyBCYXNlQ29tbWFuZCB7XG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkIHwgRGVzdHJveU1pZ3JhdGlvblJlc3VsdD59IC0gUmVzb2x2ZXMgd2l0aCB0aGUgZXhlY3V0ZS5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGUoKSB7XG4gICAgY29uc3QgbWlncmF0aW9uTmFtZSA9IHRoaXMucHJvY2Vzc0FyZ3NbMV1cbiAgICBjb25zdCBtaWdyYXRpb25EaXIgPSBgJHt0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXREaXJlY3RvcnkoKX0vc3JjL2RhdGFiYXNlL21pZ3JhdGlvbnNgXG4gICAgY29uc3QgbWlncmF0aW9uRmlsZXMgPSBhd2FpdCBmcy5yZWFkZGlyKG1pZ3JhdGlvbkRpcilcbiAgICBjb25zdCBkZXN0cm95ZWQgPSBbXVxuXG4gICAgZm9yIChjb25zdCBtaWdyYXRpb25GaWxlIG9mIG1pZ3JhdGlvbkZpbGVzKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IG1pZ3JhdGlvbkZpbGUubWF0Y2goL14oXFxkezE0fSktKC4rKVxcLmpzJC8pXG5cbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZU5hbWUgPSBtYXRjaFsyXVxuXG4gICAgICBpZiAoZmlsZU5hbWUgIT0gbWlncmF0aW9uTmFtZSkgY29udGludWVcblxuICAgICAgY29uc3QgZnVsbEZpbGVQYXRoID0gYCR7bWlncmF0aW9uRGlyfS8ke21pZ3JhdGlvbkZpbGV9YFxuICAgICAgZGVzdHJveWVkLnB1c2goZmlsZU5hbWUpXG5cbiAgICAgIGlmICghdGhpcy5hcmdzLnRlc3RpbmcpIHtcbiAgICAgICAgY29uc29sZS5sb2coYERlc3Ryb3kgc3JjL2RhdGFiYXNlL21pZ3JhdGlvbnMvJHttaWdyYXRpb25GaWxlfWApXG4gICAgICAgIGF3YWl0IGZzLnVubGluayhmdWxsRmlsZVBhdGgpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXJncy50ZXN0aW5nKSB7XG4gICAgICByZXR1cm4ge2Rlc3Ryb3llZH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Vudmlyb25tZW50LWhhbmRsZXJzL25vZGUvY2xpL2NvbW1hbmRzL2Rlc3Ryb3kvbWlncmF0aW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sV0FBVyxNQUFNLG9DQUFvQyxDQUFBO0FBQzVELE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUU1Qjs7R0FFRztBQUVILE1BQU0sQ0FBQyxPQUFPLE9BQU8sa0JBQW1CLFNBQVEsV0FBVztJQUN6RDs7T0FFRztJQUNILEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTNDLElBQUksQ0FBQyxhQUFhO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO1FBRTlELE1BQU0sWUFBWSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsWUFBWSxFQUFFLDBCQUEwQixDQUFBO1FBQ3hGLE1BQU0sY0FBYyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNyRCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUE7UUFFcEIsS0FBSyxNQUFNLGFBQWEsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUMzQyxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUE7WUFFeEQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLFNBQVE7WUFDVixDQUFDO1lBRUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBRXpCLElBQUksUUFBUSxJQUFJLGFBQWE7Z0JBQUUsU0FBUTtZQUV2QyxNQUFNLFlBQVksR0FBRyxHQUFHLFlBQVksSUFBSSxhQUFhLEVBQUUsQ0FBQTtZQUN2RCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxhQUFhLEVBQUUsQ0FBQyxDQUFBO2dCQUMvRCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDL0IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsT0FBTyxFQUFDLFNBQVMsRUFBQyxDQUFBO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbW1hbmQgZnJvbSBcIi4uLy4uLy4uLy4uLy4uL2NsaS9iYXNlLWNvbW1hbmQuanNcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy9wcm9taXNlc1wiXG5cbi8qKlxuICogQHR5cGVkZWYge3tkZXN0cm95ZWQ6IHN0cmluZ1tdfX0gRGVzdHJveU1pZ3JhdGlvblJlc3VsdFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERiRGVzdHJveU1pZ3JhdGlvbiBleHRlbmRzIEJhc2VDb21tYW5kIHtcbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQgfCBEZXN0cm95TWlncmF0aW9uUmVzdWx0Pn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBleGVjdXRlLlxuICAgKi9cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICBjb25zdCBtaWdyYXRpb25OYW1lID0gdGhpcy5wcm9jZXNzQXJncz8uWzFdXG5cbiAgICBpZiAoIW1pZ3JhdGlvbk5hbWUpIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIG1pZ3JhdGlvbiBuYW1lXCIpXG5cbiAgICBjb25zdCBtaWdyYXRpb25EaXIgPSBgJHt0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXREaXJlY3RvcnkoKX0vc3JjL2RhdGFiYXNlL21pZ3JhdGlvbnNgXG4gICAgY29uc3QgbWlncmF0aW9uRmlsZXMgPSBhd2FpdCBmcy5yZWFkZGlyKG1pZ3JhdGlvbkRpcilcbiAgICBjb25zdCBkZXN0cm95ZWQgPSBbXVxuXG4gICAgZm9yIChjb25zdCBtaWdyYXRpb25GaWxlIG9mIG1pZ3JhdGlvbkZpbGVzKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IG1pZ3JhdGlvbkZpbGUubWF0Y2goL14oXFxkezE0fSktKC4rKVxcLmpzJC8pXG5cbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZU5hbWUgPSBtYXRjaFsyXVxuXG4gICAgICBpZiAoZmlsZU5hbWUgIT0gbWlncmF0aW9uTmFtZSkgY29udGludWVcblxuICAgICAgY29uc3QgZnVsbEZpbGVQYXRoID0gYCR7bWlncmF0aW9uRGlyfS8ke21pZ3JhdGlvbkZpbGV9YFxuICAgICAgZGVzdHJveWVkLnB1c2goZmlsZU5hbWUpXG5cbiAgICAgIGlmICghdGhpcy5hcmdzLnRlc3RpbmcpIHtcbiAgICAgICAgY29uc29sZS5sb2coYERlc3Ryb3kgc3JjL2RhdGFiYXNlL21pZ3JhdGlvbnMvJHttaWdyYXRpb25GaWxlfWApXG4gICAgICAgIGF3YWl0IGZzLnVubGluayhmdWxsRmlsZVBhdGgpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXJncy50ZXN0aW5nKSB7XG4gICAgICByZXR1cm4ge2Rlc3Ryb3llZH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"base-models.d.ts","sourceRoot":"","sources":["../../../../../../../src/environment-handlers/node/cli/commands/generate/base-models.js"],"names":[],"mappings":"AAKA;IACE,yBA6QC;IAED;;;OAGG;IACH,4BAHW,OAAO,gDAAgD,EAAE,OAAO,GAC9D,MAAM,GAAG,SAAS,CAkB9B;IAED;;;OAGG;IACH,kCAHW,OAAO,gDAAgD,EAAE,OAAO,GAC9D,MAAM,GAAG,SAAS,CAU9B;CACF;wBAxTuB,oCAAoC"}
1
+ {"version":3,"file":"base-models.d.ts","sourceRoot":"","sources":["../../../../../../../src/environment-handlers/node/cli/commands/generate/base-models.js"],"names":[],"mappings":"AAKA;IACE,yBAoRC;IAED;;;OAGG;IACH,4BAHW,OAAO,gDAAgD,EAAE,OAAO,GAC9D,MAAM,GAAG,SAAS,CAkB9B;IAED;;;OAGG;IACH,kCAHW,OAAO,gDAAgD,EAAE,OAAO,GAC9D,MAAM,GAAG,SAAS,CAU9B;CACF;wBA/TuB,oCAAoC"}