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
@@ -2,26 +2,26 @@ export default class VelociousDatabaseDriversMssql extends Base {
2
2
  connection: any;
3
3
  close(): Promise<void>;
4
4
  /**
5
- * @returns {Promise<string>}
5
+ * @returns {Promise<string>} - Result.
6
6
  */
7
7
  currentDatabase(): Promise<string>;
8
8
  /**
9
- * @returns {string}
9
+ * @returns {string} - Result.
10
10
  */
11
11
  primaryKeyType(): string;
12
12
  /**
13
13
  * @param {*} value
14
- * @returns {string}
14
+ * @returns {string} - Result.
15
15
  */
16
16
  escape(value: any): string;
17
17
  /**
18
18
  * @param {*} value
19
- * @returns {string}
19
+ * @returns {string} - Result.
20
20
  */
21
21
  quote(value: any): string;
22
22
  /**
23
23
  * @param {*} string
24
- * @returns {string}
24
+ * @returns {string} - Result.
25
25
  */
26
26
  quoteColumn(string: any): string;
27
27
  lastInsertID(): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/index.js"],"names":[],"mappings":"AAoBA;IAMM,gBAAqD;IAYzD,uBAGC;IAgDD;;OAEG;IACH,mBAFa,OAAO,CAAC,MAAM,CAAC,CAM3B;IA2BD;;OAEG;IACH,kBAFa,MAAM,CAEiB;IAgDpC;;;OAGG;IACH,cAHW,GAAC,GACC,MAAM,CAalB;IAED;;;OAGG;IACH,aAHW,GAAC,GACC,MAAM,CAWlB;IAED;;;OAGG;IACH,oBAHW,GAAC,GACC,MAAM,CAEkD;IA4ErE,6BAOC;IAIqB,kBAA2C;IAS/D,yBAAiE;CAgEpE;iBA/WgB,YAAY;oBAST,cAAc"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/index.js"],"names":[],"mappings":"AAoBA;IAMM,gBAAqD;IAYzD,uBAGC;IAgDD;;OAEG;IACH,mBAFa,OAAO,CAAC,MAAM,CAAC,CAM3B;IA2BD;;OAEG;IACH,kBAFa,MAAM,CAEiB;IAgDpC;;;OAGG;IACH,cAHW,GAAC,GACC,MAAM,CAalB;IAED;;;OAGG;IACH,aAHW,GAAC,GACC,MAAM,CAWlB;IAED;;;OAGG;IACH,oBAHW,GAAC,GACC,MAAM,CAEkD;IA6ErE,6BAOC;IAIqB,kBAA2C;IAS/D,yBAAiE;CAgEpE;iBAhXgB,YAAY;oBAST,cAAc"}
@@ -40,7 +40,7 @@ export default class VelociousDatabaseDriversMssql extends Base {
40
40
  }
41
41
  /**
42
42
  * @param {import("../../table-data/index.js").default} tableData
43
- * @returns {Promise<string[]>}
43
+ * @returns {Promise<string[]>} - Result.
44
44
  */
45
45
  async alterTableSQLs(tableData) {
46
46
  const alterArgs = { tableData, driver: this };
@@ -51,7 +51,7 @@ export default class VelociousDatabaseDriversMssql extends Base {
51
51
  * @param {string} databaseName
52
52
  * @param {object} [args]
53
53
  * @param {boolean} [args.ifNotExists]
54
- * @returns {string[]}
54
+ * @returns {string[]} - Result.
55
55
  */
56
56
  createDatabaseSql(databaseName, args) {
57
57
  const createArgs = Object.assign({ databaseName, driver: this }, args);
@@ -60,7 +60,7 @@ export default class VelociousDatabaseDriversMssql extends Base {
60
60
  }
61
61
  /**
62
62
  * @param {import("../base.js").CreateIndexSqlArgs} indexData
63
- * @returns {Promise<string[]>}
63
+ * @returns {Promise<string[]>} - Result.
64
64
  */
65
65
  async createIndexSQLs(indexData) {
66
66
  const createArgs = Object.assign({ driver: this }, indexData);
@@ -69,7 +69,7 @@ export default class VelociousDatabaseDriversMssql extends Base {
69
69
  }
70
70
  /**
71
71
  * @param {import("../../table-data/index.js").default} tableData
72
- * @returns {Promise<string[]>}
72
+ * @returns {Promise<string[]>} - Result.
73
73
  */
74
74
  async createTableSql(tableData) {
75
75
  const createArgs = { tableData, driver: this, indexInCreateTable: false };
@@ -77,7 +77,7 @@ export default class VelociousDatabaseDriversMssql extends Base {
77
77
  return await createTable.toSql();
78
78
  }
79
79
  /**
80
- * @returns {Promise<string>}
80
+ * @returns {Promise<string>} - Result.
81
81
  */
82
82
  async currentDatabase() {
83
83
  const rows = await this.query("SELECT DB_NAME() AS db_name");
@@ -92,7 +92,7 @@ export default class VelociousDatabaseDriversMssql extends Base {
92
92
  /**
93
93
  * @param {string} tableName
94
94
  * @param {import("../base.js").DropTableSqlArgsType} [args]
95
- * @returns {Promise<string[]>}
95
+ * @returns {Promise<string[]>} - Result.
96
96
  */
97
97
  async dropTableSQLs(tableName, args = {}) {
98
98
  const dropArgs = Object.assign({ tableName, driver: this }, args);
@@ -100,16 +100,16 @@ export default class VelociousDatabaseDriversMssql extends Base {
100
100
  return await dropTable.toSQLs();
101
101
  }
102
102
  /**
103
- * @returns {string}
103
+ * @returns {string} - Result.
104
104
  */
105
105
  getType() { return "mssql"; }
106
106
  /**
107
- * @returns {string}
107
+ * @returns {string} - Result.
108
108
  */
109
109
  primaryKeyType() { return "bigint"; }
110
110
  /**
111
111
  * @param {string} sql
112
- * @returns {Promise<import("../base.js").QueryResultType>}
112
+ * @returns {Promise<import("../base.js").QueryResultType>} - Result.
113
113
  */
114
114
  async _queryActual(sql) {
115
115
  let result;
@@ -145,14 +145,14 @@ export default class VelociousDatabaseDriversMssql extends Base {
145
145
  }
146
146
  /**
147
147
  * @param {import("../../query/index.js").default} query
148
- * @returns {string}
148
+ * @returns {string} - Result.
149
149
  */
150
150
  queryToSql(query) { return new QueryParser({ query }).toSql(); }
151
151
  shouldSetAutoIncrementWhenPrimaryKey() { return true; }
152
152
  supportsDefaultPrimaryKeyUUID() { return true; }
153
153
  /**
154
154
  * @param {*} value
155
- * @returns {string}
155
+ * @returns {string} - Result.
156
156
  */
157
157
  escape(value) {
158
158
  value = this._convertValue(value);
@@ -165,7 +165,7 @@ export default class VelociousDatabaseDriversMssql extends Base {
165
165
  }
166
166
  /**
167
167
  * @param {*} value
168
- * @returns {string}
168
+ * @returns {string} - Result.
169
169
  */
170
170
  quote(value) {
171
171
  value = this._convertValue(value);
@@ -178,25 +178,26 @@ export default class VelociousDatabaseDriversMssql extends Base {
178
178
  }
179
179
  /**
180
180
  * @param {*} string
181
- * @returns {string}
181
+ * @returns {string} - Result.
182
182
  */
183
183
  quoteColumn(string) { return this.options().quoteColumnName(string); }
184
184
  /**
185
185
  * @param {string} string
186
- * @returns {string}
186
+ * @returns {string} - Result.
187
187
  */
188
188
  quoteTable(string) { return this.options().quoteTableName(string); }
189
189
  /**
190
190
  * @param {string} tableName
191
191
  * @param {string} oldColumnName
192
192
  * @param {string} newColumnName
193
- * @returns {Promise<void>}
193
+ * @returns {Promise<void>} - Result.
194
194
  */
195
195
  async renameColumn(tableName, oldColumnName, newColumnName) {
196
196
  await this.query(`EXEC sp_rename ${this.quote(`${tableName}.${oldColumnName}`)}, ${this.quote(newColumnName)}, 'COLUMN'`);
197
197
  }
198
198
  /**
199
199
  * @param {import("../base.js").DeleteSqlArgsType} args
200
+ * @returns {string} - Result.
200
201
  */
201
202
  deleteSql({ tableName, conditions }) {
202
203
  const deleteInstruction = new Delete({ conditions, driver: this, tableName });
@@ -205,7 +206,7 @@ export default class VelociousDatabaseDriversMssql extends Base {
205
206
  /**
206
207
  * @abstract
207
208
  * @param {import("../base.js").InsertSqlArgsType} args
208
- * @returns {string}
209
+ * @returns {string} - Result.
209
210
  */
210
211
  insertSql(args) {
211
212
  const insertArgs = Object.assign({ driver: this }, args);
@@ -213,7 +214,7 @@ export default class VelociousDatabaseDriversMssql extends Base {
213
214
  return insert.toSql();
214
215
  }
215
216
  /**
216
- * @returns {Promise<Array<import("../base-table.js").default>>}
217
+ * @returns {Promise<Array<import("../base-table.js").default>>} - Result.
217
218
  */
218
219
  async getTables() {
219
220
  const result = await this.query(`SELECT [TABLE_NAME] FROM [INFORMATION_SCHEMA].[TABLES] WHERE [TABLE_CATALOG] = DB_NAME() AND [TABLE_SCHEMA] = 'dbo'`);
@@ -228,7 +229,7 @@ export default class VelociousDatabaseDriversMssql extends Base {
228
229
  * @param {string} name
229
230
  * @param {object} [args]
230
231
  * @param {boolean} args.throwError
231
- * @returns {Promise<import("../base-table.js").default | undefined>}
232
+ * @returns {Promise<import("../base-table.js").default | undefined>} - Result.
232
233
  */
233
234
  async getTableByName(name, args) {
234
235
  const result = await this.query(`SELECT [TABLE_NAME] FROM [INFORMATION_SCHEMA].[TABLES] WHERE [TABLE_CATALOG] = DB_NAME() AND [TABLE_SCHEMA] = 'dbo' AND [TABLE_NAME] = ${this.quote(name)}`);
@@ -248,7 +249,7 @@ export default class VelociousDatabaseDriversMssql extends Base {
248
249
  throw new Error("Couldn't get the last inserted ID");
249
250
  return lastInsertID;
250
251
  }
251
- /** @returns {Options} */
252
+ /** @returns {Options} - Result. */
252
253
  options() {
253
254
  if (!this._options)
254
255
  this._options = new Options({ driver: this });
@@ -276,21 +277,21 @@ export default class VelociousDatabaseDriversMssql extends Base {
276
277
  }
277
278
  /**
278
279
  * @param {string} savePointName
279
- * @returns {Promise<void>}
280
+ * @returns {Promise<void>} - Result.
280
281
  */
281
282
  async _startSavePointAction(savePointName) {
282
283
  await this.query(`SAVE TRANSACTION [${savePointName}]`);
283
284
  }
284
285
  /**
285
286
  * @param {string} savePointName
286
- * @returns {Promise<void>}
287
+ * @returns {Promise<void>} - Result.
287
288
  */
288
289
  async _releaseSavePointAction(savePointName) {
289
290
  // Do nothing in MS-SQL.
290
291
  }
291
292
  /**
292
293
  * @param {string} savePointName
293
- * @returns {Promise<void>}
294
+ * @returns {Promise<void>} - Result.
294
295
  */
295
296
  async _rollbackSavePointAction(savePointName) {
296
297
  await this.query(`ROLLBACK TRANSACTION [${savePointName}]`);
@@ -300,17 +301,17 @@ export default class VelociousDatabaseDriversMssql extends Base {
300
301
  }
301
302
  /**
302
303
  * @param {import("../base.js").UpdateSqlArgsType} args
303
- * @returns {string}
304
+ * @returns {string} - Result.
304
305
  */
305
306
  updateSql({ conditions, data, tableName }) {
306
307
  const update = new Update({ conditions, data, driver: this, tableName });
307
308
  return update.toSql();
308
309
  }
309
310
  /**
310
- * @returns {Promise<string | null>}
311
+ * @returns {Promise<string | null>} - Result.
311
312
  */
312
313
  async structureSql() {
313
314
  return await new StructureSql({ driver: this }).toSql();
314
315
  }
315
316
  }
316
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9tc3NxbC9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxVQUFVLE1BQU0sc0JBQXNCLENBQUE7QUFDN0MsT0FBTyxJQUFJLE1BQU0sWUFBWSxDQUFBO0FBQzdCLE9BQU8sY0FBYyxNQUFNLDBCQUEwQixDQUFBO0FBQ3JELE9BQU8sV0FBVyxNQUFNLHVCQUF1QixDQUFBO0FBQy9DLE9BQU8sV0FBVyxNQUFNLHVCQUF1QixDQUFBO0FBQy9DLE9BQU8sTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBQ3BDLE9BQU8sU0FBUyxNQUFNLHFCQUFxQixDQUFBO0FBQzNDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxZQUFZLE1BQU0sbUJBQW1CLENBQUE7QUFDNUMsT0FBTyxNQUFNLE1BQU0saUJBQWlCLENBQUE7QUFDcEMsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFBO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLFdBQVcsTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUE7QUFDOUIsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUE7QUFDN0MsT0FBTyxNQUFNLE1BQU0saUJBQWlCLENBQUE7QUFDcEMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBRTVCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sNkJBQThCLFNBQVEsSUFBSTtJQUM3RCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUMzQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBRXpDLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxV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QUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQTtRQUV0RSxPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsWUFBWTtRQUNoQixPQUFPLE1BQU0sSUFBSSxZQUFZLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN2RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEFsdGVyVGFibGUgZnJvbSBcIi4vc3FsL2FsdGVyLXRhYmxlLmpzXCJcbmltcG9ydCBCYXNlIGZyb20gXCIuLi9iYXNlLmpzXCJcbmltcG9ydCBDcmVhdGVEYXRhYmFzZSBmcm9tIFwiLi9zcWwvY3JlYXRlLWRhdGFiYXNlLmpzXCJcbmltcG9ydCBDcmVhdGVJbmRleCBmcm9tIFwiLi9zcWwvY3JlYXRlLWluZGV4LmpzXCJcbmltcG9ydCBDcmVhdGVUYWJsZSBmcm9tIFwiLi9zcWwvY3JlYXRlLXRhYmxlLmpzXCJcbmltcG9ydCBEZWxldGUgZnJvbSBcIi4vc3FsL2RlbGV0ZS5qc1wiXG5pbXBvcnQgRHJvcFRhYmxlIGZyb20gXCIuL3NxbC9kcm9wLXRhYmxlLmpzXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgZXNjYXBlU3RyaW5nIGZyb20gXCJzcWwtZXNjYXBlLXN0cmluZ1wiXG5pbXBvcnQgSW5zZXJ0IGZyb20gXCIuL3NxbC9pbnNlcnQuanNcIlxuaW1wb3J0IE9wdGlvbnMgZnJvbSBcIi4vb3B0aW9ucy5qc1wiXG5pbXBvcnQgbXNzcWwgZnJvbSBcIm1zc3FsXCJcbmltcG9ydCBRdWVyeVBhcnNlciBmcm9tIFwiLi9xdWVyeS1wYXJzZXIuanNcIlxuaW1wb3J0IFRhYmxlIGZyb20gXCIuL3RhYmxlLmpzXCJcbmltcG9ydCBTdHJ1Y3R1cmVTcWwgZnJvbSBcIi4vc3RydWN0dXJlLXNxbC5qc1wiXG5pbXBvcnQgVXBkYXRlIGZyb20gXCIuL3NxbC91cGRhdGUuanNcIlxuaW1wb3J0IFVVSUQgZnJvbSBcInB1cmUtdXVpZFwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlRHJpdmVyc01zc3FsIGV4dGVuZHMgQmFzZXtcbiAgYXN5bmMgY29ubmVjdCgpIHtcbiAgICBjb25zdCBhcmdzID0gdGhpcy5nZXRBcmdzKClcbiAgICBjb25zdCBzcWxDb25maWcgPSBkaWdnKGFyZ3MsIFwic3FsQ29uZmlnXCIpXG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5jb25uZWN0aW9uID0gbmV3IG1zc3FsLkNvbm5lY3Rpb25Qb29sKHNxbENvbmZpZylcbiAgICAgIGF3YWl0IHRoaXMuY29ubmVjdGlvbi5jb25uZWN0KClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gUmUtdGhyb3cgdG8gZml4IHVudXNlYWJsZSBzdGFjayB0cmFjZS5cbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGRuJ3QgY29ubmVjdCB0byBkYXRhYmFzZTogJHtlcnJvci5tZXNzYWdlfWApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IGNvbm5lY3QgdG8gZGF0YWJhc2U6ICR7ZXJyb3J9YClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBjbG9zZSgpIHtcbiAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24/LmNsb3NlKClcbiAgICB0aGlzLmNvbm5lY3Rpb24gPSB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uLy4uL3RhYmxlLWRhdGEvaW5kZXguanNcIikuZGVmYXVsdH0gdGFibGVEYXRhXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn1cbiAgICovXG4gIGFzeW5jIGFsdGVyVGFibGVTUUxzKHRhYmxlRGF0YSkge1xuICAgIGNvbnN0IGFsdGVyQXJncyA9IHt0YWJsZURhdGEsIGRyaXZlcjogdGhpc31cbiAgICBjb25zdCBhbHRlclRhYmxlID0gbmV3IEFsdGVyVGFibGUoYWx0ZXJBcmdzKVxuXG4gICAgcmV0dXJuIGF3YWl0IGFsdGVyVGFibGUudG9TUUxzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGF0YWJhc2VOYW1lXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBbYXJnc11cbiAgICogQHBhcmFtIHtib29sZWFufSBbYXJncy5pZk5vdEV4aXN0c11cbiAgICogQHJldHVybnMge3N0cmluZ1tdfVxuICAgKi9cbiAgY3JlYXRlRGF0YWJhc2VTcWwoZGF0YWJhc2VOYW1lLCBhcmdzKSB7XG4gICAgY29uc3QgY3JlYXRlQXJncyA9IE9iamVjdC5hc3NpZ24oe2RhdGFiYXNlTmFtZSwgZHJpdmVyOiB0aGlzfSwgYXJncylcbiAgICBjb25zdCBjcmVhdGVEYXRhYmFzZSA9IG5ldyBDcmVhdGVEYXRhYmFzZShjcmVhdGVBcmdzKVxuXG4gICAgcmV0dXJuIGNyZWF0ZURhdGFiYXNlLnRvU3FsKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Jhc2UuanNcIikuQ3JlYXRlSW5kZXhTcWxBcmdzfSBpbmRleERhdGFcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW10+fVxuICAgKi9cbiAgYXN5bmMgY3JlYXRlSW5kZXhTUUxzKGluZGV4RGF0YSkge1xuICAgIGNvbnN0IGNyZWF0ZUFyZ3MgPSBPYmplY3QuYXNzaWduKHtkcml2ZXI6IHRoaXN9LCBpbmRleERhdGEpXG4gICAgY29uc3QgY3JlYXRlSW5kZXggPSBuZXcgQ3JlYXRlSW5kZXgoY3JlYXRlQXJncylcblxuICAgIHJldHVybiBhd2FpdCBjcmVhdGVJbmRleC50b1NRTHMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vLi4vdGFibGUtZGF0YS9pbmRleC5qc1wiKS5kZWZhdWx0fSB0YWJsZURhdGFcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW10+fVxuICAgKi9cbiAgYXN5bmMgY3JlYXRlVGFibGVTcWwodGFibGVEYXRhKSB7XG4gICAgY29uc3QgY3JlYXRlQXJncyA9IHt0YWJsZURhdGEsIGRyaXZlcjogdGhpcywgaW5kZXhJbkNyZWF0ZVRhYmxlOiBmYWxzZX1cbiAgICBjb25zdCBjcmVhdGVUYWJsZSA9IG5ldyBDcmVhdGVUYWJsZShjcmVhdGVBcmdzKVxuXG4gICAgcmV0dXJuIGF3YWl0IGNyZWF0ZVRhYmxlLnRvU3FsKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fVxuICAgKi9cbiAgYXN5bmMgY3VycmVudERhdGFiYXNlKCkge1xuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLnF1ZXJ5KFwiU0VMRUNUIERCX05BTUUoKSBBUyBkYl9uYW1lXCIpXG5cbiAgICByZXR1cm4gZGlnZyhyb3dzLCAwLCBcImRiX25hbWVcIilcbiAgfVxuXG4gIGFzeW5jIGRpc2FibGVGb3JlaWduS2V5cygpIHtcbiAgICBhd2FpdCB0aGlzLnF1ZXJ5KFwiRVhFQyBzcF9NU2ZvcmVhY2h0YWJsZSBcXFwiQUxURVIgVEFCTEUgPyBOT0NIRUNLIENPTlNUUkFJTlQgYWxsXFxcIlwiKVxuICB9XG5cbiAgYXN5bmMgZW5hYmxlRm9yZWlnbktleXMoKSB7XG4gICAgYXdhaXQgdGhpcy5xdWVyeShcIkVYRUMgc3BfTVNmb3JlYWNodGFibGUgQGNvbW1hbmQxPVxcXCJwcmludCAnPydcXFwiLCBAY29tbWFuZDI9XFxcIkFMVEVSIFRBQkxFID8gV0lUSCBDSEVDSyBDSEVDSyBDT05TVFJBSU5UIGFsbFxcXCJcIilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5Ecm9wVGFibGVTcWxBcmdzVHlwZX0gW2FyZ3NdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn1cbiAgICovXG4gIGFzeW5jIGRyb3BUYWJsZVNRTHModGFibGVOYW1lLCBhcmdzID0ge30pIHtcbiAgICBjb25zdCBkcm9wQXJncyA9IE9iamVjdC5hc3NpZ24oe3RhYmxlTmFtZSwgZHJpdmVyOiB0aGlzfSwgYXJncylcbiAgICBjb25zdCBkcm9wVGFibGUgPSBuZXcgRHJvcFRhYmxlKGRyb3BBcmdzKVxuXG4gICAgcmV0dXJuIGF3YWl0IGRyb3BUYWJsZS50b1NRTHMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBnZXRUeXBlKCkgeyByZXR1cm4gXCJtc3NxbFwiIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIHByaW1hcnlLZXlUeXBlKCkgeyByZXR1cm4gXCJiaWdpbnRcIiB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzcWxcbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5RdWVyeVJlc3VsdFR5cGU+fVxuICAgKi9cbiAgYXN5bmMgX3F1ZXJ5QWN0dWFsKHNxbCkge1xuICAgIGxldCByZXN1bHRcbiAgICBsZXQgcmVxdWVzdCwgdHJpZXMgPSAwXG5cbiAgICBpZiAodGhpcy5fY3VycmVudFRyYW5zYWN0aW9uKSB7XG4gICAgICByZXF1ZXN0ID0gbmV3IG1zc3FsLlJlcXVlc3QodGhpcy5fY3VycmVudFRyYW5zYWN0aW9uKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXF1ZXN0ID0gbmV3IG1zc3FsLlJlcXVlc3QodGhpcy5jb25uZWN0aW9uKVxuICAgIH1cblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICB0cmllcysrXG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IHJlcXVlc3QucXVlcnkoc3FsKVxuICAgICAgICBicmVha1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyb3IubWVzc2FnZSA9PSBcIk5vIGNvbm5lY3Rpb24gaXMgc3BlY2lmaWVkIGZvciB0aGF0IHJlcXVlc3QuXCIgJiYgdHJpZXMgPD0gMykge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXCJSZWNvbm5lY3RpbmcgdG8gZGF0YWJhc2VcIilcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbm5lY3QoKVxuICAgICAgICAgIC8vIFJldHJ5XG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIC8vIFJlLXRocm93IGVycm9yIGJlY2F1c2UgdGhlIHN0YWNrLXRyYWNlIGlzIGJyb2tlbiBhbmQgY2FuJ3QgYmUgdXNlZCBmb3IgYXBwLWRldmVsb3BtZW50LlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUXVlcnkgZmFpbGVkICcke2Vycm9yLm1lc3NhZ2V9JzogJHtzcWx9YClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFF1ZXJ5IGZhaWxlZCAnJHtlcnJvcn0nOiAke3NxbH1gKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdC5yZWNvcmRzZXRzWzBdXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi8uLi9xdWVyeS9pbmRleC5qc1wiKS5kZWZhdWx0fSBxdWVyeVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgcXVlcnlUb1NxbChxdWVyeSkgeyByZXR1cm4gbmV3IFF1ZXJ5UGFyc2VyKHtxdWVyeX0pLnRvU3FsKCkgfVxuXG4gIHNob3VsZFNldEF1dG9JbmNyZW1lbnRXaGVuUHJpbWFyeUtleSgpIHsgcmV0dXJuIHRydWUgfVxuICBzdXBwb3J0c0RlZmF1bHRQcmltYXJ5S2V5VVVJRCgpIHsgcmV0dXJuIHRydWUgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0geyp9IHZhbHVlXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBlc2NhcGUodmFsdWUpIHtcbiAgICB2YWx1ZSA9IHRoaXMuX2NvbnZlcnRWYWx1ZSh2YWx1ZSlcblxuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWVcblxuICAgIGlmICh0eXBlICE9IFwic3RyaW5nXCIpIHZhbHVlID0gYCR7dmFsdWV9YFxuXG4gICAgY29uc3QgcmVzdWx0V2l0aFF1b3RlcyA9IGVzY2FwZVN0cmluZyh2YWx1ZSwgbnVsbClcbiAgICBjb25zdCByZXN1bHQgPSByZXN1bHRXaXRoUXVvdGVzLnN1YnN0cmluZygxLCByZXN1bHRXaXRoUXVvdGVzLmxlbmd0aCAtIDEpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHsqfSB2YWx1ZVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgcXVvdGUodmFsdWUpIHtcbiAgICB2YWx1ZSA9IHRoaXMuX2NvbnZlcnRWYWx1ZSh2YWx1ZSlcblxuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWVcblxuICAgIGlmICh0eXBlID09IFwibnVtYmVyXCIpIHJldHVybiB2YWx1ZVxuICAgIGlmICh0eXBlICE9IFwic3RyaW5nXCIpIHZhbHVlID0gYCR7dmFsdWV9YFxuXG4gICAgcmV0dXJuIGVzY2FwZVN0cmluZyh2YWx1ZSwgbnVsbClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0geyp9IHN0cmluZ1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgcXVvdGVDb2x1bW4oc3RyaW5nKSB7IHJldHVybiB0aGlzLm9wdGlvbnMoKS5xdW90ZUNvbHVtbk5hbWUoc3RyaW5nKSB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIHF1b3RlVGFibGUoc3RyaW5nKSB7IHJldHVybiB0aGlzLm9wdGlvbnMoKS5xdW90ZVRhYmxlTmFtZShzdHJpbmcpIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb2xkQ29sdW1uTmFtZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3Q29sdW1uTmFtZVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHJlbmFtZUNvbHVtbih0YWJsZU5hbWUsIG9sZENvbHVtbk5hbWUsIG5ld0NvbHVtbk5hbWUpIHtcbiAgICBhd2FpdCB0aGlzLnF1ZXJ5KGBFWEVDIHNwX3JlbmFtZSAke3RoaXMucXVvdGUoYCR7dGFibGVOYW1lfS4ke29sZENvbHVtbk5hbWV9YCl9LCAke3RoaXMucXVvdGUobmV3Q29sdW1uTmFtZSl9LCAnQ09MVU1OJ2ApXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLmpzXCIpLkRlbGV0ZVNxbEFyZ3NUeXBlfSBhcmdzXG4gICAqL1xuICBkZWxldGVTcWwoe3RhYmxlTmFtZSwgY29uZGl0aW9uc30pIHtcbiAgICBjb25zdCBkZWxldGVJbnN0cnVjdGlvbiA9IG5ldyBEZWxldGUoe2NvbmRpdGlvbnMsIGRyaXZlcjogdGhpcywgdGFibGVOYW1lfSlcblxuICAgIHJldHVybiBkZWxldGVJbnN0cnVjdGlvbi50b1NxbCgpXG4gIH1cblxuICAvKipcbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5JbnNlcnRTcWxBcmdzVHlwZX0gYXJnc1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgaW5zZXJ0U3FsKGFyZ3MpIHtcbiAgICBjb25zdCBpbnNlcnRBcmdzID0gT2JqZWN0LmFzc2lnbih7ZHJpdmVyOiB0aGlzfSwgYXJncylcbiAgICBjb25zdCBpbnNlcnQgPSBuZXcgSW5zZXJ0KGluc2VydEFyZ3MpXG5cbiAgICByZXR1cm4gaW5zZXJ0LnRvU3FsKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheTxpbXBvcnQoXCIuLi9iYXNlLXRhYmxlLmpzXCIpLmRlZmF1bHQ+Pn1cbiAgICovXG4gIGFzeW5jIGdldFRhYmxlcygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnF1ZXJ5KGBTRUxFQ1QgW1RBQkxFX05BTUVdIEZST00gW0lORk9STUFUSU9OX1NDSEVNQV0uW1RBQkxFU10gV0hFUkUgW1RBQkxFX0NBVEFMT0ddID0gREJfTkFNRSgpIEFORCBbVEFCTEVfU0NIRU1BXSA9ICdkYm8nYClcbiAgICBjb25zdCB0YWJsZXMgPSBbXVxuXG4gICAgZm9yIChjb25zdCByb3cgb2YgcmVzdWx0KSB7XG4gICAgICBjb25zdCB0YWJsZSA9IG5ldyBUYWJsZSh0aGlzLCByb3cpXG5cbiAgICAgIHRhYmxlcy5wdXNoKHRhYmxlKVxuICAgIH1cblxuICAgIHJldHVybiB0YWJsZXNcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgKiBAcGFyYW0ge29iamVjdH0gW2FyZ3NdXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gYXJncy50aHJvd0Vycm9yXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4uL2Jhc2UtdGFibGUuanNcIikuZGVmYXVsdCB8IHVuZGVmaW5lZD59XG4gICAqL1xuICBhc3luYyBnZXRUYWJsZUJ5TmFtZShuYW1lLCBhcmdzKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5xdWVyeShgU0VMRUNUIFtUQUJMRV9OQU1FXSBGUk9NIFtJTkZPUk1BVElPTl9TQ0hFTUFdLltUQUJMRVNdIFdIRVJFIFtUQUJMRV9DQVRBTE9HXSA9IERCX05BTUUoKSBBTkQgW1RBQkxFX1NDSEVNQV0gPSAnZGJvJyBBTkQgW1RBQkxFX05BTUVdID0gJHt0aGlzLnF1b3RlKG5hbWUpfWApXG5cbiAgICBpZiAocmVzdWx0WzBdKSB7XG4gICAgICByZXR1cm4gbmV3IFRhYmxlKHRoaXMsIHJlc3VsdFswXSlcbiAgICB9XG5cbiAgICBpZiAoYXJncz8udGhyb3dFcnJvciAhPT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHRhYmxlcyA9IGF3YWl0IHRoaXMuZ2V0VGFibGVzKClcbiAgICAgIGNvbnN0IHRhYmxlTmFtZXMgPSB0YWJsZXMubWFwKCh0YWJsZSkgPT4gdGFibGUuZ2V0TmFtZSgpKVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IGZpbmQgYSB0YWJsZSBieSB0aGF0IG5hbWUgXCIke25hbWV9XCIgaW46ICR7dGFibGVOYW1lcy5qb2luKFwiLCBcIil9YClcbiAgICB9XG4gIH1cblxuICBhc3luYyBsYXN0SW5zZXJ0SUQoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5xdWVyeShcIlNFTEVDVCBTQ09QRV9JREVOVElUWSgpIEFTIGxhc3RfaW5zZXJ0X2lkXCIpXG4gICAgY29uc3QgbGFzdEluc2VydElEID0gZGlnZyhyZXN1bHQsIDAsIFwibGFzdF9pbnNlcnRfaWRcIilcblxuICAgIGlmIChsYXN0SW5zZXJ0SUQgPT09IG51bGwpIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGdldCB0aGUgbGFzdCBpbnNlcnRlZCBJRFwiKVxuXG4gICAgcmV0dXJuIGxhc3RJbnNlcnRJRFxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtPcHRpb25zfSAqL1xuICBvcHRpb25zKCkge1xuICAgIGlmICghdGhpcy5fb3B0aW9ucykgdGhpcy5fb3B0aW9ucyA9IG5ldyBPcHRpb25zKHtkcml2ZXI6IHRoaXN9KVxuXG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnNcbiAgfVxuXG4gIGFzeW5jIF9zdGFydFRyYW5zYWN0aW9uQWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5jb25uZWN0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBjb25uZWN0aW9uXCIpXG4gICAgaWYgKHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiQSB0cmFuc2FjdGlvbiBpcyBhbHJlYWR5IHJ1bm5pbmdcIilcblxuICAgIHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbiA9IG5ldyBtc3NxbC5UcmFuc2FjdGlvbih0aGlzLmNvbm5lY3Rpb24pXG5cbiAgICBhd2FpdCB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24uYmVnaW4oKVxuICB9XG5cbiAgYXN5bmMgX2NvbW1pdFRyYW5zYWN0aW9uQWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJBIHRyYW5zYWN0aW9uIGlzbid0IHJ1bm5pbmdcIilcblxuICAgIGF3YWl0IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5jb21taXQoKVxuICAgIHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbiA9IG51bGxcbiAgfVxuXG4gIGFzeW5jIF9yb2xsYmFja1RyYW5zYWN0aW9uQWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJBIHRyYW5zYWN0aW9uIGlzbid0IHJ1bm5pbmdcIilcblxuICAgIGF3YWl0IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5yb2xsYmFjaygpXG5cbiAgICB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24gPSBudWxsXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNhdmVQb2ludE5hbWVcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBfc3RhcnRTYXZlUG9pbnRBY3Rpb24oc2F2ZVBvaW50TmFtZSkge1xuICAgIGF3YWl0IHRoaXMucXVlcnkoYFNBVkUgVFJBTlNBQ1RJT04gWyR7c2F2ZVBvaW50TmFtZX1dYClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2F2ZVBvaW50TmFtZVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIF9yZWxlYXNlU2F2ZVBvaW50QWN0aW9uKHNhdmVQb2ludE5hbWUpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIC8vIERvIG5vdGhpbmcgaW4gTVMtU1FMLlxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzYXZlUG9pbnROYW1lXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgX3JvbGxiYWNrU2F2ZVBvaW50QWN0aW9uKHNhdmVQb2ludE5hbWUpIHtcbiAgICBhd2FpdCB0aGlzLnF1ZXJ5KGBST0xMQkFDSyBUUkFOU0FDVElPTiBbJHtzYXZlUG9pbnROYW1lfV1gKVxuICB9XG5cbiAgZ2VuZXJhdGVTYXZlUG9pbnROYW1lKCkge1xuICAgIHJldHVybiBgc3Ake25ldyBVVUlEKDQpLmZvcm1hdCgpLnJlcGxhY2VBbGwoXCItXCIsIFwiXCIpfWAuc3Vic3RyaW5nKDAsIDMyKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5VcGRhdGVTcWxBcmdzVHlwZX0gYXJnc1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgdXBkYXRlU3FsKHtjb25kaXRpb25zLCBkYXRhLCB0YWJsZU5hbWV9KSB7XG4gICAgY29uc3QgdXBkYXRlID0gbmV3IFVwZGF0ZSh7Y29uZGl0aW9ucywgZGF0YSwgZHJpdmVyOiB0aGlzLCB0YWJsZU5hbWV9KVxuXG4gICAgcmV0dXJuIHVwZGF0ZS50b1NxbCgpXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nIHwgbnVsbD59XG4gICAqL1xuICBhc3luYyBzdHJ1Y3R1cmVTcWwoKSB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBTdHJ1Y3R1cmVTcWwoe2RyaXZlcjogdGhpc30pLnRvU3FsKClcbiAgfVxufVxuIl19
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9tc3NxbC9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxVQUFVLE1BQU0sc0JBQXNCLENBQUE7QUFDN0MsT0FBTyxJQUFJLE1BQU0sWUFBWSxDQUFBO0FBQzdCLE9BQU8sY0FBYyxNQUFNLDBCQUEwQixDQUFBO0FBQ3JELE9BQU8sV0FBVyxNQUFNLHVCQUF1QixDQUFBO0FBQy9DLE9BQU8sV0FBVyxNQUFNLHVCQUF1QixDQUFBO0FBQy9DLE9BQU8sTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBQ3BDLE9BQU8sU0FBUyxNQUFNLHFCQUFxQixDQUFBO0FBQzNDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxZQUFZLE1BQU0sbUJBQW1CLENBQUE7QUFDNUMsT0FBTyxNQUFNLE1BQU0saUJBQWlCLENBQUE7QUFDcEMsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFBO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLFdBQVcsTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUE7QUFDOUIsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUE7QUFDN0MsT0FBTyxNQUFNLE1BQU0saUJBQWlCLENBQUE7QUFDcEMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBRTVCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sNkJBQThCLFNBQVEsSUFBSTtJQUM3RCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUMzQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBRXpDLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxV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TUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUE7UUFFdEUsT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFlBQVk7UUFDaEIsT0FBTyxNQUFNLElBQUksWUFBWSxDQUFDLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDdkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBBbHRlclRhYmxlIGZyb20gXCIuL3NxbC9hbHRlci10YWJsZS5qc1wiXG5pbXBvcnQgQmFzZSBmcm9tIFwiLi4vYmFzZS5qc1wiXG5pbXBvcnQgQ3JlYXRlRGF0YWJhc2UgZnJvbSBcIi4vc3FsL2NyZWF0ZS1kYXRhYmFzZS5qc1wiXG5pbXBvcnQgQ3JlYXRlSW5kZXggZnJvbSBcIi4vc3FsL2NyZWF0ZS1pbmRleC5qc1wiXG5pbXBvcnQgQ3JlYXRlVGFibGUgZnJvbSBcIi4vc3FsL2NyZWF0ZS10YWJsZS5qc1wiXG5pbXBvcnQgRGVsZXRlIGZyb20gXCIuL3NxbC9kZWxldGUuanNcIlxuaW1wb3J0IERyb3BUYWJsZSBmcm9tIFwiLi9zcWwvZHJvcC10YWJsZS5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IGVzY2FwZVN0cmluZyBmcm9tIFwic3FsLWVzY2FwZS1zdHJpbmdcIlxuaW1wb3J0IEluc2VydCBmcm9tIFwiLi9zcWwvaW5zZXJ0LmpzXCJcbmltcG9ydCBPcHRpb25zIGZyb20gXCIuL29wdGlvbnMuanNcIlxuaW1wb3J0IG1zc3FsIGZyb20gXCJtc3NxbFwiXG5pbXBvcnQgUXVlcnlQYXJzZXIgZnJvbSBcIi4vcXVlcnktcGFyc2VyLmpzXCJcbmltcG9ydCBUYWJsZSBmcm9tIFwiLi90YWJsZS5qc1wiXG5pbXBvcnQgU3RydWN0dXJlU3FsIGZyb20gXCIuL3N0cnVjdHVyZS1zcWwuanNcIlxuaW1wb3J0IFVwZGF0ZSBmcm9tIFwiLi9zcWwvdXBkYXRlLmpzXCJcbmltcG9ydCBVVUlEIGZyb20gXCJwdXJlLXV1aWRcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNNc3NxbCBleHRlbmRzIEJhc2V7XG4gIGFzeW5jIGNvbm5lY3QoKSB7XG4gICAgY29uc3QgYXJncyA9IHRoaXMuZ2V0QXJncygpXG4gICAgY29uc3Qgc3FsQ29uZmlnID0gZGlnZyhhcmdzLCBcInNxbENvbmZpZ1wiKVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuY29ubmVjdGlvbiA9IG5ldyBtc3NxbC5Db25uZWN0aW9uUG9vbChzcWxDb25maWcpXG4gICAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24uY29ubmVjdCgpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIFJlLXRocm93IHRvIGZpeCB1bnVzZWFibGUgc3RhY2sgdHJhY2UuXG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IGNvbm5lY3QgdG8gZGF0YWJhc2U6ICR7ZXJyb3IubWVzc2FnZX1gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZG4ndCBjb25uZWN0IHRvIGRhdGFiYXNlOiAke2Vycm9yfWApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY2xvc2UoKSB7XG4gICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uPy5jbG9zZSgpXG4gICAgdGhpcy5jb25uZWN0aW9uID0gdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi8uLi90YWJsZS1kYXRhL2luZGV4LmpzXCIpLmRlZmF1bHR9IHRhYmxlRGF0YVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmdbXT59IC0gUmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgYWx0ZXJUYWJsZVNRTHModGFibGVEYXRhKSB7XG4gICAgY29uc3QgYWx0ZXJBcmdzID0ge3RhYmxlRGF0YSwgZHJpdmVyOiB0aGlzfVxuICAgIGNvbnN0IGFsdGVyVGFibGUgPSBuZXcgQWx0ZXJUYWJsZShhbHRlckFyZ3MpXG5cbiAgICByZXR1cm4gYXdhaXQgYWx0ZXJUYWJsZS50b1NRTHMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhYmFzZU5hbWVcbiAgICogQHBhcmFtIHtvYmplY3R9IFthcmdzXVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmlmTm90RXhpc3RzXVxuICAgKiBAcmV0dXJucyB7c3RyaW5nW119IC0gUmVzdWx0LlxuICAgKi9cbiAgY3JlYXRlRGF0YWJhc2VTcWwoZGF0YWJhc2VOYW1lLCBhcmdzKSB7XG4gICAgY29uc3QgY3JlYXRlQXJncyA9IE9iamVjdC5hc3NpZ24oe2RhdGFiYXNlTmFtZSwgZHJpdmVyOiB0aGlzfSwgYXJncylcbiAgICBjb25zdCBjcmVhdGVEYXRhYmFzZSA9IG5ldyBDcmVhdGVEYXRhYmFzZShjcmVhdGVBcmdzKVxuXG4gICAgcmV0dXJuIGNyZWF0ZURhdGFiYXNlLnRvU3FsKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Jhc2UuanNcIikuQ3JlYXRlSW5kZXhTcWxBcmdzfSBpbmRleERhdGFcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW10+fSAtIFJlc3VsdC5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZUluZGV4U1FMcyhpbmRleERhdGEpIHtcbiAgICBjb25zdCBjcmVhdGVBcmdzID0gT2JqZWN0LmFzc2lnbih7ZHJpdmVyOiB0aGlzfSwgaW5kZXhEYXRhKVxuICAgIGNvbnN0IGNyZWF0ZUluZGV4ID0gbmV3IENyZWF0ZUluZGV4KGNyZWF0ZUFyZ3MpXG5cbiAgICByZXR1cm4gYXdhaXQgY3JlYXRlSW5kZXgudG9TUUxzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uLy4uL3RhYmxlLWRhdGEvaW5kZXguanNcIikuZGVmYXVsdH0gdGFibGVEYXRhXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn0gLSBSZXN1bHQuXG4gICAqL1xuICBhc3luYyBjcmVhdGVUYWJsZVNxbCh0YWJsZURhdGEpIHtcbiAgICBjb25zdCBjcmVhdGVBcmdzID0ge3RhYmxlRGF0YSwgZHJpdmVyOiB0aGlzLCBpbmRleEluQ3JlYXRlVGFibGU6IGZhbHNlfVxuICAgIGNvbnN0IGNyZWF0ZVRhYmxlID0gbmV3IENyZWF0ZVRhYmxlKGNyZWF0ZUFyZ3MpXG5cbiAgICByZXR1cm4gYXdhaXQgY3JlYXRlVGFibGUudG9TcWwoKVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz59IC0gUmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgY3VycmVudERhdGFiYXNlKCkge1xuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLnF1ZXJ5KFwiU0VMRUNUIERCX05BTUUoKSBBUyBkYl9uYW1lXCIpXG5cbiAgICByZXR1cm4gZGlnZyhyb3dzLCAwLCBcImRiX25hbWVcIilcbiAgfVxuXG4gIGFzeW5jIGRpc2FibGVGb3JlaWduS2V5cygpIHtcbiAgICBhd2FpdCB0aGlzLnF1ZXJ5KFwiRVhFQyBzcF9NU2ZvcmVhY2h0YWJsZSBcXFwiQUxURVIgVEFCTEUgPyBOT0NIRUNLIENPTlNUUkFJTlQgYWxsXFxcIlwiKVxuICB9XG5cbiAgYXN5bmMgZW5hYmxlRm9yZWlnbktleXMoKSB7XG4gICAgYXdhaXQgdGhpcy5xdWVyeShcIkVYRUMgc3BfTVNmb3JlYWNodGFibGUgQGNvbW1hbmQxPVxcXCJwcmludCAnPydcXFwiLCBAY29tbWFuZDI9XFxcIkFMVEVSIFRBQkxFID8gV0lUSCBDSEVDSyBDSEVDSyBDT05TVFJBSU5UIGFsbFxcXCJcIilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5Ecm9wVGFibGVTcWxBcmdzVHlwZX0gW2FyZ3NdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn0gLSBSZXN1bHQuXG4gICAqL1xuICBhc3luYyBkcm9wVGFibGVTUUxzKHRhYmxlTmFtZSwgYXJncyA9IHt9KSB7XG4gICAgY29uc3QgZHJvcEFyZ3MgPSBPYmplY3QuYXNzaWduKHt0YWJsZU5hbWUsIGRyaXZlcjogdGhpc30sIGFyZ3MpXG4gICAgY29uc3QgZHJvcFRhYmxlID0gbmV3IERyb3BUYWJsZShkcm9wQXJncylcblxuICAgIHJldHVybiBhd2FpdCBkcm9wVGFibGUudG9TUUxzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFJlc3VsdC5cbiAgICovXG4gIGdldFR5cGUoKSB7IHJldHVybiBcIm1zc3FsXCIgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFJlc3VsdC5cbiAgICovXG4gIHByaW1hcnlLZXlUeXBlKCkgeyByZXR1cm4gXCJiaWdpbnRcIiB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzcWxcbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5RdWVyeVJlc3VsdFR5cGU+fSAtIFJlc3VsdC5cbiAgICovXG4gIGFzeW5jIF9xdWVyeUFjdHVhbChzcWwpIHtcbiAgICBsZXQgcmVzdWx0XG4gICAgbGV0IHJlcXVlc3QsIHRyaWVzID0gMFxuXG4gICAgaWYgKHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbikge1xuICAgICAgcmVxdWVzdCA9IG5ldyBtc3NxbC5SZXF1ZXN0KHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbilcbiAgICB9IGVsc2Uge1xuICAgICAgcmVxdWVzdCA9IG5ldyBtc3NxbC5SZXF1ZXN0KHRoaXMuY29ubmVjdGlvbilcbiAgICB9XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgdHJpZXMrK1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCByZXF1ZXN0LnF1ZXJ5KHNxbClcbiAgICAgICAgYnJlYWtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm1lc3NhZ2UgPT0gXCJObyBjb25uZWN0aW9uIGlzIHNwZWNpZmllZCBmb3IgdGhhdCByZXF1ZXN0LlwiICYmIHRyaWVzIDw9IDMpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFwiUmVjb25uZWN0aW5nIHRvIGRhdGFiYXNlXCIpXG4gICAgICAgICAgYXdhaXQgdGhpcy5jb25uZWN0KClcbiAgICAgICAgICAvLyBSZXRyeVxuICAgICAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAvLyBSZS10aHJvdyBlcnJvciBiZWNhdXNlIHRoZSBzdGFjay10cmFjZSBpcyBicm9rZW4gYW5kIGNhbid0IGJlIHVzZWQgZm9yIGFwcC1kZXZlbG9wbWVudC5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFF1ZXJ5IGZhaWxlZCAnJHtlcnJvci5tZXNzYWdlfSc6ICR7c3FsfWApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBRdWVyeSBmYWlsZWQgJyR7ZXJyb3J9JzogJHtzcWx9YClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQucmVjb3Jkc2V0c1swXVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vLi4vcXVlcnkvaW5kZXguanNcIikuZGVmYXVsdH0gcXVlcnlcbiAgICogQHJldHVybnMge3N0cmluZ30gLSBSZXN1bHQuXG4gICAqL1xuICBxdWVyeVRvU3FsKHF1ZXJ5KSB7IHJldHVybiBuZXcgUXVlcnlQYXJzZXIoe3F1ZXJ5fSkudG9TcWwoKSB9XG5cbiAgc2hvdWxkU2V0QXV0b0luY3JlbWVudFdoZW5QcmltYXJ5S2V5KCkgeyByZXR1cm4gdHJ1ZSB9XG4gIHN1cHBvcnRzRGVmYXVsdFByaW1hcnlLZXlVVUlEKCkgeyByZXR1cm4gdHJ1ZSB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAgICogQHJldHVybnMge3N0cmluZ30gLSBSZXN1bHQuXG4gICAqL1xuICBlc2NhcGUodmFsdWUpIHtcbiAgICB2YWx1ZSA9IHRoaXMuX2NvbnZlcnRWYWx1ZSh2YWx1ZSlcblxuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWVcblxuICAgIGlmICh0eXBlICE9IFwic3RyaW5nXCIpIHZhbHVlID0gYCR7dmFsdWV9YFxuXG4gICAgY29uc3QgcmVzdWx0V2l0aFF1b3RlcyA9IGVzY2FwZVN0cmluZyh2YWx1ZSwgbnVsbClcbiAgICBjb25zdCByZXN1bHQgPSByZXN1bHRXaXRoUXVvdGVzLnN1YnN0cmluZygxLCByZXN1bHRXaXRoUXVvdGVzLmxlbmd0aCAtIDEpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHsqfSB2YWx1ZVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFJlc3VsdC5cbiAgICovXG4gIHF1b3RlKHZhbHVlKSB7XG4gICAgdmFsdWUgPSB0aGlzLl9jb252ZXJ0VmFsdWUodmFsdWUpXG5cbiAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlXG5cbiAgICBpZiAodHlwZSA9PSBcIm51bWJlclwiKSByZXR1cm4gdmFsdWVcbiAgICBpZiAodHlwZSAhPSBcInN0cmluZ1wiKSB2YWx1ZSA9IGAke3ZhbHVlfWBcblxuICAgIHJldHVybiBlc2NhcGVTdHJpbmcodmFsdWUsIG51bGwpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHsqfSBzdHJpbmdcbiAgICogQHJldHVybnMge3N0cmluZ30gLSBSZXN1bHQuXG4gICAqL1xuICBxdW90ZUNvbHVtbihzdHJpbmcpIHsgcmV0dXJuIHRoaXMub3B0aW9ucygpLnF1b3RlQ29sdW1uTmFtZShzdHJpbmcpIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFJlc3VsdC5cbiAgICovXG4gIHF1b3RlVGFibGUoc3RyaW5nKSB7IHJldHVybiB0aGlzLm9wdGlvbnMoKS5xdW90ZVRhYmxlTmFtZShzdHJpbmcpIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb2xkQ29sdW1uTmFtZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3Q29sdW1uTmFtZVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXN1bHQuXG4gICAqL1xuICBhc3luYyByZW5hbWVDb2x1bW4odGFibGVOYW1lLCBvbGRDb2x1bW5OYW1lLCBuZXdDb2x1bW5OYW1lKSB7XG4gICAgYXdhaXQgdGhpcy5xdWVyeShgRVhFQyBzcF9yZW5hbWUgJHt0aGlzLnF1b3RlKGAke3RhYmxlTmFtZX0uJHtvbGRDb2x1bW5OYW1lfWApfSwgJHt0aGlzLnF1b3RlKG5ld0NvbHVtbk5hbWUpfSwgJ0NPTFVNTidgKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5EZWxldGVTcWxBcmdzVHlwZX0gYXJnc1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFJlc3VsdC5cbiAgICovXG4gIGRlbGV0ZVNxbCh7dGFibGVOYW1lLCBjb25kaXRpb25zfSkge1xuICAgIGNvbnN0IGRlbGV0ZUluc3RydWN0aW9uID0gbmV3IERlbGV0ZSh7Y29uZGl0aW9ucywgZHJpdmVyOiB0aGlzLCB0YWJsZU5hbWV9KVxuXG4gICAgcmV0dXJuIGRlbGV0ZUluc3RydWN0aW9uLnRvU3FsKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLmpzXCIpLkluc2VydFNxbEFyZ3NUeXBlfSBhcmdzXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gUmVzdWx0LlxuICAgKi9cbiAgaW5zZXJ0U3FsKGFyZ3MpIHtcbiAgICBjb25zdCBpbnNlcnRBcmdzID0gT2JqZWN0LmFzc2lnbih7ZHJpdmVyOiB0aGlzfSwgYXJncylcbiAgICBjb25zdCBpbnNlcnQgPSBuZXcgSW5zZXJ0KGluc2VydEFyZ3MpXG5cbiAgICByZXR1cm4gaW5zZXJ0LnRvU3FsKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheTxpbXBvcnQoXCIuLi9iYXNlLXRhYmxlLmpzXCIpLmRlZmF1bHQ+Pn0gLSBSZXN1bHQuXG4gICAqL1xuICBhc3luYyBnZXRUYWJsZXMoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5xdWVyeShgU0VMRUNUIFtUQUJMRV9OQU1FXSBGUk9NIFtJTkZPUk1BVElPTl9TQ0hFTUFdLltUQUJMRVNdIFdIRVJFIFtUQUJMRV9DQVRBTE9HXSA9IERCX05BTUUoKSBBTkQgW1RBQkxFX1NDSEVNQV0gPSAnZGJvJ2ApXG4gICAgY29uc3QgdGFibGVzID0gW11cblxuICAgIGZvciAoY29uc3Qgcm93IG9mIHJlc3VsdCkge1xuICAgICAgY29uc3QgdGFibGUgPSBuZXcgVGFibGUodGhpcywgcm93KVxuXG4gICAgICB0YWJsZXMucHVzaCh0YWJsZSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGFibGVzXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICogQHBhcmFtIHtvYmplY3R9IFthcmdzXVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGFyZ3MudGhyb3dFcnJvclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuLi9iYXNlLXRhYmxlLmpzXCIpLmRlZmF1bHQgfCB1bmRlZmluZWQ+fSAtIFJlc3VsdC5cbiAgICovXG4gIGFzeW5jIGdldFRhYmxlQnlOYW1lKG5hbWUsIGFyZ3MpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnF1ZXJ5KGBTRUxFQ1QgW1RBQkxFX05BTUVdIEZST00gW0lORk9STUFUSU9OX1NDSEVNQV0uW1RBQkxFU10gV0hFUkUgW1RBQkxFX0NBVEFMT0ddID0gREJfTkFNRSgpIEFORCBbVEFCTEVfU0NIRU1BXSA9ICdkYm8nIEFORCBbVEFCTEVfTkFNRV0gPSAke3RoaXMucXVvdGUobmFtZSl9YClcblxuICAgIGlmIChyZXN1bHRbMF0pIHtcbiAgICAgIHJldHVybiBuZXcgVGFibGUodGhpcywgcmVzdWx0WzBdKVxuICAgIH1cblxuICAgIGlmIChhcmdzPy50aHJvd0Vycm9yICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgdGFibGVzID0gYXdhaXQgdGhpcy5nZXRUYWJsZXMoKVxuICAgICAgY29uc3QgdGFibGVOYW1lcyA9IHRhYmxlcy5tYXAoKHRhYmxlKSA9PiB0YWJsZS5nZXROYW1lKCkpXG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGRuJ3QgZmluZCBhIHRhYmxlIGJ5IHRoYXQgbmFtZSBcIiR7bmFtZX1cIiBpbjogJHt0YWJsZU5hbWVzLmpvaW4oXCIsIFwiKX1gKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGxhc3RJbnNlcnRJRCgpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnF1ZXJ5KFwiU0VMRUNUIFNDT1BFX0lERU5USVRZKCkgQVMgbGFzdF9pbnNlcnRfaWRcIilcbiAgICBjb25zdCBsYXN0SW5zZXJ0SUQgPSBkaWdnKHJlc3VsdCwgMCwgXCJsYXN0X2luc2VydF9pZFwiKVxuXG4gICAgaWYgKGxhc3RJbnNlcnRJRCA9PT0gbnVsbCkgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuJ3QgZ2V0IHRoZSBsYXN0IGluc2VydGVkIElEXCIpXG5cbiAgICByZXR1cm4gbGFzdEluc2VydElEXG4gIH1cblxuICAvKiogQHJldHVybnMge09wdGlvbnN9IC0gUmVzdWx0LiAgKi9cbiAgb3B0aW9ucygpIHtcbiAgICBpZiAoIXRoaXMuX29wdGlvbnMpIHRoaXMuX29wdGlvbnMgPSBuZXcgT3B0aW9ucyh7ZHJpdmVyOiB0aGlzfSlcblxuICAgIHJldHVybiB0aGlzLl9vcHRpb25zXG4gIH1cblxuICBhc3luYyBfc3RhcnRUcmFuc2FjdGlvbkFjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuY29ubmVjdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiTm8gY29ubmVjdGlvblwiKVxuICAgIGlmICh0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24pIHRocm93IG5ldyBFcnJvcihcIkEgdHJhbnNhY3Rpb24gaXMgYWxyZWFkeSBydW5uaW5nXCIpXG5cbiAgICB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24gPSBuZXcgbXNzcWwuVHJhbnNhY3Rpb24odGhpcy5jb25uZWN0aW9uKVxuXG4gICAgYXdhaXQgdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLmJlZ2luKClcbiAgfVxuXG4gIGFzeW5jIF9jb21taXRUcmFuc2FjdGlvbkFjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiQSB0cmFuc2FjdGlvbiBpc24ndCBydW5uaW5nXCIpXG5cbiAgICBhd2FpdCB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24uY29tbWl0KClcbiAgICB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24gPSBudWxsXG4gIH1cblxuICBhc3luYyBfcm9sbGJhY2tUcmFuc2FjdGlvbkFjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiQSB0cmFuc2FjdGlvbiBpc24ndCBydW5uaW5nXCIpXG5cbiAgICBhd2FpdCB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24ucm9sbGJhY2soKVxuXG4gICAgdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uID0gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzYXZlUG9pbnROYW1lXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc3VsdC5cbiAgICovXG4gIGFzeW5jIF9zdGFydFNhdmVQb2ludEFjdGlvbihzYXZlUG9pbnROYW1lKSB7XG4gICAgYXdhaXQgdGhpcy5xdWVyeShgU0FWRSBUUkFOU0FDVElPTiBbJHtzYXZlUG9pbnROYW1lfV1gKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzYXZlUG9pbnROYW1lXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc3VsdC5cbiAgICovXG4gIGFzeW5jIF9yZWxlYXNlU2F2ZVBvaW50QWN0aW9uKHNhdmVQb2ludE5hbWUpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIC8vIERvIG5vdGhpbmcgaW4gTVMtU1FMLlxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzYXZlUG9pbnROYW1lXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc3VsdC5cbiAgICovXG4gIGFzeW5jIF9yb2xsYmFja1NhdmVQb2ludEFjdGlvbihzYXZlUG9pbnROYW1lKSB7XG4gICAgYXdhaXQgdGhpcy5xdWVyeShgUk9MTEJBQ0sgVFJBTlNBQ1RJT04gWyR7c2F2ZVBvaW50TmFtZX1dYClcbiAgfVxuXG4gIGdlbmVyYXRlU2F2ZVBvaW50TmFtZSgpIHtcbiAgICByZXR1cm4gYHNwJHtuZXcgVVVJRCg0KS5mb3JtYXQoKS5yZXBsYWNlQWxsKFwiLVwiLCBcIlwiKX1gLnN1YnN0cmluZygwLCAzMilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Jhc2UuanNcIikuVXBkYXRlU3FsQXJnc1R5cGV9IGFyZ3NcbiAgICogQHJldHVybnMge3N0cmluZ30gLSBSZXN1bHQuXG4gICAqL1xuICB1cGRhdGVTcWwoe2NvbmRpdGlvbnMsIGRhdGEsIHRhYmxlTmFtZX0pIHtcbiAgICBjb25zdCB1cGRhdGUgPSBuZXcgVXBkYXRlKHtjb25kaXRpb25zLCBkYXRhLCBkcml2ZXI6IHRoaXMsIHRhYmxlTmFtZX0pXG5cbiAgICByZXR1cm4gdXBkYXRlLnRvU3FsKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmcgfCBudWxsPn0gLSBSZXN1bHQuXG4gICAqL1xuICBhc3luYyBzdHJ1Y3R1cmVTcWwoKSB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBTdHJ1Y3R1cmVTcWwoe2RyaXZlcjogdGhpc30pLnRvU3FsKClcbiAgfVxufVxuIl19
@@ -17,7 +17,7 @@ export default class VelociousDatabaseDriversMssqlOptions extends QueryParserOpt
17
17
  }
18
18
  /**
19
19
  * @param {any} string
20
- * @returns {number | string}
20
+ * @returns {number | string} - Result.
21
21
  */
22
22
  quote(string) {
23
23
  if (!this.driver)
@@ -26,7 +26,7 @@ export default class VelociousDatabaseDriversMssqlOptions extends QueryParserOpt
26
26
  }
27
27
  /**
28
28
  * @param {string} string
29
- * @returns {string}
29
+ * @returns {string} - Result.
30
30
  */
31
31
  quoteColumnName(string) {
32
32
  if (string.includes("[") || string.includes("]"))
@@ -35,7 +35,7 @@ export default class VelociousDatabaseDriversMssqlOptions extends QueryParserOpt
35
35
  }
36
36
  /**
37
37
  * @param {string} databaseName
38
- * @returns {string}
38
+ * @returns {string} - Result.
39
39
  */
40
40
  quoteDatabaseName(databaseName) {
41
41
  if (typeof databaseName != "string")
@@ -46,7 +46,7 @@ export default class VelociousDatabaseDriversMssqlOptions extends QueryParserOpt
46
46
  }
47
47
  /**
48
48
  * @param {string} string
49
- * @returns {string}
49
+ * @returns {string} - Result.
50
50
  */
51
51
  quoteIndexName(string) {
52
52
  if (string.includes("[") || string.includes("]"))
@@ -55,7 +55,7 @@ export default class VelociousDatabaseDriversMssqlOptions extends QueryParserOpt
55
55
  }
56
56
  /**
57
57
  * @param {string} string
58
- * @returns {string}
58
+ * @returns {string} - Result.
59
59
  */
60
60
  quoteTableName(string) {
61
61
  if (string.includes("[") || string.includes("]"))
@@ -63,4 +63,4 @@ export default class VelociousDatabaseDriversMssqlOptions extends QueryParserOpt
63
63
  return `[${string}]`;
64
64
  }
65
65
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kcml2ZXJzL21zc3FsL29wdGlvbnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sa0JBQWtCLE1BQU0sK0JBQStCLENBQUE7QUFFOUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxvQ0FBcUMsU0FBUSxrQkFBa0I7SUFDbEY7OztPQUdHO0lBQ0gsWUFBWSxFQUFDLE1BQU0sRUFBQztRQUNsQixNQUFNLE9BQU8sR0FBRztZQUNkLE1BQU07WUFDTixXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUUsR0FBRztZQUNoQixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFBO1FBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsTUFBTTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUVuRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxlQUFlLENBQUMsTUFBTTtRQUNwQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBRXJILE9BQU8sSUFBSSxNQUFNLEdBQUcsQ0FBQTtJQUN0QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsaUJBQWlCLENBQUMsWUFBWTtRQUM1QixJQUFJLE9BQU8sWUFBWSxJQUFJLFFBQVE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxZQUFZLEVBQUUsQ0FBQyxDQUFBO1FBQ3BHLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLFlBQVksRUFBRSxDQUFDLENBQUE7UUFFekksT0FBTyxJQUFJLFlBQVksR0FBRyxDQUFBO0lBQzVCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLENBQUMsTUFBTTtRQUNuQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBRXBILE9BQU8sSUFBSSxNQUFNLEdBQUcsQ0FBQTtJQUN0QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLE1BQU07UUFDbkIsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtRQUVwSCxPQUFPLElBQUksTUFBTSxHQUFHLENBQUE7SUFDdEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBRdWVyeVBhcnNlck9wdGlvbnMgZnJvbSBcIi4uLy4uL3F1ZXJ5LXBhcnNlci9vcHRpb25zLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VEcml2ZXJzTXNzcWxPcHRpb25zIGV4dGVuZHMgUXVlcnlQYXJzZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5kZWZhdWx0fSBhcmdzLmRyaXZlclxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2RyaXZlcn0pIHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgZHJpdmVyLFxuICAgICAgY29sdW1uUXVvdGU6IFwiXFxcIlwiLFxuICAgICAgaW5kZXhRdW90ZTogXCJcXFwiXCIsXG4gICAgICBzdHJpbmdRdW90ZTogXCInXCIsXG4gICAgICB0YWJsZVF1b3RlOiBcIlxcXCJcIlxuICAgIH1cblxuICAgIHN1cGVyKG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHthbnl9IHN0cmluZ1xuICAgKiBAcmV0dXJucyB7bnVtYmVyIHwgc3RyaW5nfVxuICAgKi9cbiAgcXVvdGUoc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmRyaXZlcikgdGhyb3cgbmV3IEVycm9yKFwiRHJpdmVyIG5vdCBzZXRcIilcblxuICAgIHJldHVybiB0aGlzLmRyaXZlci5xdW90ZShzdHJpbmcpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgcXVvdGVDb2x1bW5OYW1lKHN0cmluZykge1xuICAgIGlmIChzdHJpbmcuaW5jbHVkZXMoXCJbXCIpIHx8IHN0cmluZy5pbmNsdWRlcyhcIl1cIikpIHRocm93IG5ldyBFcnJvcihgUG9zc2libGUgU1FMIGluamVjdGlvbiBpbiBjb2x1bW4gbmFtZTogJHtzdHJpbmd9YClcblxuICAgIHJldHVybiBgWyR7c3RyaW5nfV1gXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGFiYXNlTmFtZVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgcXVvdGVEYXRhYmFzZU5hbWUoZGF0YWJhc2VOYW1lKSB7XG4gICAgaWYgKHR5cGVvZiBkYXRhYmFzZU5hbWUgIT0gXCJzdHJpbmdcIikgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRhdGFiYXNlIG5hbWUgZ2l2ZW46ICR7ZGF0YWJhc2VOYW1lfWApXG4gICAgaWYgKGRhdGFiYXNlTmFtZS5pbmNsdWRlcyhcIltcIikgfHwgZGF0YWJhc2VOYW1lLmluY2x1ZGVzKFwiXVwiKSkgdGhyb3cgbmV3IEVycm9yKGBQb3NzaWJsZSBTUUwgaW5qZWN0aW9uIGluIGRhdGFiYXNlIG5hbWU6ICR7ZGF0YWJhc2VOYW1lfWApXG5cbiAgICByZXR1cm4gYFske2RhdGFiYXNlTmFtZX1dYFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIHF1b3RlSW5kZXhOYW1lKHN0cmluZykge1xuICAgIGlmIChzdHJpbmcuaW5jbHVkZXMoXCJbXCIpIHx8IHN0cmluZy5pbmNsdWRlcyhcIl1cIikpIHRocm93IG5ldyBFcnJvcihgUG9zc2libGUgU1FMIGluamVjdGlvbiBpbiBpbmRleCBuYW1lOiAke3N0cmluZ31gKVxuXG4gICAgcmV0dXJuIGBbJHtzdHJpbmd9XWBcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBxdW90ZVRhYmxlTmFtZShzdHJpbmcpIHtcbiAgICBpZiAoc3RyaW5nLmluY2x1ZGVzKFwiW1wiKSB8fCBzdHJpbmcuaW5jbHVkZXMoXCJdXCIpKSB0aHJvdyBuZXcgRXJyb3IoYFBvc3NpYmxlIFNRTCBpbmplY3Rpb24gaW4gdGFibGUgbmFtZTogJHtzdHJpbmd9YClcblxuICAgIHJldHVybiBgWyR7c3RyaW5nfV1gXG4gIH1cbn1cbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kcml2ZXJzL21zc3FsL29wdGlvbnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sa0JBQWtCLE1BQU0sK0JBQStCLENBQUE7QUFFOUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxvQ0FBcUMsU0FBUSxrQkFBa0I7SUFDbEY7OztPQUdHO0lBQ0gsWUFBWSxFQUFDLE1BQU0sRUFBQztRQUNsQixNQUFNLE9BQU8sR0FBRztZQUNkLE1BQU07WUFDTixXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUUsR0FBRztZQUNoQixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFBO1FBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsTUFBTTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUVuRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxlQUFlLENBQUMsTUFBTTtRQUNwQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBRXJILE9BQU8sSUFBSSxNQUFNLEdBQUcsQ0FBQTtJQUN0QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsaUJBQWlCLENBQUMsWUFBWTtRQUM1QixJQUFJLE9BQU8sWUFBWSxJQUFJLFFBQVE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxZQUFZLEVBQUUsQ0FBQyxDQUFBO1FBQ3BHLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLFlBQVksRUFBRSxDQUFDLENBQUE7UUFFekksT0FBTyxJQUFJLFlBQVksR0FBRyxDQUFBO0lBQzVCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLENBQUMsTUFBTTtRQUNuQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBRXBILE9BQU8sSUFBSSxNQUFNLEdBQUcsQ0FBQTtJQUN0QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLE1BQU07UUFDbkIsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtRQUVwSCxPQUFPLElBQUksTUFBTSxHQUFHLENBQUE7SUFDdEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBRdWVyeVBhcnNlck9wdGlvbnMgZnJvbSBcIi4uLy4uL3F1ZXJ5LXBhcnNlci9vcHRpb25zLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VEcml2ZXJzTXNzcWxPcHRpb25zIGV4dGVuZHMgUXVlcnlQYXJzZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5kZWZhdWx0fSBhcmdzLmRyaXZlclxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2RyaXZlcn0pIHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgZHJpdmVyLFxuICAgICAgY29sdW1uUXVvdGU6IFwiXFxcIlwiLFxuICAgICAgaW5kZXhRdW90ZTogXCJcXFwiXCIsXG4gICAgICBzdHJpbmdRdW90ZTogXCInXCIsXG4gICAgICB0YWJsZVF1b3RlOiBcIlxcXCJcIlxuICAgIH1cblxuICAgIHN1cGVyKG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHthbnl9IHN0cmluZ1xuICAgKiBAcmV0dXJucyB7bnVtYmVyIHwgc3RyaW5nfSAtIFJlc3VsdC5cbiAgICovXG4gIHF1b3RlKHN0cmluZykge1xuICAgIGlmICghdGhpcy5kcml2ZXIpIHRocm93IG5ldyBFcnJvcihcIkRyaXZlciBub3Qgc2V0XCIpXG5cbiAgICByZXR1cm4gdGhpcy5kcml2ZXIucXVvdGUoc3RyaW5nKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAgICogQHJldHVybnMge3N0cmluZ30gLSBSZXN1bHQuXG4gICAqL1xuICBxdW90ZUNvbHVtbk5hbWUoc3RyaW5nKSB7XG4gICAgaWYgKHN0cmluZy5pbmNsdWRlcyhcIltcIikgfHwgc3RyaW5nLmluY2x1ZGVzKFwiXVwiKSkgdGhyb3cgbmV3IEVycm9yKGBQb3NzaWJsZSBTUUwgaW5qZWN0aW9uIGluIGNvbHVtbiBuYW1lOiAke3N0cmluZ31gKVxuXG4gICAgcmV0dXJuIGBbJHtzdHJpbmd9XWBcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGF0YWJhc2VOYW1lXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gUmVzdWx0LlxuICAgKi9cbiAgcXVvdGVEYXRhYmFzZU5hbWUoZGF0YWJhc2VOYW1lKSB7XG4gICAgaWYgKHR5cGVvZiBkYXRhYmFzZU5hbWUgIT0gXCJzdHJpbmdcIikgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRhdGFiYXNlIG5hbWUgZ2l2ZW46ICR7ZGF0YWJhc2VOYW1lfWApXG4gICAgaWYgKGRhdGFiYXNlTmFtZS5pbmNsdWRlcyhcIltcIikgfHwgZGF0YWJhc2VOYW1lLmluY2x1ZGVzKFwiXVwiKSkgdGhyb3cgbmV3IEVycm9yKGBQb3NzaWJsZSBTUUwgaW5qZWN0aW9uIGluIGRhdGFiYXNlIG5hbWU6ICR7ZGF0YWJhc2VOYW1lfWApXG5cbiAgICByZXR1cm4gYFske2RhdGFiYXNlTmFtZX1dYFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAgICogQHJldHVybnMge3N0cmluZ30gLSBSZXN1bHQuXG4gICAqL1xuICBxdW90ZUluZGV4TmFtZShzdHJpbmcpIHtcbiAgICBpZiAoc3RyaW5nLmluY2x1ZGVzKFwiW1wiKSB8fCBzdHJpbmcuaW5jbHVkZXMoXCJdXCIpKSB0aHJvdyBuZXcgRXJyb3IoYFBvc3NpYmxlIFNRTCBpbmplY3Rpb24gaW4gaW5kZXggbmFtZTogJHtzdHJpbmd9YClcblxuICAgIHJldHVybiBgWyR7c3RyaW5nfV1gXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFJlc3VsdC5cbiAgICovXG4gIHF1b3RlVGFibGVOYW1lKHN0cmluZykge1xuICAgIGlmIChzdHJpbmcuaW5jbHVkZXMoXCJbXCIpIHx8IHN0cmluZy5pbmNsdWRlcyhcIl1cIikpIHRocm93IG5ldyBFcnJvcihgUG9zc2libGUgU1FMIGluamVjdGlvbiBpbiB0YWJsZSBuYW1lOiAke3N0cmluZ31gKVxuXG4gICAgcmV0dXJuIGBbJHtzdHJpbmd9XWBcbiAgfVxufVxuIl19
@@ -8,12 +8,12 @@ export default class VelociousDatabaseDriversMssqlStructureSql {
8
8
  });
9
9
  driver: import("../base.js").default;
10
10
  /**
11
- * @returns {Promise<string | null>}
11
+ * @returns {Promise<string | null>} - Result.
12
12
  */
13
13
  toSql(): Promise<string | null>;
14
14
  /**
15
15
  * @param {Record<string, any>} column
16
- * @returns {string | null}
16
+ * @returns {string | null} - Result.
17
17
  */
18
18
  _columnDefinition(column: Record<string, any>): string | null;
19
19
  }
@@ -9,7 +9,7 @@ export default class VelociousDatabaseDriversMssqlStructureSql {
9
9
  this.driver = driver;
10
10
  }
11
11
  /**
12
- * @returns {Promise<string | null>}
12
+ * @returns {Promise<string | null>} - Result.
13
13
  */
14
14
  async toSql() {
15
15
  const { driver } = this;
@@ -56,7 +56,7 @@ export default class VelociousDatabaseDriversMssqlStructureSql {
56
56
  }
57
57
  /**
58
58
  * @param {Record<string, any>} column
59
- * @returns {string | null}
59
+ * @returns {string | null} - Result.
60
60
  */
61
61
  _columnDefinition(column) {
62
62
  const { driver } = this;
@@ -94,4 +94,4 @@ export default class VelociousDatabaseDriversMssqlStructureSql {
94
94
  return parts.join(" ");
95
95
  }
96
96
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlLXNxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kcml2ZXJzL21zc3FsL3N0cnVjdHVyZS1zcWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBQyxNQUFNLDJCQUEyQixDQUFBO0FBRXpGLE1BQU0sQ0FBQyxPQUFPLE9BQU8seUNBQXlDO0lBQzVEOzs7T0FHRztJQUNILFlBQVksRUFBQyxNQUFNLEVBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLEtBQUs7UUFDVCxNQUFNLEVBQUMsTUFBTSxFQUFDLEdBQUcsSUFBSSxDQUFBO1FBQ3JCLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxxSkFBcUosQ0FBQyxDQUFBO1FBQ3RMLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUVyQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQTtZQUNsRCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUE7WUFFbEQsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLFNBQVM7Z0JBQUUsU0FBUTtZQUV0QyxJQUFJLFNBQVMsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLHFVQUFxVSxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO2dCQUM1WixNQUFNLFdBQVcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsd1FBQXdR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SUFBSSxNQUFNLENBQUMsV0FBVyxDQUFBO1FBRTNELElBQUksVUFBVSxJQUFJLElBQUk7WUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRTlDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHtub3JtYWxpemVDcmVhdGVTdGF0ZW1lbnQsIG5vcm1hbGl6ZVNxbFN0YXRlbWVudH0gZnJvbSBcIi4uL3N0cnVjdHVyZS1zcWwvdXRpbHMuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNNc3NxbFN0cnVjdHVyZVNxbCB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJnc1xuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Jhc2UuanNcIikuZGVmYXVsdH0gYXJncy5kcml2ZXJcbiAgICovXG4gIGNvbnN0cnVjdG9yKHtkcml2ZXJ9KSB7XG4gICAgdGhpcy5kcml2ZXIgPSBkcml2ZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmcgfCBudWxsPn1cbiAgICovXG4gIGFzeW5jIHRvU3FsKCkge1xuICAgIGNvbnN0IHtkcml2ZXJ9ID0gdGhpc1xuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCBkcml2ZXIucXVlcnkoXCJTRUxFQ1QgVEFCTEVfTkFNRSBBUyB0YWJsZV9uYW1lLCBUQUJMRV9UWVBFIEFTIHRhYmxlX3R5cGUgRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuVEFCTEVTIFdIRVJFIFRBQkxFX1NDSEVNQSA9ICdkYm8nIE9SREVSIEJZIFRBQkxFX1RZUEUsIFRBQkxFX05BTUVcIilcbiAgICBjb25zdCBzdGF0ZW1lbnRzID0gW11cblxuICAgIGZvciAoY29uc3Qgcm93IG9mIHJvd3MpIHtcbiAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IHJvdy50YWJsZV9uYW1lIHx8IHJvdy5UQUJMRV9OQU1FXG4gICAgICBjb25zdCB0YWJsZVR5cGUgPSByb3cudGFibGVfdHlwZSB8fCByb3cuVEFCTEVfVFlQRVxuXG4gICAgICBpZiAoIXRhYmxlTmFtZSB8fCAhdGFibGVUeXBlKSBjb250aW51ZVxuXG4gICAgICBpZiAodGFibGVUeXBlID09IFwiQkFTRSBUQUJMRVwiKSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSBhd2FpdCBkcml2ZXIucXVlcnkoYFNFTEVDVCBDT0xVTU5fTkFNRSBBUyBjb2x1bW5fbmFtZSwgREFUQV9UWVBFIEFTIGRhdGFfdHlwZSwgSVNfTlVMTEFCTEUgQVMgaXNfbnVsbGFibGUsIENPTFVNTl9ERUZBVUxUIEFTIGNvbHVtbl9kZWZhdWx0LCBDSEFSQUNURVJfTUFYSU1VTV9MRU5HVEggQVMgY2hhcmFjdGVyX21heGltdW1fbGVuZ3RoLCBOVU1FUklDX1BSRUNJU0lPTiBBUyBudW1lcmljX3ByZWNpc2lvbiwgTlVNRVJJQ19TQ0FMRSBBUyBudW1lcmljX3NjYWxlIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLkNPTFVNTlMgV0hFUkUgVEFCTEVfU0NIRU1BID0gJ2RibycgQU5EIFRBQkxFX05BTUUgPSAke2RyaXZlci5xdW90ZSh0YWJsZU5hbWUpfSBPUkRFUiBCWSBPUkRJTkFMX1BPU0lUSU9OYClcbiAgICAgICAgY29uc3QgcHJpbWFyeUtleXMgPSBhd2FpdCBkcml2ZXIucXVlcnkoYFNFTEVDVCBrY3UuQ09MVU1OX05BTUUgQVMgY29sdW1uX25hbWUgRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuVEFCTEVfQ09OU1RSQUlOVFMgdGMgSk9JTiBJTkZPUk1BVElPTl9TQ0hFTUEuS0VZX0NPTFVNTl9VU0FHRSBrY3UgT04gdGMuQ09OU1RSQUlOVF9OQU1FID0ga2N1LkNPTlNUUkFJTlRfTkFNRSBXSEVSRSB0Yy5DT05TVFJBSU5UX1RZUEUgPSAnUFJJTUFSWSBLRVknIEFORCB0Yy5UQUJMRV9TQ0hFTUEgPSAnZGJvJyBBTkQgdGMuVEFCTEVfTkFNRSA9ICR7ZHJpdmVyLnF1b3RlKHRhYmxlTmFtZSl9IE9SREVSIEJZIGtjdS5PUkRJTkFMX1BPU0lUSU9OYClcbiAgICAgICAgY29uc3QgY29sdW1uU3FsID0gY29sdW1uc1xuICAgICAgICAgIC5tYXAoKGNvbHVtbikgPT4gdGhpcy5fY29sdW1uRGVmaW5pdGlvbihjb2x1bW4pKVxuICAgICAgICAgIC5maWx0ZXIoKGNvbHVtbikgPT4gQm9vbGVhbihjb2x1bW4pKVxuICAgICAgICBjb25zdCBwcmltYXJ5S2V5Q29sdW1ucyA9IHByaW1hcnlLZXlzXG4gICAgICAgICAgLm1hcCgocHJpbWFyeUtleVJvdykgPT4gcHJpbWFyeUtleVJvdy5jb2x1bW5fbmFtZSB8fCBwcmltYXJ5S2V5Um93LkNPTFVNTl9OQU1FKVxuICAgICAgICAgIC5maWx0ZXIoKGNvbHVtbikgPT4gQm9vbGVhbihjb2x1bW4pKVxuXG4gICAgICAgIGlmIChwcmltYXJ5S2V5Q29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29sdW1uU3FsLnB1c2goYFBSSU1BUlkgS0VZICgke3ByaW1hcnlLZXlDb2x1bW5zLm1hcCgobmFtZSkgPT4gZHJpdmVyLnF1b3RlQ29sdW1uKG5hbWUpKS5qb2luKFwiLCBcIil9KWApXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29sdW1uU3FsLmxlbmd0aCA9PSAwKSBjb250aW51ZVxuXG4gICAgICAgIHN0YXRlbWVudHMucHVzaChub3JtYWxpemVTcWxTdGF0ZW1lbnQoYENSRUFURSBUQUJMRSAke2RyaXZlci5xdW90ZVRhYmxlKHRhYmxlTmFtZSl9ICgke2NvbHVtblNxbC5qb2luKFwiLCBcIil9KWApKVxuICAgICAgfSBlbHNlIGlmICh0YWJsZVR5cGUgPT0gXCJWSUVXXCIpIHtcbiAgICAgICAgY29uc3Qgdmlld1Jvd3MgPSBhd2FpdCBkcml2ZXIucXVlcnkoYFNFTEVDVCBtLmRlZmluaXRpb24gQVMgZGVmaW5pdGlvbiBGUk9NIHN5cy5zcWxfbW9kdWxlcyBtIEpPSU4gc3lzLm9iamVjdHMgbyBPTiBtLm9iamVjdF9pZCA9IG8ub2JqZWN0X2lkIFdIRVJFIG8udHlwZSA9ICdWJyBBTkQgby5uYW1lID0gJHtkcml2ZXIucXVvdGUodGFibGVOYW1lKX1gKVxuICAgICAgICBjb25zdCB2aWV3RGVmID0gdmlld1Jvd3M/LlswXT8uZGVmaW5pdGlvbiB8fCB2aWV3Um93cz8uWzBdPy5ERUZJTklUSU9OXG5cbiAgICAgICAgaWYgKCF2aWV3RGVmKSBjb250aW51ZVxuXG4gICAgICAgIGNvbnN0IGNyZWF0ZVN0YXRlbWVudCA9IG5vcm1hbGl6ZUNyZWF0ZVN0YXRlbWVudCh7XG4gICAgICAgICAgZGI6IGRyaXZlcixcbiAgICAgICAgICBzdGF0ZW1lbnQ6IHZpZXdEZWYsXG4gICAgICAgICAgb2JqZWN0TmFtZTogdGFibGVOYW1lLFxuICAgICAgICAgIHR5cGU6IFwiVklFV1wiXG4gICAgICAgIH0pXG5cbiAgICAgICAgc3RhdGVtZW50cy5wdXNoKG5vcm1hbGl6ZVNxbFN0YXRlbWVudChjcmVhdGVTdGF0ZW1lbnQpKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdGF0ZW1lbnRzLmxlbmd0aCA9PSAwKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIGAke3N0YXRlbWVudHMuam9pbihcIlxcblxcblwiKX1cXG5gXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBjb2x1bW5cbiAgICogQHJldHVybnMge3N0cmluZyB8IG51bGx9XG4gICAqL1xuICBfY29sdW1uRGVmaW5pdGlvbihjb2x1bW4pIHtcbiAgICBjb25zdCB7ZHJpdmVyfSA9IHRoaXNcbiAgICBjb25zdCBjb2x1bW5OYW1lID0gY29sdW1uLmNvbHVtbl9uYW1lIHx8IGNvbHVtbi5DT0xVTU5fTkFNRVxuICAgIGNvbnN0IGRhdGFUeXBlID0gY29sdW1uLmRhdGFfdHlwZSB8fCBjb2x1bW4uREFUQV9UWVBFXG5cbiAgICBpZiAoIWNvbHVtbk5hbWUgfHwgIWRhdGFUeXBlKSByZXR1cm4gbnVsbFxuXG4gICAgbGV0IHR5cGVTcWwgPSBkYXRhVHlwZVxuICAgIGNvbnN0IGNoYXJMZW5ndGggPSBjb2x1bW4uY2hhcmFjdGVyX21heGltdW1fbGVuZ3RoIHx8IGNvbHVtbi5DSEFSQUNURVJfTUFYSU1VTV9MRU5HVEhcbiAgICBjb25zdCBudW1lcmljUHJlY2lzaW9uID0gY29sdW1uLm51bWVyaWNfcHJlY2lzaW9uIHx8IGNvbHVtbi5OVU1FUklDX1BSRUNJU0lPTlxuICAgIGNvbnN0IG51bWVyaWNTY2FsZSA9IGNvbHVtbi5udW1lcmljX3NjYWxlIHx8IGNvbHVtbi5OVU1FUklDX1NDQUxFXG5cbiAgICBpZiAoKGRhdGFUeXBlID09IFwidmFyY2hhclwiIHx8IGRhdGFUeXBlID09IFwibnZhcmNoYXJcIiB8fCBkYXRhVHlwZSA9PSBcImNoYXJcIiB8fCBkYXRhVHlwZSA9PSBcIm5jaGFyXCIpKSB7XG4gICAgICBpZiAoY2hhckxlbmd0aCA9PSAtMSkge1xuICAgICAgICB0eXBlU3FsID0gYCR7ZGF0YVR5cGV9KG1heClgXG4gICAgICB9IGVsc2UgaWYgKGNoYXJMZW5ndGgpIHtcbiAgICAgICAgdHlwZVNxbCA9IGAke2RhdGFUeXBlfSgke2NoYXJMZW5ndGh9KWBcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKChkYXRhVHlwZSA9PSBcImRlY2ltYWxcIiB8fCBkYXRhVHlwZSA9PSBcIm51bWVyaWNcIikgJiYgbnVtZXJpY1ByZWNpc2lvbikge1xuICAgICAgaWYgKG51bWVyaWNTY2FsZSAhPSBudWxsKSB7XG4gICAgICAgIHR5cGVTcWwgPSBgJHtkYXRhVHlwZX0oJHtudW1lcmljUHJlY2lzaW9ufSwgJHtudW1lcmljU2NhbGV9KWBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHR5cGVTcWwgPSBgJHtkYXRhVHlwZX0oJHtudW1lcmljUHJlY2lzaW9ufSlgXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGFydHMgPSBbYCR7ZHJpdmVyLnF1b3RlQ29sdW1uKGNvbHVtbk5hbWUpfSAke3R5cGVTcWx9YF1cbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBjb2x1bW4uY29sdW1uX2RlZmF1bHQgfHwgY29sdW1uLkNPTFVNTl9ERUZBVUxUXG5cbiAgICBpZiAoZGVmYXVsdFZhbHVlKSBwYXJ0cy5wdXNoKGBERUZBVUxUICR7ZGVmYXVsdFZhbHVlfWApXG5cbiAgICBjb25zdCBpc051bGxhYmxlID0gY29sdW1uLmlzX251bGxhYmxlIHx8IGNvbHVtbi5JU19OVUxMQUJMRVxuXG4gICAgaWYgKGlzTnVsbGFibGUgPT0gXCJOT1wiKSBwYXJ0cy5wdXNoKFwiTk9UIE5VTExcIilcblxuICAgIHJldHVybiBwYXJ0cy5qb2luKFwiIFwiKVxuICB9XG59XG4iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlLXNxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kcml2ZXJzL21zc3FsL3N0cnVjdHVyZS1zcWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBQyxNQUFNLDJCQUEyQixDQUFBO0FBRXpGLE1BQU0sQ0FBQyxPQUFPLE9BQU8seUNBQXlDO0lBQzVEOzs7T0FHRztJQUNILFlBQVksRUFBQyxNQUFNLEVBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLEtBQUs7UUFDVCxNQUFNLEVBQUMsTUFBTSxFQUFDLEdBQUcsSUFBSSxDQUFBO1FBQ3JCLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxxSkFBcUosQ0FBQyxDQUFBO1FBQ3RMLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUVyQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQTtZQUNsRCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUE7WUFFbEQsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLFNBQVM7Z0JBQUUsU0FBUTtZQUV0QyxJQUFJLFNBQVMsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLHFVQUFxVSxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO2dCQUM1WixNQUFNLFdBQVcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsd1FBQXdR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SUFBSSxNQUFNLENBQUMsV0FBVyxDQUFBO1FBRTNELElBQUksVUFBVSxJQUFJLElBQUk7WUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRTlDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHtub3JtYWxpemVDcmVhdGVTdGF0ZW1lbnQsIG5vcm1hbGl6ZVNxbFN0YXRlbWVudH0gZnJvbSBcIi4uL3N0cnVjdHVyZS1zcWwvdXRpbHMuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNNc3NxbFN0cnVjdHVyZVNxbCB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJnc1xuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Jhc2UuanNcIikuZGVmYXVsdH0gYXJncy5kcml2ZXJcbiAgICovXG4gIGNvbnN0cnVjdG9yKHtkcml2ZXJ9KSB7XG4gICAgdGhpcy5kcml2ZXIgPSBkcml2ZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmcgfCBudWxsPn0gLSBSZXN1bHQuXG4gICAqL1xuICBhc3luYyB0b1NxbCgpIHtcbiAgICBjb25zdCB7ZHJpdmVyfSA9IHRoaXNcbiAgICBjb25zdCByb3dzID0gYXdhaXQgZHJpdmVyLnF1ZXJ5KFwiU0VMRUNUIFRBQkxFX05BTUUgQVMgdGFibGVfbmFtZSwgVEFCTEVfVFlQRSBBUyB0YWJsZV90eXBlIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLlRBQkxFUyBXSEVSRSBUQUJMRV9TQ0hFTUEgPSAnZGJvJyBPUkRFUiBCWSBUQUJMRV9UWVBFLCBUQUJMRV9OQU1FXCIpXG4gICAgY29uc3Qgc3RhdGVtZW50cyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7XG4gICAgICBjb25zdCB0YWJsZU5hbWUgPSByb3cudGFibGVfbmFtZSB8fCByb3cuVEFCTEVfTkFNRVxuICAgICAgY29uc3QgdGFibGVUeXBlID0gcm93LnRhYmxlX3R5cGUgfHwgcm93LlRBQkxFX1RZUEVcblxuICAgICAgaWYgKCF0YWJsZU5hbWUgfHwgIXRhYmxlVHlwZSkgY29udGludWVcblxuICAgICAgaWYgKHRhYmxlVHlwZSA9PSBcIkJBU0UgVEFCTEVcIikge1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gYXdhaXQgZHJpdmVyLnF1ZXJ5KGBTRUxFQ1QgQ09MVU1OX05BTUUgQVMgY29sdW1uX25hbWUsIERBVEFfVFlQRSBBUyBkYXRhX3R5cGUsIElTX05VTExBQkxFIEFTIGlzX251bGxhYmxlLCBDT0xVTU5fREVGQVVMVCBBUyBjb2x1bW5fZGVmYXVsdCwgQ0hBUkFDVEVSX01BWElNVU1fTEVOR1RIIEFTIGNoYXJhY3Rlcl9tYXhpbXVtX2xlbmd0aCwgTlVNRVJJQ19QUkVDSVNJT04gQVMgbnVtZXJpY19wcmVjaXNpb24sIE5VTUVSSUNfU0NBTEUgQVMgbnVtZXJpY19zY2FsZSBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5DT0xVTU5TIFdIRVJFIFRBQkxFX1NDSEVNQSA9ICdkYm8nIEFORCBUQUJMRV9OQU1FID0gJHtkcml2ZXIucXVvdGUodGFibGVOYW1lKX0gT1JERVIgQlkgT1JESU5BTF9QT1NJVElPTmApXG4gICAgICAgIGNvbnN0IHByaW1hcnlLZXlzID0gYXdhaXQgZHJpdmVyLnF1ZXJ5KGBTRUxFQ1Qga2N1LkNPTFVNTl9OQU1FIEFTIGNvbHVtbl9uYW1lIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLlRBQkxFX0NPTlNUUkFJTlRTIHRjIEpPSU4gSU5GT1JNQVRJT05fU0NIRU1BLktFWV9DT0xVTU5fVVNBR0Uga2N1IE9OIHRjLkNPTlNUUkFJTlRfTkFNRSA9IGtjdS5DT05TVFJBSU5UX05BTUUgV0hFUkUgdGMuQ09OU1RSQUlOVF9UWVBFID0gJ1BSSU1BUlkgS0VZJyBBTkQgdGMuVEFCTEVfU0NIRU1BID0gJ2RibycgQU5EIHRjLlRBQkxFX05BTUUgPSAke2RyaXZlci5xdW90ZSh0YWJsZU5hbWUpfSBPUkRFUiBCWSBrY3UuT1JESU5BTF9QT1NJVElPTmApXG4gICAgICAgIGNvbnN0IGNvbHVtblNxbCA9IGNvbHVtbnNcbiAgICAgICAgICAubWFwKChjb2x1bW4pID0+IHRoaXMuX2NvbHVtbkRlZmluaXRpb24oY29sdW1uKSlcbiAgICAgICAgICAuZmlsdGVyKChjb2x1bW4pID0+IEJvb2xlYW4oY29sdW1uKSlcbiAgICAgICAgY29uc3QgcHJpbWFyeUtleUNvbHVtbnMgPSBwcmltYXJ5S2V5c1xuICAgICAgICAgIC5tYXAoKHByaW1hcnlLZXlSb3cpID0+IHByaW1hcnlLZXlSb3cuY29sdW1uX25hbWUgfHwgcHJpbWFyeUtleVJvdy5DT0xVTU5fTkFNRSlcbiAgICAgICAgICAuZmlsdGVyKChjb2x1bW4pID0+IEJvb2xlYW4oY29sdW1uKSlcblxuICAgICAgICBpZiAocHJpbWFyeUtleUNvbHVtbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbHVtblNxbC5wdXNoKGBQUklNQVJZIEtFWSAoJHtwcmltYXJ5S2V5Q29sdW1ucy5tYXAoKG5hbWUpID0+IGRyaXZlci5xdW90ZUNvbHVtbihuYW1lKSkuam9pbihcIiwgXCIpfSlgKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbHVtblNxbC5sZW5ndGggPT0gMCkgY29udGludWVcblxuICAgICAgICBzdGF0ZW1lbnRzLnB1c2gobm9ybWFsaXplU3FsU3RhdGVtZW50KGBDUkVBVEUgVEFCTEUgJHtkcml2ZXIucXVvdGVUYWJsZSh0YWJsZU5hbWUpfSAoJHtjb2x1bW5TcWwuam9pbihcIiwgXCIpfSlgKSlcbiAgICAgIH0gZWxzZSBpZiAodGFibGVUeXBlID09IFwiVklFV1wiKSB7XG4gICAgICAgIGNvbnN0IHZpZXdSb3dzID0gYXdhaXQgZHJpdmVyLnF1ZXJ5KGBTRUxFQ1QgbS5kZWZpbml0aW9uIEFTIGRlZmluaXRpb24gRlJPTSBzeXMuc3FsX21vZHVsZXMgbSBKT0lOIHN5cy5vYmplY3RzIG8gT04gbS5vYmplY3RfaWQgPSBvLm9iamVjdF9pZCBXSEVSRSBvLnR5cGUgPSAnVicgQU5EIG8ubmFtZSA9ICR7ZHJpdmVyLnF1b3RlKHRhYmxlTmFtZSl9YClcbiAgICAgICAgY29uc3Qgdmlld0RlZiA9IHZpZXdSb3dzPy5bMF0/LmRlZmluaXRpb24gfHwgdmlld1Jvd3M/LlswXT8uREVGSU5JVElPTlxuXG4gICAgICAgIGlmICghdmlld0RlZikgY29udGludWVcblxuICAgICAgICBjb25zdCBjcmVhdGVTdGF0ZW1lbnQgPSBub3JtYWxpemVDcmVhdGVTdGF0ZW1lbnQoe1xuICAgICAgICAgIGRiOiBkcml2ZXIsXG4gICAgICAgICAgc3RhdGVtZW50OiB2aWV3RGVmLFxuICAgICAgICAgIG9iamVjdE5hbWU6IHRhYmxlTmFtZSxcbiAgICAgICAgICB0eXBlOiBcIlZJRVdcIlxuICAgICAgICB9KVxuXG4gICAgICAgIHN0YXRlbWVudHMucHVzaChub3JtYWxpemVTcWxTdGF0ZW1lbnQoY3JlYXRlU3RhdGVtZW50KSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RhdGVtZW50cy5sZW5ndGggPT0gMCkgcmV0dXJuIG51bGxcblxuICAgIHJldHVybiBgJHtzdGF0ZW1lbnRzLmpvaW4oXCJcXG5cXG5cIil9XFxuYFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gY29sdW1uXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCBudWxsfSAtIFJlc3VsdC5cbiAgICovXG4gIF9jb2x1bW5EZWZpbml0aW9uKGNvbHVtbikge1xuICAgIGNvbnN0IHtkcml2ZXJ9ID0gdGhpc1xuICAgIGNvbnN0IGNvbHVtbk5hbWUgPSBjb2x1bW4uY29sdW1uX25hbWUgfHwgY29sdW1uLkNPTFVNTl9OQU1FXG4gICAgY29uc3QgZGF0YVR5cGUgPSBjb2x1bW4uZGF0YV90eXBlIHx8IGNvbHVtbi5EQVRBX1RZUEVcblxuICAgIGlmICghY29sdW1uTmFtZSB8fCAhZGF0YVR5cGUpIHJldHVybiBudWxsXG5cbiAgICBsZXQgdHlwZVNxbCA9IGRhdGFUeXBlXG4gICAgY29uc3QgY2hhckxlbmd0aCA9IGNvbHVtbi5jaGFyYWN0ZXJfbWF4aW11bV9sZW5ndGggfHwgY29sdW1uLkNIQVJBQ1RFUl9NQVhJTVVNX0xFTkdUSFxuICAgIGNvbnN0IG51bWVyaWNQcmVjaXNpb24gPSBjb2x1bW4ubnVtZXJpY19wcmVjaXNpb24gfHwgY29sdW1uLk5VTUVSSUNfUFJFQ0lTSU9OXG4gICAgY29uc3QgbnVtZXJpY1NjYWxlID0gY29sdW1uLm51bWVyaWNfc2NhbGUgfHwgY29sdW1uLk5VTUVSSUNfU0NBTEVcblxuICAgIGlmICgoZGF0YVR5cGUgPT0gXCJ2YXJjaGFyXCIgfHwgZGF0YVR5cGUgPT0gXCJudmFyY2hhclwiIHx8IGRhdGFUeXBlID09IFwiY2hhclwiIHx8IGRhdGFUeXBlID09IFwibmNoYXJcIikpIHtcbiAgICAgIGlmIChjaGFyTGVuZ3RoID09IC0xKSB7XG4gICAgICAgIHR5cGVTcWwgPSBgJHtkYXRhVHlwZX0obWF4KWBcbiAgICAgIH0gZWxzZSBpZiAoY2hhckxlbmd0aCkge1xuICAgICAgICB0eXBlU3FsID0gYCR7ZGF0YVR5cGV9KCR7Y2hhckxlbmd0aH0pYFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoKGRhdGFUeXBlID09IFwiZGVjaW1hbFwiIHx8IGRhdGFUeXBlID09IFwibnVtZXJpY1wiKSAmJiBudW1lcmljUHJlY2lzaW9uKSB7XG4gICAgICBpZiAobnVtZXJpY1NjYWxlICE9IG51bGwpIHtcbiAgICAgICAgdHlwZVNxbCA9IGAke2RhdGFUeXBlfSgke251bWVyaWNQcmVjaXNpb259LCAke251bWVyaWNTY2FsZX0pYFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHlwZVNxbCA9IGAke2RhdGFUeXBlfSgke251bWVyaWNQcmVjaXNpb259KWBcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwYXJ0cyA9IFtgJHtkcml2ZXIucXVvdGVDb2x1bW4oY29sdW1uTmFtZSl9ICR7dHlwZVNxbH1gXVxuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IGNvbHVtbi5jb2x1bW5fZGVmYXVsdCB8fCBjb2x1bW4uQ09MVU1OX0RFRkFVTFRcblxuICAgIGlmIChkZWZhdWx0VmFsdWUpIHBhcnRzLnB1c2goYERFRkFVTFQgJHtkZWZhdWx0VmFsdWV9YClcblxuICAgIGNvbnN0IGlzTnVsbGFibGUgPSBjb2x1bW4uaXNfbnVsbGFibGUgfHwgY29sdW1uLklTX05VTExBQkxFXG5cbiAgICBpZiAoaXNOdWxsYWJsZSA9PSBcIk5PXCIpIHBhcnRzLnB1c2goXCJOT1QgTlVMTFwiKVxuXG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oXCIgXCIpXG4gIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/table.js"],"names":[],"mappings":"AAQA;IACE;;;OAGG;IACH,oBAHW,OAAO,YAAY,EAAE,OAAO,QAC5B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAM7B;IAFC,0BAAgB;IAIlB,gCAiBC;IAED,wCAoCC;IAqCD,eAEC;CAkBF;sBAjIqB,kBAAkB;mBACrB,aAAa;uBAGT,kBAAkB"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/table.js"],"names":[],"mappings":"AAQA;IACE;;;OAGG;IACH,oBAHW,OAAO,YAAY,EAAE,OAAO,QAC5B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAM7B;IAFC,0BAAgB;IAIlB,gCAiBC;IAED,wCAoCC;IAqCD,eAEC;CAmBF;sBAlIqB,kBAAkB;mBACrB,aAAa;uBAGT,kBAAkB"}
@@ -97,9 +97,10 @@ export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
97
97
  }
98
98
  /**
99
99
  * @param {{cascade: boolean}} [args]
100
- * @returns {Promise<Array<Record<string, any>>>}
100
+ * @returns {Promise<Array<Record<string, any>>>} - Result.
101
101
  */
102
102
  async truncate(args) {
103
+ this.getDriver()._assertNotReadOnly();
103
104
  try {
104
105
  return await this.getDriver().query(`TRUNCATE TABLE ${this.getOptions().quoteTableName(this.getName())}`);
105
106
  }
@@ -114,4 +115,4 @@ export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
114
115
  }
115
116
  }
116
117
  }
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9tc3NxbC90YWJsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxVQUFVLE1BQU0sa0JBQWtCLENBQUE7QUFFekMsTUFBTSxDQUFDLE9BQU8sT0FBTyxrQ0FBbUMsU0FBUSxTQUFTO0lBQ3ZFOzs7T0FHRztJQUNILFlBQVksTUFBTSxFQUFFLElBQUk7UUFDdEIsS0FBSyxFQUFFLENBQUE7UUFDUCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUN0QixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDOzs7Ozs2QkFLZCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDekQsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFBO1FBRWxCLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxFQUFFLENBQUM7WUFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO1lBRXJDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDdEIsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNsQixNQUFNLEdBQUcsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3dCQXFCUSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7O0tBRXBELENBQUE7UUFFRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ25ELE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQTtRQUV0QixLQUFLLE1BQU0sYUFBYSxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1lBRWhELFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDOUIsQ0FBQztRQUVELE9BQU8sV0FBVyxDQUFBO0lBQ3BCLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVTtRQUNkLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNqQyxNQUFNLEdBQUcsR0FBRzs7Ozs7Ozs7Ozs7Ozs7OzRCQWVZLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDOzs7O0tBSXBELENBQUE7UUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDOUMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFBO1FBRWxCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBRXpDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDckIsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLGtCQUFrQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMzRyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksS0FBSyxZQUFZLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzlGLHdGQUF3RjtnQkFDeEYsT0FBTyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN4RyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxLQUFLLENBQUE7WUFDYixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQmFzZVRhYmxlIGZyb20gXCIuLi9iYXNlLXRhYmxlLmpzXCJcbmltcG9ydCBDb2x1bW4gZnJvbSBcIi4vY29sdW1uLmpzXCJcbmltcG9ydCBDb2x1bW5zSW5kZXggZnJvbSBcIi4vY29sdW1ucy1pbmRleC5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IEZvcmVpZ25LZXkgZnJvbSBcIi4vZm9yZWlnbi1rZXkuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNNc3NxbFRhYmxlIGV4dGVuZHMgQmFzZVRhYmxlIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5kZWZhdWx0fSBkcml2ZXJcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBkYXRhXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihkcml2ZXIsIGRhdGEpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5kYXRhID0gZGF0YVxuICAgIHRoaXMuZHJpdmVyID0gZHJpdmVyXG4gIH1cblxuICBhc3luYyBnZXRDb2x1bW5zKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZHJpdmVyLnF1ZXJ5KGBcbiAgICAgIFNFTEVDVFxuICAgICAgICAqLFxuICAgICAgICBDT0xVTU5QUk9QRVJUWShvYmplY3RfaWQoVEFCTEVfU0NIRU1BICsgJy4nICsgVEFCTEVfTkFNRSksIENPTFVNTl9OQU1FLCAnSXNJZGVudGl0eScpIEFTIGlzSWRlbnRpdHlcbiAgICAgIEZST00gW0lORk9STUFUSU9OX1NDSEVNQV0uW0NPTFVNTlNdXG4gICAgICBXSEVSRSBbVEFCTEVfTkFNRV0gPSAke3RoaXMuZHJpdmVyLnF1b3RlKHRoaXMuZ2V0TmFtZSgpKX1cbiAgICBgKVxuICAgIGNvbnN0IGNvbHVtbnMgPSBbXVxuXG4gICAgZm9yIChjb25zdCBkYXRhIG9mIHJlc3VsdCkge1xuICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbih0aGlzLCBkYXRhKVxuXG4gICAgICBjb2x1bW5zLnB1c2goY29sdW1uKVxuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5zXG4gIH1cblxuICBhc3luYyBnZXRGb3JlaWduS2V5cygpIHtcbiAgICBjb25zdCBzcWwgPSBgXG4gICAgICBTRUxFQ1RcbiAgICAgICAgICBmay5uYW1lIEFTIEZvcmVpZ25LZXlOYW1lLFxuICAgICAgICAgIHRwLm5hbWUgQVMgUGFyZW50VGFibGUsXG4gICAgICAgICAgcmVmLm5hbWUgQVMgUmVmZXJlbmNlZFRhYmxlLFxuICAgICAgICAgIGNwLm5hbWUgQVMgUGFyZW50Q29sdW1uLFxuICAgICAgICAgIGNyZWYubmFtZSBBUyBSZWZlcmVuY2VkQ29sdW1uLFxuICAgICAgICAgIHRwLm5hbWUgQVMgVGFibGVOYW1lXG4gICAgICBGUk9NIHN5cy5mb3JlaWduX2tleXMgZmtcbiAgICAgIElOTkVSIEpPSU4gc3lzLmZvcmVpZ25fa2V5X2NvbHVtbnMgZmtjXG4gICAgICAgICAgT04gZmtjLmNvbnN0cmFpbnRfb2JqZWN0X2lkID0gZmsub2JqZWN0X2lkXG4gICAgICBJTk5FUiBKT0lOIHN5cy50YWJsZXMgdHBcbiAgICAgICAgICBPTiBma2MucGFyZW50X29iamVjdF9pZCA9IHRwLm9iamVjdF9pZFxuICAgICAgSU5ORVIgSk9JTiBzeXMuY29sdW1ucyBjcFxuICAgICAgICAgIE9OIGZrYy5wYXJlbnRfb2JqZWN0X2lkID0gY3Aub2JqZWN0X2lkXG4gICAgICAgICAgQU5EIGZrYy5wYXJlbnRfY29sdW1uX2lkID0gY3AuY29sdW1uX2lkXG4gICAgICBJTk5FUiBKT0lOIHN5cy50YWJsZXMgcmVmXG4gICAgICAgICAgT04gZmtjLnJlZmVyZW5jZWRfb2JqZWN0X2lkID0gcmVmLm9iamVjdF9pZFxuICAgICAgSU5ORVIgSk9JTiBzeXMuY29sdW1ucyBjcmVmXG4gICAgICAgICAgT04gZmtjLnJlZmVyZW5jZWRfb2JqZWN0X2lkID0gY3JlZi5vYmplY3RfaWRcbiAgICAgICAgICBBTkQgZmtjLnJlZmVyZW5jZWRfY29sdW1uX2lkID0gY3JlZi5jb2x1bW5faWRcbiAgICAgIFdIRVJFIHRwLm5hbWUgPSAke3RoaXMuZHJpdmVyLnF1b3RlKHRoaXMuZ2V0TmFtZSgpKX1cbiAgICAgIE9SREVSIEJZIEZvcmVpZ25LZXlOYW1lLCBQYXJlbnRUYWJsZSwgUmVmZXJlbmNlZFRhYmxlO1xuICAgIGBcblxuICAgIGNvbnN0IGZvcmVpZ25LZXlSb3dzID0gYXdhaXQgdGhpcy5kcml2ZXIucXVlcnkoc3FsKVxuICAgIGNvbnN0IGZvcmVpZ25LZXlzID0gW11cblxuICAgIGZvciAoY29uc3QgZm9yZWlnbktleVJvdyBvZiBmb3JlaWduS2V5Um93cykge1xuICAgICAgY29uc3QgZm9yZWlnbktleSA9IG5ldyBGb3JlaWduS2V5KGZvcmVpZ25LZXlSb3cpXG5cbiAgICAgIGZvcmVpZ25LZXlzLnB1c2goZm9yZWlnbktleSlcbiAgICB9XG5cbiAgICByZXR1cm4gZm9yZWlnbktleXNcbiAgfVxuXG4gIGFzeW5jIGdldEluZGV4ZXMoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZ2V0T3B0aW9ucygpXG4gICAgY29uc3Qgc3FsID0gYFxuICAgICAgU0VMRUNUXG4gICAgICAgIHN5cy50YWJsZXMubmFtZSBBUyBUYWJsZU5hbWUsXG4gICAgICAgIHN5cy5jb2x1bW5zLm5hbWUgQVMgQ29sdW1uTmFtZSxcbiAgICAgICAgc3lzLmluZGV4ZXMubmFtZSBBUyBpbmRleF9uYW1lLFxuICAgICAgICBzeXMuaW5kZXhlcy50eXBlX2Rlc2MgQVMgSW5kZXhUeXBlLFxuICAgICAgICBzeXMuaW5kZXhfY29sdW1ucy5pc19pbmNsdWRlZF9jb2x1bW4gQVMgSXNJbmNsdWRlZENvbHVtbixcbiAgICAgICAgc3lzLmluZGV4ZXMuaXNfdW5pcXVlLFxuICAgICAgICBzeXMuaW5kZXhlcy5pc19wcmltYXJ5X2tleSxcbiAgICAgICAgc3lzLmluZGV4ZXMuaXNfdW5pcXVlX2NvbnN0cmFpbnRcbiAgICAgIEZST00gc3lzLmluZGV4ZXNcbiAgICAgIElOTkVSIEpPSU4gc3lzLmluZGV4X2NvbHVtbnMgT04gc3lzLmluZGV4ZXMub2JqZWN0X2lkID0gc3lzLmluZGV4X2NvbHVtbnMub2JqZWN0X2lkIEFORCBzeXMuaW5kZXhlcy5pbmRleF9pZCA9IHN5cy5pbmRleF9jb2x1bW5zLmluZGV4X2lkXG4gICAgICBJTk5FUiBKT0lOIHN5cy5jb2x1bW5zIE9OIHN5cy5pbmRleF9jb2x1bW5zLm9iamVjdF9pZCA9IHN5cy5jb2x1bW5zLm9iamVjdF9pZCBBTkQgc3lzLmluZGV4X2NvbHVtbnMuY29sdW1uX2lkID0gc3lzLmNvbHVtbnMuY29sdW1uX2lkXG4gICAgICBJTk5FUiBKT0lOIHN5cy50YWJsZXMgT04gc3lzLmluZGV4ZXMub2JqZWN0X2lkID0gc3lzLnRhYmxlcy5vYmplY3RfaWRcbiAgICAgIFdIRVJFXG4gICAgICAgIHN5cy50YWJsZXMubmFtZSA9ICR7b3B0aW9ucy5xdW90ZSh0aGlzLmdldE5hbWUoKSl9XG4gICAgICBPUkRFUiBCWVxuICAgICAgICBzeXMuaW5kZXhlcy5uYW1lLFxuICAgICAgICBzeXMuaW5kZXhfY29sdW1ucy5rZXlfb3JkaW5hbFxuICAgIGBcblxuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLmdldERyaXZlcigpLnF1ZXJ5KHNxbClcbiAgICBjb25zdCBpbmRleGVzID0gW11cblxuICAgIGZvciAoY29uc3Qgcm93IG9mIHJvd3MpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gbmV3IENvbHVtbnNJbmRleCh0aGlzLCByb3cpXG5cbiAgICAgIGluZGV4ZXMucHVzaChpbmRleClcbiAgICB9XG5cbiAgICByZXR1cm4gaW5kZXhlc1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gZGlnZyh0aGlzLmRhdGEsIFwiVEFCTEVfTkFNRVwiKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7e2Nhc2NhZGU6IGJvb2xlYW59fSBbYXJnc11cbiAgICogQHJldHVybnMge1Byb21pc2U8QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj4+fVxuICAgKi9cbiAgYXN5bmMgdHJ1bmNhdGUoYXJncykgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmdldERyaXZlcigpLnF1ZXJ5KGBUUlVOQ0FURSBUQUJMRSAke3RoaXMuZ2V0T3B0aW9ucygpLnF1b3RlVGFibGVOYW1lKHRoaXMuZ2V0TmFtZSgpKX1gKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnJvci5tZXNzYWdlLnN0YXJ0c1dpdGgoXCJRdWVyeSBmYWlsZWQgJ0Nhbm5vdCB0cnVuY2F0ZSB0YWJsZVwiKSkge1xuICAgICAgICAvLyBUcnVuY2F0ZSB0YWJsZSBpcyByZWFsbHkgYnVnZ3kgZm9yIHNvbWUgcmVhc29uIC0gZmFsbCBiYWNrIHRvIGRlbGV0ZSBhbGwgcm93cyBpbnN0ZWFkXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmdldERyaXZlcigpLnF1ZXJ5KGBERUxFVEUgRlJPTSAke3RoaXMuZ2V0T3B0aW9ucygpLnF1b3RlVGFibGVOYW1lKHRoaXMuZ2V0TmFtZSgpKX1gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9tc3NxbC90YWJsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxVQUFVLE1BQU0sa0JBQWtCLENBQUE7QUFFekMsTUFBTSxDQUFDLE9BQU8sT0FBTyxrQ0FBbUMsU0FBUSxTQUFTO0lBQ3ZFOzs7T0FHRztJQUNILFlBQVksTUFBTSxFQUFFLElBQUk7UUFDdEIsS0FBSyxFQUFFLENBQUE7UUFDUCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUN0QixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDOzs7Ozs2QkFLZCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDekQsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFBO1FBRWxCLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxFQUFFLENBQUM7WUFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO1lBRXJDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDdEIsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNsQixNQUFNLEdBQUcsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3dCQXFCUSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7O0tBRXBELENBQUE7UUFFRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ25ELE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQTtRQUV0QixLQUFLLE1BQU0sYUFBYSxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1lBRWhELFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDOUIsQ0FBQztRQUVELE9BQU8sV0FBVyxDQUFBO0lBQ3BCLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVTtRQUNkLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNqQyxNQUFNLEdBQUcsR0FBRzs7Ozs7Ozs7Ozs7Ozs7OzRCQWVZLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDOzs7O0tBSXBELENBQUE7UUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDOUMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFBO1FBRWxCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBRXpDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDckIsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBQ3JDLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLGtCQUFrQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMzRyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksS0FBSyxZQUFZLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzlGLHdGQUF3RjtnQkFDeEYsT0FBTyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN4RyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxLQUFLLENBQUE7WUFDYixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQmFzZVRhYmxlIGZyb20gXCIuLi9iYXNlLXRhYmxlLmpzXCJcbmltcG9ydCBDb2x1bW4gZnJvbSBcIi4vY29sdW1uLmpzXCJcbmltcG9ydCBDb2x1bW5zSW5kZXggZnJvbSBcIi4vY29sdW1ucy1pbmRleC5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IEZvcmVpZ25LZXkgZnJvbSBcIi4vZm9yZWlnbi1rZXkuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNNc3NxbFRhYmxlIGV4dGVuZHMgQmFzZVRhYmxlIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5kZWZhdWx0fSBkcml2ZXJcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBkYXRhXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihkcml2ZXIsIGRhdGEpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5kYXRhID0gZGF0YVxuICAgIHRoaXMuZHJpdmVyID0gZHJpdmVyXG4gIH1cblxuICBhc3luYyBnZXRDb2x1bW5zKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZHJpdmVyLnF1ZXJ5KGBcbiAgICAgIFNFTEVDVFxuICAgICAgICAqLFxuICAgICAgICBDT0xVTU5QUk9QRVJUWShvYmplY3RfaWQoVEFCTEVfU0NIRU1BICsgJy4nICsgVEFCTEVfTkFNRSksIENPTFVNTl9OQU1FLCAnSXNJZGVudGl0eScpIEFTIGlzSWRlbnRpdHlcbiAgICAgIEZST00gW0lORk9STUFUSU9OX1NDSEVNQV0uW0NPTFVNTlNdXG4gICAgICBXSEVSRSBbVEFCTEVfTkFNRV0gPSAke3RoaXMuZHJpdmVyLnF1b3RlKHRoaXMuZ2V0TmFtZSgpKX1cbiAgICBgKVxuICAgIGNvbnN0IGNvbHVtbnMgPSBbXVxuXG4gICAgZm9yIChjb25zdCBkYXRhIG9mIHJlc3VsdCkge1xuICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbih0aGlzLCBkYXRhKVxuXG4gICAgICBjb2x1bW5zLnB1c2goY29sdW1uKVxuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5zXG4gIH1cblxuICBhc3luYyBnZXRGb3JlaWduS2V5cygpIHtcbiAgICBjb25zdCBzcWwgPSBgXG4gICAgICBTRUxFQ1RcbiAgICAgICAgICBmay5uYW1lIEFTIEZvcmVpZ25LZXlOYW1lLFxuICAgICAgICAgIHRwLm5hbWUgQVMgUGFyZW50VGFibGUsXG4gICAgICAgICAgcmVmLm5hbWUgQVMgUmVmZXJlbmNlZFRhYmxlLFxuICAgICAgICAgIGNwLm5hbWUgQVMgUGFyZW50Q29sdW1uLFxuICAgICAgICAgIGNyZWYubmFtZSBBUyBSZWZlcmVuY2VkQ29sdW1uLFxuICAgICAgICAgIHRwLm5hbWUgQVMgVGFibGVOYW1lXG4gICAgICBGUk9NIHN5cy5mb3JlaWduX2tleXMgZmtcbiAgICAgIElOTkVSIEpPSU4gc3lzLmZvcmVpZ25fa2V5X2NvbHVtbnMgZmtjXG4gICAgICAgICAgT04gZmtjLmNvbnN0cmFpbnRfb2JqZWN0X2lkID0gZmsub2JqZWN0X2lkXG4gICAgICBJTk5FUiBKT0lOIHN5cy50YWJsZXMgdHBcbiAgICAgICAgICBPTiBma2MucGFyZW50X29iamVjdF9pZCA9IHRwLm9iamVjdF9pZFxuICAgICAgSU5ORVIgSk9JTiBzeXMuY29sdW1ucyBjcFxuICAgICAgICAgIE9OIGZrYy5wYXJlbnRfb2JqZWN0X2lkID0gY3Aub2JqZWN0X2lkXG4gICAgICAgICAgQU5EIGZrYy5wYXJlbnRfY29sdW1uX2lkID0gY3AuY29sdW1uX2lkXG4gICAgICBJTk5FUiBKT0lOIHN5cy50YWJsZXMgcmVmXG4gICAgICAgICAgT04gZmtjLnJlZmVyZW5jZWRfb2JqZWN0X2lkID0gcmVmLm9iamVjdF9pZFxuICAgICAgSU5ORVIgSk9JTiBzeXMuY29sdW1ucyBjcmVmXG4gICAgICAgICAgT04gZmtjLnJlZmVyZW5jZWRfb2JqZWN0X2lkID0gY3JlZi5vYmplY3RfaWRcbiAgICAgICAgICBBTkQgZmtjLnJlZmVyZW5jZWRfY29sdW1uX2lkID0gY3JlZi5jb2x1bW5faWRcbiAgICAgIFdIRVJFIHRwLm5hbWUgPSAke3RoaXMuZHJpdmVyLnF1b3RlKHRoaXMuZ2V0TmFtZSgpKX1cbiAgICAgIE9SREVSIEJZIEZvcmVpZ25LZXlOYW1lLCBQYXJlbnRUYWJsZSwgUmVmZXJlbmNlZFRhYmxlO1xuICAgIGBcblxuICAgIGNvbnN0IGZvcmVpZ25LZXlSb3dzID0gYXdhaXQgdGhpcy5kcml2ZXIucXVlcnkoc3FsKVxuICAgIGNvbnN0IGZvcmVpZ25LZXlzID0gW11cblxuICAgIGZvciAoY29uc3QgZm9yZWlnbktleVJvdyBvZiBmb3JlaWduS2V5Um93cykge1xuICAgICAgY29uc3QgZm9yZWlnbktleSA9IG5ldyBGb3JlaWduS2V5KGZvcmVpZ25LZXlSb3cpXG5cbiAgICAgIGZvcmVpZ25LZXlzLnB1c2goZm9yZWlnbktleSlcbiAgICB9XG5cbiAgICByZXR1cm4gZm9yZWlnbktleXNcbiAgfVxuXG4gIGFzeW5jIGdldEluZGV4ZXMoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZ2V0T3B0aW9ucygpXG4gICAgY29uc3Qgc3FsID0gYFxuICAgICAgU0VMRUNUXG4gICAgICAgIHN5cy50YWJsZXMubmFtZSBBUyBUYWJsZU5hbWUsXG4gICAgICAgIHN5cy5jb2x1bW5zLm5hbWUgQVMgQ29sdW1uTmFtZSxcbiAgICAgICAgc3lzLmluZGV4ZXMubmFtZSBBUyBpbmRleF9uYW1lLFxuICAgICAgICBzeXMuaW5kZXhlcy50eXBlX2Rlc2MgQVMgSW5kZXhUeXBlLFxuICAgICAgICBzeXMuaW5kZXhfY29sdW1ucy5pc19pbmNsdWRlZF9jb2x1bW4gQVMgSXNJbmNsdWRlZENvbHVtbixcbiAgICAgICAgc3lzLmluZGV4ZXMuaXNfdW5pcXVlLFxuICAgICAgICBzeXMuaW5kZXhlcy5pc19wcmltYXJ5X2tleSxcbiAgICAgICAgc3lzLmluZGV4ZXMuaXNfdW5pcXVlX2NvbnN0cmFpbnRcbiAgICAgIEZST00gc3lzLmluZGV4ZXNcbiAgICAgIElOTkVSIEpPSU4gc3lzLmluZGV4X2NvbHVtbnMgT04gc3lzLmluZGV4ZXMub2JqZWN0X2lkID0gc3lzLmluZGV4X2NvbHVtbnMub2JqZWN0X2lkIEFORCBzeXMuaW5kZXhlcy5pbmRleF9pZCA9IHN5cy5pbmRleF9jb2x1bW5zLmluZGV4X2lkXG4gICAgICBJTk5FUiBKT0lOIHN5cy5jb2x1bW5zIE9OIHN5cy5pbmRleF9jb2x1bW5zLm9iamVjdF9pZCA9IHN5cy5jb2x1bW5zLm9iamVjdF9pZCBBTkQgc3lzLmluZGV4X2NvbHVtbnMuY29sdW1uX2lkID0gc3lzLmNvbHVtbnMuY29sdW1uX2lkXG4gICAgICBJTk5FUiBKT0lOIHN5cy50YWJsZXMgT04gc3lzLmluZGV4ZXMub2JqZWN0X2lkID0gc3lzLnRhYmxlcy5vYmplY3RfaWRcbiAgICAgIFdIRVJFXG4gICAgICAgIHN5cy50YWJsZXMubmFtZSA9ICR7b3B0aW9ucy5xdW90ZSh0aGlzLmdldE5hbWUoKSl9XG4gICAgICBPUkRFUiBCWVxuICAgICAgICBzeXMuaW5kZXhlcy5uYW1lLFxuICAgICAgICBzeXMuaW5kZXhfY29sdW1ucy5rZXlfb3JkaW5hbFxuICAgIGBcblxuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLmdldERyaXZlcigpLnF1ZXJ5KHNxbClcbiAgICBjb25zdCBpbmRleGVzID0gW11cblxuICAgIGZvciAoY29uc3Qgcm93IG9mIHJvd3MpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gbmV3IENvbHVtbnNJbmRleCh0aGlzLCByb3cpXG5cbiAgICAgIGluZGV4ZXMucHVzaChpbmRleClcbiAgICB9XG5cbiAgICByZXR1cm4gaW5kZXhlc1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gZGlnZyh0aGlzLmRhdGEsIFwiVEFCTEVfTkFNRVwiKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7e2Nhc2NhZGU6IGJvb2xlYW59fSBbYXJnc11cbiAgICogQHJldHVybnMge1Byb21pc2U8QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj4+fSAtIFJlc3VsdC5cbiAgICovXG4gIGFzeW5jIHRydW5jYXRlKGFyZ3MpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIHRoaXMuZ2V0RHJpdmVyKCkuX2Fzc2VydE5vdFJlYWRPbmx5KClcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyKCkucXVlcnkoYFRSVU5DQVRFIFRBQkxFICR7dGhpcy5nZXRPcHRpb25zKCkucXVvdGVUYWJsZU5hbWUodGhpcy5nZXROYW1lKCkpfWApXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm1lc3NhZ2Uuc3RhcnRzV2l0aChcIlF1ZXJ5IGZhaWxlZCAnQ2Fubm90IHRydW5jYXRlIHRhYmxlXCIpKSB7XG4gICAgICAgIC8vIFRydW5jYXRlIHRhYmxlIGlzIHJlYWxseSBidWdneSBmb3Igc29tZSByZWFzb24gLSBmYWxsIGJhY2sgdG8gZGVsZXRlIGFsbCByb3dzIGluc3RlYWRcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyKCkucXVlcnkoYERFTEVURSBGUk9NICR7dGhpcy5nZXRPcHRpb25zKCkucXVvdGVUYWJsZU5hbWUodGhpcy5nZXROYW1lKCkpfWApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -3,24 +3,24 @@ export default class VelociousDatabaseDriversMysql extends Base {
3
3
  /** @param {Error} error */
4
4
  onPoolError: (error: Error) => void;
5
5
  /**
6
- * @returns {Promise<void>}
6
+ * @returns {Promise<void>} - Result.
7
7
  */
8
8
  close(): Promise<void>;
9
9
  /**
10
- * @returns {Record<string, any>}
10
+ * @returns {Record<string, any>} - Result.
11
11
  */
12
12
  connectArgs(): Record<string, any>;
13
13
  /**
14
- * @returns {Promise<string>}
14
+ * @returns {Promise<string>} - Result.
15
15
  */
16
16
  currentDatabase(): Promise<string>;
17
17
  /**
18
- * @returns {string}
18
+ * @returns {string} - Result.
19
19
  */
20
20
  primaryKeyType(): string;
21
21
  /**
22
22
  * @param {string} value
23
- * @returns {string}
23
+ * @returns {string} - Result.
24
24
  */
25
25
  quote(value: string): string;
26
26
  _options: Options;