velocious 1.0.146 → 1.0.147

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 (288) hide show
  1. package/build/src/application.d.ts +8 -8
  2. package/build/src/application.d.ts.map +1 -1
  3. package/build/src/application.js +9 -9
  4. package/build/src/cli/base-command.d.ts +5 -5
  5. package/build/src/cli/base-command.d.ts.map +1 -1
  6. package/build/src/cli/base-command.js +6 -6
  7. package/build/src/cli/browser-cli.d.ts +2 -2
  8. package/build/src/cli/browser-cli.js +3 -3
  9. package/build/src/cli/commands/db/create.d.ts +3 -3
  10. package/build/src/cli/commands/db/create.js +4 -4
  11. package/build/src/cli/index.d.ts +1 -1
  12. package/build/src/cli/index.d.ts.map +1 -1
  13. package/build/src/cli/index.js +2 -2
  14. package/build/src/configuration-resolver.d.ts +1 -1
  15. package/build/src/configuration-resolver.js +2 -2
  16. package/build/src/configuration.d.ts +34 -34
  17. package/build/src/configuration.d.ts.map +1 -1
  18. package/build/src/configuration.js +35 -35
  19. package/build/src/controller.d.ts +13 -13
  20. package/build/src/controller.d.ts.map +1 -1
  21. package/build/src/controller.js +14 -14
  22. package/build/src/database/drivers/base-column.d.ts +13 -13
  23. package/build/src/database/drivers/base-column.js +14 -14
  24. package/build/src/database/drivers/base-columns-index.d.ts +8 -8
  25. package/build/src/database/drivers/base-columns-index.js +9 -9
  26. package/build/src/database/drivers/base-foreign-key.d.ts +9 -9
  27. package/build/src/database/drivers/base-foreign-key.js +10 -10
  28. package/build/src/database/drivers/base-table.d.ts +11 -11
  29. package/build/src/database/drivers/base-table.d.ts.map +1 -1
  30. package/build/src/database/drivers/base-table.js +13 -12
  31. package/build/src/database/drivers/base.d.ts +69 -65
  32. package/build/src/database/drivers/base.d.ts.map +1 -1
  33. package/build/src/database/drivers/base.js +83 -66
  34. package/build/src/database/drivers/mssql/index.d.ts +5 -5
  35. package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
  36. package/build/src/database/drivers/mssql/index.js +26 -25
  37. package/build/src/database/drivers/mssql/options.js +6 -6
  38. package/build/src/database/drivers/mssql/structure-sql.d.ts +2 -2
  39. package/build/src/database/drivers/mssql/structure-sql.js +3 -3
  40. package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
  41. package/build/src/database/drivers/mssql/table.js +3 -2
  42. package/build/src/database/drivers/mysql/index.d.ts +5 -5
  43. package/build/src/database/drivers/mysql/index.js +27 -27
  44. package/build/src/database/drivers/mysql/options.js +2 -2
  45. package/build/src/database/drivers/mysql/query.d.ts +2 -1
  46. package/build/src/database/drivers/mysql/query.d.ts.map +1 -1
  47. package/build/src/database/drivers/mysql/query.js +2 -1
  48. package/build/src/database/drivers/mysql/structure-sql.d.ts +3 -3
  49. package/build/src/database/drivers/mysql/structure-sql.js +4 -4
  50. package/build/src/database/drivers/pgsql/index.d.ts +1 -1
  51. package/build/src/database/drivers/pgsql/index.js +14 -14
  52. package/build/src/database/drivers/pgsql/options.d.ts +1 -1
  53. package/build/src/database/drivers/pgsql/options.js +2 -2
  54. package/build/src/database/drivers/pgsql/structure-sql.d.ts +2 -2
  55. package/build/src/database/drivers/pgsql/structure-sql.js +3 -3
  56. package/build/src/database/drivers/sqlite/base.d.ts +4 -4
  57. package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
  58. package/build/src/database/drivers/sqlite/base.js +24 -21
  59. package/build/src/database/drivers/sqlite/connection-sql-js.d.ts +1 -1
  60. package/build/src/database/drivers/sqlite/connection-sql-js.js +2 -2
  61. package/build/src/database/drivers/sqlite/index.js +2 -2
  62. package/build/src/database/drivers/sqlite/index.web.d.ts +1 -1
  63. package/build/src/database/drivers/sqlite/index.web.d.ts.map +1 -1
  64. package/build/src/database/drivers/sqlite/index.web.js +3 -3
  65. package/build/src/database/drivers/sqlite/options.d.ts +1 -1
  66. package/build/src/database/drivers/sqlite/options.js +2 -2
  67. package/build/src/database/drivers/sqlite/query.d.ts +1 -1
  68. package/build/src/database/drivers/sqlite/query.js +2 -2
  69. package/build/src/database/drivers/sqlite/query.web.d.ts +1 -1
  70. package/build/src/database/drivers/sqlite/query.web.js +2 -2
  71. package/build/src/database/drivers/sqlite/sql/alter-table.js +2 -2
  72. package/build/src/database/drivers/sqlite/structure-sql.d.ts +1 -1
  73. package/build/src/database/drivers/sqlite/structure-sql.js +2 -2
  74. package/build/src/database/drivers/sqlite/table.d.ts +4 -1
  75. package/build/src/database/drivers/sqlite/table.d.ts.map +1 -1
  76. package/build/src/database/drivers/sqlite/table.js +6 -3
  77. package/build/src/database/drivers/structure-sql/utils.d.ts +2 -2
  78. package/build/src/database/drivers/structure-sql/utils.js +3 -3
  79. package/build/src/database/handler.d.ts +1 -1
  80. package/build/src/database/handler.js +2 -2
  81. package/build/src/database/initializer-from-require-context.d.ts +1 -1
  82. package/build/src/database/initializer-from-require-context.js +2 -2
  83. package/build/src/database/migration/index.d.ts +17 -17
  84. package/build/src/database/migration/index.d.ts.map +1 -1
  85. package/build/src/database/migration/index.js +19 -19
  86. package/build/src/database/migrator/files-finder.d.ts +1 -1
  87. package/build/src/database/migrator/files-finder.js +2 -2
  88. package/build/src/database/migrator.d.ts +10 -10
  89. package/build/src/database/migrator.d.ts.map +1 -1
  90. package/build/src/database/migrator.js +11 -11
  91. package/build/src/database/pool/async-tracked-multi-connection.d.ts +4 -4
  92. package/build/src/database/pool/async-tracked-multi-connection.js +9 -9
  93. package/build/src/database/pool/base-methods-forward.d.ts +1 -1
  94. package/build/src/database/pool/base-methods-forward.js +2 -2
  95. package/build/src/database/pool/base.d.ts +11 -11
  96. package/build/src/database/pool/base.js +12 -12
  97. package/build/src/database/pool/single-multi-use.js +4 -4
  98. package/build/src/database/query/alter-table-base.js +2 -2
  99. package/build/src/database/query/base.d.ts +2 -2
  100. package/build/src/database/query/base.js +3 -3
  101. package/build/src/database/query/create-database-base.d.ts +1 -1
  102. package/build/src/database/query/create-database-base.js +2 -2
  103. package/build/src/database/query/create-index-base.js +2 -2
  104. package/build/src/database/query/create-table-base.d.ts +1 -1
  105. package/build/src/database/query/create-table-base.js +2 -2
  106. package/build/src/database/query/drop-table-base.js +2 -2
  107. package/build/src/database/query/from-base.d.ts +3 -3
  108. package/build/src/database/query/from-base.js +4 -4
  109. package/build/src/database/query/index.d.ts +18 -18
  110. package/build/src/database/query/index.d.ts.map +1 -1
  111. package/build/src/database/query/index.js +19 -19
  112. package/build/src/database/query/insert-base.d.ts +2 -1
  113. package/build/src/database/query/insert-base.d.ts.map +1 -1
  114. package/build/src/database/query/insert-base.js +3 -2
  115. package/build/src/database/query/join-base.d.ts +2 -2
  116. package/build/src/database/query/join-base.js +3 -3
  117. package/build/src/database/query/join-object.d.ts +1 -1
  118. package/build/src/database/query/join-object.js +2 -2
  119. package/build/src/database/query/model-class-query.d.ts +14 -14
  120. package/build/src/database/query/model-class-query.d.ts.map +1 -1
  121. package/build/src/database/query/model-class-query.js +15 -15
  122. package/build/src/database/query/order-base.d.ts +2 -2
  123. package/build/src/database/query/order-base.js +3 -3
  124. package/build/src/database/query/select-base.d.ts +2 -2
  125. package/build/src/database/query/select-base.js +3 -3
  126. package/build/src/database/query/update-base.d.ts +1 -1
  127. package/build/src/database/query/update-base.js +2 -2
  128. package/build/src/database/query/where-base.d.ts +3 -3
  129. package/build/src/database/query/where-base.js +4 -4
  130. package/build/src/database/query/where-hash.d.ts +1 -0
  131. package/build/src/database/query/where-hash.d.ts.map +1 -1
  132. package/build/src/database/query/where-hash.js +5 -1
  133. package/build/src/database/query-parser/from-parser.d.ts +1 -1
  134. package/build/src/database/query-parser/from-parser.d.ts.map +1 -1
  135. package/build/src/database/query-parser/from-parser.js +2 -2
  136. package/build/src/database/query-parser/group-parser.d.ts +1 -1
  137. package/build/src/database/query-parser/group-parser.js +2 -2
  138. package/build/src/database/query-parser/options.d.ts +6 -6
  139. package/build/src/database/query-parser/options.js +7 -7
  140. package/build/src/database/record/index.d.ts +94 -89
  141. package/build/src/database/record/index.d.ts.map +1 -1
  142. package/build/src/database/record/index.js +95 -90
  143. package/build/src/database/record/instance-relationships/base.d.ts +7 -7
  144. package/build/src/database/record/instance-relationships/base.d.ts.map +1 -1
  145. package/build/src/database/record/instance-relationships/base.js +8 -8
  146. package/build/src/database/record/instance-relationships/belongs-to.d.ts +1 -1
  147. package/build/src/database/record/instance-relationships/belongs-to.js +2 -2
  148. package/build/src/database/record/instance-relationships/has-many.d.ts +7 -7
  149. package/build/src/database/record/instance-relationships/has-many.d.ts.map +1 -1
  150. package/build/src/database/record/instance-relationships/has-many.js +9 -9
  151. package/build/src/database/record/instance-relationships/has-one.d.ts +1 -1
  152. package/build/src/database/record/instance-relationships/has-one.js +2 -2
  153. package/build/src/database/record/relationships/base.d.ts +3 -3
  154. package/build/src/database/record/relationships/base.d.ts.map +1 -1
  155. package/build/src/database/record/relationships/base.js +4 -4
  156. package/build/src/database/record/relationships/belongs-to.js +3 -3
  157. package/build/src/database/record/relationships/has-many.js +3 -3
  158. package/build/src/database/record/relationships/has-one.js +3 -3
  159. package/build/src/database/record/validators/base.d.ts +1 -1
  160. package/build/src/database/record/validators/base.js +2 -2
  161. package/build/src/database/record/validators/uniqueness.js +2 -2
  162. package/build/src/database/table-data/index.d.ts +19 -19
  163. package/build/src/database/table-data/index.js +20 -20
  164. package/build/src/database/table-data/table-column.d.ts +23 -23
  165. package/build/src/database/table-data/table-column.js +24 -24
  166. package/build/src/database/table-data/table-foreign-key.d.ts +7 -7
  167. package/build/src/database/table-data/table-foreign-key.js +8 -8
  168. package/build/src/database/table-data/table-index.d.ts +3 -3
  169. package/build/src/database/table-data/table-index.js +4 -4
  170. package/build/src/database/use-database.d.ts +1 -1
  171. package/build/src/database/use-database.js +2 -2
  172. package/build/src/environment-handlers/base.d.ts +24 -24
  173. package/build/src/environment-handlers/base.js +25 -25
  174. package/build/src/environment-handlers/browser.d.ts +4 -4
  175. package/build/src/environment-handlers/browser.js +9 -9
  176. package/build/src/environment-handlers/node/cli/commands/destroy/migration.d.ts +1 -1
  177. package/build/src/environment-handlers/node/cli/commands/destroy/migration.js +2 -2
  178. package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts +2 -2
  179. package/build/src/environment-handlers/node/cli/commands/generate/base-models.js +3 -3
  180. package/build/src/environment-handlers/node/cli/commands/generate/migration.d.ts +1 -1
  181. package/build/src/environment-handlers/node/cli/commands/generate/migration.js +2 -2
  182. package/build/src/environment-handlers/node/cli/commands/generate/model.d.ts +1 -1
  183. package/build/src/environment-handlers/node/cli/commands/generate/model.js +2 -2
  184. package/build/src/environment-handlers/node/cli/commands/init.d.ts +1 -1
  185. package/build/src/environment-handlers/node/cli/commands/init.js +2 -2
  186. package/build/src/environment-handlers/node/cli/commands/routes.d.ts +2 -2
  187. package/build/src/environment-handlers/node/cli/commands/routes.js +3 -3
  188. package/build/src/environment-handlers/node.d.ts +9 -9
  189. package/build/src/environment-handlers/node.js +21 -21
  190. package/build/src/error-logger.d.ts +1 -0
  191. package/build/src/error-logger.d.ts.map +1 -1
  192. package/build/src/error-logger.js +3 -2
  193. package/build/src/http-client/index.d.ts +1 -1
  194. package/build/src/http-client/index.js +2 -2
  195. package/build/src/http-client/request.d.ts +6 -0
  196. package/build/src/http-client/request.d.ts.map +1 -1
  197. package/build/src/http-client/request.js +7 -1
  198. package/build/src/http-client/response.d.ts +2 -2
  199. package/build/src/http-client/response.js +3 -3
  200. package/build/src/http-client/websocket-client.d.ts +7 -7
  201. package/build/src/http-client/websocket-client.d.ts.map +1 -1
  202. package/build/src/http-client/websocket-client.js +8 -8
  203. package/build/src/http-server/client/index.d.ts +5 -5
  204. package/build/src/http-server/client/index.d.ts.map +1 -1
  205. package/build/src/http-server/client/index.js +6 -6
  206. package/build/src/http-server/client/params-to-object.d.ts +3 -3
  207. package/build/src/http-server/client/params-to-object.d.ts.map +1 -1
  208. package/build/src/http-server/client/params-to-object.js +4 -4
  209. package/build/src/http-server/client/request-buffer/form-data-part.d.ts +2 -2
  210. package/build/src/http-server/client/request-buffer/form-data-part.js +3 -3
  211. package/build/src/http-server/client/request-buffer/index.d.ts +10 -10
  212. package/build/src/http-server/client/request-buffer/index.js +11 -11
  213. package/build/src/http-server/client/request-parser.d.ts +14 -14
  214. package/build/src/http-server/client/request-parser.d.ts.map +1 -1
  215. package/build/src/http-server/client/request-parser.js +15 -15
  216. package/build/src/http-server/client/request.d.ts +2 -2
  217. package/build/src/http-server/client/request.js +3 -3
  218. package/build/src/http-server/client/response.d.ts +8 -8
  219. package/build/src/http-server/client/response.js +9 -9
  220. package/build/src/http-server/client/uploaded-file/memory-uploaded-file.js +2 -2
  221. package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.js +2 -2
  222. package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts +1 -1
  223. package/build/src/http-server/client/uploaded-file/uploaded-file.js +2 -2
  224. package/build/src/http-server/client/websocket-session.d.ts +10 -10
  225. package/build/src/http-server/client/websocket-session.js +11 -11
  226. package/build/src/http-server/index.d.ts +12 -12
  227. package/build/src/http-server/index.d.ts.map +1 -1
  228. package/build/src/http-server/index.js +13 -13
  229. package/build/src/http-server/server-client.d.ts +6 -6
  230. package/build/src/http-server/server-client.d.ts.map +1 -1
  231. package/build/src/http-server/server-client.js +7 -7
  232. package/build/src/http-server/websocket-events-host.d.ts +2 -2
  233. package/build/src/http-server/websocket-events-host.js +3 -3
  234. package/build/src/http-server/websocket-events.d.ts +1 -1
  235. package/build/src/http-server/websocket-events.js +2 -2
  236. package/build/src/http-server/worker-handler/index.d.ts +4 -4
  237. package/build/src/http-server/worker-handler/index.js +5 -5
  238. package/build/src/http-server/worker-handler/worker-thread.d.ts +2 -2
  239. package/build/src/http-server/worker-handler/worker-thread.js +3 -3
  240. package/build/src/initializer.d.ts +3 -3
  241. package/build/src/initializer.js +4 -4
  242. package/build/src/logger.d.ts +9 -9
  243. package/build/src/logger.js +17 -17
  244. package/build/src/routes/app-routes.d.ts +1 -1
  245. package/build/src/routes/app-routes.js +2 -2
  246. package/build/src/routes/base-route.d.ts +6 -6
  247. package/build/src/routes/base-route.d.ts.map +1 -1
  248. package/build/src/routes/base-route.js +7 -7
  249. package/build/src/routes/basic-route.d.ts +1 -1
  250. package/build/src/routes/basic-route.js +5 -5
  251. package/build/src/routes/get-route.js +2 -2
  252. package/build/src/routes/index.d.ts +1 -1
  253. package/build/src/routes/index.js +2 -2
  254. package/build/src/routes/namespace-route.js +2 -2
  255. package/build/src/routes/post-route.js +2 -2
  256. package/build/src/routes/resolver.d.ts +4 -4
  257. package/build/src/routes/resolver.d.ts.map +1 -1
  258. package/build/src/routes/resolver.js +9 -6
  259. package/build/src/routes/resource-route.js +2 -2
  260. package/build/src/testing/format-value.d.ts +2 -2
  261. package/build/src/testing/format-value.js +5 -5
  262. package/build/src/testing/request-client.d.ts +6 -6
  263. package/build/src/testing/request-client.d.ts.map +1 -1
  264. package/build/src/testing/request-client.js +7 -7
  265. package/build/src/testing/test-files-finder.d.ts +8 -7
  266. package/build/src/testing/test-files-finder.d.ts.map +1 -1
  267. package/build/src/testing/test-files-finder.js +8 -7
  268. package/build/src/testing/test-runner.d.ts +14 -14
  269. package/build/src/testing/test-runner.js +15 -15
  270. package/build/src/testing/test.d.ts +26 -26
  271. package/build/src/testing/test.js +27 -27
  272. package/build/src/utils/backtrace-cleaner.d.ts +2 -2
  273. package/build/src/utils/backtrace-cleaner.js +3 -3
  274. package/build/src/utils/ensure-error.d.ts +1 -1
  275. package/build/src/utils/ensure-error.js +2 -2
  276. package/build/src/utils/file-exists.d.ts +1 -1
  277. package/build/src/utils/file-exists.js +2 -2
  278. package/build/src/utils/nest-callbacks.d.ts +1 -1
  279. package/build/src/utils/nest-callbacks.js +2 -2
  280. package/build/src/utils/rest-args-error.d.ts +1 -1
  281. package/build/src/utils/rest-args-error.js +2 -2
  282. package/build/src/utils/singularize-model-name.d.ts +1 -1
  283. package/build/src/utils/singularize-model-name.js +2 -2
  284. package/build/src/utils/with-tracked-stack-async-hooks.d.ts +1 -1
  285. package/build/src/utils/with-tracked-stack-async-hooks.js +2 -2
  286. package/build/src/utils/with-tracked-stack.d.ts +1 -1
  287. package/build/src/utils/with-tracked-stack.js +2 -2
  288. package/package.json +1 -1
@@ -15,7 +15,7 @@ const tests = {
15
15
  let currentPath = [tests];
16
16
  /**
17
17
  * @param {import("./test-runner.js").AfterBeforeEachCallbackType} callback
18
- * @returns {void}
18
+ * @returns {void} - Result.
19
19
  */
20
20
  function beforeEach(callback) {
21
21
  const currentTest = currentPath[currentPath.length - 1];
@@ -23,7 +23,7 @@ function beforeEach(callback) {
23
23
  }
24
24
  /**
25
25
  * @param {import("./test-runner.js").AfterBeforeEachCallbackType} callback
26
- * @returns {void}
26
+ * @returns {void} - Result.
27
27
  */
28
28
  function afterEach(callback) {
29
29
  const currentTest = currentPath[currentPath.length - 1];
@@ -32,12 +32,12 @@ function afterEach(callback) {
32
32
  class BaseExpect {
33
33
  /**
34
34
  * @abstract
35
- * @returns {Promise<void>}
35
+ * @returns {Promise<void>} - Result.
36
36
  */
37
37
  async runBefore() { }
38
38
  /**
39
39
  * @abstract
40
- * @returns {Promise<void>}
40
+ * @returns {Promise<void>} - Result.
41
41
  */
42
42
  async runAfter() { }
43
43
  }
@@ -55,7 +55,7 @@ class ExpectToChange extends BaseExpect {
55
55
  }
56
56
  /**
57
57
  * @param {number} count
58
- * @returns {Expect}
58
+ * @returns {Expect} - Result.
59
59
  */
60
60
  by(count) {
61
61
  this.count = count;
@@ -68,7 +68,7 @@ class ExpectToChange extends BaseExpect {
68
68
  this.newCount = await this.changeCallback();
69
69
  }
70
70
  /**
71
- * @returns {Promise<void>}
71
+ * @returns {Promise<void>} - Result.
72
72
  */
73
73
  async execute() {
74
74
  if (this.newCount === undefined || this.oldCount === undefined) {
@@ -92,13 +92,13 @@ class Expect extends BaseExpect {
92
92
  }
93
93
  /**
94
94
  * @param {function(): Promise<number>} changeCallback
95
- * @returns {ExpectToChange}
95
+ * @returns {ExpectToChange} - Result.
96
96
  */
97
97
  andChange(changeCallback) {
98
98
  return this.toChange(changeCallback);
99
99
  }
100
100
  /**
101
- * @returns {this}
101
+ * @returns {this} - Result.
102
102
  */
103
103
  get not() {
104
104
  this._not = true;
@@ -106,7 +106,7 @@ class Expect extends BaseExpect {
106
106
  }
107
107
  /**
108
108
  * @param {any} result
109
- * @returns {void}
109
+ * @returns {void} - Result.
110
110
  */
111
111
  toBe(result) {
112
112
  if (this._not) {
@@ -125,7 +125,7 @@ class Expect extends BaseExpect {
125
125
  }
126
126
  }
127
127
  /**
128
- * @returns {void}
128
+ * @returns {void} - Result.
129
129
  */
130
130
  toBeDefined() {
131
131
  if (this._not) {
@@ -143,7 +143,7 @@ class Expect extends BaseExpect {
143
143
  }
144
144
  /**
145
145
  * @param {Function} klass
146
- * @returns {void}
146
+ * @returns {void} - Result.
147
147
  */
148
148
  toBeInstanceOf(klass) {
149
149
  if (!(this._object instanceof klass)) {
@@ -152,32 +152,32 @@ class Expect extends BaseExpect {
152
152
  }
153
153
  }
154
154
  /**
155
- * @returns {void}
155
+ * @returns {void} - Result.
156
156
  */
157
157
  toBeFalse() {
158
158
  this.toBe(false);
159
159
  }
160
160
  /**
161
- * @returns {void}
161
+ * @returns {void} - Result.
162
162
  */
163
163
  toBeNull() {
164
164
  this.toBe(null);
165
165
  }
166
166
  /**
167
- * @returns {void}
167
+ * @returns {void} - Result.
168
168
  */
169
169
  toBeUndefined() {
170
170
  this.toBe(undefined);
171
171
  }
172
172
  /**
173
- * @returns {void}
173
+ * @returns {void} - Result.
174
174
  */
175
175
  toBeTrue() {
176
176
  this.toBe(true);
177
177
  }
178
178
  /**
179
179
  * @param {function(): Promise<number>} changeCallback
180
- * @returns {ExpectToChange}
180
+ * @returns {ExpectToChange} - Result.
181
181
  */
182
182
  toChange(changeCallback) {
183
183
  if (this._not)
@@ -188,7 +188,7 @@ class Expect extends BaseExpect {
188
188
  }
189
189
  /**
190
190
  * @param {any} valueToContain
191
- * @returns {void}
191
+ * @returns {void} - Result.
192
192
  */
193
193
  toContain(valueToContain) {
194
194
  if (this._not)
@@ -201,7 +201,7 @@ class Expect extends BaseExpect {
201
201
  }
202
202
  /**
203
203
  * @param {any} result
204
- * @returns {void}
204
+ * @returns {void} - Result.
205
205
  */
206
206
  toEqual(result) {
207
207
  if (this._not) {
@@ -252,7 +252,7 @@ class Expect extends BaseExpect {
252
252
  }
253
253
  /**
254
254
  * @param {RegExp} regex
255
- * @returns {void}
255
+ * @returns {void} - Result.
256
256
  */
257
257
  toMatch(regex) {
258
258
  const match = this._object.match(regex);
@@ -272,7 +272,7 @@ class Expect extends BaseExpect {
272
272
  /**
273
273
  * @template T extends Error
274
274
  * @param {string|T} expectedError
275
- * @returns {Promise<void>}
275
+ * @returns {Promise<void>} - Result.
276
276
  */
277
277
  async toThrowError(expectedError) {
278
278
  if (this._not)
@@ -310,7 +310,7 @@ class Expect extends BaseExpect {
310
310
  }
311
311
  }
312
312
  /**
313
- * @returns {Promise<any>}
313
+ * @returns {Promise<any>} - Result.
314
314
  */
315
315
  async execute() {
316
316
  for (const expectation of this.expectations) {
@@ -327,7 +327,7 @@ class Expect extends BaseExpect {
327
327
  }
328
328
  /**
329
329
  * @param {Record<string, any>} result
330
- * @returns {void}
330
+ * @returns {void} - Result.
331
331
  */
332
332
  toHaveAttributes(result) {
333
333
  if (this._not)
@@ -352,7 +352,7 @@ class Expect extends BaseExpect {
352
352
  * @param {string} description
353
353
  * @param {object|(() => (void|Promise<void>))} arg1
354
354
  * @param {undefined|(() => (void|Promise<void>))} [arg2]
355
- * @returns {Promise<void>}
355
+ * @returns {Promise<void>} - Result.
356
356
  */
357
357
  async function describe(description, arg1, arg2) {
358
358
  let testArgs, testFunction;
@@ -384,7 +384,7 @@ async function describe(description, arg1, arg2) {
384
384
  }
385
385
  /**
386
386
  * @param {any} arg
387
- * @returns {Expect}
387
+ * @returns {Expect} - Result.
388
388
  */
389
389
  function expect(arg) {
390
390
  return new Expect(arg);
@@ -393,7 +393,7 @@ function expect(arg) {
393
393
  * @param {string} description
394
394
  * @param {object|(() => (void|Promise<void>))} arg1
395
395
  * @param {undefined|(() => (void|Promise<void>))} [arg2]
396
- * @returns {void}
396
+ * @returns {void} - Result.
397
397
  */
398
398
  function it(description, arg1, arg2) {
399
399
  const currentTest = currentPath[currentPath.length - 1];
@@ -418,7 +418,7 @@ function it(description, arg1, arg2) {
418
418
  * @param {string} description
419
419
  * @param {object|(() => (void|Promise<void>))} arg1
420
420
  * @param {undefined|(() => (void|Promise<void>))} [arg2]
421
- * @returns {void}
421
+ * @returns {void} - Result.
422
422
  */
423
423
  function fit(description, arg1, arg2) {
424
424
  let testArgs;
@@ -445,4 +445,4 @@ globalThis.expect = expect;
445
445
  globalThis.it = it;
446
446
  globalThis.fit = fit;
447
447
  export { afterEach, beforeEach, describe, expect, fit, it, tests };
448
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0aW5nL3Rlc3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQTtBQUN2RSxPQUFPLGFBQWEsTUFBTSw2QkFBNkIsQ0FBQTtBQUV2RCx1REFBdUQ7QUFDdkQsTUFBTSxLQUFLLEdBQUc7SUFDWiw2RUFBNkU7SUFDN0UsV0FBVyxFQUFFLEVBQUU7SUFDZixJQUFJLEVBQUUsRUFBRTtJQUVSLDZFQUE2RTtJQUM3RSxZQUFZLEVBQUUsRUFBRTtJQUNoQixJQUFJLEVBQUUsRUFBRTtJQUNSLEtBQUssRUFBRSxFQUFFO0NBQ1YsQ0FBQTtBQUVELElBQUksV0FBVyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7QUFFekI7OztHQUdHO0FBQ0gsU0FBUyxVQUFVLENBQUMsUUFBUTtJQUMxQixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUV2RCxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUE7QUFDM0MsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsU0FBUyxDQUFDLFFBQVE7SUFDekIsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFFdkQsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBQyxRQUFRLEVBQUMsQ0FBQyxDQUFBO0FBQzFDLENBQUM7QUFFRCxNQUFNLFVBQVU7SUFDZDs7O09BR0c7SUFDSCxLQUFLLENBQUMsU0FBUyxLQUFzQixDQUFDO0lBRXRDOzs7T0FHRztJQUNILEtBQUssQ0FB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blxuaW1wb3J0IHtmb3JtYXRWYWx1ZSwgbWluaWZpZWRTdHJpbmdpZnl9IGZyb20gXCIuL2Zvcm1hdC12YWx1ZS5qc1wiXG5pbXBvcnQge2FueXRoaW5nRGlmZmVyZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvZGlmZi11dGlscy5qc1wiXG5pbXBvcnQgcmVzdEFyZ3NFcnJvciBmcm9tIFwiLi4vdXRpbHMvcmVzdC1hcmdzLWVycm9yLmpzXCJcblxuLyoqIEB0eXBlIHtpbXBvcnQoXCIuL3Rlc3QtcnVubmVyLmpzXCIpLlRlc3RzQXJndW1lbnR9ICovXG5jb25zdCB0ZXN0cyA9IHtcbiAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuL3Rlc3QtcnVubmVyLmpzXCIpLkFmdGVyQmVmb3JlRWFjaENhbGxiYWNrT2JqZWN0VHlwZVtdfSAqL1xuICBhZnRlckVhY2hlczogW10sXG4gIGFyZ3M6IHt9LFxuXG4gIC8qKiBAdHlwZSB7aW1wb3J0KFwiLi90ZXN0LXJ1bm5lci5qc1wiKS5BZnRlckJlZm9yZUVhY2hDYWxsYmFja09iamVjdFR5cGVbXX0gKi9cbiAgYmVmb3JlRWFjaGVzOiBbXSxcbiAgc3Viczoge30sXG4gIHRlc3RzOiB7fVxufVxuXG5sZXQgY3VycmVudFBhdGggPSBbdGVzdHNdXG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3Rlc3QtcnVubmVyLmpzXCIpLkFmdGVyQmVmb3JlRWFjaENhbGxiYWNrVHlwZX0gY2FsbGJhY2tcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBiZWZvcmVFYWNoKGNhbGxiYWNrKSB7XG4gIGNvbnN0IGN1cnJlbnRUZXN0ID0gY3VycmVudFBhdGhbY3VycmVudFBhdGgubGVuZ3RoIC0gMV1cblxuICBjdXJyZW50VGVzdC5iZWZvcmVFYWNoZXMucHVzaCh7Y2FsbGJhY2t9KVxufVxuXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi90ZXN0LXJ1bm5lci5qc1wiKS5BZnRlckJlZm9yZUVhY2hDYWxsYmFja1R5cGV9IGNhbGxiYWNrXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gYWZ0ZXJFYWNoKGNhbGxiYWNrKSB7XG4gIGNvbnN0IGN1cnJlbnRUZXN0ID0gY3VycmVudFBhdGhbY3VycmVudFBhdGgubGVuZ3RoIC0gMV1cblxuICBjdXJyZW50VGVzdC5hZnRlckVhY2hlcy5wdXNoKHtjYWxsYmFja30pXG59XG5cbmNsYXNzIEJhc2VFeHBlY3Qge1xuICAvKipcbiAgICogQGFic3RyYWN0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgcnVuQmVmb3JlKCkgeyAvKiBkbyBub3RoaW5nICovIH1cblxuICAvKipcbiAgICogQGFic3RyYWN0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgcnVuQWZ0ZXIoKSB7IC8qIGRvIG5vdGhpbmcgKi8gfVxufVxuXG5jbGFzcyBFeHBlY3RUb0NoYW5nZSBleHRlbmRzIEJhc2VFeHBlY3Qge1xuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3NcbiAgICogQHBhcmFtIHtmdW5jdGlvbigpOiBQcm9taXNlPG51bWJlcj59IGFyZ3MuY2hhbmdlQ2FsbGJhY2tcbiAgICogQHBhcmFtIHtFeHBlY3R9IGFyZ3MuZXhwZWN0XG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7Y2hhbmdlQ2FsbGJhY2ssIGV4cGVjdCwgLi4ucmVzdEFyZ3N9KSB7XG4gICAgc3VwZXIoKVxuICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICB0aGlzLmV4cGVjdCA9IGV4cGVjdFxuICAgIHRoaXMuY2hhbmdlQ2FsbGJhY2sgPSBjaGFuZ2VDYWxsYmFja1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBjb3VudFxuICAgKiBAcmV0dXJucyB7RXhwZWN0fVxuICAgKi9cbiAgYnkoY291bnQpIHtcbiAgICB0aGlzLmNvdW50ID0gY291bnRcblxuICAgIHJldHVybiB0aGlzLmV4cGVjdFxuICB9XG5cbiAgYXN5bmMgcnVuQmVmb3JlKCkge1xuICAgIHRoaXMub2xkQ291bnQgPSBhd2FpdCB0aGlzLmNoYW5nZUNhbGxiYWNrKClcbiAgfVxuXG4gIGFzeW5jIHJ1bkFmdGVyKCkge1xuICAgIHRoaXMubmV3Q291bnQgPSBhd2FpdCB0aGlzLmNoYW5nZUNhbGxiYWNrKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGUoKSB7XG4gICAgaWYgKHRoaXMubmV3Q291bnQgPT09IHVuZGVmaW5lZCB8fCB0aGlzLm9sZENvdW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdFRvQ2hhbmdlIG5vdCBleGVjdXRlZCBwcm9wZXJseVwiKVxuICAgIH1cblxuICAgIGNvbnN0IGRpZmZlcmVuY2UgPSB0aGlzLm5ld0NvdW50IC0gdGhpcy5vbGRDb3VudFxuXG4gICAgaWYgKGRpZmZlcmVuY2UgIT0gdGhpcy5jb3VudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCB0byBjaGFuZ2UgYnkgJHt0aGlzLmNvdW50fSBidXQgY2hhbmdlZCBieSAke2RpZmZlcmVuY2V9YClcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgRXhwZWN0IGV4dGVuZHMgQmFzZUV4cGVjdCB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge2FueX0gb2JqZWN0XG4gICAqL1xuICBjb25zdHJ1Y3RvcihvYmplY3QpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5fb2JqZWN0ID0gb2JqZWN0XG5cbiAgICAvKiogQHR5cGUge0FycmF5PEV4cGVjdCB8IEV4cGVjdFRvQ2hhbmdlPn0gKi9cbiAgICB0aGlzLmV4cGVjdGF0aW9ucyA9IFtdXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtmdW5jdGlvbigpOiBQcm9taXNlPG51bWJlcj59IGNoYW5nZUNhbGxiYWNrXG4gICAqIEByZXR1cm5zIHtFeHBlY3RUb0NoYW5nZX1cbiAgICovXG4gIGFuZENoYW5nZShjaGFuZ2VDYWxsYmFjaykge1xuICAgIHJldHVybiB0aGlzLnRvQ2hhbmdlKGNoYW5nZUNhbGxiYWNrKVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgZ2V0IG5vdCgpIHtcbiAgICB0aGlzLl9ub3QgPSB0cnVlXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7YW55fSByZXN1bHRcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICB0b0JlKHJlc3VsdCkge1xuICAgIGlmICh0aGlzLl9ub3QpIHtcbiAgICAgIGlmICh0aGlzLl9vYmplY3QgPT09IHJlc3VsdCkge1xuICAgICAgICBjb25zdCBvYmplY3RQcmludCA9IGZvcm1hdFZhbHVlKHRoaXMuX29iamVjdClcbiAgICAgICAgY29uc3QgcmVzdWx0UHJpbnQgPSBmb3JtYXRWYWx1ZShyZXN1bHQpXG5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29iamVjdFByaW50fSB3YXMgdW5leHBlY3RlZCBub3QgdG8gYmUgJHtyZXN1bHRQcmludH1gKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5fb2JqZWN0ICE9PSByZXN1bHQpIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0UHJpbnQgPSBmb3JtYXRWYWx1ZSh0aGlzLl9vYmplY3QpXG4gICAgICAgIGNvbnN0IHJlc3VsdFByaW50ID0gZm9ybWF0VmFsdWUocmVzdWx0KVxuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtvYmplY3RQcmludH0gd2Fzbid0IGV4cGVjdGVkIGJlICR7cmVzdWx0UHJpbnR9YClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICB0b0JlRGVmaW5lZCgpIHtcbiAgICBpZiAodGhpcy5fbm90KSB7XG4gICAgICBpZiAodGhpcy5fb2JqZWN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0UHJpbnQgPSBmb3JtYXRWYWx1ZSh0aGlzLl9vYmplY3QpXG5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29iamVjdFByaW50fSB3YXNuwrR0IGV4cGVjdGVkIHRvIGJlIGRlZmluZWRgKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5fb2JqZWN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0UHJpbnQgPSBmb3JtYXRWYWx1ZSh0aGlzLl9vYmplY3QpXG5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29iamVjdFByaW50fSB3YXNuJ3QgZXhwZWN0ZWQgYmUgdW5kZWZpbmVkYClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0ga2xhc3NcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICB0b0JlSW5zdGFuY2VPZihrbGFzcykge1xuICAgIGlmICghKHRoaXMuX29iamVjdCBpbnN0YW5jZW9mIGtsYXNzKSkge1xuICAgICAgY29uc3Qgb2JqZWN0UHJpbnQgPSBmb3JtYXRWYWx1ZSh0aGlzLl9vYmplY3QpXG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgJHtvYmplY3RQcmludH0gdG8gYmUgYSAke2tsYXNzLm5hbWV9IGJ1dCBpdCB3YXNuJ3RgKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHRvQmVGYWxzZSgpIHtcbiAgICB0aGlzLnRvQmUoZmFsc2UpXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICB0b0JlTnVsbCgpIHtcbiAgICB0aGlzLnRvQmUobnVsbClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHRvQmVVbmRlZmluZWQoKSB7XG4gICAgdGhpcy50b0JlKHVuZGVmaW5lZClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHRvQmVUcnVlKCkge1xuICAgIHRoaXMudG9CZSh0cnVlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oKTogUHJvbWlzZTxudW1iZXI+fSBjaGFuZ2VDYWxsYmFja1xuICAgKiBAcmV0dXJucyB7RXhwZWN0VG9DaGFuZ2V9XG4gICAqL1xuICB0b0NoYW5nZShjaGFuZ2VDYWxsYmFjaykge1xuICAgIGlmICh0aGlzLl9ub3QpIHRocm93IG5ldyBFcnJvcihcIm5vdCBzdHViXCIpXG5cbiAgICBjb25zdCBleHBlY3RUb0NoYW5nZSA9IG5ldyBFeHBlY3RUb0NoYW5nZSh7Y2hhbmdlQ2FsbGJhY2ssIGV4cGVjdDogdGhpc30pXG5cbiAgICB0aGlzLmV4cGVjdGF0aW9ucy5wdXNoKGV4cGVjdFRvQ2hhbmdlKVxuXG4gICAgcmV0dXJuIGV4cGVjdFRvQ2hhbmdlXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHthbnl9IHZhbHVlVG9Db250YWluXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgdG9Db250YWluKHZhbHVlVG9Db250YWluKSB7XG4gICAgaWYgKHRoaXMuX25vdCkgdGhyb3cgbmV3IEVycm9yKFwibm90IHN0dWJcIilcblxuICAgIGlmICghdGhpcy5fb2JqZWN0LmluY2x1ZGVzKHZhbHVlVG9Db250YWluKSkge1xuICAgICAgY29uc3Qgb2JqZWN0UHJpbnQgPSBmb3JtYXRWYWx1ZSh0aGlzLl9vYmplY3QpXG4gICAgICBjb25zdCB2YWx1ZVByaW50ID0gZm9ybWF0VmFsdWUodmFsdWVUb0NvbnRhaW4pXG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtvYmplY3RQcmludH0gZG9lc24ndCBjb250YWluICR7dmFsdWVQcmludH1gKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2FueX0gcmVzdWx0XG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgdG9FcXVhbChyZXN1bHQpIHtcbiAgICBpZiAodGhpcy5fbm90KSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuX29iamVjdCA9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZXN1bHQgPT0gXCJvYmplY3RcIikge1xuICAgICAgICBpZiAoIWFueXRoaW5nRGlmZmVyZW50KHRoaXMuX29iamVjdCwgcmVzdWx0KSkge1xuICAgICAgICAgIGNvbnN0IG9iamVjdFByaW50ID0gZm9ybWF0VmFsdWUodGhpcy5fb2JqZWN0KVxuICAgICAgICAgIGNvbnN0IHJlc3VsdFByaW50ID0gZm9ybWF0VmFsdWUocmVzdWx0KVxuXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29iamVjdFByaW50fSB3YXMgdW5leHBlY3RlZCBlcXVhbCB0byAke3Jlc3VsdFByaW50fWApXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLl9vYmplY3QgPT0gcmVzdWx0KSB7XG4gICAgICAgICAgY29uc3Qgb2JqZWN0UHJpbnQgPSBmb3JtYXRWYWx1ZSh0aGlzLl9vYmplY3QpXG4gICAgICAgICAgY29uc3QgcmVzdWx0UHJpbnQgPSBmb3JtYXRWYWx1ZShyZXN1bHQpXG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7b2JqZWN0UHJpbnR9IHdhcyB1bmV4cGVjdGVkIGVxdWFsIHRvICR7cmVzdWx0UHJpbnR9YClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuX29iamVjdCA9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZXN1bHQgPT0gXCJvYmplY3RcIikge1xuICAgICAgICBpZiAoYW55dGhpbmdEaWZmZXJlbnQodGhpcy5fb2JqZWN0LCByZXN1bHQpKSB7XG4gICAgICAgICAgY29uc3Qgb2JqZWN0UHJpbnQgPSBmb3JtYXRWYWx1ZSh0aGlzLl9vYmplY3QpXG4gICAgICAgICAgY29uc3QgcmVzdWx0UHJpbnQgPSBmb3JtYXRWYWx1ZShyZXN1bHQpXG5cbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLl9vYmplY3QpICYmIEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgICAgICAgY29uc3QgYWN0dWFsU3RyaW5ncyA9IHRoaXMuX29iamVjdC5tYXAoKGl0ZW0pID0+IG1pbmlmaWVkU3RyaW5naWZ5KGl0ZW0pKVxuICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRTdHJpbmdzID0gcmVzdWx0Lm1hcCgoaXRlbSkgPT4gbWluaWZpZWRTdHJpbmdpZnkoaXRlbSkpXG5cbiAgICAgICAgICAgIGNvbnN0IG1pc3NpbmdJdGVtcyA9IGV4cGVjdGVkU3RyaW5ncy5maWx0ZXIoKGl0ZW0pID0+ICFhY3R1YWxTdHJpbmdzLmluY2x1ZGVzKGl0ZW0pKVxuICAgICAgICAgICAgY29uc3QgdW5leHBlY3RlZEl0ZW1zID0gYWN0dWFsU3RyaW5ncy5maWx0ZXIoKGl0ZW0pID0+ICFleHBlY3RlZFN0cmluZ3MuaW5jbHVkZXMoaXRlbSkpXG5cbiAgICAgICAgICAgIGNvbnN0IGRpZmZQYXJ0cyA9IFtdXG5cbiAgICAgICAgICAgIGlmIChtaXNzaW5nSXRlbXMubGVuZ3RoID4gMCkgZGlmZlBhcnRzLnB1c2goYG1pc3NpbmcgJHttaXNzaW5nSXRlbXMuam9pbihcIiwgXCIpfWApXG4gICAgICAgICAgICBpZiAodW5leHBlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIGRpZmZQYXJ0cy5wdXNoKGB1bmV4cGVjdGVkICR7dW5leHBlY3RlZEl0ZW1zLmpvaW4oXCIsIFwiKX1gKVxuXG4gICAgICAgICAgICBjb25zdCBkaWZmTWVzc2FnZSA9IGRpZmZQYXJ0cy5sZW5ndGggPiAwID8gYCAoZGlmZjogJHtkaWZmUGFydHMuam9pbihcIjsgXCIpfSlgIDogXCJcIlxuXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7b2JqZWN0UHJpbnR9IHdhc24ndCBlcXVhbCB0byAke3Jlc3VsdFByaW50fSR7ZGlmZk1lc3NhZ2V9YClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7b2JqZWN0UHJpbnR9IHdhc24ndCBlcXVhbCB0byAke3Jlc3VsdFByaW50fWApXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLl9vYmplY3QgIT0gcmVzdWx0KSB7XG4gICAgICAgICAgY29uc3Qgb2JqZWN0UHJpbnQgPSBmb3JtYXRWYWx1ZSh0aGlzLl9vYmplY3QpXG4gICAgICAgICAgY29uc3QgcmVzdWx0UHJpbnQgPSBmb3JtYXRWYWx1ZShyZXN1bHQpXG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7b2JqZWN0UHJpbnR9IHdhc24ndCBlcXVhbCB0byAke3Jlc3VsdFByaW50fWApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtSZWdFeHB9IHJlZ2V4XG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgdG9NYXRjaChyZWdleCkge1xuICAgIGNvbnN0IG1hdGNoID0gdGhpcy5fb2JqZWN0Lm1hdGNoKHJlZ2V4KVxuXG4gICAgaWYgKHRoaXMuX25vdCkge1xuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIGNvbnN0IG9iamVjdFByaW50ID0gZm9ybWF0VmFsdWUodGhpcy5fb2JqZWN0KVxuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtvYmplY3RQcmludH0gc2hvdWxkbid0IG1hdGNoICR7cmVnZXh9YClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICBjb25zdCBvYmplY3RQcmludCA9IGZvcm1hdFZhbHVlKHRoaXMuX29iamVjdClcblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7b2JqZWN0UHJpbnR9IGRpZG4ndCBtYXRjaCAke3JlZ2V4fWApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEB0ZW1wbGF0ZSBUIGV4dGVuZHMgRXJyb3JcbiAgICogQHBhcmFtIHtzdHJpbmd8VH0gZXhwZWN0ZWRFcnJvclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHRvVGhyb3dFcnJvcihleHBlY3RlZEVycm9yKSB7XG4gICAgaWYgKHRoaXMuX25vdCkgdGhyb3cgbmV3IEVycm9yKFwibm90IHN0dWJcIilcblxuICAgIGxldCBmYWlsZWRFcnJvclxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuX29iamVjdCgpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGZhaWxlZEVycm9yID0gZXJyb3JcbiAgICB9XG5cbiAgICBpZiAoIWZhaWxlZEVycm9yKSB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCB0byBmYWlsIGJ1dCBkaWRuJ3RcIilcblxuICAgIGxldCBleHBlY3RlZEVycm9yTWVzc2FnZSwgZmFpbGVkRXJyb3JNZXNzYWdlXG5cbiAgICBpZiAodHlwZW9mIGZhaWxlZEVycm9yID09IFwic3RyaW5nXCIpIHtcbiAgICAgIGZhaWxlZEVycm9yTWVzc2FnZSA9IGZhaWxlZEVycm9yXG4gICAgfSBlbHNlIGlmIChmYWlsZWRFcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICBmYWlsZWRFcnJvck1lc3NhZ2UgPSBmYWlsZWRFcnJvci5tZXNzYWdlXG4gICAgfSBlbHNlIHtcbiAgICAgIGZhaWxlZEVycm9yTWVzc2FnZSA9IFN0cmluZyhmYWlsZWRFcnJvcilcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGV4cGVjdGVkRXJyb3IgPT0gXCJzdHJpbmdcIikge1xuICAgICAgZXhwZWN0ZWRFcnJvck1lc3NhZ2UgPSBleHBlY3RlZEVycm9yXG4gICAgfSBlbHNlIGlmIChleHBlY3RlZEVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIGV4cGVjdGVkRXJyb3JNZXNzYWdlID0gZXhwZWN0ZWRFcnJvci5tZXNzYWdlXG4gICAgfSBlbHNlIHtcbiAgICAgIGV4cGVjdGVkRXJyb3JNZXNzYWdlID0gU3RyaW5nKGV4cGVjdGVkRXJyb3IpXG4gICAgfVxuXG4gICAgaWYgKGZhaWxlZEVycm9yTWVzc2FnZSAhPSBleHBlY3RlZEVycm9yTWVzc2FnZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCB0byBmYWlsIHdpdGggJyR7ZXhwZWN0ZWRFcnJvck1lc3NhZ2V9JyBidXQgZmFpbGVkIHdpdGggJyR7ZmFpbGVkRXJyb3JNZXNzYWdlfSdgKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICBmb3IgKGNvbnN0IGV4cGVjdGF0aW9uIG9mIHRoaXMuZXhwZWN0YXRpb25zKSB7XG4gICAgICBhd2FpdCBleHBlY3RhdGlvbi5ydW5CZWZvcmUoKVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuX29iamVjdCgpXG5cbiAgICBmb3IgKGNvbnN0IGV4cGVjdGF0aW9uIG9mIHRoaXMuZXhwZWN0YXRpb25zKSB7XG4gICAgICBhd2FpdCBleHBlY3RhdGlvbi5ydW5BZnRlcigpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBleHBlY3RhdGlvbiBvZiB0aGlzLmV4cGVjdGF0aW9ucykge1xuICAgICAgYXdhaXQgZXhwZWN0YXRpb24uZXhlY3V0ZSgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gcmVzdWx0XG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgdG9IYXZlQXR0cmlidXRlcyhyZXN1bHQpIHtcbiAgICBpZiAodGhpcy5fbm90KSB0aHJvdyBuZXcgRXJyb3IoXCJub3Qgc3R1YlwiKVxuXG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBhbnlbXT59ICovXG4gICAgY29uc3QgZGlmZmVyZW5jZXMgPSB7fVxuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcmVzdWx0KSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHJlc3VsdFtrZXldXG5cbiAgICAgIGlmICghKGtleSBpbiB0aGlzLl9vYmplY3QpKSB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5fb2JqZWN0LmNvbnN0cnVjdG9yLm5hbWV9IGRvZXNuJ3QgcmVzcG9uZCB0byAke2tleX1gKVxuXG4gICAgICBjb25zdCBvYmplY3RWYWx1ZSA9IHRoaXMuX29iamVjdFtrZXldKClcblxuICAgICAgaWYgKHZhbHVlICE9IG9iamVjdFZhbHVlKSB7XG4gICAgICAgIGRpZmZlcmVuY2VzW2tleV0gPSBbdmFsdWUsIG9iamVjdFZhbHVlXVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyhkaWZmZXJlbmNlcykubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBPYmplY3QgaGFkIGRpZmZlcmV0IHZhbHVlczogJHttaW5pZmllZFN0cmluZ2lmeShkaWZmZXJlbmNlcyl9YClcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gZGVzY3JpcHRpb25cbiAqIEBwYXJhbSB7b2JqZWN0fCgoKSA9PiAodm9pZHxQcm9taXNlPHZvaWQ+KSl9IGFyZzFcbiAqIEBwYXJhbSB7dW5kZWZpbmVkfCgoKSA9PiAodm9pZHxQcm9taXNlPHZvaWQ+KSl9IFthcmcyXVxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGRlc2NyaWJlKGRlc2NyaXB0aW9uLCBhcmcxLCBhcmcyKSB7XG4gIGxldCB0ZXN0QXJncywgdGVzdEZ1bmN0aW9uXG5cbiAgaWYgKHR5cGVvZiBhcmcyID09IFwiZnVuY3Rpb25cIikge1xuICAgIHRlc3RGdW5jdGlvbiA9IGFyZzJcbiAgICB0ZXN0QXJncyA9IGFyZzFcbiAgfSBlbHNlIGlmICh0eXBlb2YgYXJnMSA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB0ZXN0RnVuY3Rpb24gPSBhcmcxXG4gICAgdGVzdEFyZ3MgPSB7fVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhcmd1bWVudHMgZm9yIGRlc2NyaWJlOiAke2FyZzF9LCAke2FyZzJ9YClcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRUZXN0ID0gY3VycmVudFBhdGhbY3VycmVudFBhdGgubGVuZ3RoIC0gMV1cbiAgY29uc3QgbmV3VGVzdEFyZ3MgPSBPYmplY3QuYXNzaWduKHt9LCBjdXJyZW50VGVzdC5hcmdzLCB0ZXN0QXJncylcblxuICBpZiAoZGVzY3JpcHRpb24gaW4gY3VycmVudFRlc3Quc3Vicykge1xuICAgIHRocm93IG5ldyBFcnJvcihgRHVwbGljYXRlIHRlc3QgZGVzY3JpcHRpb246ICR7ZGVzY3JpcHRpb259YClcbiAgfVxuXG4gIGNvbnN0IG5ld1Rlc3REYXRhID0ge2FmdGVyRWFjaGVzOiBbXSwgYXJnczogbmV3VGVzdEFyZ3MsIGJlZm9yZUVhY2hlczogW10sIHN1YnM6IHt9LCB0ZXN0czoge319XG5cbiAgY3VycmVudFRlc3Quc3Vic1tkZXNjcmlwdGlvbl0gPSBuZXdUZXN0RGF0YVxuICBjdXJyZW50UGF0aC5wdXNoKG5ld1Rlc3REYXRhKVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgdGVzdEZ1bmN0aW9uKClcbiAgfSBmaW5hbGx5IHtcbiAgICBjdXJyZW50UGF0aC5wb3AoKVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHthbnl9IGFyZ1xuICogQHJldHVybnMge0V4cGVjdH1cbiAqL1xuZnVuY3Rpb24gZXhwZWN0KGFyZykge1xuICByZXR1cm4gbmV3IEV4cGVjdChhcmcpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGRlc2NyaXB0aW9uXG4gKiBAcGFyYW0ge29iamVjdHwoKCkgPT4gKHZvaWR8UHJvbWlzZTx2b2lkPikpfSBhcmcxXG4gKiBAcGFyYW0ge3VuZGVmaW5lZHwoKCkgPT4gKHZvaWR8UHJvbWlzZTx2b2lkPikpfSBbYXJnMl1cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBpdChkZXNjcmlwdGlvbiwgYXJnMSwgYXJnMikge1xuICBjb25zdCBjdXJyZW50VGVzdCA9IGN1cnJlbnRQYXRoW2N1cnJlbnRQYXRoLmxlbmd0aCAtIDFdXG4gIGxldCB0ZXN0QXJnc1xuXG4gIC8qKiBAdHlwZSB7KCkgPT4gKHZvaWR8UHJvbWlzZTx2b2lkPil9ICovXG4gIGxldCB0ZXN0RnVuY3Rpb25cblxuICBpZiAodHlwZW9mIGFyZzEgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdGVzdEZ1bmN0aW9uID0gYXJnMVxuICAgIHRlc3RBcmdzID0ge31cbiAgfSBlbHNlIGlmICh0eXBlb2YgYXJnMiA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB0ZXN0RnVuY3Rpb24gPSBhcmcyXG4gICAgdGVzdEFyZ3MgPSBhcmcxXG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFyZ3VtZW50cyBmb3IgaXQ6ICR7ZGVzY3JpcHRpb259LCAke2FyZzF9YClcbiAgfVxuXG4gIGNvbnN0IG5ld1Rlc3RBcmdzID0gT2JqZWN0LmFzc2lnbih7fSwgY3VycmVudFRlc3QuYXJncywgdGVzdEFyZ3MpXG5cbiAgY3VycmVudFRlc3QudGVzdHNbZGVzY3JpcHRpb25dID0ge2FyZ3M6IG5ld1Rlc3RBcmdzLCBmdW5jdGlvbjogdGVzdEZ1bmN0aW9ufVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBkZXNjcmlwdGlvblxuICogQHBhcmFtIHtvYmplY3R8KCgpID0+ICh2b2lkfFByb21pc2U8dm9pZD4pKX0gYXJnMVxuICogQHBhcmFtIHt1bmRlZmluZWR8KCgpID0+ICh2b2lkfFByb21pc2U8dm9pZD4pKX0gW2FyZzJdXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gZml0KGRlc2NyaXB0aW9uLCBhcmcxLCBhcmcyKSB7XG4gIGxldCB0ZXN0QXJnc1xuXG4gIC8qKiBAdHlwZSB7KCkgPT4gKHZvaWR8UHJvbWlzZTx2b2lkPil9ICovXG4gIGxldCB0ZXN0RnVuY3Rpb25cblxuICBpZiAodHlwZW9mIGFyZzEgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdGVzdEZ1bmN0aW9uID0gYXJnMVxuICAgIHRlc3RBcmdzID0ge2ZvY3VzOiB0cnVlfVxuICB9IGVsc2UgaWYgKHR5cGVvZiBhcmcyID09IFwiZnVuY3Rpb25cIikge1xuICAgIHRlc3RGdW5jdGlvbiA9IGFyZzJcbiAgICB0ZXN0QXJncyA9IE9iamVjdC5hc3NpZ24oe2ZvY3VzOiB0cnVlfSwgYXJnMSlcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXJndW1lbnRzIGZvciBpdDogJHtkZXNjcmlwdGlvbn0sICR7YXJnMX1gKVxuICB9XG5cbiAgcmV0dXJuIGl0KGRlc2NyaXB0aW9uLCB0ZXN0QXJncywgdGVzdEZ1bmN0aW9uKVxufVxuXG4vLyBNYWtlIHRoZSBtZXRob2RzIGdsb2JhbCBzbyB0aGV5IGNhbiBiZSB1c2VkIGluIHRlc3QgZmlsZXNcbmdsb2JhbFRoaXMuYWZ0ZXJFYWNoID0gYWZ0ZXJFYWNoXG5nbG9iYWxUaGlzLmJlZm9yZUVhY2ggPSBiZWZvcmVFYWNoXG5nbG9iYWxUaGlzLmRlc2NyaWJlID0gZGVzY3JpYmVcbmdsb2JhbFRoaXMuZXhwZWN0ID0gZXhwZWN0XG5nbG9iYWxUaGlzLml0ID0gaXRcbmdsb2JhbFRoaXMuZml0ID0gZml0XG5cbmV4cG9ydCB7YWZ0ZXJFYWNoLCBiZWZvcmVFYWNoLCBkZXNjcmliZSwgZXhwZWN0LCBmaXQsIGl0LCB0ZXN0c31cbiJdfQ==
448
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0aW5nL3Rlc3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQTtBQUN2RSxPQUFPLGFBQWEsTUFBTSw2QkFBNkIsQ0FBQTtBQUV2RCx1REFBdUQ7QUFDdkQsTUFBTSxLQUFLLEdBQUc7SUFDWiw2RUFBNkU7SUFDN0UsV0FBVyxFQUFFLEVBQUU7SUFDZixJQUFJLEVBQUUsRUFBRTtJQUVSLDZFQUE2RTtJQUM3RSxZQUFZLEVBQUUsRUFBRTtJQUNoQixJQUFJLEVBQUUsRUFBRTtJQUNSLEtBQUssRUFBRSxFQUFFO0NBQ1YsQ0FBQTtBQUVELElBQUksV0FBVyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7QUFFekI7OztHQUdHO0FBQ0gsU0FBUyxVQUFVLENBQUMsUUFBUTtJQUMxQixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUV2RCxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUE7QUFDM0MsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsU0FBUyxDQUFDLFFBQVE7SUFDekIsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFFdkQsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBQyxRQUFRLEVBQUMsQ0FBQyxDQUFBO0FBQzFDLENBQUM7QUFFRCxNQUFNLFVBQVU7SUFDZDs7O09BR0c7SUFDSCxLQUFLLENBQUMsU0FBUyxLQUFzQixDQUFDO0lBRXRDOzs7T0FHRztJQUNILEtBQUssQ0FB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blxuaW1wb3J0IHtmb3JtYXRWYWx1ZSwgbWluaWZpZWRTdHJpbmdpZnl9IGZyb20gXCIuL2Zvcm1hdC12YWx1ZS5qc1wiXG5pbXBvcnQge2FueXRoaW5nRGlmZmVyZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvZGlmZi11dGlscy5qc1wiXG5pbXBvcnQgcmVzdEFyZ3NFcnJvciBmcm9tIFwiLi4vdXRpbHMvcmVzdC1hcmdzLWVycm9yLmpzXCJcblxuLyoqIEB0eXBlIHtpbXBvcnQoXCIuL3Rlc3QtcnVubmVyLmpzXCIpLlRlc3RzQXJndW1lbnR9ICovXG5jb25zdCB0ZXN0cyA9IHtcbiAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuL3Rlc3QtcnVubmVyLmpzXCIpLkFmdGVyQmVmb3JlRWFjaENhbGxiYWNrT2JqZWN0VHlwZVtdfSAqL1xuICBhZnRlckVhY2hlczogW10sXG4gIGFyZ3M6IHt9LFxuXG4gIC8qKiBAdHlwZSB7aW1wb3J0KFwiLi90ZXN0LXJ1bm5lci5qc1wiKS5BZnRlckJlZm9yZUVhY2hDYWxsYmFja09iamVjdFR5cGVbXX0gKi9cbiAgYmVmb3JlRWFjaGVzOiBbXSxcbiAgc3Viczoge30sXG4gIHRlc3RzOiB7fVxufVxuXG5sZXQgY3VycmVudFBhdGggPSBbdGVzdHNdXG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3Rlc3QtcnVubmVyLmpzXCIpLkFmdGVyQmVmb3JlRWFjaENhbGxiYWNrVHlwZX0gY2FsbGJhY2tcbiAqIEByZXR1cm5zIHt2b2lkfSAtIFJlc3VsdC5cbiAqL1xuZnVuY3Rpb24gYmVmb3JlRWFjaChjYWxsYmFjaykge1xuICBjb25zdCBjdXJyZW50VGVzdCA9IGN1cnJlbnRQYXRoW2N1cnJlbnRQYXRoLmxlbmd0aCAtIDFdXG5cbiAgY3VycmVudFRlc3QuYmVmb3JlRWFjaGVzLnB1c2goe2NhbGxiYWNrfSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vdGVzdC1ydW5uZXIuanNcIikuQWZ0ZXJCZWZvcmVFYWNoQ2FsbGJhY2tUeXBlfSBjYWxsYmFja1xuICogQHJldHVybnMge3ZvaWR9IC0gUmVzdWx0LlxuICovXG5mdW5jdGlvbiBhZnRlckVhY2goY2FsbGJhY2spIHtcbiAgY29uc3QgY3VycmVudFRlc3QgPSBjdXJyZW50UGF0aFtjdXJyZW50UGF0aC5sZW5ndGggLSAxXVxuXG4gIGN1cnJlbnRUZXN0LmFmdGVyRWFjaGVzLnB1c2goe2NhbGxiYWNrfSlcbn1cblxuY2xhc3MgQmFzZUV4cGVjdCB7XG4gIC8qKlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgcnVuQmVmb3JlKCkgeyAvKiBkbyBub3RoaW5nICovIH1cblxuICAvKipcbiAgICogQGFic3RyYWN0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc3VsdC5cbiAgICovXG4gIGFzeW5jIHJ1bkFmdGVyKCkgeyAvKiBkbyBub3RoaW5nICovIH1cbn1cblxuY2xhc3MgRXhwZWN0VG9DaGFuZ2UgZXh0ZW5kcyBCYXNlRXhwZWN0IHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oKTogUHJvbWlzZTxudW1iZXI+fSBhcmdzLmNoYW5nZUNhbGxiYWNrXG4gICAqIEBwYXJhbSB7RXhwZWN0fSBhcmdzLmV4cGVjdFxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NoYW5nZUNhbGxiYWNrLCBleHBlY3QsIC4uLnJlc3RBcmdzfSkge1xuICAgIHN1cGVyKClcbiAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuXG4gICAgdGhpcy5leHBlY3QgPSBleHBlY3RcbiAgICB0aGlzLmNoYW5nZUNhbGxiYWNrID0gY2hhbmdlQ2FsbGJhY2tcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge251bWJlcn0gY291bnRcbiAgICogQHJldHVybnMge0V4cGVjdH0gLSBSZXN1bHQuXG4gICAqL1xuICBieShjb3VudCkge1xuICAgIHRoaXMuY291bnQgPSBjb3VudFxuXG4gICAgcmV0dXJuIHRoaXMuZXhwZWN0XG4gIH1cblxuICBhc3luYyBydW5CZWZvcmUoKSB7XG4gICAgdGhpcy5vbGRDb3VudCA9IGF3YWl0IHRoaXMuY2hhbmdlQ2FsbGJhY2soKVxuICB9XG5cbiAgYXN5bmMgcnVuQWZ0ZXIoKSB7XG4gICAgdGhpcy5uZXdDb3VudCA9IGF3YWl0IHRoaXMuY2hhbmdlQ2FsbGJhY2soKVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc3VsdC5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGUoKSB7XG4gICAgaWYgKHRoaXMubmV3Q291bnQgPT09IHVuZGVmaW5lZCB8fCB0aGlzLm9sZENvdW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdFRvQ2hhbmdlIG5vdCBleGVjdXRlZCBwcm9wZXJseVwiKVxuICAgIH1cblxuICAgIGNvbnN0IGRpZmZlcmVuY2UgPSB0aGlzLm5ld0NvdW50IC0gdGhpcy5vbGRDb3VudFxuXG4gICAgaWYgKGRpZmZlcmVuY2UgIT0gdGhpcy5jb3VudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCB0byBjaGFuZ2UgYnkgJHt0aGlzLmNvdW50fSBidXQgY2hhbmdlZCBieSAke2RpZmZlcmVuY2V9YClcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgRXhwZWN0IGV4dGVuZHMgQmFzZUV4cGVjdCB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge2FueX0gb2JqZWN0XG4gICAqL1xuICBjb25zdHJ1Y3RvcihvYmplY3QpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5fb2JqZWN0ID0gb2JqZWN0XG5cbiAgICAvKiogQHR5cGUge0FycmF5PEV4cGVjdCB8IEV4cGVjdFRvQ2hhbmdlPn0gKi9cbiAgICB0aGlzLmV4cGVjdGF0aW9ucyA9IFtdXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtmdW5jdGlvbigpOiBQcm9taXNlPG51bWJlcj59IGNoYW5nZUNhbGxiYWNrXG4gICAqIEByZXR1cm5zIHtFeHBlY3RUb0NoYW5nZX0gLSBSZXN1bHQuXG4gICAqL1xuICBhbmRDaGFuZ2UoY2hhbmdlQ2FsbGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy50b0NoYW5nZShjaGFuZ2VDYWxsYmFjaylcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7dGhpc30gLSBSZXN1bHQuXG4gICAqL1xuICBnZXQgbm90KCkge1xuICAgIHRoaXMuX25vdCA9IHRydWVcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHthbnl9IHJlc3VsdFxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBSZXN1bHQuXG4gICAqL1xuICB0b0JlKHJlc3VsdCkge1xuICAgIGlmICh0aGlzLl9ub3QpIHtcbiAgICAgIGlmICh0aGlzLl9vYmplY3QgPT09IHJlc3VsdCkge1xuICAgICAgICBjb25zdCBvYmplY3RQcmludCA9IGZvcm1hdFZhbHVlKHRoaXMuX29iamVjdClcbiAgICAgICAgY29uc3QgcmVzdWx0UHJpbnQgPSBmb3JtYXRWYWx1ZShyZXN1bHQpXG5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29iamVjdFByaW50fSB3YXMgdW5leHBlY3RlZCBub3QgdG8gYmUgJHtyZXN1bHRQcmludH1gKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5fb2JqZWN0ICE9PSByZXN1bHQpIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0UHJpbnQgPSBmb3JtYXRWYWx1ZSh0aGlzLl9vYmplY3QpXG4gICAgICAgIGNvbnN0IHJlc3VsdFByaW50ID0gZm9ybWF0VmFsdWUocmVzdWx0KVxuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtvYmplY3RQcmludH0gd2Fzbid0IGV4cGVjdGVkIGJlICR7cmVzdWx0UHJpbnR9YClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3ZvaWR9IC0gUmVzdWx0LlxuICAgKi9cbiAgdG9CZURlZmluZWQoKSB7XG4gICAgaWYgKHRoaXMuX25vdCkge1xuICAgICAgaWYgKHRoaXMuX29iamVjdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IG9iamVjdFByaW50ID0gZm9ybWF0VmFsdWUodGhpcy5fb2JqZWN0KVxuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtvYmplY3RQcmludH0gd2FzbsK0dCBleHBlY3RlZCB0byBiZSBkZWZpbmVkYClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX29iamVjdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IG9iamVjdFByaW50ID0gZm9ybWF0VmFsdWUodGhpcy5fb2JqZWN0KVxuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtvYmplY3RQcmludH0gd2Fzbid0IGV4cGVjdGVkIGJlIHVuZGVmaW5lZGApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGtsYXNzXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIFJlc3VsdC5cbiAgICovXG4gIHRvQmVJbnN0YW5jZU9mKGtsYXNzKSB7XG4gICAgaWYgKCEodGhpcy5fb2JqZWN0IGluc3RhbmNlb2Yga2xhc3MpKSB7XG4gICAgICBjb25zdCBvYmplY3RQcmludCA9IGZvcm1hdFZhbHVlKHRoaXMuX29iamVjdClcblxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke29iamVjdFByaW50fSB0byBiZSBhICR7a2xhc3MubmFtZX0gYnV0IGl0IHdhc24ndGApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIFJlc3VsdC5cbiAgICovXG4gIHRvQmVGYWxzZSgpIHtcbiAgICB0aGlzLnRvQmUoZmFsc2UpXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3ZvaWR9IC0gUmVzdWx0LlxuICAgKi9cbiAgdG9CZU51bGwoKSB7XG4gICAgdGhpcy50b0JlKG51bGwpXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3ZvaWR9IC0gUmVzdWx0LlxuICAgKi9cbiAgdG9CZVVuZGVmaW5lZCgpIHtcbiAgICB0aGlzLnRvQmUodW5kZWZpbmVkKVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIFJlc3VsdC5cbiAgICovXG4gIHRvQmVUcnVlKCkge1xuICAgIHRoaXMudG9CZSh0cnVlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oKTogUHJvbWlzZTxudW1iZXI+fSBjaGFuZ2VDYWxsYmFja1xuICAgKiBAcmV0dXJucyB7RXhwZWN0VG9DaGFuZ2V9IC0gUmVzdWx0LlxuICAgKi9cbiAgdG9DaGFuZ2UoY2hhbmdlQ2FsbGJhY2spIHtcbiAgICBpZiAodGhpcy5fbm90KSB0aHJvdyBuZXcgRXJyb3IoXCJub3Qgc3R1YlwiKVxuXG4gICAgY29uc3QgZXhwZWN0VG9DaGFuZ2UgPSBuZXcgRXhwZWN0VG9DaGFuZ2Uoe2NoYW5nZUNhbGxiYWNrLCBleHBlY3Q6IHRoaXN9KVxuXG4gICAgdGhpcy5leHBlY3RhdGlvbnMucHVzaChleHBlY3RUb0NoYW5nZSlcblxuICAgIHJldHVybiBleHBlY3RUb0NoYW5nZVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7YW55fSB2YWx1ZVRvQ29udGFpblxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBSZXN1bHQuXG4gICAqL1xuICB0b0NvbnRhaW4odmFsdWVUb0NvbnRhaW4pIHtcbiAgICBpZiAodGhpcy5fbm90KSB0aHJvdyBuZXcgRXJyb3IoXCJub3Qgc3R1YlwiKVxuXG4gICAgaWYgKCF0aGlzLl9vYmplY3QuaW5jbHVkZXModmFsdWVUb0NvbnRhaW4pKSB7XG4gICAgICBjb25zdCBvYmplY3RQcmludCA9IGZvcm1hdFZhbHVlKHRoaXMuX29iamVjdClcbiAgICAgIGNvbnN0IHZhbHVlUHJpbnQgPSBmb3JtYXRWYWx1ZSh2YWx1ZVRvQ29udGFpbilcblxuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29iamVjdFByaW50fSBkb2Vzbid0IGNvbnRhaW4gJHt2YWx1ZVByaW50fWApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7YW55fSByZXN1bHRcbiAgICogQHJldHVybnMge3ZvaWR9IC0gUmVzdWx0LlxuICAgKi9cbiAgdG9FcXVhbChyZXN1bHQpIHtcbiAgICBpZiAodGhpcy5fbm90KSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuX29iamVjdCA9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZXN1bHQgPT0gXCJvYmplY3RcIikge1xuICAgICAgICBpZiAoIWFueXRoaW5nRGlmZmVyZW50KHRoaXMuX29iamVjdCwgcmVzdWx0KSkge1xuICAgICAgICAgIGNvbnN0IG9iamVjdFByaW50ID0gZm9ybWF0VmFsdWUodGhpcy5fb2JqZWN0KVxuICAgICAgICAgIGNvbnN0IHJlc3VsdFByaW50ID0gZm9ybWF0VmFsdWUocmVzdWx0KVxuXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29iamVjdFByaW50fSB3YXMgdW5leHBlY3RlZCBlcXVhbCB0byAke3Jlc3VsdFByaW50fWApXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLl9vYmplY3QgPT0gcmVzdWx0KSB7XG4gICAgICAgICAgY29uc3Qgb2JqZWN0UHJpbnQgPSBmb3JtYXRWYWx1ZSh0aGlzLl9vYmplY3QpXG4gICAgICAgICAgY29uc3QgcmVzdWx0UHJpbnQgPSBmb3JtYXRWYWx1ZShyZXN1bHQpXG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7b2JqZWN0UHJpbnR9IHdhcyB1bmV4cGVjdGVkIGVxdWFsIHRvICR7cmVzdWx0UHJpbnR9YClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuX29iamVjdCA9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZXN1bHQgPT0gXCJvYmplY3RcIikge1xuICAgICAgICBpZiAoYW55dGhpbmdEaWZmZXJlbnQodGhpcy5fb2JqZWN0LCByZXN1bHQpKSB7XG4gICAgICAgICAgY29uc3Qgb2JqZWN0UHJpbnQgPSBmb3JtYXRWYWx1ZSh0aGlzLl9vYmplY3QpXG4gICAgICAgICAgY29uc3QgcmVzdWx0UHJpbnQgPSBmb3JtYXRWYWx1ZShyZXN1bHQpXG5cbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLl9vYmplY3QpICYmIEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgICAgICAgY29uc3QgYWN0dWFsU3RyaW5ncyA9IHRoaXMuX29iamVjdC5tYXAoKGl0ZW0pID0+IG1pbmlmaWVkU3RyaW5naWZ5KGl0ZW0pKVxuICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRTdHJpbmdzID0gcmVzdWx0Lm1hcCgoaXRlbSkgPT4gbWluaWZpZWRTdHJpbmdpZnkoaXRlbSkpXG5cbiAgICAgICAgICAgIGNvbnN0IG1pc3NpbmdJdGVtcyA9IGV4cGVjdGVkU3RyaW5ncy5maWx0ZXIoKGl0ZW0pID0+ICFhY3R1YWxTdHJpbmdzLmluY2x1ZGVzKGl0ZW0pKVxuICAgICAgICAgICAgY29uc3QgdW5leHBlY3RlZEl0ZW1zID0gYWN0dWFsU3RyaW5ncy5maWx0ZXIoKGl0ZW0pID0+ICFleHBlY3RlZFN0cmluZ3MuaW5jbHVkZXMoaXRlbSkpXG5cbiAgICAgICAgICAgIGNvbnN0IGRpZmZQYXJ0cyA9IFtdXG5cbiAgICAgICAgICAgIGlmIChtaXNzaW5nSXRlbXMubGVuZ3RoID4gMCkgZGlmZlBhcnRzLnB1c2goYG1pc3NpbmcgJHttaXNzaW5nSXRlbXMuam9pbihcIiwgXCIpfWApXG4gICAgICAgICAgICBpZiAodW5leHBlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIGRpZmZQYXJ0cy5wdXNoKGB1bmV4cGVjdGVkICR7dW5leHBlY3RlZEl0ZW1zLmpvaW4oXCIsIFwiKX1gKVxuXG4gICAgICAgICAgICBjb25zdCBkaWZmTWVzc2FnZSA9IGRpZmZQYXJ0cy5sZW5ndGggPiAwID8gYCAoZGlmZjogJHtkaWZmUGFydHMuam9pbihcIjsgXCIpfSlgIDogXCJcIlxuXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7b2JqZWN0UHJpbnR9IHdhc24ndCBlcXVhbCB0byAke3Jlc3VsdFByaW50fSR7ZGlmZk1lc3NhZ2V9YClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7b2JqZWN0UHJpbnR9IHdhc24ndCBlcXVhbCB0byAke3Jlc3VsdFByaW50fWApXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLl9vYmplY3QgIT0gcmVzdWx0KSB7XG4gICAgICAgICAgY29uc3Qgb2JqZWN0UHJpbnQgPSBmb3JtYXRWYWx1ZSh0aGlzLl9vYmplY3QpXG4gICAgICAgICAgY29uc3QgcmVzdWx0UHJpbnQgPSBmb3JtYXRWYWx1ZShyZXN1bHQpXG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7b2JqZWN0UHJpbnR9IHdhc24ndCBlcXVhbCB0byAke3Jlc3VsdFByaW50fWApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtSZWdFeHB9IHJlZ2V4XG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIFJlc3VsdC5cbiAgICovXG4gIHRvTWF0Y2gocmVnZXgpIHtcbiAgICBjb25zdCBtYXRjaCA9IHRoaXMuX29iamVjdC5tYXRjaChyZWdleClcblxuICAgIGlmICh0aGlzLl9ub3QpIHtcbiAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICBjb25zdCBvYmplY3RQcmludCA9IGZvcm1hdFZhbHVlKHRoaXMuX29iamVjdClcblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7b2JqZWN0UHJpbnR9IHNob3VsZG4ndCBtYXRjaCAke3JlZ2V4fWApXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0UHJpbnQgPSBmb3JtYXRWYWx1ZSh0aGlzLl9vYmplY3QpXG5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29iamVjdFByaW50fSBkaWRuJ3QgbWF0Y2ggJHtyZWdleH1gKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAdGVtcGxhdGUgVCBleHRlbmRzIEVycm9yXG4gICAqIEBwYXJhbSB7c3RyaW5nfFR9IGV4cGVjdGVkRXJyb3JcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgdG9UaHJvd0Vycm9yKGV4cGVjdGVkRXJyb3IpIHtcbiAgICBpZiAodGhpcy5fbm90KSB0aHJvdyBuZXcgRXJyb3IoXCJub3Qgc3R1YlwiKVxuXG4gICAgbGV0IGZhaWxlZEVycm9yXG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fb2JqZWN0KClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgZmFpbGVkRXJyb3IgPSBlcnJvclxuICAgIH1cblxuICAgIGlmICghZmFpbGVkRXJyb3IpIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIHRvIGZhaWwgYnV0IGRpZG4ndFwiKVxuXG4gICAgbGV0IGV4cGVjdGVkRXJyb3JNZXNzYWdlLCBmYWlsZWRFcnJvck1lc3NhZ2VcblxuICAgIGlmICh0eXBlb2YgZmFpbGVkRXJyb3IgPT0gXCJzdHJpbmdcIikge1xuICAgICAgZmFpbGVkRXJyb3JNZXNzYWdlID0gZmFpbGVkRXJyb3JcbiAgICB9IGVsc2UgaWYgKGZhaWxlZEVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIGZhaWxlZEVycm9yTWVzc2FnZSA9IGZhaWxlZEVycm9yLm1lc3NhZ2VcbiAgICB9IGVsc2Uge1xuICAgICAgZmFpbGVkRXJyb3JNZXNzYWdlID0gU3RyaW5nKGZhaWxlZEVycm9yKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZXhwZWN0ZWRFcnJvciA9PSBcInN0cmluZ1wiKSB7XG4gICAgICBleHBlY3RlZEVycm9yTWVzc2FnZSA9IGV4cGVjdGVkRXJyb3JcbiAgICB9IGVsc2UgaWYgKGV4cGVjdGVkRXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgZXhwZWN0ZWRFcnJvck1lc3NhZ2UgPSBleHBlY3RlZEVycm9yLm1lc3NhZ2VcbiAgICB9IGVsc2Uge1xuICAgICAgZXhwZWN0ZWRFcnJvck1lc3NhZ2UgPSBTdHJpbmcoZXhwZWN0ZWRFcnJvcilcbiAgICB9XG5cbiAgICBpZiAoZmFpbGVkRXJyb3JNZXNzYWdlICE9IGV4cGVjdGVkRXJyb3JNZXNzYWdlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIHRvIGZhaWwgd2l0aCAnJHtleHBlY3RlZEVycm9yTWVzc2FnZX0nIGJ1dCBmYWlsZWQgd2l0aCAnJHtmYWlsZWRFcnJvck1lc3NhZ2V9J2ApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59IC0gUmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICBmb3IgKGNvbnN0IGV4cGVjdGF0aW9uIG9mIHRoaXMuZXhwZWN0YXRpb25zKSB7XG4gICAgICBhd2FpdCBleHBlY3RhdGlvbi5ydW5CZWZvcmUoKVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuX29iamVjdCgpXG5cbiAgICBmb3IgKGNvbnN0IGV4cGVjdGF0aW9uIG9mIHRoaXMuZXhwZWN0YXRpb25zKSB7XG4gICAgICBhd2FpdCBleHBlY3RhdGlvbi5ydW5BZnRlcigpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBleHBlY3RhdGlvbiBvZiB0aGlzLmV4cGVjdGF0aW9ucykge1xuICAgICAgYXdhaXQgZXhwZWN0YXRpb24uZXhlY3V0ZSgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gcmVzdWx0XG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIFJlc3VsdC5cbiAgICovXG4gIHRvSGF2ZUF0dHJpYnV0ZXMocmVzdWx0KSB7XG4gICAgaWYgKHRoaXMuX25vdCkgdGhyb3cgbmV3IEVycm9yKFwibm90IHN0dWJcIilcblxuICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgYW55W10+fSAqL1xuICAgIGNvbnN0IGRpZmZlcmVuY2VzID0ge31cblxuICAgIGZvciAoY29uc3Qga2V5IGluIHJlc3VsdCkge1xuICAgICAgY29uc3QgdmFsdWUgPSByZXN1bHRba2V5XVxuXG4gICAgICBpZiAoIShrZXkgaW4gdGhpcy5fb2JqZWN0KSkgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMuX29iamVjdC5jb25zdHJ1Y3Rvci5uYW1lfSBkb2Vzbid0IHJlc3BvbmQgdG8gJHtrZXl9YClcblxuICAgICAgY29uc3Qgb2JqZWN0VmFsdWUgPSB0aGlzLl9vYmplY3Rba2V5XSgpXG5cbiAgICAgIGlmICh2YWx1ZSAhPSBvYmplY3RWYWx1ZSkge1xuICAgICAgICBkaWZmZXJlbmNlc1trZXldID0gW3ZhbHVlLCBvYmplY3RWYWx1ZV1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LmtleXMoZGlmZmVyZW5jZXMpLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgT2JqZWN0IGhhZCBkaWZmZXJldCB2YWx1ZXM6ICR7bWluaWZpZWRTdHJpbmdpZnkoZGlmZmVyZW5jZXMpfWApXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGRlc2NyaXB0aW9uXG4gKiBAcGFyYW0ge29iamVjdHwoKCkgPT4gKHZvaWR8UHJvbWlzZTx2b2lkPikpfSBhcmcxXG4gKiBAcGFyYW0ge3VuZGVmaW5lZHwoKCkgPT4gKHZvaWR8UHJvbWlzZTx2b2lkPikpfSBbYXJnMl1cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc3VsdC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZGVzY3JpYmUoZGVzY3JpcHRpb24sIGFyZzEsIGFyZzIpIHtcbiAgbGV0IHRlc3RBcmdzLCB0ZXN0RnVuY3Rpb25cblxuICBpZiAodHlwZW9mIGFyZzIgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdGVzdEZ1bmN0aW9uID0gYXJnMlxuICAgIHRlc3RBcmdzID0gYXJnMVxuICB9IGVsc2UgaWYgKHR5cGVvZiBhcmcxID09IFwiZnVuY3Rpb25cIikge1xuICAgIHRlc3RGdW5jdGlvbiA9IGFyZzFcbiAgICB0ZXN0QXJncyA9IHt9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFyZ3VtZW50cyBmb3IgZGVzY3JpYmU6ICR7YXJnMX0sICR7YXJnMn1gKVxuICB9XG5cbiAgY29uc3QgY3VycmVudFRlc3QgPSBjdXJyZW50UGF0aFtjdXJyZW50UGF0aC5sZW5ndGggLSAxXVxuICBjb25zdCBuZXdUZXN0QXJncyA9IE9iamVjdC5hc3NpZ24oe30sIGN1cnJlbnRUZXN0LmFyZ3MsIHRlc3RBcmdzKVxuXG4gIGlmIChkZXNjcmlwdGlvbiBpbiBjdXJyZW50VGVzdC5zdWJzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgdGVzdCBkZXNjcmlwdGlvbjogJHtkZXNjcmlwdGlvbn1gKVxuICB9XG5cbiAgY29uc3QgbmV3VGVzdERhdGEgPSB7YWZ0ZXJFYWNoZXM6IFtdLCBhcmdzOiBuZXdUZXN0QXJncywgYmVmb3JlRWFjaGVzOiBbXSwgc3Viczoge30sIHRlc3RzOiB7fX1cblxuICBjdXJyZW50VGVzdC5zdWJzW2Rlc2NyaXB0aW9uXSA9IG5ld1Rlc3REYXRhXG4gIGN1cnJlbnRQYXRoLnB1c2gobmV3VGVzdERhdGEpXG5cbiAgdHJ5IHtcbiAgICBhd2FpdCB0ZXN0RnVuY3Rpb24oKVxuICB9IGZpbmFsbHkge1xuICAgIGN1cnJlbnRQYXRoLnBvcCgpXG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge2FueX0gYXJnXG4gKiBAcmV0dXJucyB7RXhwZWN0fSAtIFJlc3VsdC5cbiAqL1xuZnVuY3Rpb24gZXhwZWN0KGFyZykge1xuICByZXR1cm4gbmV3IEV4cGVjdChhcmcpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGRlc2NyaXB0aW9uXG4gKiBAcGFyYW0ge29iamVjdHwoKCkgPT4gKHZvaWR8UHJvbWlzZTx2b2lkPikpfSBhcmcxXG4gKiBAcGFyYW0ge3VuZGVmaW5lZHwoKCkgPT4gKHZvaWR8UHJvbWlzZTx2b2lkPikpfSBbYXJnMl1cbiAqIEByZXR1cm5zIHt2b2lkfSAtIFJlc3VsdC5cbiAqL1xuZnVuY3Rpb24gaXQoZGVzY3JpcHRpb24sIGFyZzEsIGFyZzIpIHtcbiAgY29uc3QgY3VycmVudFRlc3QgPSBjdXJyZW50UGF0aFtjdXJyZW50UGF0aC5sZW5ndGggLSAxXVxuICBsZXQgdGVzdEFyZ3NcblxuICAvKiogQHR5cGUgeygpID0+ICh2b2lkfFByb21pc2U8dm9pZD4pfSAqL1xuICBsZXQgdGVzdEZ1bmN0aW9uXG5cbiAgaWYgKHR5cGVvZiBhcmcxID09IFwiZnVuY3Rpb25cIikge1xuICAgIHRlc3RGdW5jdGlvbiA9IGFyZzFcbiAgICB0ZXN0QXJncyA9IHt9XG4gIH0gZWxzZSBpZiAodHlwZW9mIGFyZzIgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdGVzdEZ1bmN0aW9uID0gYXJnMlxuICAgIHRlc3RBcmdzID0gYXJnMVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhcmd1bWVudHMgZm9yIGl0OiAke2Rlc2NyaXB0aW9ufSwgJHthcmcxfWApXG4gIH1cblxuICBjb25zdCBuZXdUZXN0QXJncyA9IE9iamVjdC5hc3NpZ24oe30sIGN1cnJlbnRUZXN0LmFyZ3MsIHRlc3RBcmdzKVxuXG4gIGN1cnJlbnRUZXN0LnRlc3RzW2Rlc2NyaXB0aW9uXSA9IHthcmdzOiBuZXdUZXN0QXJncywgZnVuY3Rpb246IHRlc3RGdW5jdGlvbn1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gZGVzY3JpcHRpb25cbiAqIEBwYXJhbSB7b2JqZWN0fCgoKSA9PiAodm9pZHxQcm9taXNlPHZvaWQ+KSl9IGFyZzFcbiAqIEBwYXJhbSB7dW5kZWZpbmVkfCgoKSA9PiAodm9pZHxQcm9taXNlPHZvaWQ+KSl9IFthcmcyXVxuICogQHJldHVybnMge3ZvaWR9IC0gUmVzdWx0LlxuICovXG5mdW5jdGlvbiBmaXQoZGVzY3JpcHRpb24sIGFyZzEsIGFyZzIpIHtcbiAgbGV0IHRlc3RBcmdzXG5cbiAgLyoqIEB0eXBlIHsoKSA9PiAodm9pZHxQcm9taXNlPHZvaWQ+KX0gKi9cbiAgbGV0IHRlc3RGdW5jdGlvblxuXG4gIGlmICh0eXBlb2YgYXJnMSA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB0ZXN0RnVuY3Rpb24gPSBhcmcxXG4gICAgdGVzdEFyZ3MgPSB7Zm9jdXM6IHRydWV9XG4gIH0gZWxzZSBpZiAodHlwZW9mIGFyZzIgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdGVzdEZ1bmN0aW9uID0gYXJnMlxuICAgIHRlc3RBcmdzID0gT2JqZWN0LmFzc2lnbih7Zm9jdXM6IHRydWV9LCBhcmcxKVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhcmd1bWVudHMgZm9yIGl0OiAke2Rlc2NyaXB0aW9ufSwgJHthcmcxfWApXG4gIH1cblxuICByZXR1cm4gaXQoZGVzY3JpcHRpb24sIHRlc3RBcmdzLCB0ZXN0RnVuY3Rpb24pXG59XG5cbi8vIE1ha2UgdGhlIG1ldGhvZHMgZ2xvYmFsIHNvIHRoZXkgY2FuIGJlIHVzZWQgaW4gdGVzdCBmaWxlc1xuZ2xvYmFsVGhpcy5hZnRlckVhY2ggPSBhZnRlckVhY2hcbmdsb2JhbFRoaXMuYmVmb3JlRWFjaCA9IGJlZm9yZUVhY2hcbmdsb2JhbFRoaXMuZGVzY3JpYmUgPSBkZXNjcmliZVxuZ2xvYmFsVGhpcy5leHBlY3QgPSBleHBlY3Rcbmdsb2JhbFRoaXMuaXQgPSBpdFxuZ2xvYmFsVGhpcy5maXQgPSBmaXRcblxuZXhwb3J0IHthZnRlckVhY2gsIGJlZm9yZUVhY2gsIGRlc2NyaWJlLCBleHBlY3QsIGZpdCwgaXQsIHRlc3RzfVxuIl19
@@ -1,7 +1,7 @@
1
1
  export default class BacktraceCleaner {
2
2
  /**
3
3
  * @param {Error} error
4
- * @returns {string | undefined}
4
+ * @returns {string | undefined} - Result.
5
5
  */
6
6
  static getCleanedStack(error: Error): string | undefined;
7
7
  /**
@@ -10,7 +10,7 @@ export default class BacktraceCleaner {
10
10
  constructor(error: Error);
11
11
  error: Error;
12
12
  /**
13
- * @returns {string | undefined}
13
+ * @returns {string | undefined} - Result.
14
14
  */
15
15
  getCleanedStack(): string | undefined;
16
16
  }
@@ -2,7 +2,7 @@
2
2
  export default class BacktraceCleaner {
3
3
  /**
4
4
  * @param {Error} error
5
- * @returns {string | undefined}
5
+ * @returns {string | undefined} - Result.
6
6
  */
7
7
  static getCleanedStack(error) {
8
8
  return new BacktraceCleaner(error).getCleanedStack();
@@ -14,11 +14,11 @@ export default class BacktraceCleaner {
14
14
  this.error = error;
15
15
  }
16
16
  /**
17
- * @returns {string | undefined}
17
+ * @returns {string | undefined} - Result.
18
18
  */
19
19
  getCleanedStack() {
20
20
  const backtrace = this.error?.stack?.split("\n");
21
21
  return backtrace?.filter((line) => !line.includes("node_modules") && !line.includes("(node:internal/process/")).join("\n");
22
22
  }
23
23
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3RyYWNlLWNsZWFuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvYmFja3RyYWNlLWNsZWFuZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE1BQU0sQ0FBQyxPQUFPLE9BQU8sZ0JBQWdCO0lBQ25DOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSztRQUMxQixPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxLQUFLO1FBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNiLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVoRCxPQUFPLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM1SCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFja3RyYWNlQ2xlYW5lciB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge0Vycm9yfSBlcnJvclxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgc3RhdGljIGdldENsZWFuZWRTdGFjayhlcnJvcikge1xuICAgIHJldHVybiBuZXcgQmFja3RyYWNlQ2xlYW5lcihlcnJvcikuZ2V0Q2xlYW5lZFN0YWNrKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0Vycm9yfSBlcnJvclxuICAgKi9cbiAgY29uc3RydWN0b3IoZXJyb3IpIHtcbiAgICB0aGlzLmVycm9yID0gZXJyb3JcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgZ2V0Q2xlYW5lZFN0YWNrKCkge1xuICAgIGNvbnN0IGJhY2t0cmFjZSA9IHRoaXMuZXJyb3I/LnN0YWNrPy5zcGxpdChcIlxcblwiKVxuXG4gICAgcmV0dXJuIGJhY2t0cmFjZT8uZmlsdGVyKChsaW5lKSA9PiAhbGluZS5pbmNsdWRlcyhcIm5vZGVfbW9kdWxlc1wiKSAmJiAhbGluZS5pbmNsdWRlcyhcIihub2RlOmludGVybmFsL3Byb2Nlc3MvXCIpKS5qb2luKFwiXFxuXCIpXG4gIH1cbn1cbiJdfQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3RyYWNlLWNsZWFuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvYmFja3RyYWNlLWNsZWFuZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE1BQU0sQ0FBQyxPQUFPLE9BQU8sZ0JBQWdCO0lBQ25DOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSztRQUMxQixPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxLQUFLO1FBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNiLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVoRCxPQUFPLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM1SCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFja3RyYWNlQ2xlYW5lciB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge0Vycm9yfSBlcnJvclxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfSAtIFJlc3VsdC5cbiAgICovXG4gIHN0YXRpYyBnZXRDbGVhbmVkU3RhY2soZXJyb3IpIHtcbiAgICByZXR1cm4gbmV3IEJhY2t0cmFjZUNsZWFuZXIoZXJyb3IpLmdldENsZWFuZWRTdGFjaygpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtFcnJvcn0gZXJyb3JcbiAgICovXG4gIGNvbnN0cnVjdG9yKGVycm9yKSB7XG4gICAgdGhpcy5lcnJvciA9IGVycm9yXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH0gLSBSZXN1bHQuXG4gICAqL1xuICBnZXRDbGVhbmVkU3RhY2soKSB7XG4gICAgY29uc3QgYmFja3RyYWNlID0gdGhpcy5lcnJvcj8uc3RhY2s/LnNwbGl0KFwiXFxuXCIpXG5cbiAgICByZXR1cm4gYmFja3RyYWNlPy5maWx0ZXIoKGxpbmUpID0+ICFsaW5lLmluY2x1ZGVzKFwibm9kZV9tb2R1bGVzXCIpICYmICFsaW5lLmluY2x1ZGVzKFwiKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy9cIikpLmpvaW4oXCJcXG5cIilcbiAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @param {any} error
3
- * @returns {Error}
3
+ * @returns {Error} - Result.
4
4
  */
5
5
  export default function ensureError(error: any): Error;
6
6
  //# sourceMappingURL=ensure-error.d.ts.map
@@ -1,7 +1,7 @@
1
1
  // @ts-check
2
2
  /**
3
3
  * @param {any} error
4
- * @returns {Error}
4
+ * @returns {Error} - Result.
5
5
  */
6
6
  export default function ensureError(error) {
7
7
  if (error instanceof Error) {
@@ -11,4 +11,4 @@ export default function ensureError(error) {
11
11
  return new Error(`Unknown error type ${typeof error}: ${error}`);
12
12
  }
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2Vuc3VyZS1lcnJvci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVo7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxXQUFXLENBQUMsS0FBSztJQUN2QyxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztRQUMzQixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsT0FBTyxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKipcbiAqIEBwYXJhbSB7YW55fSBlcnJvclxuICogQHJldHVybnMge0Vycm9yfVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBlbnN1cmVFcnJvcihlcnJvcikge1xuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgIHJldHVybiBlcnJvclxuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgRXJyb3IoYFVua25vd24gZXJyb3IgdHlwZSAke3R5cGVvZiBlcnJvcn06ICR7ZXJyb3J9YClcbiAgfVxufVxuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2Vuc3VyZS1lcnJvci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVo7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxXQUFXLENBQUMsS0FBSztJQUN2QyxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztRQUMzQixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsT0FBTyxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKipcbiAqIEBwYXJhbSB7YW55fSBlcnJvclxuICogQHJldHVybnMge0Vycm9yfSAtIFJlc3VsdC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZW5zdXJlRXJyb3IoZXJyb3IpIHtcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3JcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV3IEVycm9yKGBVbmtub3duIGVycm9yIHR5cGUgJHt0eXBlb2YgZXJyb3J9OiAke2Vycm9yfWApXG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @param {string} path
3
- * @returns {Promise<boolean>}
3
+ * @returns {Promise<boolean>} - Result.
4
4
  */
5
5
  export default function fileExists(path: string): Promise<boolean>;
6
6
  //# sourceMappingURL=file-exists.d.ts.map
@@ -2,7 +2,7 @@
2
2
  import fs from "fs/promises";
3
3
  /**
4
4
  * @param {string} path
5
- * @returns {Promise<boolean>}
5
+ * @returns {Promise<boolean>} - Result.
6
6
  */
7
7
  export default async function fileExists(path) {
8
8
  try {
@@ -13,4 +13,4 @@ export default async function fileExists(path) {
13
13
  return false;
14
14
  }
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1leGlzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZmlsZS1leGlzdHMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUU1Qjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssVUFBVSxVQUFVLENBQUMsSUFBSTtJQUMzQyxJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFckIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLHFDQUFxQztRQUNyRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIlxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gZmlsZUV4aXN0cyhwYXRoKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMuYWNjZXNzKHBhdGgpXG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9IGNhdGNoIChlcnJvcikgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1leGlzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZmlsZS1leGlzdHMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUU1Qjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssVUFBVSxVQUFVLENBQUMsSUFBSTtJQUMzQyxJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFckIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLHFDQUFxQztRQUNyRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIlxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gLSBSZXN1bHQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGZpbGVFeGlzdHMocGF0aCkge1xuICB0cnkge1xuICAgIGF3YWl0IGZzLmFjY2VzcyhwYXRoKVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @param {Array<(next: () => Promise<void>) => void | Promise<void>>} callbacksToNestInside
3
3
  * @param {() => void | Promise<void>} callback
4
- * @returns {Promise<void>}
4
+ * @returns {Promise<void>} - Result.
5
5
  */
6
6
  export default function nestCallbacks(callbacksToNestInside: Array<(next: () => Promise<void>) => void | Promise<void>>, callback: () => void | Promise<void>): Promise<void>;
7
7
  //# sourceMappingURL=nest-callbacks.d.ts.map
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @param {Array<(next: () => Promise<void>) => void | Promise<void>>} callbacksToNestInside
3
3
  * @param {() => void | Promise<void>} callback
4
- * @returns {Promise<void>}
4
+ * @returns {Promise<void>} - Result.
5
5
  */
6
6
  export default async function nestCallbacks(callbacksToNestInside, callback) {
7
7
  const baseCallback = async () => { await callback(); };
@@ -15,4 +15,4 @@ export default async function nestCallbacks(callbacksToNestInside, callback) {
15
15
  }
16
16
  await runCallback();
17
17
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdC1jYWxsYmFja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvbmVzdC1jYWxsYmFja3MuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxRQUFRO0lBQ3pFLE1BQU0sWUFBWSxHQUFHLEtBQUssSUFBSSxFQUFFLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQTtJQUNyRCxJQUFJLFdBQVcsR0FBRyxZQUFZLENBQUE7SUFFOUIsS0FBSyxNQUFNLG9CQUFvQixJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDekQsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUE7UUFFckMsTUFBTSxjQUFjLEdBQUcsS0FBSyxJQUFJLEVBQUU7WUFDaEMsTUFBTSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQy9DLENBQUMsQ0FBQTtRQUVELFdBQVcsR0FBRyxjQUFjLENBQUE7SUFDOUIsQ0FBQztJQUVELE1BQU0sV0FBVyxFQUFFLENBQUE7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhcmFtIHtBcnJheTwobmV4dDogKCkgPT4gUHJvbWlzZTx2b2lkPikgPT4gdm9pZCB8IFByb21pc2U8dm9pZD4+fSBjYWxsYmFja3NUb05lc3RJbnNpZGVcbiAqIEBwYXJhbSB7KCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD59IGNhbGxiYWNrXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gbmVzdENhbGxiYWNrcyhjYWxsYmFja3NUb05lc3RJbnNpZGUsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGJhc2VDYWxsYmFjayA9IGFzeW5jICgpID0+IHsgYXdhaXQgY2FsbGJhY2soKSB9XG4gIGxldCBydW5DYWxsYmFjayA9IGJhc2VDYWxsYmFja1xuXG4gIGZvciAoY29uc3QgY2FsbGJhY2tUb05lc3RJbnNpZGUgb2YgY2FsbGJhY2tzVG9OZXN0SW5zaWRlKSB7XG4gICAgY29uc3QgYWN0dWFsUnVuQ2FsbGJhY2sgPSBydW5DYWxsYmFja1xuXG4gICAgY29uc3QgbmV4dFJ1blJlcXVlc3QgPSBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBjYWxsYmFja1RvTmVzdEluc2lkZShhY3R1YWxSdW5DYWxsYmFjaylcbiAgICB9XG5cbiAgICBydW5DYWxsYmFjayA9IG5leHRSdW5SZXF1ZXN0XG4gIH1cblxuICBhd2FpdCBydW5DYWxsYmFjaygpXG59XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdC1jYWxsYmFja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvbmVzdC1jYWxsYmFja3MuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxRQUFRO0lBQ3pFLE1BQU0sWUFBWSxHQUFHLEtBQUssSUFBSSxFQUFFLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQTtJQUNyRCxJQUFJLFdBQVcsR0FBRyxZQUFZLENBQUE7SUFFOUIsS0FBSyxNQUFNLG9CQUFvQixJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDekQsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUE7UUFFckMsTUFBTSxjQUFjLEdBQUcsS0FBSyxJQUFJLEVBQUU7WUFDaEMsTUFBTSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQy9DLENBQUMsQ0FBQTtRQUVELFdBQVcsR0FBRyxjQUFjLENBQUE7SUFDOUIsQ0FBQztJQUVELE1BQU0sV0FBVyxFQUFFLENBQUE7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhcmFtIHtBcnJheTwobmV4dDogKCkgPT4gUHJvbWlzZTx2b2lkPikgPT4gdm9pZCB8IFByb21pc2U8dm9pZD4+fSBjYWxsYmFja3NUb05lc3RJbnNpZGVcbiAqIEBwYXJhbSB7KCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD59IGNhbGxiYWNrXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXN1bHQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIG5lc3RDYWxsYmFja3MoY2FsbGJhY2tzVG9OZXN0SW5zaWRlLCBjYWxsYmFjaykge1xuICBjb25zdCBiYXNlQ2FsbGJhY2sgPSBhc3luYyAoKSA9PiB7IGF3YWl0IGNhbGxiYWNrKCkgfVxuICBsZXQgcnVuQ2FsbGJhY2sgPSBiYXNlQ2FsbGJhY2tcblxuICBmb3IgKGNvbnN0IGNhbGxiYWNrVG9OZXN0SW5zaWRlIG9mIGNhbGxiYWNrc1RvTmVzdEluc2lkZSkge1xuICAgIGNvbnN0IGFjdHVhbFJ1bkNhbGxiYWNrID0gcnVuQ2FsbGJhY2tcblxuICAgIGNvbnN0IG5leHRSdW5SZXF1ZXN0ID0gYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgY2FsbGJhY2tUb05lc3RJbnNpZGUoYWN0dWFsUnVuQ2FsbGJhY2spXG4gICAgfVxuXG4gICAgcnVuQ2FsbGJhY2sgPSBuZXh0UnVuUmVxdWVzdFxuICB9XG5cbiAgYXdhaXQgcnVuQ2FsbGJhY2soKVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @param {object} restArgs
3
- * @returns {void}
3
+ * @returns {void} - Result.
4
4
  */
5
5
  export default function restArgsError(restArgs: object): void;
6
6
  //# sourceMappingURL=rest-args-error.d.ts.map
@@ -1,7 +1,7 @@
1
1
  // @ts-check
2
2
  /**
3
3
  * @param {object} restArgs
4
- * @returns {void}
4
+ * @returns {void} - Result.
5
5
  */
6
6
  export default function restArgsError(restArgs) {
7
7
  const restArgsKeys = Object.keys(restArgs);
@@ -9,4 +9,4 @@ export default function restArgsError(restArgs) {
9
9
  throw new Error(`Unknown arguments: ${restArgsKeys.join(", ")}`);
10
10
  }
11
11
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1hcmdzLWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVo7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxhQUFhLENBQUMsUUFBUTtJQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRTFDLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSByZXN0QXJnc1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpIHtcbiAgY29uc3QgcmVzdEFyZ3NLZXlzID0gT2JqZWN0LmtleXMocmVzdEFyZ3MpXG5cbiAgaWYgKHJlc3RBcmdzS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGFyZ3VtZW50czogJHtyZXN0QXJnc0tleXMuam9pbihcIiwgXCIpfWApXG4gIH1cbn1cbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1hcmdzLWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVo7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxhQUFhLENBQUMsUUFBUTtJQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRTFDLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSByZXN0QXJnc1xuICogQHJldHVybnMge3ZvaWR9IC0gUmVzdWx0LlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKSB7XG4gIGNvbnN0IHJlc3RBcmdzS2V5cyA9IE9iamVjdC5rZXlzKHJlc3RBcmdzKVxuXG4gIGlmIChyZXN0QXJnc0tleXMubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBhcmd1bWVudHM6ICR7cmVzdEFyZ3NLZXlzLmpvaW4oXCIsIFwiKX1gKVxuICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @param {string} modelName
3
- * @returns {string}
3
+ * @returns {string} - Result.
4
4
  */
5
5
  export default function singularizeModelName(modelName: string): string;
6
6
  //# sourceMappingURL=singularize-model-name.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import * as inflection from "inflection";
2
2
  /**
3
3
  * @param {string} modelName
4
- * @returns {string}
4
+ * @returns {string} - Result.
5
5
  */
6
6
  export default function singularizeModelName(modelName) {
7
7
  const words = inflection.underscore(modelName).split("_");
@@ -12,4 +12,4 @@ export default function singularizeModelName(modelName) {
12
12
  const singularizedClassName = inflection.camelize(`${words.join("_")}_${lastSingularizedWord}`);
13
13
  return singularizedClassName;
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ3VsYXJpemUtbW9kZWwtbmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9zaW5ndWxhcml6ZS1tb2RlbC1uYW1lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBRXhDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxPQUFPLFVBQVUsb0JBQW9CLENBQUMsU0FBUztJQUNwRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN6RCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUE7SUFFNUIsSUFBSSxDQUFDLFFBQVE7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFL0QsTUFBTSxvQkFBb0IsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzdELE1BQU0scUJBQXFCLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksb0JBQW9CLEVBQUUsQ0FBQyxDQUFBO0lBRS9GLE9BQU8scUJBQXFCLENBQUE7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBtb2RlbE5hbWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNpbmd1bGFyaXplTW9kZWxOYW1lKG1vZGVsTmFtZSkge1xuICBjb25zdCB3b3JkcyA9IGluZmxlY3Rpb24udW5kZXJzY29yZShtb2RlbE5hbWUpLnNwbGl0KFwiX1wiKVxuICBjb25zdCBsYXN0V29yZCA9IHdvcmRzLnBvcCgpXG5cbiAgaWYgKCFsYXN0V29yZCkgdGhyb3cgbmV3IEVycm9yKGBObyB3b3Jkcz8gJHt3b3Jkcy5qb2luKFwiLCBcIil9YClcblxuICBjb25zdCBsYXN0U2luZ3VsYXJpemVkV29yZCA9IGluZmxlY3Rpb24uc2luZ3VsYXJpemUobGFzdFdvcmQpXG4gIGNvbnN0IHNpbmd1bGFyaXplZENsYXNzTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUoYCR7d29yZHMuam9pbihcIl9cIil9XyR7bGFzdFNpbmd1bGFyaXplZFdvcmR9YClcblxuICByZXR1cm4gc2luZ3VsYXJpemVkQ2xhc3NOYW1lXG59XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ3VsYXJpemUtbW9kZWwtbmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9zaW5ndWxhcml6ZS1tb2RlbC1uYW1lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBRXhDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxPQUFPLFVBQVUsb0JBQW9CLENBQUMsU0FBUztJQUNwRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN6RCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUE7SUFFNUIsSUFBSSxDQUFDLFFBQVE7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFL0QsTUFBTSxvQkFBb0IsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzdELE1BQU0scUJBQXFCLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksb0JBQW9CLEVBQUUsQ0FBQyxDQUFBO0lBRS9GLE9BQU8scUJBQXFCLENBQUE7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBtb2RlbE5hbWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gUmVzdWx0LlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzaW5ndWxhcml6ZU1vZGVsTmFtZShtb2RlbE5hbWUpIHtcbiAgY29uc3Qgd29yZHMgPSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUobW9kZWxOYW1lKS5zcGxpdChcIl9cIilcbiAgY29uc3QgbGFzdFdvcmQgPSB3b3Jkcy5wb3AoKVxuXG4gIGlmICghbGFzdFdvcmQpIHRocm93IG5ldyBFcnJvcihgTm8gd29yZHM/ICR7d29yZHMuam9pbihcIiwgXCIpfWApXG5cbiAgY29uc3QgbGFzdFNpbmd1bGFyaXplZFdvcmQgPSBpbmZsZWN0aW9uLnNpbmd1bGFyaXplKGxhc3RXb3JkKVxuICBjb25zdCBzaW5ndWxhcml6ZWRDbGFzc05hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKGAke3dvcmRzLmpvaW4oXCJfXCIpfV8ke2xhc3RTaW5ndWxhcml6ZWRXb3JkfWApXG5cbiAgcmV0dXJuIHNpbmd1bGFyaXplZENsYXNzTmFtZVxufVxuIl19
@@ -4,7 +4,7 @@ export function addTrackedStackToError(error: Error): void;
4
4
  *
5
5
  * @param {() => Promise<void> | string} arg1
6
6
  * @param {() => Promise<void> | Error} [arg2]
7
- * @returns {Promise<void>}
7
+ * @returns {Promise<void>} - Result.
8
8
  */
9
9
  export function withTrackedStack(arg1: () => Promise<void> | string, arg2?: () => Promise<void> | Error): Promise<void>;
10
10
  //# sourceMappingURL=with-tracked-stack-async-hooks.d.ts.map
@@ -24,7 +24,7 @@ function addTrackedStackToError(error) {
24
24
  *
25
25
  * @param {() => Promise<void> | string} arg1
26
26
  * @param {() => Promise<void> | Error} [arg2]
27
- * @returns {Promise<void>}
27
+ * @returns {Promise<void>} - Result.
28
28
  */
29
29
  async function withTrackedStack(arg1, arg2) {
30
30
  /** @type {() => Promise<void>} */
@@ -67,4 +67,4 @@ else {
67
67
  globalThis.withTrackedStack = { addTrackedStackToError, withTrackedStack };
68
68
  }
69
69
  export { addTrackedStackToError, withTrackedStack };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC10cmFja2VkLXN0YWNrLWFzeW5jLWhvb2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3dpdGgtdHJhY2tlZC1zdGFjay1hc3luYy1ob29rcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sYUFBYSxDQUFBO0FBRTdDLDZEQUE2RDtBQUM3RCxJQUFJLGlCQUFpQixDQUFBO0FBRXJCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztJQUN0QixpQkFBaUIsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUE7QUFDN0MsQ0FBQztBQUVELDJCQUEyQjtBQUMzQixTQUFTLHNCQUFzQixDQUFDLEtBQUs7SUFDbkMsZ0JBQWdCO0lBQ2hCLElBQUksQ0FBQyxpQkFBaUI7UUFBRSxPQUFNO0lBRTlCLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUN2RCxNQUFNLG9CQUFvQixHQUFHLEVBQUUsQ0FBQTtJQUUvQixLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLEtBQUssTUFBTSxlQUFlLElBQUksV0FBVyxFQUFFLENBQUM7WUFDMUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBRUQsK0RBQStEO0lBQy9ELEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUN2RCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUk7SUFDeEMsa0NBQWtDO0lBQ2xDLElBQUksUUFBUSxDQUFBO0lBRVoscUJBQXFCO0lBQ3JCLElBQUksS0FBSyxDQUFBO0lBRVQsSUFBSSxPQUFPLElBQUksSUFBSSxVQUFVLElBQUksT0FBTyxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7UUFDekQsbUJBQW1CO1FBQ25CLFFBQVEsR0FBRyxJQUFJLENBQUE7UUFDZixLQUFLLEdBQUcsSUFBSSxDQUFBO0lBQ2QsQ0FBQztTQUFNLENBQUM7UUFDTixtQkFBbUI7UUFDbkIsUUFBUSxHQUFHLElBQUksQ0FBQTtRQUNmLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsSUFBSSxDQUFDLGlCQUFpQjtRQUFFLE9BQU8sTUFBTSxRQUFRLEVBQUUsQ0FBQTtJQUUvQyxNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUE7SUFDdkQsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUE7SUFDL0IsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRTNDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLDBCQUEwQixDQUFBO0lBRWpELEtBQUssSUFBSSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNuRCxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUV0QyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFdkMsSUFBSSxTQUFTLElBQUksMEJBQTBCLEVBQUUsQ0FBQztZQUM1QyxNQUFLO1FBQ1AsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUE7SUFFekQsTUFBTSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2hELE1BQU0sUUFBUSxFQUFFLENBQUE7SUFDbEIsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxDQUFDLENBQUE7QUFDakUsQ0FBQztLQUFNLENBQUM7SUFDTixVQUFVLENBQUMsZ0JBQWdCLEdBQUcsRUFBQyxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBQyxDQUFBO0FBQzFFLENBQUM7QUFFRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQge0FzeW5jTG9jYWxTdG9yYWdlfSBmcm9tIFwiYXN5bmNfaG9va3NcIlxuXG4vKiogQHR5cGUge0FzeW5jTG9jYWxTdG9yYWdlPEFycmF5PHN0cmluZ1tdPj4gfCB1bmRlZmluZWR9ICovXG5sZXQgYXN5bmNMb2NhbFN0b3JhZ2VcblxuaWYgKEFzeW5jTG9jYWxTdG9yYWdlKSB7XG4gIGFzeW5jTG9jYWxTdG9yYWdlID0gbmV3IEFzeW5jTG9jYWxTdG9yYWdlKClcbn1cblxuLyoqIEBwYXJhbSB7RXJyb3J9IGVycm9yICovXG5mdW5jdGlvbiBhZGRUcmFja2VkU3RhY2tUb0Vycm9yKGVycm9yKSB7XG4gIC8vIE5vdCBzdXBwb3J0ZWRcbiAgaWYgKCFhc3luY0xvY2FsU3RvcmFnZSkgcmV0dXJuXG5cbiAgY29uc3QgcGFyZW50U3RhY2tzID0gYXN5bmNMb2NhbFN0b3JhZ2UuZ2V0U3RvcmUoKSB8fCBbXVxuICBjb25zdCBhZGRpdGlvbmFsU3RhY2tMaW5lcyA9IFtdXG5cbiAgZm9yIChjb25zdCBwYXJlbnRTdGFjayBvZiBwYXJlbnRTdGFja3MpIHtcbiAgICBmb3IgKGNvbnN0IHBhcmVudFN0YWNrTGluZSBvZiBwYXJlbnRTdGFjaykge1xuICAgICAgYWRkaXRpb25hbFN0YWNrTGluZXMucHVzaChwYXJlbnRTdGFja0xpbmUpXG4gICAgfVxuICB9XG5cbiAgLy8gUmVwbGFjZSB0aGUgZXJyb3IgbWVzc2FnZSBvbiB0aGUgZmlyc3QgbGluZSB3aXRoIHRoaXMgc3RyaW5nXG4gIGVycm9yLnN0YWNrICs9IFwiXFxuXCIgKyBhZGRpdGlvbmFsU3RhY2tMaW5lcy5qb2luKFwiXFxuXCIpXG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7KCkgPT4gUHJvbWlzZTx2b2lkPiB8IHN0cmluZ30gYXJnMVxuICogQHBhcmFtIHsoKSA9PiBQcm9taXNlPHZvaWQ+IHwgRXJyb3J9IFthcmcyXVxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHdpdGhUcmFja2VkU3RhY2soYXJnMSwgYXJnMikge1xuICAvKiogQHR5cGUgeygpID0+IFByb21pc2U8dm9pZD59ICovXG4gIGxldCBjYWxsYmFja1xuXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQgc3RhY2tcblxuICBpZiAodHlwZW9mIGFyZzIgPT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBhcmcxID09IFwic3RyaW5nXCIpIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgY2FsbGJhY2sgPSBhcmcyXG4gICAgc3RhY2sgPSBhcmcxXG4gIH0gZWxzZSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIGNhbGxiYWNrID0gYXJnMVxuICAgIHN0YWNrID0gRXJyb3IoKS5zdGFjayB8fCBcIlwiXG4gIH1cblxuICAvLyBOb3Qgc3VwcG9ydGVkXG4gIGlmICghYXN5bmNMb2NhbFN0b3JhZ2UpIHJldHVybiBhd2FpdCBjYWxsYmFjaygpXG5cbiAgY29uc3QgcGFyZW50U3RhY2tzID0gYXN5bmNMb2NhbFN0b3JhZ2UuZ2V0U3RvcmUoKSB8fCBbXVxuICBjb25zdCBhZGRpdGlvbmFsU3RhY2tMaW5lcyA9IFtdXG4gIGNvbnN0IGN1cnJlbnRTdGFja0xpbmVzID0gc3RhY2suc3BsaXQoXCJcXG5cIilcblxuICBjdXJyZW50U3RhY2tMaW5lc1swXSA9IFwiICAgIFtXSVRIIFRSQUNLRUQgU1RBQ0tdXCJcblxuICBmb3IgKGxldCBpID0gY3VycmVudFN0YWNrTGluZXMubGVuZ3RoOyBpID49IDA7IGktLSkge1xuICAgIGNvbnN0IHN0YWNrTGluZSA9IGN1cnJlbnRTdGFja0xpbmVzW2ldXG5cbiAgICBhZGRpdGlvbmFsU3RhY2tMaW5lcy51bnNoaWZ0KHN0YWNrTGluZSlcblxuICAgIGlmIChzdGFja0xpbmUgPT0gXCIgICAgW1dJVEggVFJBQ0tFRCBTVEFDS11cIikge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBjb25zdCBuZXdTdGFja3MgPSBbYWRkaXRpb25hbFN0YWNrTGluZXMsIC4uLnBhcmVudFN0YWNrc11cblxuICBhd2FpdCBhc3luY0xvY2FsU3RvcmFnZS5ydW4obmV3U3RhY2tzLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgY2FsbGJhY2soKVxuICB9KVxufVxuXG5pZiAoZ2xvYmFsVGhpcy53aXRoVHJhY2tlZFN0YWNrKSB7XG4gIGNvbnNvbGUud2FybihcImdsb2JhbFRoaXMud2l0aFRyYWNrZWRTdGFjayB3YXMgYWxyZWFkeSBkZWZpbmVkXCIpXG59IGVsc2Uge1xuICBnbG9iYWxUaGlzLndpdGhUcmFja2VkU3RhY2sgPSB7YWRkVHJhY2tlZFN0YWNrVG9FcnJvciwgd2l0aFRyYWNrZWRTdGFja31cbn1cblxuZXhwb3J0IHthZGRUcmFja2VkU3RhY2tUb0Vycm9yLCB3aXRoVHJhY2tlZFN0YWNrfVxuIl19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC10cmFja2VkLXN0YWNrLWFzeW5jLWhvb2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3dpdGgtdHJhY2tlZC1zdGFjay1hc3luYy1ob29rcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sYUFBYSxDQUFBO0FBRTdDLDZEQUE2RDtBQUM3RCxJQUFJLGlCQUFpQixDQUFBO0FBRXJCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztJQUN0QixpQkFBaUIsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUE7QUFDN0MsQ0FBQztBQUVELDJCQUEyQjtBQUMzQixTQUFTLHNCQUFzQixDQUFDLEtBQUs7SUFDbkMsZ0JBQWdCO0lBQ2hCLElBQUksQ0FBQyxpQkFBaUI7UUFBRSxPQUFNO0lBRTlCLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUN2RCxNQUFNLG9CQUFvQixHQUFHLEVBQUUsQ0FBQTtJQUUvQixLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLEtBQUssTUFBTSxlQUFlLElBQUksV0FBVyxFQUFFLENBQUM7WUFDMUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBRUQsK0RBQStEO0lBQy9ELEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUN2RCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUk7SUFDeEMsa0NBQWtDO0lBQ2xDLElBQUksUUFBUSxDQUFBO0lBRVoscUJBQXFCO0lBQ3JCLElBQUksS0FBSyxDQUFBO0lBRVQsSUFBSSxPQUFPLElBQUksSUFBSSxVQUFVLElBQUksT0FBTyxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7UUFDekQsbUJBQW1CO1FBQ25CLFFBQVEsR0FBRyxJQUFJLENBQUE7UUFDZixLQUFLLEdBQUcsSUFBSSxDQUFBO0lBQ2QsQ0FBQztTQUFNLENBQUM7UUFDTixtQkFBbUI7UUFDbkIsUUFBUSxHQUFHLElBQUksQ0FBQTtRQUNmLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsSUFBSSxDQUFDLGlCQUFpQjtRQUFFLE9BQU8sTUFBTSxRQUFRLEVBQUUsQ0FBQTtJQUUvQyxNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUE7SUFDdkQsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUE7SUFDL0IsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRTNDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLDBCQUEwQixDQUFBO0lBRWpELEtBQUssSUFBSSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNuRCxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUV0QyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFdkMsSUFBSSxTQUFTLElBQUksMEJBQTBCLEVBQUUsQ0FBQztZQUM1QyxNQUFLO1FBQ1AsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUE7SUFFekQsTUFBTSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2hELE1BQU0sUUFBUSxFQUFFLENBQUE7SUFDbEIsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxDQUFDLENBQUE7QUFDakUsQ0FBQztLQUFNLENBQUM7SUFDTixVQUFVLENBQUMsZ0JBQWdCLEdBQUcsRUFBQyxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBQyxDQUFBO0FBQzFFLENBQUM7QUFFRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQge0FzeW5jTG9jYWxTdG9yYWdlfSBmcm9tIFwiYXN5bmNfaG9va3NcIlxuXG4vKiogQHR5cGUge0FzeW5jTG9jYWxTdG9yYWdlPEFycmF5PHN0cmluZ1tdPj4gfCB1bmRlZmluZWR9ICovXG5sZXQgYXN5bmNMb2NhbFN0b3JhZ2VcblxuaWYgKEFzeW5jTG9jYWxTdG9yYWdlKSB7XG4gIGFzeW5jTG9jYWxTdG9yYWdlID0gbmV3IEFzeW5jTG9jYWxTdG9yYWdlKClcbn1cblxuLyoqIEBwYXJhbSB7RXJyb3J9IGVycm9yICovXG5mdW5jdGlvbiBhZGRUcmFja2VkU3RhY2tUb0Vycm9yKGVycm9yKSB7XG4gIC8vIE5vdCBzdXBwb3J0ZWRcbiAgaWYgKCFhc3luY0xvY2FsU3RvcmFnZSkgcmV0dXJuXG5cbiAgY29uc3QgcGFyZW50U3RhY2tzID0gYXN5bmNMb2NhbFN0b3JhZ2UuZ2V0U3RvcmUoKSB8fCBbXVxuICBjb25zdCBhZGRpdGlvbmFsU3RhY2tMaW5lcyA9IFtdXG5cbiAgZm9yIChjb25zdCBwYXJlbnRTdGFjayBvZiBwYXJlbnRTdGFja3MpIHtcbiAgICBmb3IgKGNvbnN0IHBhcmVudFN0YWNrTGluZSBvZiBwYXJlbnRTdGFjaykge1xuICAgICAgYWRkaXRpb25hbFN0YWNrTGluZXMucHVzaChwYXJlbnRTdGFja0xpbmUpXG4gICAgfVxuICB9XG5cbiAgLy8gUmVwbGFjZSB0aGUgZXJyb3IgbWVzc2FnZSBvbiB0aGUgZmlyc3QgbGluZSB3aXRoIHRoaXMgc3RyaW5nXG4gIGVycm9yLnN0YWNrICs9IFwiXFxuXCIgKyBhZGRpdGlvbmFsU3RhY2tMaW5lcy5qb2luKFwiXFxuXCIpXG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7KCkgPT4gUHJvbWlzZTx2b2lkPiB8IHN0cmluZ30gYXJnMVxuICogQHBhcmFtIHsoKSA9PiBQcm9taXNlPHZvaWQ+IHwgRXJyb3J9IFthcmcyXVxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzdWx0LlxuICovXG5hc3luYyBmdW5jdGlvbiB3aXRoVHJhY2tlZFN0YWNrKGFyZzEsIGFyZzIpIHtcbiAgLyoqIEB0eXBlIHsoKSA9PiBQcm9taXNlPHZvaWQ+fSAqL1xuICBsZXQgY2FsbGJhY2tcblxuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IHN0YWNrXG5cbiAgaWYgKHR5cGVvZiBhcmcyID09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgYXJnMSA9PSBcInN0cmluZ1wiKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIGNhbGxiYWNrID0gYXJnMlxuICAgIHN0YWNrID0gYXJnMVxuICB9IGVsc2Uge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBjYWxsYmFjayA9IGFyZzFcbiAgICBzdGFjayA9IEVycm9yKCkuc3RhY2sgfHwgXCJcIlxuICB9XG5cbiAgLy8gTm90IHN1cHBvcnRlZFxuICBpZiAoIWFzeW5jTG9jYWxTdG9yYWdlKSByZXR1cm4gYXdhaXQgY2FsbGJhY2soKVxuXG4gIGNvbnN0IHBhcmVudFN0YWNrcyA9IGFzeW5jTG9jYWxTdG9yYWdlLmdldFN0b3JlKCkgfHwgW11cbiAgY29uc3QgYWRkaXRpb25hbFN0YWNrTGluZXMgPSBbXVxuICBjb25zdCBjdXJyZW50U3RhY2tMaW5lcyA9IHN0YWNrLnNwbGl0KFwiXFxuXCIpXG5cbiAgY3VycmVudFN0YWNrTGluZXNbMF0gPSBcIiAgICBbV0lUSCBUUkFDS0VEIFNUQUNLXVwiXG5cbiAgZm9yIChsZXQgaSA9IGN1cnJlbnRTdGFja0xpbmVzLmxlbmd0aDsgaSA+PSAwOyBpLS0pIHtcbiAgICBjb25zdCBzdGFja0xpbmUgPSBjdXJyZW50U3RhY2tMaW5lc1tpXVxuXG4gICAgYWRkaXRpb25hbFN0YWNrTGluZXMudW5zaGlmdChzdGFja0xpbmUpXG5cbiAgICBpZiAoc3RhY2tMaW5lID09IFwiICAgIFtXSVRIIFRSQUNLRUQgU1RBQ0tdXCIpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgY29uc3QgbmV3U3RhY2tzID0gW2FkZGl0aW9uYWxTdGFja0xpbmVzLCAuLi5wYXJlbnRTdGFja3NdXG5cbiAgYXdhaXQgYXN5bmNMb2NhbFN0b3JhZ2UucnVuKG5ld1N0YWNrcywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGNhbGxiYWNrKClcbiAgfSlcbn1cblxuaWYgKGdsb2JhbFRoaXMud2l0aFRyYWNrZWRTdGFjaykge1xuICBjb25zb2xlLndhcm4oXCJnbG9iYWxUaGlzLndpdGhUcmFja2VkU3RhY2sgd2FzIGFscmVhZHkgZGVmaW5lZFwiKVxufSBlbHNlIHtcbiAgZ2xvYmFsVGhpcy53aXRoVHJhY2tlZFN0YWNrID0ge2FkZFRyYWNrZWRTdGFja1RvRXJyb3IsIHdpdGhUcmFja2VkU3RhY2t9XG59XG5cbmV4cG9ydCB7YWRkVHJhY2tlZFN0YWNrVG9FcnJvciwgd2l0aFRyYWNrZWRTdGFja31cbiJdfQ==
@@ -2,7 +2,7 @@
2
2
  export function addTrackedStackToError(error: Error): void;
3
3
  /**
4
4
  * @param {...any} args
5
- * @returns {Promise<any>}
5
+ * @returns {Promise<any>} - Result.
6
6
  */
7
7
  export function withTrackedStack(...args: any[]): Promise<any>;
8
8
  //# sourceMappingURL=with-tracked-stack.d.ts.map