velocious 1.0.147 → 1.0.148

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 (446) hide show
  1. package/README.md +15 -0
  2. package/build/src/application.d.ts +25 -16
  3. package/build/src/application.d.ts.map +1 -1
  4. package/build/src/application.js +17 -17
  5. package/build/src/cli/base-command.d.ts +26 -14
  6. package/build/src/cli/base-command.d.ts.map +1 -1
  7. package/build/src/cli/base-command.js +13 -13
  8. package/build/src/cli/browser-cli.d.ts +5 -5
  9. package/build/src/cli/browser-cli.js +6 -6
  10. package/build/src/cli/commands/db/create.d.ts +4 -4
  11. package/build/src/cli/commands/db/create.js +5 -5
  12. package/build/src/cli/commands/destroy/migration.d.ts +0 -1
  13. package/build/src/cli/commands/destroy/migration.d.ts.map +1 -1
  14. package/build/src/cli/commands/generate/base-models.d.ts +0 -1
  15. package/build/src/cli/commands/generate/base-models.d.ts.map +1 -1
  16. package/build/src/cli/commands/generate/migration.d.ts +0 -1
  17. package/build/src/cli/commands/generate/migration.d.ts.map +1 -1
  18. package/build/src/cli/commands/generate/model.d.ts +0 -1
  19. package/build/src/cli/commands/generate/model.d.ts.map +1 -1
  20. package/build/src/cli/commands/init.d.ts +0 -1
  21. package/build/src/cli/commands/init.d.ts.map +1 -1
  22. package/build/src/cli/commands/routes.d.ts +0 -1
  23. package/build/src/cli/commands/routes.d.ts.map +1 -1
  24. package/build/src/cli/commands/server.d.ts +0 -1
  25. package/build/src/cli/commands/server.d.ts.map +1 -1
  26. package/build/src/cli/commands/test.d.ts +0 -1
  27. package/build/src/cli/commands/test.d.ts.map +1 -1
  28. package/build/src/cli/index.d.ts +11 -11
  29. package/build/src/cli/index.d.ts.map +1 -1
  30. package/build/src/cli/index.js +9 -9
  31. package/build/src/cli/use-browser-cli.d.ts +2 -2
  32. package/build/src/cli/use-browser-cli.js +3 -3
  33. package/build/src/configuration-resolver.d.ts +2 -2
  34. package/build/src/configuration-resolver.js +3 -3
  35. package/build/src/configuration-types.d.ts +149 -44
  36. package/build/src/configuration-types.d.ts.map +1 -1
  37. package/build/src/configuration-types.js +43 -43
  38. package/build/src/configuration.d.ts +75 -59
  39. package/build/src/configuration.d.ts.map +1 -1
  40. package/build/src/configuration.js +68 -56
  41. package/build/src/controller.d.ts +29 -29
  42. package/build/src/controller.d.ts.map +1 -1
  43. package/build/src/controller.js +28 -28
  44. package/build/src/database/drivers/base-column.d.ts +15 -15
  45. package/build/src/database/drivers/base-column.d.ts.map +1 -1
  46. package/build/src/database/drivers/base-column.js +15 -15
  47. package/build/src/database/drivers/base-columns-index.d.ts +10 -10
  48. package/build/src/database/drivers/base-columns-index.js +11 -11
  49. package/build/src/database/drivers/base-foreign-key.d.ts +12 -12
  50. package/build/src/database/drivers/base-foreign-key.d.ts.map +1 -1
  51. package/build/src/database/drivers/base-foreign-key.js +11 -11
  52. package/build/src/database/drivers/base-table.d.ts +15 -15
  53. package/build/src/database/drivers/base-table.d.ts.map +1 -1
  54. package/build/src/database/drivers/base-table.js +15 -15
  55. package/build/src/database/drivers/base.d.ts +186 -132
  56. package/build/src/database/drivers/base.d.ts.map +1 -1
  57. package/build/src/database/drivers/base.js +143 -143
  58. package/build/src/database/drivers/mssql/column.d.ts +5 -4
  59. package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
  60. package/build/src/database/drivers/mssql/column.js +3 -3
  61. package/build/src/database/drivers/mssql/connect-connection.d.ts +6 -1
  62. package/build/src/database/drivers/mssql/connect-connection.d.ts.map +1 -1
  63. package/build/src/database/drivers/mssql/connect-connection.js +6 -2
  64. package/build/src/database/drivers/mssql/index.d.ts +5 -15
  65. package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
  66. package/build/src/database/drivers/mssql/index.js +57 -57
  67. package/build/src/database/drivers/mssql/options.d.ts +2 -2
  68. package/build/src/database/drivers/mssql/options.js +13 -13
  69. package/build/src/database/drivers/mssql/sql/create-database.js +5 -5
  70. package/build/src/database/drivers/mssql/structure-sql.d.ts +6 -6
  71. package/build/src/database/drivers/mssql/structure-sql.d.ts.map +1 -1
  72. package/build/src/database/drivers/mssql/structure-sql.js +23 -15
  73. package/build/src/database/drivers/mssql/table.d.ts +4 -5
  74. package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
  75. package/build/src/database/drivers/mssql/table.js +7 -6
  76. package/build/src/database/drivers/mysql/column.d.ts +5 -4
  77. package/build/src/database/drivers/mysql/column.d.ts.map +1 -1
  78. package/build/src/database/drivers/mysql/column.js +3 -3
  79. package/build/src/database/drivers/mysql/index.d.ts +8 -8
  80. package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
  81. package/build/src/database/drivers/mysql/index.js +45 -45
  82. package/build/src/database/drivers/mysql/options.d.ts +2 -2
  83. package/build/src/database/drivers/mysql/options.js +5 -5
  84. package/build/src/database/drivers/mysql/query.d.ts +4 -4
  85. package/build/src/database/drivers/mysql/query.d.ts.map +1 -1
  86. package/build/src/database/drivers/mysql/query.js +5 -5
  87. package/build/src/database/drivers/mysql/structure-sql.d.ts +7 -7
  88. package/build/src/database/drivers/mysql/structure-sql.d.ts.map +1 -1
  89. package/build/src/database/drivers/mysql/structure-sql.js +12 -10
  90. package/build/src/database/drivers/mysql/table.d.ts +4 -5
  91. package/build/src/database/drivers/mysql/table.d.ts.map +1 -1
  92. package/build/src/database/drivers/mysql/table.js +5 -4
  93. package/build/src/database/drivers/pgsql/column.d.ts +5 -4
  94. package/build/src/database/drivers/pgsql/column.d.ts.map +1 -1
  95. package/build/src/database/drivers/pgsql/column.js +3 -3
  96. package/build/src/database/drivers/pgsql/index.d.ts +1 -6
  97. package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
  98. package/build/src/database/drivers/pgsql/index.js +31 -31
  99. package/build/src/database/drivers/pgsql/options.d.ts +3 -3
  100. package/build/src/database/drivers/pgsql/options.js +4 -4
  101. package/build/src/database/drivers/pgsql/structure-sql.d.ts +6 -6
  102. package/build/src/database/drivers/pgsql/structure-sql.d.ts.map +1 -1
  103. package/build/src/database/drivers/pgsql/structure-sql.js +21 -14
  104. package/build/src/database/drivers/pgsql/table.d.ts +4 -5
  105. package/build/src/database/drivers/pgsql/table.d.ts.map +1 -1
  106. package/build/src/database/drivers/pgsql/table.js +4 -3
  107. package/build/src/database/drivers/sqlite/base.d.ts +22 -20
  108. package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
  109. package/build/src/database/drivers/sqlite/base.js +55 -55
  110. package/build/src/database/drivers/sqlite/column.d.ts +7 -6
  111. package/build/src/database/drivers/sqlite/column.d.ts.map +1 -1
  112. package/build/src/database/drivers/sqlite/column.js +5 -5
  113. package/build/src/database/drivers/sqlite/connection-sql-js.d.ts +5 -5
  114. package/build/src/database/drivers/sqlite/connection-sql-js.d.ts.map +1 -1
  115. package/build/src/database/drivers/sqlite/connection-sql-js.js +5 -5
  116. package/build/src/database/drivers/sqlite/foreign-key.d.ts +4 -4
  117. package/build/src/database/drivers/sqlite/foreign-key.d.ts.map +1 -1
  118. package/build/src/database/drivers/sqlite/foreign-key.js +4 -4
  119. package/build/src/database/drivers/sqlite/index.js +3 -3
  120. package/build/src/database/drivers/sqlite/index.web.d.ts +9 -2
  121. package/build/src/database/drivers/sqlite/index.web.d.ts.map +1 -1
  122. package/build/src/database/drivers/sqlite/index.web.js +8 -5
  123. package/build/src/database/drivers/sqlite/options.d.ts +3 -3
  124. package/build/src/database/drivers/sqlite/options.js +4 -4
  125. package/build/src/database/drivers/sqlite/query.d.ts +4 -4
  126. package/build/src/database/drivers/sqlite/query.d.ts.map +1 -1
  127. package/build/src/database/drivers/sqlite/query.js +5 -5
  128. package/build/src/database/drivers/sqlite/query.native.d.ts +9 -1
  129. package/build/src/database/drivers/sqlite/query.native.d.ts.map +1 -1
  130. package/build/src/database/drivers/sqlite/query.native.js +7 -1
  131. package/build/src/database/drivers/sqlite/query.web.d.ts +4 -4
  132. package/build/src/database/drivers/sqlite/query.web.d.ts.map +1 -1
  133. package/build/src/database/drivers/sqlite/query.web.js +5 -5
  134. package/build/src/database/drivers/sqlite/sql/alter-table.js +5 -5
  135. package/build/src/database/drivers/sqlite/structure-sql.d.ts +3 -3
  136. package/build/src/database/drivers/sqlite/structure-sql.js +5 -5
  137. package/build/src/database/drivers/sqlite/table.d.ts +7 -8
  138. package/build/src/database/drivers/sqlite/table.d.ts.map +1 -1
  139. package/build/src/database/drivers/sqlite/table.js +10 -9
  140. package/build/src/database/drivers/structure-sql/utils.d.ts +8 -8
  141. package/build/src/database/drivers/structure-sql/utils.js +9 -9
  142. package/build/src/database/handler.d.ts +1 -1
  143. package/build/src/database/handler.js +2 -2
  144. package/build/src/database/initializer-from-require-context.d.ts +5 -5
  145. package/build/src/database/initializer-from-require-context.js +6 -6
  146. package/build/src/database/migration/index.d.ts +98 -62
  147. package/build/src/database/migration/index.d.ts.map +1 -1
  148. package/build/src/database/migration/index.js +74 -74
  149. package/build/src/database/migrator/files-finder.d.ts +3 -3
  150. package/build/src/database/migrator/files-finder.js +4 -4
  151. package/build/src/database/migrator/types.d.ts +12 -0
  152. package/build/src/database/migrator/types.d.ts.map +1 -1
  153. package/build/src/database/migrator/types.js +1 -1
  154. package/build/src/database/migrator.d.ts +24 -24
  155. package/build/src/database/migrator.d.ts.map +1 -1
  156. package/build/src/database/migrator.js +25 -25
  157. package/build/src/database/pool/async-tracked-multi-connection.d.ts +8 -8
  158. package/build/src/database/pool/async-tracked-multi-connection.js +18 -18
  159. package/build/src/database/pool/base-methods-forward.d.ts +2 -2
  160. package/build/src/database/pool/base-methods-forward.js +3 -3
  161. package/build/src/database/pool/base.d.ts +19 -19
  162. package/build/src/database/pool/base.js +20 -20
  163. package/build/src/database/pool/single-multi-use.js +6 -6
  164. package/build/src/database/query/alter-table-base.d.ts +3 -3
  165. package/build/src/database/query/alter-table-base.js +5 -5
  166. package/build/src/database/query/base.d.ts +5 -5
  167. package/build/src/database/query/base.d.ts.map +1 -1
  168. package/build/src/database/query/base.js +6 -6
  169. package/build/src/database/query/create-database-base.d.ts +11 -2
  170. package/build/src/database/query/create-database-base.d.ts.map +1 -1
  171. package/build/src/database/query/create-database-base.js +6 -6
  172. package/build/src/database/query/create-index-base.d.ts +25 -7
  173. package/build/src/database/query/create-index-base.d.ts.map +1 -1
  174. package/build/src/database/query/create-index-base.js +9 -9
  175. package/build/src/database/query/create-table-base.d.ts +6 -6
  176. package/build/src/database/query/create-table-base.js +7 -7
  177. package/build/src/database/query/delete-base.d.ts +6 -6
  178. package/build/src/database/query/delete-base.d.ts.map +1 -1
  179. package/build/src/database/query/delete-base.js +5 -5
  180. package/build/src/database/query/drop-table-base.d.ts +5 -5
  181. package/build/src/database/query/drop-table-base.js +7 -7
  182. package/build/src/database/query/from-base.d.ts +4 -4
  183. package/build/src/database/query/from-base.js +5 -5
  184. package/build/src/database/query/from-plain.d.ts +1 -1
  185. package/build/src/database/query/from-plain.js +2 -2
  186. package/build/src/database/query/from-table.d.ts +1 -1
  187. package/build/src/database/query/from-table.js +2 -2
  188. package/build/src/database/query/index.d.ts +88 -48
  189. package/build/src/database/query/index.d.ts.map +1 -1
  190. package/build/src/database/query/index.js +46 -46
  191. package/build/src/database/query/insert-base.d.ts +16 -16
  192. package/build/src/database/query/insert-base.d.ts.map +1 -1
  193. package/build/src/database/query/insert-base.js +12 -12
  194. package/build/src/database/query/join-base.d.ts +4 -4
  195. package/build/src/database/query/join-base.js +5 -5
  196. package/build/src/database/query/join-object.d.ts +6 -6
  197. package/build/src/database/query/join-object.js +7 -7
  198. package/build/src/database/query/join-plain.d.ts +1 -1
  199. package/build/src/database/query/join-plain.js +2 -2
  200. package/build/src/database/query/model-class-query.d.ts +28 -28
  201. package/build/src/database/query/model-class-query.d.ts.map +1 -1
  202. package/build/src/database/query/model-class-query.js +25 -25
  203. package/build/src/database/query/order-base.d.ts +4 -4
  204. package/build/src/database/query/order-base.js +5 -5
  205. package/build/src/database/query/order-plain.d.ts +2 -2
  206. package/build/src/database/query/order-plain.js +3 -3
  207. package/build/src/database/query/preloader/belongs-to.d.ts +3 -3
  208. package/build/src/database/query/preloader/belongs-to.d.ts.map +1 -1
  209. package/build/src/database/query/preloader/belongs-to.js +15 -13
  210. package/build/src/database/query/preloader/has-many.d.ts +3 -3
  211. package/build/src/database/query/preloader/has-many.js +7 -7
  212. package/build/src/database/query/preloader/has-one.d.ts +3 -3
  213. package/build/src/database/query/preloader/has-one.js +7 -7
  214. package/build/src/database/query/preloader.d.ts +6 -6
  215. package/build/src/database/query/preloader.d.ts.map +1 -1
  216. package/build/src/database/query/preloader.js +5 -5
  217. package/build/src/database/query/select-base.d.ts +3 -3
  218. package/build/src/database/query/select-base.js +4 -4
  219. package/build/src/database/query/select-plain.d.ts +1 -1
  220. package/build/src/database/query/select-plain.js +2 -2
  221. package/build/src/database/query/select-table-and-column.d.ts +2 -2
  222. package/build/src/database/query/select-table-and-column.js +3 -3
  223. package/build/src/database/query/update-base.d.ts +10 -10
  224. package/build/src/database/query/update-base.d.ts.map +1 -1
  225. package/build/src/database/query/update-base.js +7 -7
  226. package/build/src/database/query/where-base.d.ts +4 -4
  227. package/build/src/database/query/where-base.js +5 -5
  228. package/build/src/database/query/where-hash.d.ts +8 -8
  229. package/build/src/database/query/where-hash.d.ts.map +1 -1
  230. package/build/src/database/query/where-hash.js +9 -9
  231. package/build/src/database/query/where-plain.d.ts +2 -2
  232. package/build/src/database/query/where-plain.js +3 -3
  233. package/build/src/database/query-parser/base-query-parser.d.ts +3 -3
  234. package/build/src/database/query-parser/base-query-parser.js +4 -4
  235. package/build/src/database/query-parser/from-parser.d.ts +4 -4
  236. package/build/src/database/query-parser/from-parser.d.ts.map +1 -1
  237. package/build/src/database/query-parser/from-parser.js +5 -5
  238. package/build/src/database/query-parser/group-parser.d.ts +4 -4
  239. package/build/src/database/query-parser/group-parser.js +5 -5
  240. package/build/src/database/query-parser/joins-parser.d.ts +3 -3
  241. package/build/src/database/query-parser/joins-parser.js +4 -4
  242. package/build/src/database/query-parser/limit-parser.d.ts +3 -3
  243. package/build/src/database/query-parser/limit-parser.js +4 -4
  244. package/build/src/database/query-parser/options.d.ts +35 -20
  245. package/build/src/database/query-parser/options.d.ts.map +1 -1
  246. package/build/src/database/query-parser/options.js +19 -19
  247. package/build/src/database/query-parser/order-parser.d.ts +3 -3
  248. package/build/src/database/query-parser/order-parser.js +4 -4
  249. package/build/src/database/query-parser/select-parser.d.ts +3 -3
  250. package/build/src/database/query-parser/select-parser.js +4 -4
  251. package/build/src/database/query-parser/where-parser.d.ts +3 -3
  252. package/build/src/database/query-parser/where-parser.js +4 -4
  253. package/build/src/database/record/index.d.ts +197 -186
  254. package/build/src/database/record/index.d.ts.map +1 -1
  255. package/build/src/database/record/index.js +190 -169
  256. package/build/src/database/record/instance-relationships/base.d.ts +21 -15
  257. package/build/src/database/record/instance-relationships/base.d.ts.map +1 -1
  258. package/build/src/database/record/instance-relationships/base.js +15 -15
  259. package/build/src/database/record/instance-relationships/belongs-to.d.ts +3 -3
  260. package/build/src/database/record/instance-relationships/belongs-to.d.ts.map +1 -1
  261. package/build/src/database/record/instance-relationships/belongs-to.js +4 -4
  262. package/build/src/database/record/instance-relationships/has-many.d.ts +21 -15
  263. package/build/src/database/record/instance-relationships/has-many.d.ts.map +1 -1
  264. package/build/src/database/record/instance-relationships/has-many.js +23 -17
  265. package/build/src/database/record/instance-relationships/has-one.d.ts +4 -4
  266. package/build/src/database/record/instance-relationships/has-one.d.ts.map +1 -1
  267. package/build/src/database/record/instance-relationships/has-one.js +7 -7
  268. package/build/src/database/record/relationships/base.d.ts +48 -15
  269. package/build/src/database/record/relationships/base.d.ts.map +1 -1
  270. package/build/src/database/record/relationships/base.js +16 -16
  271. package/build/src/database/record/relationships/belongs-to.js +3 -3
  272. package/build/src/database/record/relationships/has-many.js +3 -3
  273. package/build/src/database/record/relationships/has-one.js +3 -3
  274. package/build/src/database/record/user-module.d.ts +3 -3
  275. package/build/src/database/record/user-module.js +4 -4
  276. package/build/src/database/record/validators/base.d.ts +9 -9
  277. package/build/src/database/record/validators/base.d.ts.map +1 -1
  278. package/build/src/database/record/validators/base.js +8 -8
  279. package/build/src/database/record/validators/presence.d.ts.map +1 -1
  280. package/build/src/database/record/validators/presence.js +6 -5
  281. package/build/src/database/record/validators/uniqueness.js +7 -7
  282. package/build/src/database/table-data/index.d.ts +53 -50
  283. package/build/src/database/table-data/index.d.ts.map +1 -1
  284. package/build/src/database/table-data/index.js +51 -51
  285. package/build/src/database/table-data/table-column.d.ts +84 -51
  286. package/build/src/database/table-data/table-column.d.ts.map +1 -1
  287. package/build/src/database/table-data/table-column.js +57 -56
  288. package/build/src/database/table-data/table-foreign-key.d.ts +15 -15
  289. package/build/src/database/table-data/table-foreign-key.js +16 -16
  290. package/build/src/database/table-data/table-index.d.ts +13 -7
  291. package/build/src/database/table-data/table-index.d.ts.map +1 -1
  292. package/build/src/database/table-data/table-index.js +8 -8
  293. package/build/src/database/table-data/table-reference.d.ts +2 -2
  294. package/build/src/database/table-data/table-reference.js +3 -3
  295. package/build/src/database/use-database.d.ts +3 -3
  296. package/build/src/database/use-database.js +4 -4
  297. package/build/src/environment-handlers/base.d.ts +84 -66
  298. package/build/src/environment-handlers/base.d.ts.map +1 -1
  299. package/build/src/environment-handlers/base.js +58 -58
  300. package/build/src/environment-handlers/browser.d.ts +9 -9
  301. package/build/src/environment-handlers/browser.d.ts.map +1 -1
  302. package/build/src/environment-handlers/browser.js +18 -18
  303. package/build/src/environment-handlers/node/cli/commands/destroy/migration.d.ts +1 -1
  304. package/build/src/environment-handlers/node/cli/commands/destroy/migration.js +2 -2
  305. package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts +4 -4
  306. package/build/src/environment-handlers/node/cli/commands/generate/base-models.js +11 -11
  307. package/build/src/environment-handlers/node/cli/commands/generate/migration.d.ts +1 -1
  308. package/build/src/environment-handlers/node/cli/commands/generate/migration.js +2 -2
  309. package/build/src/environment-handlers/node/cli/commands/generate/model.d.ts +1 -1
  310. package/build/src/environment-handlers/node/cli/commands/generate/model.js +2 -2
  311. package/build/src/environment-handlers/node/cli/commands/init.d.ts +1 -1
  312. package/build/src/environment-handlers/node/cli/commands/init.js +2 -2
  313. package/build/src/environment-handlers/node/cli/commands/routes.d.ts +5 -5
  314. package/build/src/environment-handlers/node/cli/commands/routes.js +6 -6
  315. package/build/src/environment-handlers/node/cli/commands/server.js +3 -3
  316. package/build/src/environment-handlers/node.d.ts +5 -40
  317. package/build/src/environment-handlers/node.d.ts.map +1 -1
  318. package/build/src/environment-handlers/node.js +46 -46
  319. package/build/src/error-logger.d.ts +3 -3
  320. package/build/src/error-logger.d.ts.map +1 -1
  321. package/build/src/error-logger.js +5 -5
  322. package/build/src/http-client/header.d.ts +2 -2
  323. package/build/src/http-client/header.js +3 -3
  324. package/build/src/http-client/index.d.ts +10 -10
  325. package/build/src/http-client/index.d.ts.map +1 -1
  326. package/build/src/http-client/index.js +11 -11
  327. package/build/src/http-client/request.d.ts +14 -14
  328. package/build/src/http-client/request.js +15 -15
  329. package/build/src/http-client/response.d.ts +7 -7
  330. package/build/src/http-client/response.d.ts.map +1 -1
  331. package/build/src/http-client/response.js +8 -8
  332. package/build/src/http-client/websocket-client.d.ts +28 -28
  333. package/build/src/http-client/websocket-client.d.ts.map +1 -1
  334. package/build/src/http-client/websocket-client.js +26 -26
  335. package/build/src/http-server/client/index.d.ts +13 -13
  336. package/build/src/http-server/client/index.d.ts.map +1 -1
  337. package/build/src/http-server/client/index.js +14 -14
  338. package/build/src/http-server/client/params-to-object.d.ts +15 -15
  339. package/build/src/http-server/client/params-to-object.d.ts.map +1 -1
  340. package/build/src/http-server/client/params-to-object.js +17 -13
  341. package/build/src/http-server/client/request-buffer/form-data-part.d.ts +7 -7
  342. package/build/src/http-server/client/request-buffer/form-data-part.js +8 -8
  343. package/build/src/http-server/client/request-buffer/header.d.ts +2 -2
  344. package/build/src/http-server/client/request-buffer/header.js +3 -3
  345. package/build/src/http-server/client/request-buffer/index.d.ts +20 -20
  346. package/build/src/http-server/client/request-buffer/index.js +22 -22
  347. package/build/src/http-server/client/request-parser.d.ts +21 -20
  348. package/build/src/http-server/client/request-parser.d.ts.map +1 -1
  349. package/build/src/http-server/client/request-parser.js +22 -21
  350. package/build/src/http-server/client/request-runner.d.ts +6 -6
  351. package/build/src/http-server/client/request-runner.d.ts.map +1 -1
  352. package/build/src/http-server/client/request-runner.js +17 -4
  353. package/build/src/http-server/client/request.d.ts +9 -8
  354. package/build/src/http-server/client/request.d.ts.map +1 -1
  355. package/build/src/http-server/client/request.js +9 -8
  356. package/build/src/http-server/client/response.d.ts +17 -17
  357. package/build/src/http-server/client/response.js +18 -18
  358. package/build/src/http-server/client/uploaded-file/memory-uploaded-file.d.ts +6 -6
  359. package/build/src/http-server/client/uploaded-file/memory-uploaded-file.js +9 -9
  360. package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.d.ts +6 -6
  361. package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.js +9 -9
  362. package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts +7 -7
  363. package/build/src/http-server/client/uploaded-file/uploaded-file.js +8 -8
  364. package/build/src/http-server/client/websocket-request.d.ts +17 -13
  365. package/build/src/http-server/client/websocket-request.d.ts.map +1 -1
  366. package/build/src/http-server/client/websocket-request.js +10 -10
  367. package/build/src/http-server/client/websocket-session.d.ts +26 -26
  368. package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
  369. package/build/src/http-server/client/websocket-session.js +27 -27
  370. package/build/src/http-server/index.d.ts +19 -19
  371. package/build/src/http-server/index.d.ts.map +1 -1
  372. package/build/src/http-server/index.js +20 -20
  373. package/build/src/http-server/server-client.d.ts +13 -13
  374. package/build/src/http-server/server-client.d.ts.map +1 -1
  375. package/build/src/http-server/server-client.js +14 -14
  376. package/build/src/http-server/websocket-events-host.d.ts +7 -7
  377. package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
  378. package/build/src/http-server/websocket-events-host.js +7 -7
  379. package/build/src/http-server/websocket-events.d.ts +7 -7
  380. package/build/src/http-server/websocket-events.d.ts.map +1 -1
  381. package/build/src/http-server/websocket-events.js +7 -7
  382. package/build/src/http-server/worker-handler/index.d.ts +22 -22
  383. package/build/src/http-server/worker-handler/index.d.ts.map +1 -1
  384. package/build/src/http-server/worker-handler/index.js +20 -20
  385. package/build/src/http-server/worker-handler/worker-thread.d.ts +17 -17
  386. package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
  387. package/build/src/http-server/worker-handler/worker-thread.js +16 -16
  388. package/build/src/initializer.d.ts +6 -6
  389. package/build/src/initializer.js +7 -7
  390. package/build/src/logger.d.ts +38 -34
  391. package/build/src/logger.d.ts.map +1 -1
  392. package/build/src/logger.js +53 -47
  393. package/build/src/routes/app-routes.d.ts +2 -2
  394. package/build/src/routes/app-routes.js +3 -3
  395. package/build/src/routes/base-route.d.ts +22 -22
  396. package/build/src/routes/base-route.d.ts.map +1 -1
  397. package/build/src/routes/base-route.js +21 -21
  398. package/build/src/routes/basic-route.d.ts +3 -3
  399. package/build/src/routes/basic-route.js +15 -15
  400. package/build/src/routes/get-route.d.ts +2 -2
  401. package/build/src/routes/get-route.js +8 -8
  402. package/build/src/routes/index.d.ts +2 -2
  403. package/build/src/routes/index.js +3 -3
  404. package/build/src/routes/namespace-route.d.ts +2 -2
  405. package/build/src/routes/namespace-route.js +8 -8
  406. package/build/src/routes/post-route.d.ts +2 -2
  407. package/build/src/routes/post-route.js +8 -8
  408. package/build/src/routes/resolver.d.ts +21 -19
  409. package/build/src/routes/resolver.d.ts.map +1 -1
  410. package/build/src/routes/resolver.js +48 -26
  411. package/build/src/routes/resource-route.d.ts +6 -6
  412. package/build/src/routes/resource-route.js +12 -12
  413. package/build/src/testing/format-value.d.ts +6 -6
  414. package/build/src/testing/format-value.d.ts.map +1 -1
  415. package/build/src/testing/format-value.js +11 -11
  416. package/build/src/testing/request-client.d.ts +10 -10
  417. package/build/src/testing/request-client.d.ts.map +1 -1
  418. package/build/src/testing/request-client.js +11 -11
  419. package/build/src/testing/test-files-finder.d.ts +16 -16
  420. package/build/src/testing/test-files-finder.js +17 -17
  421. package/build/src/testing/test-runner.d.ts +78 -39
  422. package/build/src/testing/test-runner.d.ts.map +1 -1
  423. package/build/src/testing/test-runner.js +40 -40
  424. package/build/src/testing/test.d.ts +61 -61
  425. package/build/src/testing/test.d.ts.map +1 -1
  426. package/build/src/testing/test.js +77 -56
  427. package/build/src/utils/backtrace-cleaner.d.ts +4 -4
  428. package/build/src/utils/backtrace-cleaner.js +5 -5
  429. package/build/src/utils/ensure-error.d.ts +3 -3
  430. package/build/src/utils/ensure-error.d.ts.map +1 -1
  431. package/build/src/utils/ensure-error.js +3 -3
  432. package/build/src/utils/file-exists.d.ts +2 -2
  433. package/build/src/utils/file-exists.js +3 -3
  434. package/build/src/utils/nest-callbacks.d.ts +3 -3
  435. package/build/src/utils/nest-callbacks.js +4 -4
  436. package/build/src/utils/rest-args-error.d.ts +2 -2
  437. package/build/src/utils/rest-args-error.js +3 -3
  438. package/build/src/utils/singularize-model-name.d.ts +2 -2
  439. package/build/src/utils/singularize-model-name.js +3 -3
  440. package/build/src/utils/with-tracked-stack-async-hooks.d.ts +4 -4
  441. package/build/src/utils/with-tracked-stack-async-hooks.d.ts.map +1 -1
  442. package/build/src/utils/with-tracked-stack-async-hooks.js +5 -5
  443. package/build/src/utils/with-tracked-stack.d.ts +5 -4
  444. package/build/src/utils/with-tracked-stack.d.ts.map +1 -1
  445. package/build/src/utils/with-tracked-stack.js +12 -18
  446. package/package.json +1 -1
@@ -5,8 +5,8 @@ import ColumnsIndex from "./columns-index.js";
5
5
  import ForeignKey from "./foreign-key.js";
6
6
  export default class VelociousDatabaseDriversMysqlTable extends BaseTable {
7
7
  /**
8
- * @param {import("../base.js").default} driver
9
- * @param {Record<string, any>} data
8
+ * @param {import("../base.js").default} driver - Database driver instance.
9
+ * @param {Record<string, string>} data - Data payload.
10
10
  */
11
11
  constructor(driver, data) {
12
12
  super();
@@ -74,8 +74,9 @@ export default class VelociousDatabaseDriversMysqlTable extends BaseTable {
74
74
  }
75
75
  return indexes;
76
76
  }
77
+ /** @returns {string} - The table name. */
77
78
  getName() {
78
- return Object.values(this.data)[0];
79
+ return /** @type {string} */ (Object.values(this.data)[0]);
79
80
  }
80
81
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9teXNxbC90YWJsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sVUFBVSxNQUFNLGtCQUFrQixDQUFBO0FBRXpDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sa0NBQW1DLFNBQVEsU0FBUztJQUN2RTs7O09BR0c7SUFDSCxZQUFZLE1BQU0sRUFBRSxJQUFJO1FBQ3RCLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDdEIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN0RixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFFbEIsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFFckMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN0QixDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2xCLE1BQU0sR0FBRyxHQUFHOzs7Ozt1QkFLTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDbkQsQ0FBQTtRQUVELE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDbkQsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFBO1FBRXRCLEtBQUssTUFBTSxhQUFhLElBQUksY0FBYyxFQUFFLENBQUM7WUFDM0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUE7WUFFaEQsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUM5QixDQUFDO1FBRUQsT0FBTyxXQUFXLENBQUE7SUFDcEIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ2pDLE1BQU0sR0FBRyxHQUFHOzs7Ozs7Ozs7Ozs7dUJBWU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDL0MsQ0FBQTtRQUNELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNyRCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFFbEIsS0FBSyxNQUFNLFFBQVEsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNuQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLFFBQVEsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFBO1lBQzVCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtZQUMzQixDQUFDO1lBRUQsSUFBSSxRQUFRLENBQUMsVUFBVSxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNyQyxRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQTtZQUNoQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sUUFBUSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUE7WUFDakMsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUU5QyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3JCLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDcEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlVGFibGUgZnJvbSBcIi4uL2Jhc2UtdGFibGUuanNcIlxuaW1wb3J0IENvbHVtbiBmcm9tIFwiLi9jb2x1bW4uanNcIlxuaW1wb3J0IENvbHVtbnNJbmRleCBmcm9tIFwiLi9jb2x1bW5zLWluZGV4LmpzXCJcbmltcG9ydCBGb3JlaWduS2V5IGZyb20gXCIuL2ZvcmVpZ24ta2V5LmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VEcml2ZXJzTXlzcWxUYWJsZSBleHRlbmRzIEJhc2VUYWJsZSB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Jhc2UuanNcIikuZGVmYXVsdH0gZHJpdmVyXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gZGF0YVxuICAgKi9cbiAgY29uc3RydWN0b3IoZHJpdmVyLCBkYXRhKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuZGF0YSA9IGRhdGFcbiAgICB0aGlzLmRyaXZlciA9IGRyaXZlclxuICB9XG5cbiAgYXN5bmMgZ2V0Q29sdW1ucygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmRyaXZlci5xdWVyeShgU0hPVyBGVUxMIENPTFVNTlMgRlJPTSBcXGAke3RoaXMuZ2V0TmFtZSgpfVxcYGApXG4gICAgY29uc3QgY29sdW1ucyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGRhdGEgb2YgcmVzdWx0KSB7XG4gICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQ29sdW1uKHRoaXMsIGRhdGEpXG5cbiAgICAgIGNvbHVtbnMucHVzaChjb2x1bW4pXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbHVtbnNcbiAgfVxuXG4gIGFzeW5jIGdldEZvcmVpZ25LZXlzKCkge1xuICAgIGNvbnN0IHNxbCA9IGBcbiAgICAgIFNFTEVDVCBUQUJMRV9OQU1FLCBDT0xVTU5fTkFNRSwgQ09OU1RSQUlOVF9OQU1FLCBSRUZFUkVOQ0VEX1RBQkxFX05BTUUsIFJFRkVSRU5DRURfQ09MVU1OX05BTUVcbiAgICAgIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLktFWV9DT0xVTU5fVVNBR0VcbiAgICAgIFdIRVJFXG4gICAgICAgIFJFRkVSRU5DRURfVEFCTEVfU0NIRU1BID0gKFNFTEVDVCBEQVRBQkFTRSgpKSBBTkRcbiAgICAgICAgVEFCTEVfTkFNRSA9ICR7dGhpcy5kcml2ZXIucXVvdGUodGhpcy5nZXROYW1lKCkpfVxuICAgIGBcblxuICAgIGNvbnN0IGZvcmVpZ25LZXlSb3dzID0gYXdhaXQgdGhpcy5kcml2ZXIucXVlcnkoc3FsKVxuICAgIGNvbnN0IGZvcmVpZ25LZXlzID0gW11cblxuICAgIGZvciAoY29uc3QgZm9yZWlnbktleVJvdyBvZiBmb3JlaWduS2V5Um93cykge1xuICAgICAgY29uc3QgZm9yZWlnbktleSA9IG5ldyBGb3JlaWduS2V5KGZvcmVpZ25LZXlSb3cpXG5cbiAgICAgIGZvcmVpZ25LZXlzLnB1c2goZm9yZWlnbktleSlcbiAgICB9XG5cbiAgICByZXR1cm4gZm9yZWlnbktleXNcbiAgfVxuXG4gIGFzeW5jIGdldEluZGV4ZXMoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZ2V0T3B0aW9ucygpXG4gICAgY29uc3Qgc3FsID0gYFxuICAgICAgU0VMRUNUXG4gICAgICAgIFRBQkxFX1NDSEVNQSxcbiAgICAgICAgVEFCTEVfTkFNRSxcbiAgICAgICAgSU5ERVhfTkFNRSBBUyBpbmRleF9uYW1lLFxuICAgICAgICBDT0xVTU5fTkFNRSxcbiAgICAgICAgU0VRX0lOX0lOREVYLFxuICAgICAgICBOT05fVU5JUVVFLFxuICAgICAgICBJTkRFWF9UWVBFXG4gICAgICBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5TVEFUSVNUSUNTXG4gICAgICBXSEVSRVxuICAgICAgICBUQUJMRV9TQ0hFTUEgPSBEQVRBQkFTRSgpIEFORFxuICAgICAgICBUQUJMRV9OQU1FID0gJHtvcHRpb25zLnF1b3RlKHRoaXMuZ2V0TmFtZSgpKX1cbiAgICBgXG4gICAgY29uc3QgaW5kZXhlc1Jvd3MgPSBhd2FpdCB0aGlzLmdldERyaXZlcigpLnF1ZXJ5KHNxbClcbiAgICBjb25zdCBpbmRleGVzID0gW11cblxuICAgIGZvciAoY29uc3QgaW5kZXhSb3cgb2YgaW5kZXhlc1Jvd3MpIHtcbiAgICAgIGlmIChpbmRleFJvdy5OT05fVU5JUVVFID09IDEpIHtcbiAgICAgICAgaW5kZXhSb3cuaXNfdW5pcXVlID0gZmFsc2VcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluZGV4Um93LmlzX3VuaXF1ZSA9IHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGluZGV4Um93LmluZGV4X25hbWUgPT0gXCJQUklNQVJZXCIpIHtcbiAgICAgICAgaW5kZXhSb3cuaXNfcHJpbWFyeV9rZXkgPSB0cnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbmRleFJvdy5pc19wcmltYXJ5X2tleSA9IGZhbHNlXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGluZGV4ID0gbmV3IENvbHVtbnNJbmRleCh0aGlzLCBpbmRleFJvdylcblxuICAgICAgaW5kZXhlcy5wdXNoKGluZGV4KVxuICAgIH1cblxuICAgIHJldHVybiBpbmRleGVzXG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuZGF0YSlbMF1cbiAgfVxufVxuIl19
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9teXNxbC90YWJsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sVUFBVSxNQUFNLGtCQUFrQixDQUFBO0FBRXpDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sa0NBQW1DLFNBQVEsU0FBUztJQUN2RTs7O09BR0c7SUFDSCxZQUFZLE1BQU0sRUFBRSxJQUFJO1FBQ3RCLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDdEIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN0RixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFFbEIsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFFckMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN0QixDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2xCLE1BQU0sR0FBRyxHQUFHOzs7Ozt1QkFLTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDbkQsQ0FBQTtRQUVELE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDbkQsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFBO1FBRXRCLEtBQUssTUFBTSxhQUFhLElBQUksY0FBYyxFQUFFLENBQUM7WUFDM0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUE7WUFFaEQsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUM5QixDQUFDO1FBRUQsT0FBTyxXQUFXLENBQUE7SUFDcEIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ2pDLE1BQU0sR0FBRyxHQUFHOzs7Ozs7Ozs7Ozs7dUJBWU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDL0MsQ0FBQTtRQUNELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNyRCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFFbEIsS0FBSyxNQUFNLFFBQVEsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNuQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLFFBQVEsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFBO1lBQzVCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtZQUMzQixDQUFDO1lBRUQsSUFBSSxRQUFRLENBQUMsVUFBVSxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNyQyxRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQTtZQUNoQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sUUFBUSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUE7WUFDakMsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUU5QyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3JCLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBRUQsMENBQTBDO0lBQzFDLE9BQU87UUFDTCxPQUFPLHFCQUFxQixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJhc2VUYWJsZSBmcm9tIFwiLi4vYmFzZS10YWJsZS5qc1wiXG5pbXBvcnQgQ29sdW1uIGZyb20gXCIuL2NvbHVtbi5qc1wiXG5pbXBvcnQgQ29sdW1uc0luZGV4IGZyb20gXCIuL2NvbHVtbnMtaW5kZXguanNcIlxuaW1wb3J0IEZvcmVpZ25LZXkgZnJvbSBcIi4vZm9yZWlnbi1rZXkuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNNeXNxbFRhYmxlIGV4dGVuZHMgQmFzZVRhYmxlIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5kZWZhdWx0fSBkcml2ZXIgLSBEYXRhYmFzZSBkcml2ZXIgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gZGF0YSAtIERhdGEgcGF5bG9hZC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGRyaXZlciwgZGF0YSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gICAgdGhpcy5kcml2ZXIgPSBkcml2ZXJcbiAgfVxuXG4gIGFzeW5jIGdldENvbHVtbnMoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5kcml2ZXIucXVlcnkoYFNIT1cgRlVMTCBDT0xVTU5TIEZST00gXFxgJHt0aGlzLmdldE5hbWUoKX1cXGBgKVxuICAgIGNvbnN0IGNvbHVtbnMgPSBbXVxuXG4gICAgZm9yIChjb25zdCBkYXRhIG9mIHJlc3VsdCkge1xuICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbih0aGlzLCBkYXRhKVxuXG4gICAgICBjb2x1bW5zLnB1c2goY29sdW1uKVxuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5zXG4gIH1cblxuICBhc3luYyBnZXRGb3JlaWduS2V5cygpIHtcbiAgICBjb25zdCBzcWwgPSBgXG4gICAgICBTRUxFQ1QgVEFCTEVfTkFNRSwgQ09MVU1OX05BTUUsIENPTlNUUkFJTlRfTkFNRSwgUkVGRVJFTkNFRF9UQUJMRV9OQU1FLCBSRUZFUkVOQ0VEX0NPTFVNTl9OQU1FXG4gICAgICBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5LRVlfQ09MVU1OX1VTQUdFXG4gICAgICBXSEVSRVxuICAgICAgICBSRUZFUkVOQ0VEX1RBQkxFX1NDSEVNQSA9IChTRUxFQ1QgREFUQUJBU0UoKSkgQU5EXG4gICAgICAgIFRBQkxFX05BTUUgPSAke3RoaXMuZHJpdmVyLnF1b3RlKHRoaXMuZ2V0TmFtZSgpKX1cbiAgICBgXG5cbiAgICBjb25zdCBmb3JlaWduS2V5Um93cyA9IGF3YWl0IHRoaXMuZHJpdmVyLnF1ZXJ5KHNxbClcbiAgICBjb25zdCBmb3JlaWduS2V5cyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGZvcmVpZ25LZXlSb3cgb2YgZm9yZWlnbktleVJvd3MpIHtcbiAgICAgIGNvbnN0IGZvcmVpZ25LZXkgPSBuZXcgRm9yZWlnbktleShmb3JlaWduS2V5Um93KVxuXG4gICAgICBmb3JlaWduS2V5cy5wdXNoKGZvcmVpZ25LZXkpXG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcmVpZ25LZXlzXG4gIH1cblxuICBhc3luYyBnZXRJbmRleGVzKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKVxuICAgIGNvbnN0IHNxbCA9IGBcbiAgICAgIFNFTEVDVFxuICAgICAgICBUQUJMRV9TQ0hFTUEsXG4gICAgICAgIFRBQkxFX05BTUUsXG4gICAgICAgIElOREVYX05BTUUgQVMgaW5kZXhfbmFtZSxcbiAgICAgICAgQ09MVU1OX05BTUUsXG4gICAgICAgIFNFUV9JTl9JTkRFWCxcbiAgICAgICAgTk9OX1VOSVFVRSxcbiAgICAgICAgSU5ERVhfVFlQRVxuICAgICAgRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuU1RBVElTVElDU1xuICAgICAgV0hFUkVcbiAgICAgICAgVEFCTEVfU0NIRU1BID0gREFUQUJBU0UoKSBBTkRcbiAgICAgICAgVEFCTEVfTkFNRSA9ICR7b3B0aW9ucy5xdW90ZSh0aGlzLmdldE5hbWUoKSl9XG4gICAgYFxuICAgIGNvbnN0IGluZGV4ZXNSb3dzID0gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5xdWVyeShzcWwpXG4gICAgY29uc3QgaW5kZXhlcyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGluZGV4Um93IG9mIGluZGV4ZXNSb3dzKSB7XG4gICAgICBpZiAoaW5kZXhSb3cuTk9OX1VOSVFVRSA9PSAxKSB7XG4gICAgICAgIGluZGV4Um93LmlzX3VuaXF1ZSA9IGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbmRleFJvdy5pc191bmlxdWUgPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChpbmRleFJvdy5pbmRleF9uYW1lID09IFwiUFJJTUFSWVwiKSB7XG4gICAgICAgIGluZGV4Um93LmlzX3ByaW1hcnlfa2V5ID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5kZXhSb3cuaXNfcHJpbWFyeV9rZXkgPSBmYWxzZVxuICAgICAgfVxuXG4gICAgICBjb25zdCBpbmRleCA9IG5ldyBDb2x1bW5zSW5kZXgodGhpcywgaW5kZXhSb3cpXG5cbiAgICAgIGluZGV4ZXMucHVzaChpbmRleClcbiAgICB9XG5cbiAgICByZXR1cm4gaW5kZXhlc1xuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIHRhYmxlIG5hbWUuICovXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAoT2JqZWN0LnZhbHVlcyh0aGlzLmRhdGEpWzBdKVxuICB9XG59XG4iXX0=
@@ -1,10 +1,11 @@
1
1
  export default class VelociousDatabaseDriversPgsqlColumn extends BaseColumn {
2
2
  /**
3
- * @param {import("../base-table.js").default} table
4
- * @param {Record<string, any>} data
3
+ * @param {import("../base-table.js").default} table - Table.
4
+ * @param {Record<string, unknown>} data - Data payload.
5
5
  */
6
- constructor(table: import("../base-table.js").default, data: Record<string, any>);
7
- data: Record<string, any>;
6
+ constructor(table: import("../base-table.js").default, data: Record<string, unknown>);
7
+ data: Record<string, unknown>;
8
+ getDefault(): any;
8
9
  getMaxLength(): any;
9
10
  getName(): any;
10
11
  getType(): any;
@@ -1 +1 @@
1
- {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/column.js"],"names":[],"mappings":"AAMA;IACE;;;OAGG;IACH,mBAHW,OAAO,kBAAkB,EAAE,OAAO,QAClC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAM7B;IAFC,0BAAgB;IA8ClB,oBAEC;IAED,eAEC;IAYD,eAEC;CACF;uBA9EsB,mBAAmB"}
1
+ {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/column.js"],"names":[],"mappings":"AAMA;IACE;;;OAGG;IACH,mBAHW,OAAO,kBAAkB,EAAE,OAAO,QAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAMjC;IAFC,8BAAgB;IA0ClB,kBAEC;IAED,oBAEC;IAED,eAEC;IAYD,eAEC;CACF;uBA9EsB,mBAAmB"}
@@ -4,8 +4,8 @@ import ColumnsIndex from "./columns-index.js";
4
4
  import { digg } from "diggerize";
5
5
  export default class VelociousDatabaseDriversPgsqlColumn extends BaseColumn {
6
6
  /**
7
- * @param {import("../base-table.js").default} table
8
- * @param {Record<string, any>} data
7
+ * @param {import("../base-table.js").default} table - Table.
8
+ * @param {Record<string, unknown>} data - Data payload.
9
9
  */
10
10
  constructor(table, data) {
11
11
  super();
@@ -64,4 +64,4 @@ export default class VelociousDatabaseDriversPgsqlColumn extends BaseColumn {
64
64
  return digg(this, "data", "data_type");
65
65
  }
66
66
  }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL2RyaXZlcnMvcGdzcWwvY29sdW1uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLFVBQVUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQyxPQUFPLFlBQVksTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBRTlCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUNBQW9DLFNBQVEsVUFBVTtJQUN6RTs7O09BR0c7SUFDSCxZQUFZLEtBQUssRUFBRSxJQUFJO1FBQ3JCLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDcEIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLFlBQVksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUE7SUFDdkcsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ25ELENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVTtRQUNkLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUVqQyxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7aUNBWTFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDOzZCQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztLQUNoRSxDQUFDLENBQUE7UUFFRixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFFbEIsS0FBSyxNQUFNLFFBQVEsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNuQyxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUE7WUFFaEUsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM1QixDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLDBCQUEwQixDQUFDLENBQUE7SUFDdkQsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQzFDLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFFbkQsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdEIsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJhc2VDb2x1bW4gZnJvbSBcIi4uL2Jhc2UtY29sdW1uLmpzXCJcbmltcG9ydCBDb2x1bW5zSW5kZXggZnJvbSBcIi4vY29sdW1ucy1pbmRleC5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNQZ3NxbENvbHVtbiBleHRlbmRzIEJhc2VDb2x1bW4ge1xuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLXRhYmxlLmpzXCIpLmRlZmF1bHR9IHRhYmxlXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gZGF0YVxuICAgKi9cbiAgY29uc3RydWN0b3IodGFibGUsIGRhdGEpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5kYXRhID0gZGF0YVxuICAgIHRoaXMudGFibGUgPSB0YWJsZVxuICB9XG5cbiAgZ2V0QXV0b0luY3JlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXREZWZhdWx0KCkgPT0gYG5leHR2YWwoJyR7dGhpcy5nZXRUYWJsZSgpLmdldE5hbWUoKX1fJHt0aGlzLmdldE5hbWUoKX1fc2VxJzo6cmVnY2xhc3MpYFxuICB9XG5cbiAgZ2V0UHJpbWFyeUtleSgpIHtcbiAgICByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJpc19wcmltYXJ5X2tleVwiKSA9PT0gMVxuICB9XG5cbiAgYXN5bmMgZ2V0SW5kZXhlcygpIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5nZXRPcHRpb25zKClcblxuICAgIGNvbnN0IGluZGV4ZXNSb3dzID0gYXdhaXQgdGhpcy50YWJsZS5nZXREcml2ZXIoKS5xdWVyeShgXG4gICAgICBTRUxFQ1RcbiAgICAgICAgcGdfYXR0cmlidXRlLmF0dG5hbWUgQVMgY29sdW1uX25hbWUsXG4gICAgICAgIHBnX2luZGV4LmluZGV4cmVsaWQ6OnJlZ2NsYXNzIGFzIGluZGV4X25hbWUsXG4gICAgICAgIHBnX2NsYXNzLnJlbG5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlIGFzIHNjaGVtYV9uYW1lLFxuICAgICAgICBwZ19jbGFzcy5yZWxuYW1lIGFzIHRhYmxlX25hbWUsXG4gICAgICAgIHBnX2luZGV4LmluZGlzcHJpbWFyeSBhcyBpc19wcmltYXJ5X2tleSxcbiAgICAgICAgcGdfaW5kZXguaW5kaXN1bmlxdWUgYXMgaXNfdW5pcXVlXG4gICAgICBGUk9NIHBnX2luZGV4XG4gICAgICBKT0lOIHBnX2NsYXNzIE9OIHBnX2NsYXNzLm9pZCA9IHBnX2luZGV4LmluZHJlbGlkXG4gICAgICBKT0lOIHBnX2F0dHJpYnV0ZSBPTiBwZ19hdHRyaWJ1dGUuYXR0cmVsaWQgPSBwZ19jbGFzcy5vaWQgQU5EIHBnX2F0dHJpYnV0ZS5hdHRudW0gPSBBTlkocGdfaW5kZXguaW5ka2V5KVxuICAgICAgV0hFUkVcbiAgICAgICAgcGdfYXR0cmlidXRlLmF0dG5hbWUgPSAke29wdGlvbnMucXVvdGUodGhpcy5nZXROYW1lKCkpfSBBTkRcbiAgICAgICAgcGdfY2xhc3MucmVsbmFtZSA9ICR7b3B0aW9ucy5xdW90ZSh0aGlzLmdldFRhYmxlKCkuZ2V0TmFtZSgpKX1cbiAgICBgKVxuXG4gICAgY29uc3QgaW5kZXhlcyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGluZGV4Um93IG9mIGluZGV4ZXNSb3dzKSB7XG4gICAgICBjb25zdCBjb2x1bW5zSW5kZXggPSBuZXcgQ29sdW1uc0luZGV4KHRoaXMuZ2V0VGFibGUoKSwgaW5kZXhSb3cpXG5cbiAgICAgIGluZGV4ZXMucHVzaChjb2x1bW5zSW5kZXgpXG4gICAgfVxuXG4gICAgcmV0dXJuIGluZGV4ZXNcbiAgfVxuXG4gIGdldERlZmF1bHQoKSB7XG4gICAgcmV0dXJuIGRpZ2codGhpcywgXCJkYXRhXCIsIFwiY29sdW1uX2RlZmF1bHRcIilcbiAgfVxuXG4gIGdldE1heExlbmd0aCgpIHtcbiAgICByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJjaGFyYWN0ZXJfbWF4aW11bV9sZW5ndGhcIilcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIGRpZ2codGhpcywgXCJkYXRhXCIsIFwiY29sdW1uX25hbWVcIilcbiAgfVxuXG4gIGdldE51bGwoKSB7XG4gICAgY29uc3QgbnVsbFZhbHVlID0gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJpc19udWxsYWJsZVwiKVxuXG4gICAgaWYgKG51bGxWYWx1ZSA9PSBcIk5PXCIpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIGRpZ2codGhpcywgXCJkYXRhXCIsIFwiZGF0YV90eXBlXCIpXG4gIH1cbn1cbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL2RyaXZlcnMvcGdzcWwvY29sdW1uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLFVBQVUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQyxPQUFPLFlBQVksTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBRTlCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUNBQW9DLFNBQVEsVUFBVTtJQUN6RTs7O09BR0c7SUFDSCxZQUFZLEtBQUssRUFBRSxJQUFJO1FBQ3JCLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDcEIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLFlBQVksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUE7SUFDdkcsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ25ELENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVTtRQUNkLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUVqQyxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7aUNBWTFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDOzZCQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztLQUNoRSxDQUFDLENBQUE7UUFFRixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFFbEIsS0FBSyxNQUFNLFFBQVEsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNuQyxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUE7WUFFaEUsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM1QixDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLDBCQUEwQixDQUFDLENBQUE7SUFDdkQsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQzFDLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFFbkQsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdEIsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJhc2VDb2x1bW4gZnJvbSBcIi4uL2Jhc2UtY29sdW1uLmpzXCJcbmltcG9ydCBDb2x1bW5zSW5kZXggZnJvbSBcIi4vY29sdW1ucy1pbmRleC5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNQZ3NxbENvbHVtbiBleHRlbmRzIEJhc2VDb2x1bW4ge1xuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLXRhYmxlLmpzXCIpLmRlZmF1bHR9IHRhYmxlIC0gVGFibGUuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59IGRhdGEgLSBEYXRhIHBheWxvYWQuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0YWJsZSwgZGF0YSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gICAgdGhpcy50YWJsZSA9IHRhYmxlXG4gIH1cblxuICBnZXRBdXRvSW5jcmVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLmdldERlZmF1bHQoKSA9PSBgbmV4dHZhbCgnJHt0aGlzLmdldFRhYmxlKCkuZ2V0TmFtZSgpfV8ke3RoaXMuZ2V0TmFtZSgpfV9zZXEnOjpyZWdjbGFzcylgXG4gIH1cblxuICBnZXRQcmltYXJ5S2V5KCkge1xuICAgIHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcImlzX3ByaW1hcnlfa2V5XCIpID09PSAxXG4gIH1cblxuICBhc3luYyBnZXRJbmRleGVzKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKVxuXG4gICAgY29uc3QgaW5kZXhlc1Jvd3MgPSBhd2FpdCB0aGlzLnRhYmxlLmdldERyaXZlcigpLnF1ZXJ5KGBcbiAgICAgIFNFTEVDVFxuICAgICAgICBwZ19hdHRyaWJ1dGUuYXR0bmFtZSBBUyBjb2x1bW5fbmFtZSxcbiAgICAgICAgcGdfaW5kZXguaW5kZXhyZWxpZDo6cmVnY2xhc3MgYXMgaW5kZXhfbmFtZSxcbiAgICAgICAgcGdfY2xhc3MucmVsbmFtZXNwYWNlOjpyZWduYW1lc3BhY2UgYXMgc2NoZW1hX25hbWUsXG4gICAgICAgIHBnX2NsYXNzLnJlbG5hbWUgYXMgdGFibGVfbmFtZSxcbiAgICAgICAgcGdfaW5kZXguaW5kaXNwcmltYXJ5IGFzIGlzX3ByaW1hcnlfa2V5LFxuICAgICAgICBwZ19pbmRleC5pbmRpc3VuaXF1ZSBhcyBpc191bmlxdWVcbiAgICAgIEZST00gcGdfaW5kZXhcbiAgICAgIEpPSU4gcGdfY2xhc3MgT04gcGdfY2xhc3Mub2lkID0gcGdfaW5kZXguaW5kcmVsaWRcbiAgICAgIEpPSU4gcGdfYXR0cmlidXRlIE9OIHBnX2F0dHJpYnV0ZS5hdHRyZWxpZCA9IHBnX2NsYXNzLm9pZCBBTkQgcGdfYXR0cmlidXRlLmF0dG51bSA9IEFOWShwZ19pbmRleC5pbmRrZXkpXG4gICAgICBXSEVSRVxuICAgICAgICBwZ19hdHRyaWJ1dGUuYXR0bmFtZSA9ICR7b3B0aW9ucy5xdW90ZSh0aGlzLmdldE5hbWUoKSl9IEFORFxuICAgICAgICBwZ19jbGFzcy5yZWxuYW1lID0gJHtvcHRpb25zLnF1b3RlKHRoaXMuZ2V0VGFibGUoKS5nZXROYW1lKCkpfVxuICAgIGApXG5cbiAgICBjb25zdCBpbmRleGVzID0gW11cblxuICAgIGZvciAoY29uc3QgaW5kZXhSb3cgb2YgaW5kZXhlc1Jvd3MpIHtcbiAgICAgIGNvbnN0IGNvbHVtbnNJbmRleCA9IG5ldyBDb2x1bW5zSW5kZXgodGhpcy5nZXRUYWJsZSgpLCBpbmRleFJvdylcblxuICAgICAgaW5kZXhlcy5wdXNoKGNvbHVtbnNJbmRleClcbiAgICB9XG5cbiAgICByZXR1cm4gaW5kZXhlc1xuICB9XG5cbiAgZ2V0RGVmYXVsdCgpIHtcbiAgICByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJjb2x1bW5fZGVmYXVsdFwiKVxuICB9XG5cbiAgZ2V0TWF4TGVuZ3RoKCkge1xuICAgIHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcImNoYXJhY3Rlcl9tYXhpbXVtX2xlbmd0aFwiKVxuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJjb2x1bW5fbmFtZVwiKVxuICB9XG5cbiAgZ2V0TnVsbCgpIHtcbiAgICBjb25zdCBudWxsVmFsdWUgPSBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcImlzX251bGxhYmxlXCIpXG5cbiAgICBpZiAobnVsbFZhbHVlID09IFwiTk9cIikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJkYXRhX3R5cGVcIilcbiAgfVxufVxuIl19
@@ -1,15 +1,10 @@
1
1
  export default class VelociousDatabaseDriversPgsql extends Base {
2
2
  connection: any;
3
3
  disconnect(): Promise<void>;
4
- connectArgs(): Record<string, any>;
4
+ connectArgs(): Record<string, unknown>;
5
5
  close(): Promise<void>;
6
6
  currentDatabase(): Promise<any>;
7
7
  primaryKeyType(): string;
8
- /**
9
- * @param {string} value
10
- * @returns {string} - Result.
11
- */
12
- quote(value: string): string;
13
8
  getTables(): Promise<Table[]>;
14
9
  lastInsertID(): Promise<any>;
15
10
  options(): Options;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/index.js"],"names":[],"mappings":"AAkBA;IAeI,gBAAwB;IAG1B,4BAEC;IAED,mCAcC;IAED,uBAGC;IAgDD,gCAIC;IAuBD,yBAAoC;IA6CpC;;;OAGG;IACH,aAHW,MAAM,GACJ,MAAM,CAOlB;IAwBD,8BAWC;IAED,6BAIC;IAED,mBAIC;IAHqB,kBAAiC;CA0BxD;iBA/PgB,YAAY;kBAWX,YAAY;oBAFV,cAAc"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/index.js"],"names":[],"mappings":"AAkBA;IAeI,gBAAwB;IAG1B,4BAEC;IAED,uCAcC;IAED,uBAGC;IAgDD,gCAIC;IAuBD,yBAAoC;IA8EpC,8BAWC;IAED,6BAIC;IAED,mBAIC;IAHqB,kBAAiC;CA0BxD;iBA/PgB,YAAY;kBAWX,YAAY;oBAFV,cAAc"}
@@ -37,7 +37,7 @@ export default class VelociousDatabaseDriversPgsql extends Base {
37
37
  connectArgs() {
38
38
  const args = this.getArgs();
39
39
  const forward = ["database", "host", "password", "port"];
40
- /** @type {Record<string, any>} */
40
+ /** @type {Record<string, unknown>} */
41
41
  const connectArgs = {};
42
42
  for (const forwardValue of forward) {
43
43
  if (forwardValue in args)
@@ -52,8 +52,8 @@ export default class VelociousDatabaseDriversPgsql extends Base {
52
52
  this.connection = undefined;
53
53
  }
54
54
  /**
55
- * @param {import("../../table-data/index.js").default} tableData
56
- * @returns {Promise<string[]>} - Result.
55
+ * @param {import("../../table-data/index.js").default} tableData - Table data.
56
+ * @returns {Promise<string[]>} - Resolves with SQL statements.
57
57
  */
58
58
  async alterTableSQLs(tableData) {
59
59
  const alterArgs = { tableData, driver: this };
@@ -61,10 +61,10 @@ export default class VelociousDatabaseDriversPgsql extends Base {
61
61
  return await alterTable.toSQLs();
62
62
  }
63
63
  /**
64
- * @param {string} databaseName
65
- * @param {object} [args]
66
- * @param {boolean} [args.ifNotExists]
67
- * @returns {string[]} - Result.
64
+ * @param {string} databaseName - Database name.
65
+ * @param {object} [args] - Options object.
66
+ * @param {boolean} [args.ifNotExists] - Whether if not exists.
67
+ * @returns {string[]} - SQL statements.
68
68
  */
69
69
  createDatabaseSql(databaseName, args) {
70
70
  const createArgs = Object.assign({ databaseName, driver: this }, args);
@@ -72,8 +72,8 @@ export default class VelociousDatabaseDriversPgsql extends Base {
72
72
  return createDatabase.toSql();
73
73
  }
74
74
  /**
75
- * @param {import("../base.js").CreateIndexSqlArgs} indexData
76
- * @returns {Promise<string[]>} - Result.
75
+ * @param {import("../base.js").CreateIndexSqlArgs} indexData - Index data.
76
+ * @returns {Promise<string[]>} - Resolves with SQL statements.
77
77
  */
78
78
  async createIndexSQLs(indexData) {
79
79
  const createArgs = Object.assign({ driver: this }, indexData);
@@ -81,8 +81,8 @@ export default class VelociousDatabaseDriversPgsql extends Base {
81
81
  return await createIndex.toSQLs();
82
82
  }
83
83
  /**
84
- * @param {import("../../table-data/index.js").default} tableData
85
- * @returns {Promise<string[]>} - Result.
84
+ * @param {import("../../table-data/index.js").default} tableData - Table data.
85
+ * @returns {Promise<string[]>} - Resolves with SQL statements.
86
86
  */
87
87
  async createTableSql(tableData) {
88
88
  const createArgs = { tableData, driver: this, indexInCreateTable: false };
@@ -100,9 +100,9 @@ export default class VelociousDatabaseDriversPgsql extends Base {
100
100
  await this.query("SET session_replication_role = 'origin'");
101
101
  }
102
102
  /**
103
- * @param {string} tableName
104
- * @param {import("../base.js").DropTableSqlArgsType} [args]
105
- * @returns {Promise<string[]>} - Result.
103
+ * @param {string} tableName - Table name.
104
+ * @param {import("../base.js").DropTableSqlArgsType} [args] - Options object.
105
+ * @returns {Promise<string[]>} - Resolves with SQL statements.
106
106
  */
107
107
  async dropTableSQLs(tableName, args = {}) {
108
108
  const dropArgs = Object.assign({ tableName, driver: this }, args);
@@ -112,8 +112,8 @@ export default class VelociousDatabaseDriversPgsql extends Base {
112
112
  getType() { return "pgsql"; }
113
113
  primaryKeyType() { return "bigint"; }
114
114
  /**
115
- * @param {string} sql
116
- * @returns {Promise<import("../base.js").QueryResultType>} - Result.
115
+ * @param {string} sql - SQL string.
116
+ * @returns {Promise<import("../base.js").QueryResultType>} - Resolves with the query actual.
117
117
  */
118
118
  async _queryActual(sql) {
119
119
  let response;
@@ -133,15 +133,15 @@ export default class VelociousDatabaseDriversPgsql extends Base {
133
133
  return response.rows;
134
134
  }
135
135
  /**
136
- * @param {import("../../query/index.js").default} query
137
- * @returns {string} - Result.
136
+ * @param {import("../../query/index.js").default} query - Query instance.
137
+ * @returns {string} - SQL string.
138
138
  */
139
139
  queryToSql(query) { return new QueryParser({ query }).toSql(); }
140
140
  shouldSetAutoIncrementWhenPrimaryKey() { return true; }
141
141
  supportsDefaultPrimaryKeyUUID() { return true; }
142
142
  /**
143
- * @param {any} value
144
- * @returns {any} - Result.
143
+ * @param {unknown} value - Value to use.
144
+ * @returns {unknown} - The escape.
145
145
  */
146
146
  escape(value) {
147
147
  if (!this.connection)
@@ -152,8 +152,8 @@ export default class VelociousDatabaseDriversPgsql extends Base {
152
152
  return escapedValueWithQuotes.slice(1, escapedValueWithQuotes.length - 1);
153
153
  }
154
154
  /**
155
- * @param {string} value
156
- * @returns {string} - Result.
155
+ * @param {unknown} value - Value to use.
156
+ * @returns {string | number} - The quoted value.
157
157
  */
158
158
  quote(value) {
159
159
  if (!this.connection)
@@ -163,8 +163,8 @@ export default class VelociousDatabaseDriversPgsql extends Base {
163
163
  return this.connection.escapeLiteral(this._convertValue(value));
164
164
  }
165
165
  /**
166
- * @param {import("../base.js").DeleteSqlArgsType} args
167
- * @returns {string} - Result.
166
+ * @param {import("../base.js").DeleteSqlArgsType} args - Options object.
167
+ * @returns {string} - SQL string.
168
168
  */
169
169
  deleteSql({ tableName, conditions }) {
170
170
  const deleteInstruction = new Delete({ conditions, driver: this, tableName });
@@ -172,8 +172,8 @@ export default class VelociousDatabaseDriversPgsql extends Base {
172
172
  }
173
173
  /**
174
174
  * @abstract
175
- * @param {import("../base.js").InsertSqlArgsType} args
176
- * @returns {string} - Result.
175
+ * @param {import("../base.js").InsertSqlArgsType} args - Options object.
176
+ * @returns {string} - SQL string.
177
177
  */
178
178
  insertSql(args) {
179
179
  const insertArgs = Object.assign({ driver: this }, args);
@@ -184,7 +184,7 @@ export default class VelociousDatabaseDriversPgsql extends Base {
184
184
  const result = await this.query("SELECT * FROM information_schema.tables WHERE table_catalog = CURRENT_DATABASE() AND table_schema = 'public'");
185
185
  const tables = [];
186
186
  for (const row of result) {
187
- const table = new Table(this, row);
187
+ const table = new Table(this, /** @type {Record<string, string>} */ (row));
188
188
  tables.push(table);
189
189
  }
190
190
  return tables;
@@ -203,18 +203,18 @@ export default class VelociousDatabaseDriversPgsql extends Base {
203
203
  }
204
204
  /**
205
205
  * @abstract
206
- * @param {import("../base.js").UpdateSqlArgsType} args
207
- * @returns {string} - Result.
206
+ * @param {import("../base.js").UpdateSqlArgsType} args - Options object.
207
+ * @returns {string} - SQL string.
208
208
  */
209
209
  updateSql({ conditions, data, tableName }) {
210
210
  const update = new Update({ conditions, data, driver: this, tableName });
211
211
  return update.toSql();
212
212
  }
213
213
  /**
214
- * @returns {Promise<string | null>} - Result.
214
+ * @returns {Promise<string | null>} - Resolves with SQL string.
215
215
  */
216
216
  async structureSql() {
217
217
  return await new StructureSql({ driver: this }).toSql();
218
218
  }
219
219
  }
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9wZ3NxbC9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxVQUFVLE1BQU0sc0JBQXNCLENBQUE7QUFDN0MsT0FBTyxJQUFJLE1BQU0sWUFBWSxDQUFBO0FBQzdCLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxJQUFJLENBQUE7QUFDekIsT0FBTyxjQUFjLE1BQU0sMEJBQTBCLENBQUE7QUFDckQsT0FBTyxXQUFXLE1BQU0sdUJBQXVCLENBQUE7QUFDL0MsT0FBTyxXQUFXLE1BQU0sdUJBQXVCLENBQUE7QUFDL0MsT0FBTyxNQUFNLE1BQU0saUJBQWlCLENBQUE7QUFDcEMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUM5QixPQUFPLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQTtBQUMzQyxPQUFPLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQTtBQUNwQyxPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUE7QUFDbEMsT0FBTyxXQUFXLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBQzlCLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBRXBDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sNkJBQThCLFNBQVEsSUFBSTtJQUM3RCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO1FBRTdDLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ3hCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsdUNBQXVDO1lBQ3ZDLElBQUksS0FBSyxZQUFZLEtB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QUUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRXJELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQTtJQUN0QixDQUFDO0lBRUQsS0FBSyxDQUFDLHVCQUF1QjtRQUMzQixNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUE7UUFFdEUsT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFlBQVk7UUFDaEIsT0FBTyxNQUFNLElBQUksWUFBWSxDQUFDLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDdkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBBbHRlclRhYmxlIGZyb20gXCIuL3NxbC9hbHRlci10YWJsZS5qc1wiXG5pbXBvcnQgQmFzZSBmcm9tIFwiLi4vYmFzZS5qc1wiXG5pbXBvcnQge0NsaWVudH0gZnJvbSBcInBnXCJcbmltcG9ydCBDcmVhdGVEYXRhYmFzZSBmcm9tIFwiLi9zcWwvY3JlYXRlLWRhdGFiYXNlLmpzXCJcbmltcG9ydCBDcmVhdGVJbmRleCBmcm9tIFwiLi9zcWwvY3JlYXRlLWluZGV4LmpzXCJcbmltcG9ydCBDcmVhdGVUYWJsZSBmcm9tIFwiLi9zcWwvY3JlYXRlLXRhYmxlLmpzXCJcbmltcG9ydCBEZWxldGUgZnJvbSBcIi4vc3FsL2RlbGV0ZS5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IERyb3BUYWJsZSBmcm9tIFwiLi9zcWwvZHJvcC10YWJsZS5qc1wiXG5pbXBvcnQgSW5zZXJ0IGZyb20gXCIuL3NxbC9pbnNlcnQuanNcIlxuaW1wb3J0IE9wdGlvbnMgZnJvbSBcIi4vb3B0aW9ucy5qc1wiXG5pbXBvcnQgUXVlcnlQYXJzZXIgZnJvbSBcIi4vcXVlcnktcGFyc2VyLmpzXCJcbmltcG9ydCBUYWJsZSBmcm9tIFwiLi90YWJsZS5qc1wiXG5pbXBvcnQgU3RydWN0dXJlU3FsIGZyb20gXCIuL3N0cnVjdHVyZS1zcWwuanNcIlxuaW1wb3J0IFVwZGF0ZSBmcm9tIFwiLi9zcWwvdXBkYXRlLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VEcml2ZXJzUGdzcWwgZXh0ZW5kcyBCYXNle1xuICBhc3luYyBjb25uZWN0KCkge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQodGhpcy5jb25uZWN0QXJncygpKVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGNsaWVudC5jb25uZWN0KClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gUmUtdGhyb3cgdG8gcmVjb3ZlciByZWFsIHN0YWNrIHRyYWNlXG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbm5lY3QgdG8gUG9zdGdyZXMgc2VydmVyIGZhaWxlZDogJHtlcnJvci5tZXNzYWdlfWApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbm5lY3QgdG8gUG9zdGdyZXMgc2VydmVyIGZhaWxlZDogJHtlcnJvcn1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY29ubmVjdGlvbiA9IGNsaWVudFxuICB9XG5cbiAgYXN5bmMgZGlzY29ubmVjdCgpIHtcbiAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24/LmVuZCgpXG4gIH1cblxuICBjb25uZWN0QXJncygpIHtcbiAgICBjb25zdCBhcmdzID0gdGhpcy5nZXRBcmdzKClcbiAgICBjb25zdCBmb3J3YXJkID0gW1wiZGF0YWJhc2VcIiwgXCJob3N0XCIsIFwicGFzc3dvcmRcIiwgXCJwb3J0XCJdXG5cbiAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIGFueT59ICovXG4gICAgY29uc3QgY29ubmVjdEFyZ3MgPSB7fVxuXG4gICAgZm9yIChjb25zdCBmb3J3YXJkVmFsdWUgb2YgZm9yd2FyZCkge1xuICAgICAgaWYgKGZvcndhcmRWYWx1ZSBpbiBhcmdzKSBjb25uZWN0QXJnc1tmb3J3YXJkVmFsdWVdID0gZGlnZyhhcmdzLCBmb3J3YXJkVmFsdWUpXG4gICAgfVxuXG4gICAgaWYgKFwidXNlcm5hbWVcIiBpbiBhcmdzKSBjb25uZWN0QXJnc1tcInVzZXJcIl0gPSBhcmdzW1widXNlcm5hbWVcIl1cblxuICAgIHJldHVybiBjb25uZWN0QXJnc1xuICB9XG5cbiAgYXN5bmMgY2xvc2UoKSB7XG4gICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uPy5lbmQoKVxuICAgIHRoaXMuY29ubmVjdGlvbiA9IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vLi4vdGFibGUtZGF0YS9pbmRleC5qc1wiKS5kZWZhdWx0fSB0YWJsZURhdGFcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW10+fSAtIFJlc3VsdC5cbiAgICovXG4gIGFzeW5jIGFsdGVyVGFibGVTUUxzKHRhYmxlRGF0YSkge1xuICAgIGNvbnN0IGFsdGVyQXJncyA9IHt0YWJsZURhdGEsIGRyaXZlcjogdGhpc31cbiAgICBjb25zdCBhbHRlclRhYmxlID0gbmV3IEFsdGVyVGFibGUoYWx0ZXJBcmdzKVxuXG4gICAgcmV0dXJuIGF3YWl0IGFsdGVyVGFibGUudG9TUUxzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGF0YWJhc2VOYW1lXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBbYXJnc11cbiAgICogQHBhcmFtIHtib29sZWFufSBbYXJncy5pZk5vdEV4aXN0c11cbiAgICogQHJldHVybnMge3N0cmluZ1tdfSAtIFJlc3VsdC5cbiAgICovXG4gIGNyZWF0ZURhdGFiYXNlU3FsKGRhdGFiYXNlTmFtZSwgYXJncykge1xuICAgIGNvbnN0IGNyZWF0ZUFyZ3MgPSBPYmplY3QuYXNzaWduKHtkYXRhYmFzZU5hbWUsIGRyaXZlcjogdGhpc30sIGFyZ3MpXG4gICAgY29uc3QgY3JlYXRlRGF0YWJhc2UgPSBuZXcgQ3JlYXRlRGF0YWJhc2UoY3JlYXRlQXJncylcblxuICAgIHJldHVybiBjcmVhdGVEYXRhYmFzZS50b1NxbCgpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLmpzXCIpLkNyZWF0ZUluZGV4U3FsQXJnc30gaW5kZXhEYXRhXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn0gLSBSZXN1bHQuXG4gICAqL1xuICBhc3luYyBjcmVhdGVJbmRleFNRTHMoaW5kZXhEYXRhKSB7XG4gICAgY29uc3QgY3JlYXRlQXJncyA9IE9iamVjdC5hc3NpZ24oe2RyaXZlcjogdGhpc30sIGluZGV4RGF0YSlcbiAgICBjb25zdCBjcmVhdGVJbmRleCA9IG5ldyBDcmVhdGVJbmRleChjcmVhdGVBcmdzKVxuXG4gICAgcmV0dXJuIGF3YWl0IGNyZWF0ZUluZGV4LnRvU1FMcygpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi8uLi90YWJsZS1kYXRhL2luZGV4LmpzXCIpLmRlZmF1bHR9IHRhYmxlRGF0YVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmdbXT59IC0gUmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlVGFibGVTcWwodGFibGVEYXRhKSB7XG4gICAgY29uc3QgY3JlYXRlQXJncyA9IHt0YWJsZURhdGEsIGRyaXZlcjogdGhpcywgaW5kZXhJbkNyZWF0ZVRhYmxlOiBmYWxzZX1cbiAgICBjb25zdCBjcmVhdGVUYWJsZSA9IG5ldyBDcmVhdGVUYWJsZShjcmVhdGVBcmdzKVxuXG4gICAgcmV0dXJuIGF3YWl0IGNyZWF0ZVRhYmxlLnRvU3FsKClcbiAgfVxuXG4gIGFzeW5jIGN1cnJlbnREYXRhYmFzZSgpIHtcbiAgICBjb25zdCByb3dzID0gYXdhaXQgdGhpcy5xdWVyeShcIlNFTEVDVCBDVVJSRU5UX0RBVEFCQVNFKCkgQVMgZGJfbmFtZVwiKVxuXG4gICAgcmV0dXJuIGRpZ2cocm93cywgMCwgXCJkYl9uYW1lXCIpXG4gIH1cblxuICBhc3luYyBkaXNhYmxlRm9yZWlnbktleXMoKSB7XG4gICAgYXdhaXQgdGhpcy5xdWVyeShcIlNFVCBzZXNzaW9uX3JlcGxpY2F0aW9uX3JvbGUgPSAncmVwbGljYSdcIilcbiAgfVxuXG4gIGFzeW5jIGVuYWJsZUZvcmVpZ25LZXlzKCkge1xuICAgIGF3YWl0IHRoaXMucXVlcnkoXCJTRVQgc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlID0gJ29yaWdpbidcIilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5Ecm9wVGFibGVTcWxBcmdzVHlwZX0gW2FyZ3NdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn0gLSBSZXN1bHQuXG4gICAqL1xuICBhc3luYyBkcm9wVGFibGVTUUxzKHRhYmxlTmFtZSwgYXJncyA9IHt9KSB7XG4gICAgY29uc3QgZHJvcEFyZ3MgPSBPYmplY3QuYXNzaWduKHt0YWJsZU5hbWUsIGRyaXZlcjogdGhpc30sIGFyZ3MpXG4gICAgY29uc3QgZHJvcFRhYmxlID0gbmV3IERyb3BUYWJsZShkcm9wQXJncylcblxuICAgIHJldHVybiBhd2FpdCBkcm9wVGFibGUudG9TUUxzKClcbiAgfVxuXG4gIGdldFR5cGUoKSB7IHJldHVybiBcInBnc3FsXCIgfVxuICBwcmltYXJ5S2V5VHlwZSgpIHsgcmV0dXJuIFwiYmlnaW50XCIgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3FsXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4uL2Jhc2UuanNcIikuUXVlcnlSZXN1bHRUeXBlPn0gLSBSZXN1bHQuXG4gICAqL1xuICBhc3luYyBfcXVlcnlBY3R1YWwoc3FsKSB7XG4gICAgbGV0IHJlc3BvbnNlXG5cbiAgICBpZiAoIXRoaXMuY29ubmVjdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiTm90IHlldCBjb25uZWN0ZWRcIilcblxuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMuY29ubmVjdGlvbi5xdWVyeShzcWwpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUXVlcnkgZmFpbGVkOiAke2Vycm9yLm1lc3NhZ2V9IHdpdGggU1FMOiAke3NxbH1gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBRdWVyeSBmYWlsZWQ6ICR7ZXJyb3J9IHdpdGggU1FMOiAke3NxbH1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXNwb25zZS5yb3dzXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi8uLi9xdWVyeS9pbmRleC5qc1wiKS5kZWZhdWx0fSBxdWVyeVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFJlc3VsdC5cbiAgICovXG4gIHF1ZXJ5VG9TcWwocXVlcnkpIHsgcmV0dXJuIG5ldyBRdWVyeVBhcnNlcih7cXVlcnl9KS50b1NxbCgpIH1cbiAgc2hvdWxkU2V0QXV0b0luY3JlbWVudFdoZW5QcmltYXJ5S2V5KCkgeyByZXR1cm4gdHJ1ZSB9XG4gIHN1cHBvcnRzRGVmYXVsdFByaW1hcnlLZXlVVUlEKCkgeyByZXR1cm4gdHJ1ZSB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7YW55fSB2YWx1ZVxuICAgKiBAcmV0dXJucyB7YW55fSAtIFJlc3VsdC5cbiAgICovXG4gIGVzY2FwZSh2YWx1ZSkge1xuICAgIGlmICghdGhpcy5jb25uZWN0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBlc2NhcGUgYmVmb3JlIGNvbm5lY3RlZFwiKVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHJldHVybiB2YWx1ZVxuXG4gICAgY29uc3QgZXNjYXBlZFZhbHVlV2l0aFF1b3RlcyA9IHRoaXMuY29ubmVjdGlvbi5lc2NhcGVMaXRlcmFsKHRoaXMuX2NvbnZlcnRWYWx1ZSh2YWx1ZSkpXG5cbiAgICByZXR1cm4gZXNjYXBlZFZhbHVlV2l0aFF1b3Rlcy5zbGljZSgxLCBlc2NhcGVkVmFsdWVXaXRoUXVvdGVzLmxlbmd0aCAtIDEpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gUmVzdWx0LlxuICAgKi9cbiAgcXVvdGUodmFsdWUpIHtcbiAgICBpZiAoIXRoaXMuY29ubmVjdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiQ2FuJ3QgZXNjYXBlIGJlZm9yZSBjb25uZWN0ZWRcIilcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSByZXR1cm4gdmFsdWVcblxuICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24uZXNjYXBlTGl0ZXJhbCh0aGlzLl9jb252ZXJ0VmFsdWUodmFsdWUpKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5EZWxldGVTcWxBcmdzVHlwZX0gYXJnc1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFJlc3VsdC5cbiAgICovXG4gIGRlbGV0ZVNxbCh7dGFibGVOYW1lLCBjb25kaXRpb25zfSkge1xuICAgIGNvbnN0IGRlbGV0ZUluc3RydWN0aW9uID0gbmV3IERlbGV0ZSh7Y29uZGl0aW9ucywgZHJpdmVyOiB0aGlzLCB0YWJsZU5hbWV9KVxuXG4gICAgcmV0dXJuIGRlbGV0ZUluc3RydWN0aW9uLnRvU3FsKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLmpzXCIpLkluc2VydFNxbEFyZ3NUeXBlfSBhcmdzXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gUmVzdWx0LlxuICAgKi9cbiAgaW5zZXJ0U3FsKGFyZ3MpIHtcbiAgICBjb25zdCBpbnNlcnRBcmdzID0gT2JqZWN0LmFzc2lnbih7ZHJpdmVyOiB0aGlzfSwgYXJncylcbiAgICBjb25zdCBpbnNlcnQgPSBuZXcgSW5zZXJ0KGluc2VydEFyZ3MpXG5cbiAgICByZXR1cm4gaW5zZXJ0LnRvU3FsKClcbiAgfVxuXG4gIGFzeW5jIGdldFRhYmxlcygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnF1ZXJ5KFwiU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzIFdIRVJFIHRhYmxlX2NhdGFsb2cgPSBDVVJSRU5UX0RBVEFCQVNFKCkgQU5EIHRhYmxlX3NjaGVtYSA9ICdwdWJsaWMnXCIpXG4gICAgY29uc3QgdGFibGVzID0gW11cblxuICAgIGZvciAoY29uc3Qgcm93IG9mIHJlc3VsdCkge1xuICAgICAgY29uc3QgdGFibGUgPSBuZXcgVGFibGUodGhpcywgcm93KVxuXG4gICAgICB0YWJsZXMucHVzaCh0YWJsZSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGFibGVzXG4gIH1cblxuICBhc3luYyBsYXN0SW5zZXJ0SUQoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5xdWVyeShcIlNFTEVDVCBMQVNUVkFMKCkgQVMgbGFzdF9pbnNlcnRfaWRcIilcblxuICAgIHJldHVybiBkaWdnKHJlc3VsdCwgMCwgXCJsYXN0X2luc2VydF9pZFwiKVxuICB9XG5cbiAgb3B0aW9ucygpIHtcbiAgICBpZiAoIXRoaXMuX29wdGlvbnMpIHRoaXMuX29wdGlvbnMgPSBuZXcgT3B0aW9ucyh0aGlzKVxuXG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnNcbiAgfVxuXG4gIGFzeW5jIF9zdGFydFRyYW5zYWN0aW9uQWN0aW9uKCkge1xuICAgIGF3YWl0IHRoaXMucXVlcnkoXCJTVEFSVCBUUkFOU0FDVElPTlwiKVxuICB9XG5cbiAgLyoqXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Jhc2UuanNcIikuVXBkYXRlU3FsQXJnc1R5cGV9IGFyZ3NcbiAgICogQHJldHVybnMge3N0cmluZ30gLSBSZXN1bHQuXG4gICAqL1xuICB1cGRhdGVTcWwoe2NvbmRpdGlvbnMsIGRhdGEsIHRhYmxlTmFtZX0pIHtcbiAgICBjb25zdCB1cGRhdGUgPSBuZXcgVXBkYXRlKHtjb25kaXRpb25zLCBkYXRhLCBkcml2ZXI6IHRoaXMsIHRhYmxlTmFtZX0pXG5cbiAgICByZXR1cm4gdXBkYXRlLnRvU3FsKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmcgfCBudWxsPn0gLSBSZXN1bHQuXG4gICAqL1xuICBhc3luYyBzdHJ1Y3R1cmVTcWwoKSB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBTdHJ1Y3R1cmVTcWwoe2RyaXZlcjogdGhpc30pLnRvU3FsKClcbiAgfVxufVxuIl19
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9wZ3NxbC9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxVQUFVLE1BQU0sc0JBQXNCLENBQUE7QUFDN0MsT0FBTyxJQUFJLE1BQU0sWUFBWSxDQUFBO0FBQzdCLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxJQUFJLENBQUE7QUFDekIsT0FBTyxjQUFjLE1BQU0sMEJBQTBCLENBQUE7QUFDckQsT0FBTyxXQUFXLE1BQU0sdUJBQXVCLENBQUE7QUFDL0MsT0FBTyxXQUFXLE1BQU0sdUJBQXVCLENBQUE7QUFDL0MsT0FBTyxNQUFNLE1BQU0saUJBQWlCLENBQUE7QUFDcEMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUM5QixPQUFPLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQTtBQUMzQyxPQUFPLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQTtBQUNwQyxPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUE7QUFDbEMsT0FBTyxXQUFXLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBQzlCLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBRXBDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sNkJBQThCLFNBQVEsSUFBSTtJQUM3RCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO1FBRTdDLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ3hCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsdUNBQXVDO1lBQ3ZDLElBQUksS0FBSyxZQUFZLEtB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T0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzFDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVyRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDdEIsQ0FBQztJQUVELEtBQUssQ0FBQyx1QkFBdUI7UUFDM0IsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQztRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFBO1FBRXRFLE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxZQUFZO1FBQ2hCLE9BQU8sTUFBTSxJQUFJLFlBQVksQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3ZELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQWx0ZXJUYWJsZSBmcm9tIFwiLi9zcWwvYWx0ZXItdGFibGUuanNcIlxuaW1wb3J0IEJhc2UgZnJvbSBcIi4uL2Jhc2UuanNcIlxuaW1wb3J0IHtDbGllbnR9IGZyb20gXCJwZ1wiXG5pbXBvcnQgQ3JlYXRlRGF0YWJhc2UgZnJvbSBcIi4vc3FsL2NyZWF0ZS1kYXRhYmFzZS5qc1wiXG5pbXBvcnQgQ3JlYXRlSW5kZXggZnJvbSBcIi4vc3FsL2NyZWF0ZS1pbmRleC5qc1wiXG5pbXBvcnQgQ3JlYXRlVGFibGUgZnJvbSBcIi4vc3FsL2NyZWF0ZS10YWJsZS5qc1wiXG5pbXBvcnQgRGVsZXRlIGZyb20gXCIuL3NxbC9kZWxldGUuanNcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBEcm9wVGFibGUgZnJvbSBcIi4vc3FsL2Ryb3AtdGFibGUuanNcIlxuaW1wb3J0IEluc2VydCBmcm9tIFwiLi9zcWwvaW5zZXJ0LmpzXCJcbmltcG9ydCBPcHRpb25zIGZyb20gXCIuL29wdGlvbnMuanNcIlxuaW1wb3J0IFF1ZXJ5UGFyc2VyIGZyb20gXCIuL3F1ZXJ5LXBhcnNlci5qc1wiXG5pbXBvcnQgVGFibGUgZnJvbSBcIi4vdGFibGUuanNcIlxuaW1wb3J0IFN0cnVjdHVyZVNxbCBmcm9tIFwiLi9zdHJ1Y3R1cmUtc3FsLmpzXCJcbmltcG9ydCBVcGRhdGUgZnJvbSBcIi4vc3FsL3VwZGF0ZS5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlRHJpdmVyc1Bnc3FsIGV4dGVuZHMgQmFzZXtcbiAgYXN5bmMgY29ubmVjdCgpIHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KHRoaXMuY29ubmVjdEFyZ3MoKSlcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjbGllbnQuY29ubmVjdCgpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIFJlLXRocm93IHRvIHJlY292ZXIgcmVhbCBzdGFjayB0cmFjZVxuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb25uZWN0IHRvIFBvc3RncmVzIHNlcnZlciBmYWlsZWQ6ICR7ZXJyb3IubWVzc2FnZX1gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb25uZWN0IHRvIFBvc3RncmVzIHNlcnZlciBmYWlsZWQ6ICR7ZXJyb3J9YClcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBjbGllbnRcbiAgfVxuXG4gIGFzeW5jIGRpc2Nvbm5lY3QoKSB7XG4gICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uPy5lbmQoKVxuICB9XG5cbiAgY29ubmVjdEFyZ3MoKSB7XG4gICAgY29uc3QgYXJncyA9IHRoaXMuZ2V0QXJncygpXG4gICAgY29uc3QgZm9yd2FyZCA9IFtcImRhdGFiYXNlXCIsIFwiaG9zdFwiLCBcInBhc3N3b3JkXCIsIFwicG9ydFwiXVxuXG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gKi9cbiAgICBjb25zdCBjb25uZWN0QXJncyA9IHt9XG5cbiAgICBmb3IgKGNvbnN0IGZvcndhcmRWYWx1ZSBvZiBmb3J3YXJkKSB7XG4gICAgICBpZiAoZm9yd2FyZFZhbHVlIGluIGFyZ3MpIGNvbm5lY3RBcmdzW2ZvcndhcmRWYWx1ZV0gPSBkaWdnKGFyZ3MsIGZvcndhcmRWYWx1ZSlcbiAgICB9XG5cbiAgICBpZiAoXCJ1c2VybmFtZVwiIGluIGFyZ3MpIGNvbm5lY3RBcmdzW1widXNlclwiXSA9IGFyZ3NbXCJ1c2VybmFtZVwiXVxuXG4gICAgcmV0dXJuIGNvbm5lY3RBcmdzXG4gIH1cblxuICBhc3luYyBjbG9zZSgpIHtcbiAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24/LmVuZCgpXG4gICAgdGhpcy5jb25uZWN0aW9uID0gdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi8uLi90YWJsZS1kYXRhL2luZGV4LmpzXCIpLmRlZmF1bHR9IHRhYmxlRGF0YSAtIFRhYmxlIGRhdGEuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn0gLSBSZXNvbHZlcyB3aXRoIFNRTCBzdGF0ZW1lbnRzLlxuICAgKi9cbiAgYXN5bmMgYWx0ZXJUYWJsZVNRTHModGFibGVEYXRhKSB7XG4gICAgY29uc3QgYWx0ZXJBcmdzID0ge3RhYmxlRGF0YSwgZHJpdmVyOiB0aGlzfVxuICAgIGNvbnN0IGFsdGVyVGFibGUgPSBuZXcgQWx0ZXJUYWJsZShhbHRlckFyZ3MpXG5cbiAgICByZXR1cm4gYXdhaXQgYWx0ZXJUYWJsZS50b1NRTHMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhYmFzZU5hbWUgLSBEYXRhYmFzZSBuYW1lLlxuICAgKiBAcGFyYW0ge29iamVjdH0gW2FyZ3NdIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FyZ3MuaWZOb3RFeGlzdHNdIC0gV2hldGhlciBpZiBub3QgZXhpc3RzLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nW119IC0gU1FMIHN0YXRlbWVudHMuXG4gICAqL1xuICBjcmVhdGVEYXRhYmFzZVNxbChkYXRhYmFzZU5hbWUsIGFyZ3MpIHtcbiAgICBjb25zdCBjcmVhdGVBcmdzID0gT2JqZWN0LmFzc2lnbih7ZGF0YWJhc2VOYW1lLCBkcml2ZXI6IHRoaXN9LCBhcmdzKVxuICAgIGNvbnN0IGNyZWF0ZURhdGFiYXNlID0gbmV3IENyZWF0ZURhdGFiYXNlKGNyZWF0ZUFyZ3MpXG5cbiAgICByZXR1cm4gY3JlYXRlRGF0YWJhc2UudG9TcWwoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5DcmVhdGVJbmRleFNxbEFyZ3N9IGluZGV4RGF0YSAtIEluZGV4IGRhdGEuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn0gLSBSZXNvbHZlcyB3aXRoIFNRTCBzdGF0ZW1lbnRzLlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlSW5kZXhTUUxzKGluZGV4RGF0YSkge1xuICAgIGNvbnN0IGNyZWF0ZUFyZ3MgPSBPYmplY3QuYXNzaWduKHtkcml2ZXI6IHRoaXN9LCBpbmRleERhdGEpXG4gICAgY29uc3QgY3JlYXRlSW5kZXggPSBuZXcgQ3JlYXRlSW5kZXgoY3JlYXRlQXJncylcblxuICAgIHJldHVybiBhd2FpdCBjcmVhdGVJbmRleC50b1NRTHMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vLi4vdGFibGUtZGF0YS9pbmRleC5qc1wiKS5kZWZhdWx0fSB0YWJsZURhdGEgLSBUYWJsZSBkYXRhLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmdbXT59IC0gUmVzb2x2ZXMgd2l0aCBTUUwgc3RhdGVtZW50cy5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZVRhYmxlU3FsKHRhYmxlRGF0YSkge1xuICAgIGNvbnN0IGNyZWF0ZUFyZ3MgPSB7dGFibGVEYXRhLCBkcml2ZXI6IHRoaXMsIGluZGV4SW5DcmVhdGVUYWJsZTogZmFsc2V9XG4gICAgY29uc3QgY3JlYXRlVGFibGUgPSBuZXcgQ3JlYXRlVGFibGUoY3JlYXRlQXJncylcblxuICAgIHJldHVybiBhd2FpdCBjcmVhdGVUYWJsZS50b1NxbCgpXG4gIH1cblxuICBhc3luYyBjdXJyZW50RGF0YWJhc2UoKSB7XG4gICAgY29uc3Qgcm93cyA9IGF3YWl0IHRoaXMucXVlcnkoXCJTRUxFQ1QgQ1VSUkVOVF9EQVRBQkFTRSgpIEFTIGRiX25hbWVcIilcblxuICAgIHJldHVybiBkaWdnKHJvd3MsIDAsIFwiZGJfbmFtZVwiKVxuICB9XG5cbiAgYXN5bmMgZGlzYWJsZUZvcmVpZ25LZXlzKCkge1xuICAgIGF3YWl0IHRoaXMucXVlcnkoXCJTRVQgc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlID0gJ3JlcGxpY2EnXCIpXG4gIH1cblxuICBhc3luYyBlbmFibGVGb3JlaWduS2V5cygpIHtcbiAgICBhd2FpdCB0aGlzLnF1ZXJ5KFwiU0VUIHNlc3Npb25fcmVwbGljYXRpb25fcm9sZSA9ICdvcmlnaW4nXCIpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRhYmxlIG5hbWUuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5Ecm9wVGFibGVTcWxBcmdzVHlwZX0gW2FyZ3NdIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn0gLSBSZXNvbHZlcyB3aXRoIFNRTCBzdGF0ZW1lbnRzLlxuICAgKi9cbiAgYXN5bmMgZHJvcFRhYmxlU1FMcyh0YWJsZU5hbWUsIGFyZ3MgPSB7fSkge1xuICAgIGNvbnN0IGRyb3BBcmdzID0gT2JqZWN0LmFzc2lnbih7dGFibGVOYW1lLCBkcml2ZXI6IHRoaXN9LCBhcmdzKVxuICAgIGNvbnN0IGRyb3BUYWJsZSA9IG5ldyBEcm9wVGFibGUoZHJvcEFyZ3MpXG5cbiAgICByZXR1cm4gYXdhaXQgZHJvcFRhYmxlLnRvU1FMcygpXG4gIH1cblxuICBnZXRUeXBlKCkgeyByZXR1cm4gXCJwZ3NxbFwiIH1cbiAgcHJpbWFyeUtleVR5cGUoKSB7IHJldHVybiBcImJpZ2ludFwiIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNxbCAtIFNRTCBzdHJpbmcuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4uL2Jhc2UuanNcIikuUXVlcnlSZXN1bHRUeXBlPn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBxdWVyeSBhY3R1YWwuXG4gICAqL1xuICBhc3luYyBfcXVlcnlBY3R1YWwoc3FsKSB7XG4gICAgbGV0IHJlc3BvbnNlXG5cbiAgICBpZiAoIXRoaXMuY29ubmVjdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiTm90IHlldCBjb25uZWN0ZWRcIilcblxuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMuY29ubmVjdGlvbi5xdWVyeShzcWwpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUXVlcnkgZmFpbGVkOiAke2Vycm9yLm1lc3NhZ2V9IHdpdGggU1FMOiAke3NxbH1gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBRdWVyeSBmYWlsZWQ6ICR7ZXJyb3J9IHdpdGggU1FMOiAke3NxbH1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXNwb25zZS5yb3dzXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi8uLi9xdWVyeS9pbmRleC5qc1wiKS5kZWZhdWx0fSBxdWVyeSAtIFF1ZXJ5IGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFNRTCBzdHJpbmcuXG4gICAqL1xuICBxdWVyeVRvU3FsKHF1ZXJ5KSB7IHJldHVybiBuZXcgUXVlcnlQYXJzZXIoe3F1ZXJ5fSkudG9TcWwoKSB9XG4gIHNob3VsZFNldEF1dG9JbmNyZW1lbnRXaGVuUHJpbWFyeUtleSgpIHsgcmV0dXJuIHRydWUgfVxuICBzdXBwb3J0c0RlZmF1bHRQcmltYXJ5S2V5VVVJRCgpIHsgcmV0dXJuIHRydWUgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3Vua25vd259IHZhbHVlIC0gVmFsdWUgdG8gdXNlLlxuICAgKiBAcmV0dXJucyB7dW5rbm93bn0gLSBUaGUgZXNjYXBlLlxuICAgKi9cbiAgZXNjYXBlKHZhbHVlKSB7XG4gICAgaWYgKCF0aGlzLmNvbm5lY3Rpb24pIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGVzY2FwZSBiZWZvcmUgY29ubmVjdGVkXCIpXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikgcmV0dXJuIHZhbHVlXG5cbiAgICBjb25zdCBlc2NhcGVkVmFsdWVXaXRoUXVvdGVzID0gdGhpcy5jb25uZWN0aW9uLmVzY2FwZUxpdGVyYWwodGhpcy5fY29udmVydFZhbHVlKHZhbHVlKSlcblxuICAgIHJldHVybiBlc2NhcGVkVmFsdWVXaXRoUXVvdGVzLnNsaWNlKDEsIGVzY2FwZWRWYWx1ZVdpdGhRdW90ZXMubGVuZ3RoIC0gMSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3Vua25vd259IHZhbHVlIC0gVmFsdWUgdG8gdXNlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgbnVtYmVyfSAtIFRoZSBxdW90ZWQgdmFsdWUuXG4gICAqL1xuICBxdW90ZSh2YWx1ZSkge1xuICAgIGlmICghdGhpcy5jb25uZWN0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBlc2NhcGUgYmVmb3JlIGNvbm5lY3RlZFwiKVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHJldHVybiB2YWx1ZVxuXG4gICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbi5lc2NhcGVMaXRlcmFsKHRoaXMuX2NvbnZlcnRWYWx1ZSh2YWx1ZSkpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLmpzXCIpLkRlbGV0ZVNxbEFyZ3NUeXBlfSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gU1FMIHN0cmluZy5cbiAgICovXG4gIGRlbGV0ZVNxbCh7dGFibGVOYW1lLCBjb25kaXRpb25zfSkge1xuICAgIGNvbnN0IGRlbGV0ZUluc3RydWN0aW9uID0gbmV3IERlbGV0ZSh7Y29uZGl0aW9ucywgZHJpdmVyOiB0aGlzLCB0YWJsZU5hbWV9KVxuXG4gICAgcmV0dXJuIGRlbGV0ZUluc3RydWN0aW9uLnRvU3FsKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLmpzXCIpLkluc2VydFNxbEFyZ3NUeXBlfSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gU1FMIHN0cmluZy5cbiAgICovXG4gIGluc2VydFNxbChhcmdzKSB7XG4gICAgY29uc3QgaW5zZXJ0QXJncyA9IE9iamVjdC5hc3NpZ24oe2RyaXZlcjogdGhpc30sIGFyZ3MpXG4gICAgY29uc3QgaW5zZXJ0ID0gbmV3IEluc2VydChpbnNlcnRBcmdzKVxuXG4gICAgcmV0dXJuIGluc2VydC50b1NxbCgpXG4gIH1cblxuICBhc3luYyBnZXRUYWJsZXMoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5xdWVyeShcIlNFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlcyBXSEVSRSB0YWJsZV9jYXRhbG9nID0gQ1VSUkVOVF9EQVRBQkFTRSgpIEFORCB0YWJsZV9zY2hlbWEgPSAncHVibGljJ1wiKVxuICAgIGNvbnN0IHRhYmxlcyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IHJvdyBvZiByZXN1bHQpIHtcbiAgICAgIGNvbnN0IHRhYmxlID0gbmV3IFRhYmxlKHRoaXMsIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gKi8gKHJvdykpXG5cbiAgICAgIHRhYmxlcy5wdXNoKHRhYmxlKVxuICAgIH1cblxuICAgIHJldHVybiB0YWJsZXNcbiAgfVxuXG4gIGFzeW5jIGxhc3RJbnNlcnRJRCgpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnF1ZXJ5KFwiU0VMRUNUIExBU1RWQUwoKSBBUyBsYXN0X2luc2VydF9pZFwiKVxuXG4gICAgcmV0dXJuIGRpZ2cocmVzdWx0LCAwLCBcImxhc3RfaW5zZXJ0X2lkXCIpXG4gIH1cblxuICBvcHRpb25zKCkge1xuICAgIGlmICghdGhpcy5fb3B0aW9ucykgdGhpcy5fb3B0aW9ucyA9IG5ldyBPcHRpb25zKHRoaXMpXG5cbiAgICByZXR1cm4gdGhpcy5fb3B0aW9uc1xuICB9XG5cbiAgYXN5bmMgX3N0YXJ0VHJhbnNhY3Rpb25BY3Rpb24oKSB7XG4gICAgYXdhaXQgdGhpcy5xdWVyeShcIlNUQVJUIFRSQU5TQUNUSU9OXCIpXG4gIH1cblxuICAvKipcbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5VcGRhdGVTcWxBcmdzVHlwZX0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFNRTCBzdHJpbmcuXG4gICAqL1xuICB1cGRhdGVTcWwoe2NvbmRpdGlvbnMsIGRhdGEsIHRhYmxlTmFtZX0pIHtcbiAgICBjb25zdCB1cGRhdGUgPSBuZXcgVXBkYXRlKHtjb25kaXRpb25zLCBkYXRhLCBkcml2ZXI6IHRoaXMsIHRhYmxlTmFtZX0pXG5cbiAgICByZXR1cm4gdXBkYXRlLnRvU3FsKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmcgfCBudWxsPn0gLSBSZXNvbHZlcyB3aXRoIFNRTCBzdHJpbmcuXG4gICAqL1xuICBhc3luYyBzdHJ1Y3R1cmVTcWwoKSB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBTdHJ1Y3R1cmVTcWwoe2RyaXZlcjogdGhpc30pLnRvU3FsKClcbiAgfVxufVxuIl19
@@ -1,11 +1,11 @@
1
1
  export default class VelociousDatabaseDriversPgsqlOptions extends QueryParserOptions {
2
2
  /**
3
- * @param {import("../base.js").default} driver
3
+ * @param {import("../base.js").default} driver - Database driver instance.
4
4
  */
5
5
  constructor(driver: import("../base.js").default);
6
6
  /**
7
- * @param {string} string
8
- * @returns {number | string} - Result.
7
+ * @param {string} string - String.
8
+ * @returns {number | string} - The quote.
9
9
  */
10
10
  quote(string: string): number | string;
11
11
  }
@@ -2,7 +2,7 @@
2
2
  import QueryParserOptions from "../../query-parser/options.js";
3
3
  export default class VelociousDatabaseDriversPgsqlOptions extends QueryParserOptions {
4
4
  /**
5
- * @param {import("../base.js").default} driver
5
+ * @param {import("../base.js").default} driver - Database driver instance.
6
6
  */
7
7
  constructor(driver) {
8
8
  const options = {
@@ -15,8 +15,8 @@ export default class VelociousDatabaseDriversPgsqlOptions extends QueryParserOpt
15
15
  super(options);
16
16
  }
17
17
  /**
18
- * @param {string} string
19
- * @returns {number | string} - Result.
18
+ * @param {string} string - String.
19
+ * @returns {number | string} - The quote.
20
20
  */
21
21
  quote(string) {
22
22
  if (!this.driver)
@@ -24,4 +24,4 @@ export default class VelociousDatabaseDriversPgsqlOptions extends QueryParserOpt
24
24
  return this.driver.quote(string);
25
25
  }
26
26
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kcml2ZXJzL3Bnc3FsL29wdGlvbnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sa0JBQWtCLE1BQU0sK0JBQStCLENBQUE7QUFFOUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxvQ0FBcUMsU0FBUSxrQkFBa0I7SUFDbEY7O09BRUc7SUFDSCxZQUFZLE1BQU07UUFDaEIsTUFBTSxPQUFPLEdBQUc7WUFDZCxNQUFNO1lBQ04sV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLElBQUk7WUFDaEIsV0FBVyxFQUFFLEdBQUc7WUFDaEIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQTtRQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFFbkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IFF1ZXJ5UGFyc2VyT3B0aW9ucyBmcm9tIFwiLi4vLi4vcXVlcnktcGFyc2VyL29wdGlvbnMuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNQZ3NxbE9wdGlvbnMgZXh0ZW5kcyBRdWVyeVBhcnNlck9wdGlvbnMge1xuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLmpzXCIpLmRlZmF1bHR9IGRyaXZlclxuICAgKi9cbiAgY29uc3RydWN0b3IoZHJpdmVyKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGRyaXZlcixcbiAgICAgIGNvbHVtblF1b3RlOiBcIlxcXCJcIixcbiAgICAgIGluZGV4UXVvdGU6IFwiXFxcIlwiLFxuICAgICAgc3RyaW5nUXVvdGU6IFwiJ1wiLFxuICAgICAgdGFibGVRdW90ZTogXCJcXFwiXCJcbiAgICB9XG5cbiAgICBzdXBlcihvcHRpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAgICogQHJldHVybnMge251bWJlciB8IHN0cmluZ30gLSBSZXN1bHQuXG4gICAqL1xuICBxdW90ZShzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuZHJpdmVyKSB0aHJvdyBuZXcgRXJyb3IoXCJEcml2ZXIgbm90IHNldFwiKVxuXG4gICAgcmV0dXJuIHRoaXMuZHJpdmVyLnF1b3RlKHN0cmluZylcbiAgfVxufVxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kcml2ZXJzL3Bnc3FsL29wdGlvbnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sa0JBQWtCLE1BQU0sK0JBQStCLENBQUE7QUFFOUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxvQ0FBcUMsU0FBUSxrQkFBa0I7SUFDbEY7O09BRUc7SUFDSCxZQUFZLE1BQU07UUFDaEIsTUFBTSxPQUFPLEdBQUc7WUFDZCxNQUFNO1lBQ04sV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLElBQUk7WUFDaEIsV0FBVyxFQUFFLEdBQUc7WUFDaEIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQTtRQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFFbkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IFF1ZXJ5UGFyc2VyT3B0aW9ucyBmcm9tIFwiLi4vLi4vcXVlcnktcGFyc2VyL29wdGlvbnMuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNQZ3NxbE9wdGlvbnMgZXh0ZW5kcyBRdWVyeVBhcnNlck9wdGlvbnMge1xuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLmpzXCIpLmRlZmF1bHR9IGRyaXZlciAtIERhdGFiYXNlIGRyaXZlciBpbnN0YW5jZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGRyaXZlcikge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBkcml2ZXIsXG4gICAgICBjb2x1bW5RdW90ZTogXCJcXFwiXCIsXG4gICAgICBpbmRleFF1b3RlOiBcIlxcXCJcIixcbiAgICAgIHN0cmluZ1F1b3RlOiBcIidcIixcbiAgICAgIHRhYmxlUXVvdGU6IFwiXFxcIlwiXG4gICAgfVxuXG4gICAgc3VwZXIob3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIC0gU3RyaW5nLlxuICAgKiBAcmV0dXJucyB7bnVtYmVyIHwgc3RyaW5nfSAtIFRoZSBxdW90ZS5cbiAgICovXG4gIHF1b3RlKHN0cmluZykge1xuICAgIGlmICghdGhpcy5kcml2ZXIpIHRocm93IG5ldyBFcnJvcihcIkRyaXZlciBub3Qgc2V0XCIpXG5cbiAgICByZXR1cm4gdGhpcy5kcml2ZXIucXVvdGUoc3RyaW5nKVxuICB9XG59XG4iXX0=
@@ -1,20 +1,20 @@
1
1
  export default class VelociousDatabaseDriversPgsqlStructureSql {
2
2
  /**
3
- * @param {object} args
4
- * @param {import("../base.js").default} args.driver
3
+ * @param {object} args - Options object.
4
+ * @param {import("../base.js").default} args.driver - Database driver instance.
5
5
  */
6
6
  constructor({ driver }: {
7
7
  driver: import("../base.js").default;
8
8
  });
9
9
  driver: import("../base.js").default;
10
10
  /**
11
- * @returns {Promise<string | null>} - Result.
11
+ * @returns {Promise<string | null>} - Resolves with SQL string.
12
12
  */
13
13
  toSql(): Promise<string | null>;
14
14
  /**
15
- * @param {Record<string, any>} column
16
- * @returns {string | null} - Result.
15
+ * @param {Record<string, unknown>} column - Column.
16
+ * @returns {string | null} - The column definition.
17
17
  */
18
- _columnDefinition(column: Record<string, any>): string | null;
18
+ _columnDefinition(column: Record<string, unknown>): string | null;
19
19
  }
20
20
  //# sourceMappingURL=structure-sql.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"structure-sql.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/structure-sql.js"],"names":[],"mappings":"AAIA;IACE;;;OAGG;IACH,wBAFG;QAA2C,MAAM,EAAzC,OAAO,YAAY,EAAE,OAAO;KACtC,EAGA;IADC,qCAAoB;IAGtB;;OAEG;IACH,SAFa,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2DlC;IAED;;;OAGG;IACH,0BAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,MAAM,GAAG,IAAI,CAoCzB;CACF"}
1
+ {"version":3,"file":"structure-sql.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/structure-sql.js"],"names":[],"mappings":"AAIA;IACE;;;OAGG;IACH,wBAFG;QAA2C,MAAM,EAAzC,OAAO,YAAY,EAAE,OAAO;KACtC,EAGA;IADC,qCAAoB;IAGtB;;OAEG;IACH,SAFa,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6DlC;IAED;;;OAGG;IACH,0BAHW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrB,MAAM,GAAG,IAAI,CAyCzB;CACF"}
@@ -2,14 +2,14 @@
2
2
  import { normalizeSqlStatement } from "../structure-sql/utils.js";
3
3
  export default class VelociousDatabaseDriversPgsqlStructureSql {
4
4
  /**
5
- * @param {object} args
6
- * @param {import("../base.js").default} args.driver
5
+ * @param {object} args - Options object.
6
+ * @param {import("../base.js").default} args.driver - Database driver instance.
7
7
  */
8
8
  constructor({ driver }) {
9
9
  this.driver = driver;
10
10
  }
11
11
  /**
12
- * @returns {Promise<string | null>} - Result.
12
+ * @returns {Promise<string | null>} - Resolves with SQL string.
13
13
  */
14
14
  async toSql() {
15
15
  const { driver } = this;
@@ -31,8 +31,10 @@ export default class VelociousDatabaseDriversPgsqlStructureSql {
31
31
  return 0;
32
32
  });
33
33
  for (const row of sortedRows) {
34
- const tableName = row.table_name || row.TABLE_NAME;
35
- const tableType = row.table_type || row.TABLE_TYPE;
34
+ const tableNameValue = row.table_name || row.TABLE_NAME;
35
+ const tableTypeValue = row.table_type || row.TABLE_TYPE;
36
+ const tableName = tableNameValue ? String(tableNameValue) : "";
37
+ const tableType = tableTypeValue ? String(tableTypeValue) : "";
36
38
  if (!tableName || !tableType)
37
39
  continue;
38
40
  if (tableType == "BASE TABLE") {
@@ -45,7 +47,7 @@ export default class VelociousDatabaseDriversPgsqlStructureSql {
45
47
  .map((primaryKeyRow) => primaryKeyRow.column_name || primaryKeyRow.COLUMN_NAME)
46
48
  .filter((column) => Boolean(column));
47
49
  if (primaryKeyColumns.length > 0) {
48
- columnSql.push(`PRIMARY KEY (${primaryKeyColumns.map((name) => driver.quoteColumn(name)).join(", ")})`);
50
+ columnSql.push(`PRIMARY KEY (${primaryKeyColumns.map((name) => driver.quoteColumn(String(name))).join(", ")})`);
49
51
  }
50
52
  if (columnSql.length == 0)
51
53
  continue;
@@ -64,19 +66,24 @@ export default class VelociousDatabaseDriversPgsqlStructureSql {
64
66
  return `${statements.join("\n\n")}\n`;
65
67
  }
66
68
  /**
67
- * @param {Record<string, any>} column
68
- * @returns {string | null} - Result.
69
+ * @param {Record<string, unknown>} column - Column.
70
+ * @returns {string | null} - The column definition.
69
71
  */
70
72
  _columnDefinition(column) {
71
73
  const { driver } = this;
72
- const columnName = column.column_name || column.COLUMN_NAME;
73
- const dataType = column.data_type || column.DATA_TYPE;
74
+ const columnNameValue = column.column_name || column.COLUMN_NAME;
75
+ const dataTypeValue = column.data_type || column.DATA_TYPE;
76
+ const columnName = columnNameValue ? String(columnNameValue) : "";
77
+ const dataType = dataTypeValue ? String(dataTypeValue) : "";
74
78
  if (!columnName || !dataType)
75
79
  return null;
76
80
  let typeSql = dataType;
77
- const charLength = column.character_maximum_length || column.CHARACTER_MAXIMUM_LENGTH;
78
- const numericPrecision = column.numeric_precision || column.NUMERIC_PRECISION;
79
- const numericScale = column.numeric_scale || column.NUMERIC_SCALE;
81
+ const charLengthValue = column.character_maximum_length || column.CHARACTER_MAXIMUM_LENGTH;
82
+ const numericPrecisionValue = column.numeric_precision || column.NUMERIC_PRECISION;
83
+ const numericScaleValue = column.numeric_scale || column.NUMERIC_SCALE;
84
+ const charLength = charLengthValue === undefined || charLengthValue === null ? null : Number(charLengthValue);
85
+ const numericPrecision = numericPrecisionValue === undefined || numericPrecisionValue === null ? null : Number(numericPrecisionValue);
86
+ const numericScale = numericScaleValue === undefined || numericScaleValue === null ? null : Number(numericScaleValue);
80
87
  if (dataType == "character varying" && charLength) {
81
88
  typeSql = `varchar(${charLength})`;
82
89
  }
@@ -101,4 +108,4 @@ export default class VelociousDatabaseDriversPgsqlStructureSql {
101
108
  return parts.join(" ");
102
109
  }
103
110
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlLXNxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kcml2ZXJzL3Bnc3FsL3N0cnVjdHVyZS1zcWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDJCQUEyQixDQUFBO0FBRS9ELE1BQU0sQ0FBQyxPQUFPLE9BQU8seUNBQXlDO0lBQzVEOzs7T0FHRztJQUNILFlBQVksRUFBQyxNQUFNLEVBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLEtBQUs7UUFDVCxNQUFNLEVBQUMsTUFBTSxFQUFDLEdBQUcsSUFBSSxDQUFBO1FBQ3JCLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyw0SEFBNEgsQ0FBQyxDQUFBO1FBQzdKLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUVyQixNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO1lBQy9DLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBQ3hFLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBRXhFLElBQUksVUFBVSxHQUFHLFVBQVU7Z0JBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtZQUN0QyxJQUFJLFVBQVUsR0FBRyxVQUFVO2dCQUFFLE9BQU8sQ0FBQyxDQUFBO1lBRXJDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFD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QUFJLFFBQVEsSUFBSSxTQUFTLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyRCxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNqQixPQUFPLEdBQUcsV0FBVyxnQkFBZ0IsS0FBSyxZQUFZLEdBQUcsQ0FBQTtZQUMzRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxHQUFHLFdBQVcsZ0JBQWdCLEdBQUcsQ0FBQTtZQUMxQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDOUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFBO1FBRW5FLElBQUksWUFBWTtZQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxZQUFZLEVBQUUsQ0FBQyxDQUFBO1FBRXZELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQTtRQUUzRCxJQUFJLFVBQVUsSUFBSSxJQUFJO1lBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUU5QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDeEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCB7bm9ybWFsaXplU3FsU3RhdGVtZW50fSBmcm9tIFwiLi4vc3RydWN0dXJlLXNxbC91dGlscy5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlRHJpdmVyc1Bnc3FsU3RydWN0dXJlU3FsIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5kZWZhdWx0fSBhcmdzLmRyaXZlclxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2RyaXZlcn0pIHtcbiAgICB0aGlzLmRyaXZlciA9IGRyaXZlclxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZyB8IG51bGw+fSAtIFJlc3VsdC5cbiAgICovXG4gIGFzeW5jIHRvU3FsKCkge1xuICAgIGNvbnN0IHtkcml2ZXJ9ID0gdGhpc1xuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCBkcml2ZXIucXVlcnkoXCJTRUxFQ1QgdGFibGVfbmFtZSwgdGFibGVfdHlwZSBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgV0hFUkUgdGFibGVfc2NoZW1hID0gJ3B1YmxpYycgT1JERVIgQlkgdGFibGVfdHlwZSwgdGFibGVfbmFtZVwiKVxuICAgIGNvbnN0IHN0YXRlbWVudHMgPSBbXVxuXG4gICAgY29uc3Qgc29ydGVkUm93cyA9IFsuLi5yb3dzXS5zb3J0KChyb3dBLCByb3dCKSA9PiB7XG4gICAgICBjb25zdCB0YWJsZVR5cGVBID0gKHJvd0EudGFibGVfdHlwZSB8fCByb3dBLlRBQkxFX1RZUEUgfHwgXCJcIikudG9TdHJpbmcoKVxuICAgICAgY29uc3QgdGFibGVUeXBlQiA9IChyb3dCLnRhYmxlX3R5cGUgfHwgcm93Qi5UQUJMRV9UWVBFIHx8IFwiXCIpLnRvU3RyaW5nKClcblxuICAgICAgaWYgKHRhYmxlVHlwZUEgPCB0YWJsZVR5cGVCKSByZXR1cm4gLTFcbiAgICAgIGlmICh0YWJsZVR5cGVBID4gdGFibGVUeXBlQikgcmV0dXJuIDFcblxuICAgICAgY29uc3QgdGFibGVOYW1lQSA9IChyb3dBLnRhYmxlX25hbWUgfHwgcm93QS5UQUJMRV9OQU1FIHx8IFwiXCIpLnRvU3RyaW5nKClcbiAgICAgIGNvbnN0IHRhYmxlTmFtZUIgPSAocm93Qi50YWJsZV9uYW1lIHx8IHJvd0IuVEFCTEVfTkFNRSB8fCBcIlwiKS50b1N0cmluZygpXG5cbiAgICAgIGlmICh0YWJsZU5hbWVBIDwgdGFibGVOYW1lQikgcmV0dXJuIC0xXG4gICAgICBpZiAodGFibGVOYW1lQSA+IHRhYmxlTmFtZUIpIHJldHVybiAxXG5cbiAgICAgIHJldHVybiAwXG4gICAgfSlcblxuICAgIGZvciAoY29uc3Qgcm93IG9mIHNvcnRlZFJvd3MpIHtcbiAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IHJvdy50YWJsZV9uYW1lIHx8IHJvdy5UQUJMRV9OQU1FXG4gICAgICBjb25zdCB0YWJsZVR5cGUgPSByb3cudGFibGVfdHlwZSB8fCByb3cuVEFCTEVfVFlQRVxuXG4gICAgICBpZiAoIXRhYmxlTmFtZSB8fCAhdGFibGVUeXBlKSBjb250aW51ZVxuXG4gICAgICBpZiAodGFibGVUeXBlID09IFwiQkFTRSBUQUJMRVwiKSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSBhd2FpdCBkcml2ZXIucXVlcnkoYFNFTEVDVCBjb2x1bW5fbmFtZSwgZGF0YV90eXBlLCBpc19udWxsYWJsZSwgY29sdW1uX2RlZmF1bHQsIGNoYXJhY3Rlcl9tYXhpbXVtX2xlbmd0aCwgbnVtZXJpY19wcmVjaXNpb24sIG51bWVyaWNfc2NhbGUgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSB0YWJsZV9zY2hlbWEgPSAncHVibGljJyBBTkQgdGFibGVfbmFtZSA9ICR7ZHJpdmVyLnF1b3RlKHRhYmxlTmFtZSl9IE9SREVSIEJZIG9yZGluYWxfcG9zaXRpb25gKVxuICAgICAgICBjb25zdCBwcmltYXJ5S2V5cyA9IGF3YWl0IGRyaXZlci5xdWVyeShgU0VMRUNUIGtjdS5jb2x1bW5fbmFtZSBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZV9jb25zdHJhaW50cyB0YyBKT0lOIGluZm9ybWF0aW9uX3NjaGVtYS5rZXlfY29sdW1uX3VzYWdlIGtjdSBPTiB0Yy5jb25zdHJhaW50X25hbWUgPSBrY3UuY29uc3RyYWludF9uYW1lIEFORCB0Yy50YWJsZV9zY2hlbWEgPSBrY3UudGFibGVfc2NoZW1hIFdIRVJFIHRjLmNvbnN0cmFpbnRfdHlwZSA9ICdQUklNQVJZIEtFWScgQU5EIHRjLnRhYmxlX3NjaGVtYSA9ICdwdWJsaWMnIEFORCB0Yy50YWJsZV9uYW1lID0gJHtkcml2ZXIucXVvdGUodGFibGVOYW1lKX0gT1JERVIgQlkga2N1Lm9yZGluYWxfcG9zaXRpb25gKVxuICAgICAgICBjb25zdCBjb2x1bW5TcWwgPSBjb2x1bW5zXG4gICAgICAgICAgLm1hcCgoY29sdW1uKSA9PiB0aGlzLl9jb2x1bW5EZWZpbml0aW9uKGNvbHVtbikpXG4gICAgICAgICAgLmZpbHRlcigoY29sdW1uKSA9PiBCb29sZWFuKGNvbHVtbikpXG4gICAgICAgIGNvbnN0IHByaW1hcnlLZXlDb2x1bW5zID0gcHJpbWFyeUtleXNcbiAgICAgICAgICAubWFwKChwcmltYXJ5S2V5Um93KSA9PiBwcmltYXJ5S2V5Um93LmNvbHVtbl9uYW1lIHx8IHByaW1hcnlLZXlSb3cuQ09MVU1OX05BTUUpXG4gICAgICAgICAgLmZpbHRlcigoY29sdW1uKSA9PiBCb29sZWFuKGNvbHVtbikpXG5cbiAgICAgICAgaWYgKHByaW1hcnlLZXlDb2x1bW5zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb2x1bW5TcWwucHVzaChgUFJJTUFSWSBLRVkgKCR7cHJpbWFyeUtleUNvbHVtbnMubWFwKChuYW1lKSA9PiBkcml2ZXIucXVvdGVDb2x1bW4obmFtZSkpLmpvaW4oXCIsIFwiKX0pYClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2x1bW5TcWwubGVuZ3RoID09IDApIGNvbnRpbnVlXG5cbiAgICAgICAgc3RhdGVtZW50cy5wdXNoKG5vcm1hbGl6ZVNxbFN0YXRlbWVudChgQ1JFQVRFIFRBQkxFICR7ZHJpdmVyLnF1b3RlVGFibGUodGFibGVOYW1lKX0gKCR7Y29sdW1uU3FsLmpvaW4oXCIsIFwiKX0pYCkpXG4gICAgICB9IGVsc2UgaWYgKHRhYmxlVHlwZSA9PSBcIlZJRVdcIikge1xuICAgICAgICBjb25zdCB2aWV3Um93cyA9IGF3YWl0IGRyaXZlci5xdWVyeShgU0VMRUNUIHBnX2dldF92aWV3ZGVmKCR7ZHJpdmVyLnF1b3RlVGFibGUodGFibGVOYW1lKX06OnJlZ2NsYXNzLCB0cnVlKSBBUyB2aWV3ZGVmYClcbiAgICAgICAgY29uc3Qgdmlld0RlZiA9IHZpZXdSb3dzPy5bMF0/LnZpZXdkZWYgfHwgdmlld1Jvd3M/LlswXT8uVklFV0RFRlxuXG4gICAgICAgIGlmICghdmlld0RlZikgY29udGludWVcblxuICAgICAgICBzdGF0ZW1lbnRzLnB1c2gobm9ybWFsaXplU3FsU3RhdGVtZW50KGBDUkVBVEUgVklFVyAke2RyaXZlci5xdW90ZVRhYmxlKHRhYmxlTmFtZSl9IEFTICR7dmlld0RlZn1gKSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RhdGVtZW50cy5sZW5ndGggPT0gMCkgcmV0dXJuIG51bGxcblxuICAgIHJldHVybiBgJHtzdGF0ZW1lbnRzLmpvaW4oXCJcXG5cXG5cIil9XFxuYFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gY29sdW1uXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCBudWxsfSAtIFJlc3VsdC5cbiAgICovXG4gIF9jb2x1bW5EZWZpbml0aW9uKGNvbHVtbikge1xuICAgIGNvbnN0IHtkcml2ZXJ9ID0gdGhpc1xuICAgIGNvbnN0IGNvbHVtbk5hbWUgPSBjb2x1bW4uY29sdW1uX25hbWUgfHwgY29sdW1uLkNPTFVNTl9OQU1FXG4gICAgY29uc3QgZGF0YVR5cGUgPSBjb2x1bW4uZGF0YV90eXBlIHx8IGNvbHVtbi5EQVRBX1RZUEVcblxuICAgIGlmICghY29sdW1uTmFtZSB8fCAhZGF0YVR5cGUpIHJldHVybiBudWxsXG5cbiAgICBsZXQgdHlwZVNxbCA9IGRhdGFUeXBlXG4gICAgY29uc3QgY2hhckxlbmd0aCA9IGNvbHVtbi5jaGFyYWN0ZXJfbWF4aW11bV9sZW5ndGggfHwgY29sdW1uLkNIQVJBQ1RFUl9NQVhJTVVNX0xFTkdUSFxuICAgIGNvbnN0IG51bWVyaWNQcmVjaXNpb24gPSBjb2x1bW4ubnVtZXJpY19wcmVjaXNpb24gfHwgY29sdW1uLk5VTUVSSUNfUFJFQ0lTSU9OXG4gICAgY29uc3QgbnVtZXJpY1NjYWxlID0gY29sdW1uLm51bWVyaWNfc2NhbGUgfHwgY29sdW1uLk5VTUVSSUNfU0NBTEVcblxuICAgIGlmIChkYXRhVHlwZSA9PSBcImNoYXJhY3RlciB2YXJ5aW5nXCIgJiYgY2hhckxlbmd0aCkge1xuICAgICAgdHlwZVNxbCA9IGB2YXJjaGFyKCR7Y2hhckxlbmd0aH0pYFxuICAgIH0gZWxzZSBpZiAoZGF0YVR5cGUgPT0gXCJjaGFyYWN0ZXJcIiAmJiBjaGFyTGVuZ3RoKSB7XG4gICAgICB0eXBlU3FsID0gYGNoYXIoJHtjaGFyTGVuZ3RofSlgXG4gICAgfSBlbHNlIGlmIChkYXRhVHlwZSA9PSBcIm51bWVyaWNcIiAmJiBudW1lcmljUHJlY2lzaW9uKSB7XG4gICAgICBpZiAobnVtZXJpY1NjYWxlKSB7XG4gICAgICAgIHR5cGVTcWwgPSBgbnVtZXJpYygke251bWVyaWNQcmVjaXNpb259LCAke251bWVyaWNTY2FsZX0pYFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHlwZVNxbCA9IGBudW1lcmljKCR7bnVtZXJpY1ByZWNpc2lvbn0pYFxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBhcnRzID0gW2Ake2RyaXZlci5xdW90ZUNvbHVtbihjb2x1bW5OYW1lKX0gJHt0eXBlU3FsfWBdXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID0gY29sdW1uLmNvbHVtbl9kZWZhdWx0IHx8IGNvbHVtbi5DT0xVTU5fREVGQVVMVFxuXG4gICAgaWYgKGRlZmF1bHRWYWx1ZSkgcGFydHMucHVzaChgREVGQVVMVCAke2RlZmF1bHRWYWx1ZX1gKVxuXG4gICAgY29uc3QgaXNOdWxsYWJsZSA9IGNvbHVtbi5pc19udWxsYWJsZSB8fCBjb2x1bW4uSVNfTlVMTEFCTEVcblxuICAgIGlmIChpc051bGxhYmxlID09IFwiTk9cIikgcGFydHMucHVzaChcIk5PVCBOVUxMXCIpXG5cbiAgICByZXR1cm4gcGFydHMuam9pbihcIiBcIilcbiAgfVxufVxuIl19
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlLXNxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kcml2ZXJzL3Bnc3FsL3N0cnVjdHVyZS1zcWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDJCQUEyQixDQUFBO0FBRS9ELE1BQU0sQ0FBQyxPQUFPLE9BQU8seUNBQXlDO0lBQzVEOzs7T0FHRztJQUNILFlBQVksRUFBQyxNQUFNLEVBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLEtBQUs7UUFDVCxNQUFNLEVBQUMsTUFBTSxFQUFDLEdBQUcsSUFBSSxDQUFBO1FBQ3JCLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyw0SEFBNEgsQ0FBQyxDQUFBO1FBQzdKLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUVyQixNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO1lBQy9DLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBQ3hFLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBRXhFLElBQUksVUFBVSxHQUFHLFVBQVU7Z0JBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtZQUN0QyxJQUFJLFVBQVUsR0FBRyxVQUFVO2dCQUFFLE9BQU8sQ0FBQyxDQUFBO1lBRXJDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFD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QUMxQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDOUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFBO1FBRW5FLElBQUksWUFBWTtZQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxZQUFZLEVBQUUsQ0FBQyxDQUFBO1FBRXZELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQTtRQUUzRCxJQUFJLFVBQVUsSUFBSSxJQUFJO1lBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUU5QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDeEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCB7bm9ybWFsaXplU3FsU3RhdGVtZW50fSBmcm9tIFwiLi4vc3RydWN0dXJlLXNxbC91dGlscy5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlRHJpdmVyc1Bnc3FsU3RydWN0dXJlU3FsIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5kZWZhdWx0fSBhcmdzLmRyaXZlciAtIERhdGFiYXNlIGRyaXZlciBpbnN0YW5jZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtkcml2ZXJ9KSB7XG4gICAgdGhpcy5kcml2ZXIgPSBkcml2ZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmcgfCBudWxsPn0gLSBSZXNvbHZlcyB3aXRoIFNRTCBzdHJpbmcuXG4gICAqL1xuICBhc3luYyB0b1NxbCgpIHtcbiAgICBjb25zdCB7ZHJpdmVyfSA9IHRoaXNcbiAgICBjb25zdCByb3dzID0gYXdhaXQgZHJpdmVyLnF1ZXJ5KFwiU0VMRUNUIHRhYmxlX25hbWUsIHRhYmxlX3R5cGUgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzIFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdwdWJsaWMnIE9SREVSIEJZIHRhYmxlX3R5cGUsIHRhYmxlX25hbWVcIilcbiAgICBjb25zdCBzdGF0ZW1lbnRzID0gW11cblxuICAgIGNvbnN0IHNvcnRlZFJvd3MgPSBbLi4ucm93c10uc29ydCgocm93QSwgcm93QikgPT4ge1xuICAgICAgY29uc3QgdGFibGVUeXBlQSA9IChyb3dBLnRhYmxlX3R5cGUgfHwgcm93QS5UQUJMRV9UWVBFIHx8IFwiXCIpLnRvU3RyaW5nKClcbiAgICAgIGNvbnN0IHRhYmxlVHlwZUIgPSAocm93Qi50YWJsZV90eXBlIHx8IHJvd0IuVEFCTEVfVFlQRSB8fCBcIlwiKS50b1N0cmluZygpXG5cbiAgICAgIGlmICh0YWJsZVR5cGVBIDwgdGFibGVUeXBlQikgcmV0dXJuIC0xXG4gICAgICBpZiAodGFibGVUeXBlQSA+IHRhYmxlVHlwZUIpIHJldHVybiAxXG5cbiAgICAgIGNvbnN0IHRhYmxlTmFtZUEgPSAocm93QS50YWJsZV9uYW1lIHx8IHJvd0EuVEFCTEVfTkFNRSB8fCBcIlwiKS50b1N0cmluZygpXG4gICAgICBjb25zdCB0YWJsZU5hbWVCID0gKHJvd0IudGFibGVfbmFtZSB8fCByb3dCLlRBQkxFX05BTUUgfHwgXCJcIikudG9TdHJpbmcoKVxuXG4gICAgICBpZiAodGFibGVOYW1lQSA8IHRhYmxlTmFtZUIpIHJldHVybiAtMVxuICAgICAgaWYgKHRhYmxlTmFtZUEgPiB0YWJsZU5hbWVCKSByZXR1cm4gMVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0pXG5cbiAgICBmb3IgKGNvbnN0IHJvdyBvZiBzb3J0ZWRSb3dzKSB7XG4gICAgICBjb25zdCB0YWJsZU5hbWVWYWx1ZSA9IHJvdy50YWJsZV9uYW1lIHx8IHJvdy5UQUJMRV9OQU1FXG4gICAgICBjb25zdCB0YWJsZVR5cGVWYWx1ZSA9IHJvdy50YWJsZV90eXBlIHx8IHJvdy5UQUJMRV9UWVBFXG4gICAgICBjb25zdCB0YWJsZU5hbWUgPSB0YWJsZU5hbWVWYWx1ZSA/IFN0cmluZyh0YWJsZU5hbWVWYWx1ZSkgOiBcIlwiXG4gICAgICBjb25zdCB0YWJsZVR5cGUgPSB0YWJsZVR5cGVWYWx1ZSA/IFN0cmluZyh0YWJsZVR5cGVWYWx1ZSkgOiBcIlwiXG5cbiAgICAgIGlmICghdGFibGVOYW1lIHx8ICF0YWJsZVR5cGUpIGNvbnRpbnVlXG5cbiAgICAgIGlmICh0YWJsZVR5cGUgPT0gXCJCQVNFIFRBQkxFXCIpIHtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IGF3YWl0IGRyaXZlci5xdWVyeShgU0VMRUNUIGNvbHVtbl9uYW1lLCBkYXRhX3R5cGUsIGlzX251bGxhYmxlLCBjb2x1bW5fZGVmYXVsdCwgY2hhcmFjdGVyX21heGltdW1fbGVuZ3RoLCBudW1lcmljX3ByZWNpc2lvbiwgbnVtZXJpY19zY2FsZSBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdwdWJsaWMnIEFORCB0YWJsZV9uYW1lID0gJHtkcml2ZXIucXVvdGUodGFibGVOYW1lKX0gT1JERVIgQlkgb3JkaW5hbF9wb3NpdGlvbmApXG4gICAgICAgIGNvbnN0IHByaW1hcnlLZXlzID0gYXdhaXQgZHJpdmVyLnF1ZXJ5KGBTRUxFQ1Qga2N1LmNvbHVtbl9uYW1lIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlX2NvbnN0cmFpbnRzIHRjIEpPSU4gaW5mb3JtYXRpb25fc2NoZW1hLmtleV9jb2x1bW5fdXNhZ2Uga2N1IE9OIHRjLmNvbnN0cmFpbnRfbmFtZSA9IGtjdS5jb25zdHJhaW50X25hbWUgQU5EIHRjLnRhYmxlX3NjaGVtYSA9IGtjdS50YWJsZV9zY2hlbWEgV0hFUkUgdGMuY29uc3RyYWludF90eXBlID0gJ1BSSU1BUlkgS0VZJyBBTkQgdGMudGFibGVfc2NoZW1hID0gJ3B1YmxpYycgQU5EIHRjLnRhYmxlX25hbWUgPSAke2RyaXZlci5xdW90ZSh0YWJsZU5hbWUpfSBPUkRFUiBCWSBrY3Uub3JkaW5hbF9wb3NpdGlvbmApXG4gICAgICAgIGNvbnN0IGNvbHVtblNxbCA9IGNvbHVtbnNcbiAgICAgICAgICAubWFwKChjb2x1bW4pID0+IHRoaXMuX2NvbHVtbkRlZmluaXRpb24oY29sdW1uKSlcbiAgICAgICAgICAuZmlsdGVyKChjb2x1bW4pID0+IEJvb2xlYW4oY29sdW1uKSlcbiAgICAgICAgY29uc3QgcHJpbWFyeUtleUNvbHVtbnMgPSBwcmltYXJ5S2V5c1xuICAgICAgICAgIC5tYXAoKHByaW1hcnlLZXlSb3cpID0+IHByaW1hcnlLZXlSb3cuY29sdW1uX25hbWUgfHwgcHJpbWFyeUtleVJvdy5DT0xVTU5fTkFNRSlcbiAgICAgICAgICAuZmlsdGVyKChjb2x1bW4pID0+IEJvb2xlYW4oY29sdW1uKSlcblxuICAgICAgICBpZiAocHJpbWFyeUtleUNvbHVtbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbHVtblNxbC5wdXNoKGBQUklNQVJZIEtFWSAoJHtwcmltYXJ5S2V5Q29sdW1ucy5tYXAoKG5hbWUpID0+IGRyaXZlci5xdW90ZUNvbHVtbihTdHJpbmcobmFtZSkpKS5qb2luKFwiLCBcIil9KWApXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29sdW1uU3FsLmxlbmd0aCA9PSAwKSBjb250aW51ZVxuXG4gICAgICAgIHN0YXRlbWVudHMucHVzaChub3JtYWxpemVTcWxTdGF0ZW1lbnQoYENSRUFURSBUQUJMRSAke2RyaXZlci5xdW90ZVRhYmxlKHRhYmxlTmFtZSl9ICgke2NvbHVtblNxbC5qb2luKFwiLCBcIil9KWApKVxuICAgICAgfSBlbHNlIGlmICh0YWJsZVR5cGUgPT0gXCJWSUVXXCIpIHtcbiAgICAgICAgY29uc3Qgdmlld1Jvd3MgPSBhd2FpdCBkcml2ZXIucXVlcnkoYFNFTEVDVCBwZ19nZXRfdmlld2RlZigke2RyaXZlci5xdW90ZVRhYmxlKHRhYmxlTmFtZSl9OjpyZWdjbGFzcywgdHJ1ZSkgQVMgdmlld2RlZmApXG4gICAgICAgIGNvbnN0IHZpZXdEZWYgPSB2aWV3Um93cz8uWzBdPy52aWV3ZGVmIHx8IHZpZXdSb3dzPy5bMF0/LlZJRVdERUZcblxuICAgICAgICBpZiAoIXZpZXdEZWYpIGNvbnRpbnVlXG5cbiAgICAgICAgc3RhdGVtZW50cy5wdXNoKG5vcm1hbGl6ZVNxbFN0YXRlbWVudChgQ1JFQVRFIFZJRVcgJHtkcml2ZXIucXVvdGVUYWJsZSh0YWJsZU5hbWUpfSBBUyAke3ZpZXdEZWZ9YCkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlbWVudHMubGVuZ3RoID09IDApIHJldHVybiBudWxsXG5cbiAgICByZXR1cm4gYCR7c3RhdGVtZW50cy5qb2luKFwiXFxuXFxuXCIpfVxcbmBcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSBjb2x1bW4gLSBDb2x1bW4uXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCBudWxsfSAtIFRoZSBjb2x1bW4gZGVmaW5pdGlvbi5cbiAgICovXG4gIF9jb2x1bW5EZWZpbml0aW9uKGNvbHVtbikge1xuICAgIGNvbnN0IHtkcml2ZXJ9ID0gdGhpc1xuICAgIGNvbnN0IGNvbHVtbk5hbWVWYWx1ZSA9IGNvbHVtbi5jb2x1bW5fbmFtZSB8fCBjb2x1bW4uQ09MVU1OX05BTUVcbiAgICBjb25zdCBkYXRhVHlwZVZhbHVlID0gY29sdW1uLmRhdGFfdHlwZSB8fCBjb2x1bW4uREFUQV9UWVBFXG4gICAgY29uc3QgY29sdW1uTmFtZSA9IGNvbHVtbk5hbWVWYWx1ZSA/IFN0cmluZyhjb2x1bW5OYW1lVmFsdWUpIDogXCJcIlxuICAgIGNvbnN0IGRhdGFUeXBlID0gZGF0YVR5cGVWYWx1ZSA/IFN0cmluZyhkYXRhVHlwZVZhbHVlKSA6IFwiXCJcblxuICAgIGlmICghY29sdW1uTmFtZSB8fCAhZGF0YVR5cGUpIHJldHVybiBudWxsXG5cbiAgICBsZXQgdHlwZVNxbCA9IGRhdGFUeXBlXG4gICAgY29uc3QgY2hhckxlbmd0aFZhbHVlID0gY29sdW1uLmNoYXJhY3Rlcl9tYXhpbXVtX2xlbmd0aCB8fCBjb2x1bW4uQ0hBUkFDVEVSX01BWElNVU1fTEVOR1RIXG4gICAgY29uc3QgbnVtZXJpY1ByZWNpc2lvblZhbHVlID0gY29sdW1uLm51bWVyaWNfcHJlY2lzaW9uIHx8IGNvbHVtbi5OVU1FUklDX1BSRUNJU0lPTlxuICAgIGNvbnN0IG51bWVyaWNTY2FsZVZhbHVlID0gY29sdW1uLm51bWVyaWNfc2NhbGUgfHwgY29sdW1uLk5VTUVSSUNfU0NBTEVcbiAgICBjb25zdCBjaGFyTGVuZ3RoID0gY2hhckxlbmd0aFZhbHVlID09PSB1bmRlZmluZWQgfHwgY2hhckxlbmd0aFZhbHVlID09PSBudWxsID8gbnVsbCA6IE51bWJlcihjaGFyTGVuZ3RoVmFsdWUpXG4gICAgY29uc3QgbnVtZXJpY1ByZWNpc2lvbiA9IG51bWVyaWNQcmVjaXNpb25WYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IG51bWVyaWNQcmVjaXNpb25WYWx1ZSA9PT0gbnVsbCA/IG51bGwgOiBOdW1iZXIobnVtZXJpY1ByZWNpc2lvblZhbHVlKVxuICAgIGNvbnN0IG51bWVyaWNTY2FsZSA9IG51bWVyaWNTY2FsZVZhbHVlID09PSB1bmRlZmluZWQgfHwgbnVtZXJpY1NjYWxlVmFsdWUgPT09IG51bGwgPyBudWxsIDogTnVtYmVyKG51bWVyaWNTY2FsZVZhbHVlKVxuXG4gICAgaWYgKGRhdGFUeXBlID09IFwiY2hhcmFjdGVyIHZhcnlpbmdcIiAmJiBjaGFyTGVuZ3RoKSB7XG4gICAgICB0eXBlU3FsID0gYHZhcmNoYXIoJHtjaGFyTGVuZ3RofSlgXG4gICAgfSBlbHNlIGlmIChkYXRhVHlwZSA9PSBcImNoYXJhY3RlclwiICYmIGNoYXJMZW5ndGgpIHtcbiAgICAgIHR5cGVTcWwgPSBgY2hhcigke2NoYXJMZW5ndGh9KWBcbiAgICB9IGVsc2UgaWYgKGRhdGFUeXBlID09IFwibnVtZXJpY1wiICYmIG51bWVyaWNQcmVjaXNpb24pIHtcbiAgICAgIGlmIChudW1lcmljU2NhbGUpIHtcbiAgICAgICAgdHlwZVNxbCA9IGBudW1lcmljKCR7bnVtZXJpY1ByZWNpc2lvbn0sICR7bnVtZXJpY1NjYWxlfSlgXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eXBlU3FsID0gYG51bWVyaWMoJHtudW1lcmljUHJlY2lzaW9ufSlgXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGFydHMgPSBbYCR7ZHJpdmVyLnF1b3RlQ29sdW1uKGNvbHVtbk5hbWUpfSAke3R5cGVTcWx9YF1cbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBjb2x1bW4uY29sdW1uX2RlZmF1bHQgfHwgY29sdW1uLkNPTFVNTl9ERUZBVUxUXG5cbiAgICBpZiAoZGVmYXVsdFZhbHVlKSBwYXJ0cy5wdXNoKGBERUZBVUxUICR7ZGVmYXVsdFZhbHVlfWApXG5cbiAgICBjb25zdCBpc051bGxhYmxlID0gY29sdW1uLmlzX251bGxhYmxlIHx8IGNvbHVtbi5JU19OVUxMQUJMRVxuXG4gICAgaWYgKGlzTnVsbGFibGUgPT0gXCJOT1wiKSBwYXJ0cy5wdXNoKFwiTk9UIE5VTExcIilcblxuICAgIHJldHVybiBwYXJ0cy5qb2luKFwiIFwiKVxuICB9XG59XG4iXX0=
@@ -1,13 +1,12 @@
1
1
  export default class VelociousDatabaseDriversPgsqlTable extends BaseTable {
2
2
  /**
3
- * @param {import("../base.js").default} driver
4
- * @param {Record<string, any>} data
3
+ * @param {import("../base.js").default} driver - Database driver instance.
4
+ * @param {Record<string, string>} data - Data payload.
5
5
  */
6
- constructor(driver: import("../base.js").default, data: Record<string, any>);
7
- data: Record<string, any>;
6
+ constructor(driver: import("../base.js").default, data: Record<string, string>);
7
+ data: Record<string, string>;
8
8
  getColumns(): Promise<Column[]>;
9
9
  getForeignKeys(): Promise<ForeignKey[]>;
10
- getName(): any;
11
10
  }
12
11
  import BaseTable from "../base-table.js";
13
12
  import Column from "./column.js";
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/table.js"],"names":[],"mappings":"AAOA;IACE;;;OAGG;IACH,oBAHW,OAAO,YAAY,EAAE,OAAO,QAC5B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAM7B;IAFC,0BAAgB;IAIlB,gCAkCC;IAED,wCAkCC;IA+BD,eAEC;CACF;sBAxHqB,kBAAkB;mBACrB,aAAa;uBAET,kBAAkB"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/table.js"],"names":[],"mappings":"AAOA;IACE;;;OAGG;IACH,oBAHW,OAAO,YAAY,EAAE,OAAO,QAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAMhC;IAFC,6BAAgB;IAIlB,gCAkCC;IAED,wCAkCC;CAmCF;sBAzHqB,kBAAkB;mBACrB,aAAa;uBAET,kBAAkB"}