@dbml/cli 7.0.0-alpha.1 → 7.1.0-alpha.0

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 (302) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/__tests__/cli.test.ts +8 -4
  4. package/__tests__/db2dbml/mssql/expect-out-files/schema.dbml +0 -0
  5. package/__tests__/db2dbml/mssql/options.json +0 -0
  6. package/__tests__/db2dbml/mssql/schema.sql +0 -0
  7. package/__tests__/db2dbml/mssql/stdout.txt +0 -0
  8. package/__tests__/db2dbml/mysql/expect-out-files/schema.dbml +0 -0
  9. package/__tests__/db2dbml/mysql/options.json +0 -0
  10. package/__tests__/db2dbml/mysql/schema.sql +0 -0
  11. package/__tests__/db2dbml/mysql/stdout.txt +0 -0
  12. package/__tests__/db2dbml/oracle/expect-out-files/schema.dbml +0 -0
  13. package/__tests__/db2dbml/oracle/options.json +0 -0
  14. package/__tests__/db2dbml/oracle/schema.sql +0 -0
  15. package/__tests__/db2dbml/oracle/stdout.txt +0 -0
  16. package/__tests__/db2dbml/postgres/expect-out-files/schema.dbml +0 -0
  17. package/__tests__/db2dbml/postgres/options.json +0 -0
  18. package/__tests__/db2dbml/postgres/schema.sql +0 -0
  19. package/__tests__/db2dbml/postgres/stdout.txt +0 -0
  20. package/__tests__/db2dbml_bin.js +3 -1
  21. package/__tests__/dbml2sql/filename --mysql --out-file/expect-out-files/schema.sql +0 -0
  22. package/__tests__/dbml2sql/filename --mysql --out-file/in-files/schema.dbml +0 -0
  23. package/__tests__/dbml2sql/filename --mysql --out-file/options.json +0 -0
  24. package/__tests__/dbml2sql/filename --mysql --out-file/stdout.txt +0 -0
  25. package/__tests__/dbml2sql/filename --mysql stdout/in-files/schema.dbml +0 -0
  26. package/__tests__/dbml2sql/filename --mysql stdout/options.json +0 -0
  27. package/__tests__/dbml2sql/filename --mysql stdout/stdout.txt +0 -0
  28. package/__tests__/dbml2sql/filename --oracle --out-file/expect-out-files/schema.sql +0 -0
  29. package/__tests__/dbml2sql/filename --oracle --out-file/in-files/schema.dbml +0 -0
  30. package/__tests__/dbml2sql/filename --oracle --out-file/options.json +0 -0
  31. package/__tests__/dbml2sql/filename --oracle --out-file/stdout.txt +0 -0
  32. package/__tests__/dbml2sql/filename --oracle stdout/in-files/schema.dbml +0 -0
  33. package/__tests__/dbml2sql/filename --oracle stdout/options.json +0 -0
  34. package/__tests__/dbml2sql/filename --oracle stdout/stdout.txt +0 -0
  35. package/__tests__/dbml2sql/filename --out-file/expect-out-files/schema.sql +0 -0
  36. package/__tests__/dbml2sql/filename --out-file/in-files/schema.dbml +0 -0
  37. package/__tests__/dbml2sql/filename --out-file/options.json +0 -0
  38. package/__tests__/dbml2sql/filename --out-file/stdout.txt +0 -0
  39. package/__tests__/dbml2sql/filename --postgres --out-file/expect-out-files/schema.sql +0 -0
  40. package/__tests__/dbml2sql/filename --postgres --out-file/in-files/schema.dbml +0 -0
  41. package/__tests__/dbml2sql/filename --postgres --out-file/options.json +0 -0
  42. package/__tests__/dbml2sql/filename --postgres --out-file/stdout.txt +0 -0
  43. package/__tests__/dbml2sql/filename --postgres stdout/in-files/schema.dbml +0 -0
  44. package/__tests__/dbml2sql/filename --postgres stdout/options.json +0 -0
  45. package/__tests__/dbml2sql/filename --postgres stdout/stdout.txt +0 -0
  46. package/__tests__/dbml2sql/filename stdout/in-files/schema.dbml +0 -0
  47. package/__tests__/dbml2sql/filename stdout/options.json +0 -0
  48. package/__tests__/dbml2sql/filename stdout/stdout.txt +0 -0
  49. package/__tests__/dbml2sql/filenames --mysql --out-file/expect-out-files/schema.sql +0 -0
  50. package/__tests__/dbml2sql/filenames --mysql --out-file/in-files/business.dbml +0 -0
  51. package/__tests__/dbml2sql/filenames --mysql --out-file/in-files/customer.dbml +0 -0
  52. package/__tests__/dbml2sql/filenames --mysql --out-file/in-files/inventory.dbml +0 -0
  53. package/__tests__/dbml2sql/filenames --mysql --out-file/options.json +0 -0
  54. package/__tests__/dbml2sql/filenames --mysql --out-file/stdout.txt +0 -0
  55. package/__tests__/dbml2sql/filenames --mysql stdout/in-files/business.dbml +0 -0
  56. package/__tests__/dbml2sql/filenames --mysql stdout/in-files/customer.dbml +0 -0
  57. package/__tests__/dbml2sql/filenames --mysql stdout/in-files/inventory.dbml +0 -0
  58. package/__tests__/dbml2sql/filenames --mysql stdout/options.json +0 -0
  59. package/__tests__/dbml2sql/filenames --mysql stdout/stdout.txt +0 -0
  60. package/__tests__/dbml2sql/filenames --oracle --out-file/expect-out-files/schema.sql +0 -0
  61. package/__tests__/dbml2sql/filenames --oracle --out-file/in-files/business.dbml +0 -0
  62. package/__tests__/dbml2sql/filenames --oracle --out-file/in-files/customer.dbml +0 -0
  63. package/__tests__/dbml2sql/filenames --oracle --out-file/in-files/inventory.dbml +0 -0
  64. package/__tests__/dbml2sql/filenames --oracle --out-file/options.json +0 -0
  65. package/__tests__/dbml2sql/filenames --oracle --out-file/stdout.txt +0 -0
  66. package/__tests__/dbml2sql/filenames --oracle stdout/in-files/business.dbml +0 -0
  67. package/__tests__/dbml2sql/filenames --oracle stdout/in-files/customer.dbml +0 -0
  68. package/__tests__/dbml2sql/filenames --oracle stdout/in-files/inventory.dbml +0 -0
  69. package/__tests__/dbml2sql/filenames --oracle stdout/options.json +0 -0
  70. package/__tests__/dbml2sql/filenames --oracle stdout/stdout.txt +0 -0
  71. package/__tests__/dbml2sql/filenames --out-file/expect-out-files/schema.sql +0 -0
  72. package/__tests__/dbml2sql/filenames --out-file/in-files/business.dbml +0 -0
  73. package/__tests__/dbml2sql/filenames --out-file/in-files/customer.dbml +0 -0
  74. package/__tests__/dbml2sql/filenames --out-file/in-files/inventory.dbml +0 -0
  75. package/__tests__/dbml2sql/filenames --out-file/options.json +0 -0
  76. package/__tests__/dbml2sql/filenames --out-file/stdout.txt +0 -0
  77. package/__tests__/dbml2sql/filenames --postgres --out-file/expect-out-files/schema.sql +0 -0
  78. package/__tests__/dbml2sql/filenames --postgres --out-file/in-files/business.dbml +0 -0
  79. package/__tests__/dbml2sql/filenames --postgres --out-file/in-files/customer.dbml +0 -0
  80. package/__tests__/dbml2sql/filenames --postgres --out-file/in-files/inventory.dbml +0 -0
  81. package/__tests__/dbml2sql/filenames --postgres --out-file/options.json +0 -0
  82. package/__tests__/dbml2sql/filenames --postgres --out-file/stdout.txt +0 -0
  83. package/__tests__/dbml2sql/filenames --postgres stdout/in-files/business.dbml +0 -0
  84. package/__tests__/dbml2sql/filenames --postgres stdout/in-files/customer.dbml +0 -0
  85. package/__tests__/dbml2sql/filenames --postgres stdout/in-files/inventory.dbml +0 -0
  86. package/__tests__/dbml2sql/filenames --postgres stdout/options.json +0 -0
  87. package/__tests__/dbml2sql/filenames --postgres stdout/stdout.txt +0 -0
  88. package/__tests__/dbml2sql/filenames stdout/in-files/business.dbml +0 -0
  89. package/__tests__/dbml2sql/filenames stdout/in-files/customer.dbml +0 -0
  90. package/__tests__/dbml2sql/filenames stdout/in-files/inventory.dbml +0 -0
  91. package/__tests__/dbml2sql/filenames stdout/options.json +0 -0
  92. package/__tests__/dbml2sql/filenames stdout/stdout.txt +0 -0
  93. package/__tests__/dbml2sql/multiple_schema_mssql/expect-out-files/multiple_schema.out.sql +0 -0
  94. package/__tests__/dbml2sql/multiple_schema_mssql/in-files/multiple_schema.in.dbml +0 -0
  95. package/__tests__/dbml2sql/multiple_schema_mssql/options.json +0 -0
  96. package/__tests__/dbml2sql/multiple_schema_mssql/stdout.txt +0 -0
  97. package/__tests__/dbml2sql/multiple_schema_mysql/expect-out-files/multiple_schema.out.sql +0 -0
  98. package/__tests__/dbml2sql/multiple_schema_mysql/in-files/multiple_schema.in.dbml +0 -0
  99. package/__tests__/dbml2sql/multiple_schema_mysql/options.json +0 -0
  100. package/__tests__/dbml2sql/multiple_schema_mysql/stdout.txt +0 -0
  101. package/__tests__/dbml2sql/multiple_schema_oracle/expect-out-files/multiple_schema.out.sql +0 -0
  102. package/__tests__/dbml2sql/multiple_schema_oracle/in-files/multiple_schema.in.dbml +0 -0
  103. package/__tests__/dbml2sql/multiple_schema_oracle/options.json +0 -0
  104. package/__tests__/dbml2sql/multiple_schema_oracle/stdout.txt +0 -0
  105. package/__tests__/dbml2sql/multiple_schema_pg/expect-out-files/multiple_schema.out.sql +0 -0
  106. package/__tests__/dbml2sql/multiple_schema_pg/in-files/multiple_schema.in.dbml +0 -0
  107. package/__tests__/dbml2sql/multiple_schema_pg/options.json +0 -0
  108. package/__tests__/dbml2sql/multiple_schema_pg/stdout.txt +0 -0
  109. package/__tests__/dbml2sql/syntax-error/in-files/ecommerce.dbml +0 -0
  110. package/__tests__/dbml2sql/syntax-error/options.json +0 -0
  111. package/__tests__/dbml2sql/syntax-error/stdout.txt +0 -0
  112. package/__tests__/dbml2sql_bin.js +3 -1
  113. package/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/in-files/schema.sql +0 -0
  114. package/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/options.json +0 -0
  115. package/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/stdout.txt +0 -0
  116. package/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/in-files/schema.sql +0 -0
  117. package/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/options.json +0 -0
  118. package/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/stdout.txt +0 -0
  119. package/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/in-files/schema.sql +0 -0
  120. package/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/options.json +0 -0
  121. package/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/stdout.txt +0 -0
  122. package/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/in-files/schema.sql +0 -0
  123. package/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/options.json +0 -0
  124. package/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/stdout.txt +0 -0
  125. package/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/in-files/schema.sql +0 -0
  126. package/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/options.json +0 -0
  127. package/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/stdout.txt +0 -0
  128. package/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/in-files/schema.sql +0 -0
  129. package/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/options.json +0 -0
  130. package/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/stdout.txt +0 -0
  131. package/__tests__/sql2dbml/filename --mssql --out-file/expect-out-files/schema.dbml +0 -0
  132. package/__tests__/sql2dbml/filename --mssql --out-file/in-files/schema.sql +0 -0
  133. package/__tests__/sql2dbml/filename --mssql --out-file/options.json +0 -0
  134. package/__tests__/sql2dbml/filename --mssql --out-file/stdout.txt +0 -0
  135. package/__tests__/sql2dbml/filename --mysql --out-file/expect-out-files/schema.dbml +0 -0
  136. package/__tests__/sql2dbml/filename --mysql --out-file/in-files/schema.sql +0 -0
  137. package/__tests__/sql2dbml/filename --mysql --out-file/options.json +0 -0
  138. package/__tests__/sql2dbml/filename --mysql --out-file/stdout.txt +0 -0
  139. package/__tests__/sql2dbml/filename --mysql stdout/in-files/schema.sql +0 -0
  140. package/__tests__/sql2dbml/filename --mysql stdout/options.json +0 -0
  141. package/__tests__/sql2dbml/filename --mysql stdout/stdout.txt +0 -0
  142. package/__tests__/sql2dbml/filename --oracle --out-file/expect-out-files/schema.dbml +0 -0
  143. package/__tests__/sql2dbml/filename --oracle --out-file/in-files/schema.sql +0 -0
  144. package/__tests__/sql2dbml/filename --oracle --out-file/options.json +0 -0
  145. package/__tests__/sql2dbml/filename --oracle --out-file/stdout.txt +0 -0
  146. package/__tests__/sql2dbml/filename --out-file/expect-out-files/schema.dbml +0 -0
  147. package/__tests__/sql2dbml/filename --out-file/in-files/schema.sql +0 -0
  148. package/__tests__/sql2dbml/filename --out-file/options.json +0 -0
  149. package/__tests__/sql2dbml/filename --out-file/stdout.txt +0 -0
  150. package/__tests__/sql2dbml/filename --postgres --out-file/expect-out-files/schema.dbml +0 -0
  151. package/__tests__/sql2dbml/filename --postgres --out-file/in-files/schema.sql +0 -0
  152. package/__tests__/sql2dbml/filename --postgres --out-file/options.json +0 -0
  153. package/__tests__/sql2dbml/filename --postgres --out-file/stdout.txt +0 -0
  154. package/__tests__/sql2dbml/filename --postgres stdout/in-files/schema.sql +0 -0
  155. package/__tests__/sql2dbml/filename --postgres stdout/options.json +0 -0
  156. package/__tests__/sql2dbml/filename --postgres stdout/stdout.txt +0 -0
  157. package/__tests__/sql2dbml/filename --snowflake stdout/in-files/schema.sql +0 -0
  158. package/__tests__/sql2dbml/filename --snowflake stdout/options.json +0 -0
  159. package/__tests__/sql2dbml/filename --snowflake stdout/stdout.txt +0 -0
  160. package/__tests__/sql2dbml/filename stdout/in-files/schema.sql +0 -0
  161. package/__tests__/sql2dbml/filename stdout/options.json +0 -0
  162. package/__tests__/sql2dbml/filename stdout/stdout.txt +0 -0
  163. package/__tests__/sql2dbml/filenames --mysql --out-file/expect-out-files/schema.dbml +0 -0
  164. package/__tests__/sql2dbml/filenames --mysql --out-file/in-files/business.sql +0 -0
  165. package/__tests__/sql2dbml/filenames --mysql --out-file/in-files/customer.sql +0 -0
  166. package/__tests__/sql2dbml/filenames --mysql --out-file/in-files/inventory.sql +0 -0
  167. package/__tests__/sql2dbml/filenames --mysql --out-file/options.json +0 -0
  168. package/__tests__/sql2dbml/filenames --mysql --out-file/stdout.txt +0 -0
  169. package/__tests__/sql2dbml/filenames --mysql stdout/in-files/business.sql +0 -0
  170. package/__tests__/sql2dbml/filenames --mysql stdout/in-files/customer.sql +0 -0
  171. package/__tests__/sql2dbml/filenames --mysql stdout/in-files/inventory.sql +0 -0
  172. package/__tests__/sql2dbml/filenames --mysql stdout/options.json +0 -0
  173. package/__tests__/sql2dbml/filenames --mysql stdout/stdout.txt +0 -0
  174. package/__tests__/sql2dbml/filenames --out-file/expect-out-files/schema.dbml +0 -0
  175. package/__tests__/sql2dbml/filenames --out-file/in-files/business.sql +0 -0
  176. package/__tests__/sql2dbml/filenames --out-file/in-files/customer.sql +0 -0
  177. package/__tests__/sql2dbml/filenames --out-file/in-files/inventory.sql +0 -0
  178. package/__tests__/sql2dbml/filenames --out-file/options.json +0 -0
  179. package/__tests__/sql2dbml/filenames --out-file/stdout.txt +0 -0
  180. package/__tests__/sql2dbml/filenames --postgres --out-file/expect-out-files/schema.dbml +0 -0
  181. package/__tests__/sql2dbml/filenames --postgres --out-file/in-files/business.sql +0 -0
  182. package/__tests__/sql2dbml/filenames --postgres --out-file/in-files/customer.sql +0 -0
  183. package/__tests__/sql2dbml/filenames --postgres --out-file/in-files/inventory.sql +0 -0
  184. package/__tests__/sql2dbml/filenames --postgres --out-file/options.json +0 -0
  185. package/__tests__/sql2dbml/filenames --postgres --out-file/stdout.txt +0 -0
  186. package/__tests__/sql2dbml/filenames --postgres stdout/in-files/business.sql +0 -0
  187. package/__tests__/sql2dbml/filenames --postgres stdout/in-files/customer.sql +0 -0
  188. package/__tests__/sql2dbml/filenames --postgres stdout/in-files/inventory.sql +0 -0
  189. package/__tests__/sql2dbml/filenames --postgres stdout/options.json +0 -0
  190. package/__tests__/sql2dbml/filenames --postgres stdout/stdout.txt +0 -0
  191. package/__tests__/sql2dbml/filenames stdout/in-files/business.sql +0 -0
  192. package/__tests__/sql2dbml/filenames stdout/in-files/customer.sql +0 -0
  193. package/__tests__/sql2dbml/filenames stdout/in-files/inventory.sql +0 -0
  194. package/__tests__/sql2dbml/filenames stdout/options.json +0 -0
  195. package/__tests__/sql2dbml/filenames stdout/stdout.txt +0 -0
  196. package/__tests__/sql2dbml/multiple_schema_mssql/expect-out-files/multiple_schema.out.dbml +0 -0
  197. package/__tests__/sql2dbml/multiple_schema_mssql/in-files/multiple_schema.in.sql +0 -0
  198. package/__tests__/sql2dbml/multiple_schema_mssql/options.json +0 -0
  199. package/__tests__/sql2dbml/multiple_schema_mssql/stdout.txt +0 -0
  200. package/__tests__/sql2dbml/multiple_schema_mysql/expect-out-files/multiple_schema.out.dbml +0 -0
  201. package/__tests__/sql2dbml/multiple_schema_mysql/in-files/multiple_schema.in.sql +0 -0
  202. package/__tests__/sql2dbml/multiple_schema_mysql/options.json +0 -0
  203. package/__tests__/sql2dbml/multiple_schema_mysql/stdout.txt +0 -0
  204. package/__tests__/sql2dbml/multiple_schema_pg/expect-out-files/multiple_schema.out.dbml +0 -0
  205. package/__tests__/sql2dbml/multiple_schema_pg/in-files/multiple_schema.in.sql +0 -0
  206. package/__tests__/sql2dbml/multiple_schema_pg/options.json +0 -0
  207. package/__tests__/sql2dbml/multiple_schema_pg/stdout.txt +0 -0
  208. package/__tests__/sql2dbml/syntax-error/in-files/business.sql +0 -0
  209. package/__tests__/sql2dbml/syntax-error/options.json +0 -0
  210. package/__tests__/sql2dbml/syntax-error/stdout.txt +0 -0
  211. package/__tests__/sql2dbml/syntax-error-duplicate-endpoints --mssql/in-files/schema.sql +0 -0
  212. package/__tests__/sql2dbml/syntax-error-duplicate-endpoints --mssql/options.json +0 -0
  213. package/__tests__/sql2dbml/syntax-error-duplicate-endpoints --mssql/stdout.txt +0 -0
  214. package/__tests__/sql2dbml/syntax-error-duplicate-endpoints --mysql/in-files/schema.sql +0 -0
  215. package/__tests__/sql2dbml/syntax-error-duplicate-endpoints --mysql/options.json +0 -0
  216. package/__tests__/sql2dbml/syntax-error-duplicate-endpoints --mysql/stdout.txt +0 -0
  217. package/__tests__/sql2dbml_bin.js +3 -1
  218. package/__tests__/testHelpers.ts +0 -0
  219. package/eslint.config.ts +46 -9
  220. package/lib/index.js +178 -179
  221. package/package.json +5 -4
  222. package/src/cli/{config.js → config.ts} +3 -1
  223. package/src/cli/{connector.js → connector.ts} +19 -10
  224. package/src/cli/{export.js → export.ts} +30 -15
  225. package/src/cli/{import.js → import.ts} +29 -15
  226. package/src/cli/{index.js → index.ts} +7 -7
  227. package/src/cli/outputPlugins/{outputConsolePlugin.js → outputConsolePlugin.ts} +1 -1
  228. package/src/cli/outputPlugins/{outputFilePlugin.js → outputFilePlugin.ts} +10 -3
  229. package/src/cli/{utils.js → utils.ts} +36 -13
  230. package/src/cli/validatePlugins/{validatePlugins.js → validatePlugins.ts} +2 -2
  231. package/src/errors/{domainError.js → domainError.ts} +3 -1
  232. package/src/errors/{index.js → index.ts} +0 -0
  233. package/src/errors/{syntaxError.js → syntaxError.ts} +15 -2
  234. package/src/helpers/{logger.js → logger.ts} +29 -16
  235. package/src/index.ts +9 -0
  236. package/tsconfig.json +0 -0
  237. package/vite.config.ts +1 -1
  238. package/__test__/dbml2sql/filename --mysql --out-file/dbml-error.log +0 -36
  239. package/__test__/dbml2sql/filename --mysql --out-file/out-files/schema.sql +0 -65
  240. package/__test__/dbml2sql/filename --mysql stdout/dbml-error.log +0 -0
  241. package/__test__/dbml2sql/filename --oracle --out-file/dbml-error.log +0 -0
  242. package/__test__/dbml2sql/filename --oracle --out-file/out-files/schema.sql +0 -61
  243. package/__test__/dbml2sql/filename --oracle stdout/dbml-error.log +0 -0
  244. package/__test__/dbml2sql/filename --out-file/dbml-error.log +0 -36
  245. package/__test__/dbml2sql/filename --out-file/out-files/schema.sql +0 -77
  246. package/__test__/dbml2sql/filename --postgres --out-file/dbml-error.log +0 -24
  247. package/__test__/dbml2sql/filename --postgres --out-file/out-files/schema.sql +0 -77
  248. package/__test__/dbml2sql/filename --postgres stdout/dbml-error.log +0 -0
  249. package/__test__/dbml2sql/filename stdout/dbml-error.log +0 -0
  250. package/__test__/dbml2sql/filenames --mysql --out-file/dbml-error.log +0 -24
  251. package/__test__/dbml2sql/filenames --mysql --out-file/out-files/schema.sql +0 -172
  252. package/__test__/dbml2sql/filenames --mysql stdout/dbml-error.log +0 -0
  253. package/__test__/dbml2sql/filenames --oracle --out-file/dbml-error.log +0 -0
  254. package/__test__/dbml2sql/filenames --oracle --out-file/out-files/schema.sql +0 -172
  255. package/__test__/dbml2sql/filenames --oracle stdout/dbml-error.log +0 -0
  256. package/__test__/dbml2sql/filenames --out-file/dbml-error.log +0 -24
  257. package/__test__/dbml2sql/filenames --out-file/out-files/schema.sql +0 -172
  258. package/__test__/dbml2sql/filenames --postgres --out-file/dbml-error.log +0 -24
  259. package/__test__/dbml2sql/filenames --postgres --out-file/out-files/schema.sql +0 -172
  260. package/__test__/dbml2sql/filenames --postgres stdout/dbml-error.log +0 -0
  261. package/__test__/dbml2sql/filenames stdout/dbml-error.log +0 -0
  262. package/__test__/dbml2sql/multiple_schema_mssql/dbml-error.log +0 -24
  263. package/__test__/dbml2sql/multiple_schema_mssql/out-files/multiple_schema.out.sql +0 -62
  264. package/__test__/dbml2sql/multiple_schema_mysql/dbml-error.log +0 -24
  265. package/__test__/dbml2sql/multiple_schema_mysql/out-files/multiple_schema.out.sql +0 -50
  266. package/__test__/dbml2sql/multiple_schema_oracle/dbml-error.log +0 -0
  267. package/__test__/dbml2sql/multiple_schema_oracle/out-files/multiple_schema.out.sql +0 -88
  268. package/__test__/dbml2sql/multiple_schema_pg/dbml-error.log +0 -24
  269. package/__test__/dbml2sql/multiple_schema_pg/out-files/multiple_schema.out.sql +0 -67
  270. package/__test__/dbml2sql/syntax-error/dbml-error.log +0 -2112
  271. package/__test__/sql2dbml/filename --mssql --out-file/dbml-error.log +0 -51
  272. package/__test__/sql2dbml/filename --mssql --out-file/out-files/schema.dbml +0 -25
  273. package/__test__/sql2dbml/filename --mysql --out-file/dbml-error.log +0 -24
  274. package/__test__/sql2dbml/filename --mysql --out-file/out-files/schema.dbml +0 -74
  275. package/__test__/sql2dbml/filename --mysql stdout/dbml-error.log +0 -0
  276. package/__test__/sql2dbml/filename --out-file/dbml-error.log +0 -24
  277. package/__test__/sql2dbml/filename --out-file/out-files/schema.dbml +0 -74
  278. package/__test__/sql2dbml/filename --postgres --out-file/dbml-error.log +0 -24
  279. package/__test__/sql2dbml/filename --postgres --out-file/out-files/schema.dbml +0 -74
  280. package/__test__/sql2dbml/filename --postgres stdout/dbml-error.log +0 -0
  281. package/__test__/sql2dbml/filename --snowflake stdout/dbml-error.log +0 -54
  282. package/__test__/sql2dbml/filename stdout/dbml-error.log +0 -0
  283. package/__test__/sql2dbml/filenames --mysql --out-file/dbml-error.log +0 -24
  284. package/__test__/sql2dbml/filenames --mysql --out-file/out-files/schema.dbml +0 -170
  285. package/__test__/sql2dbml/filenames --mysql stdout/dbml-error.log +0 -0
  286. package/__test__/sql2dbml/filenames --out-file/dbml-error.log +0 -24
  287. package/__test__/sql2dbml/filenames --out-file/out-files/schema.dbml +0 -170
  288. package/__test__/sql2dbml/filenames --postgres --out-file/dbml-error.log +0 -24
  289. package/__test__/sql2dbml/filenames --postgres --out-file/out-files/schema.dbml +0 -170
  290. package/__test__/sql2dbml/filenames --postgres stdout/dbml-error.log +0 -3
  291. package/__test__/sql2dbml/filenames stdout/dbml-error.log +0 -0
  292. package/__test__/sql2dbml/multiple_schema_mssql/dbml-error.log +0 -121
  293. package/__test__/sql2dbml/multiple_schema_mssql/out-files/multiple_schema.out.dbml +0 -106
  294. package/__test__/sql2dbml/multiple_schema_mysql/dbml-error.log +0 -104
  295. package/__test__/sql2dbml/multiple_schema_mysql/out-files/multiple_schema.out.dbml +0 -136
  296. package/__test__/sql2dbml/multiple_schema_pg/dbml-error.log +0 -131
  297. package/__test__/sql2dbml/multiple_schema_pg/out-files/multiple_schema.out.dbml +0 -101
  298. package/__test__/sql2dbml/syntax-error/dbml-error.log +0 -2088
  299. package/__test__/sql2dbml/syntax-error-duplicate-endpoints --mssql/dbml-error.log +0 -36
  300. package/__test__/sql2dbml/syntax-error-duplicate-endpoints --mysql/dbml-error.log +0 -39
  301. package/dbml-error.log +0 -330
  302. package/src/index.js +0 -7
@@ -1,4 +1,6 @@
1
1
  require = require('esm')(module);
2
- const { sql2dbml } = require('../src');
2
+ const {
3
+ sql2dbml,
4
+ } = require('../src');
3
5
 
4
6
  sql2dbml(process.argv);
File without changes
package/eslint.config.ts CHANGED
@@ -4,6 +4,41 @@ import { defineConfig } from 'eslint/config';
4
4
  import stylistic from '@stylistic/eslint-plugin';
5
5
  import tseslint from 'typescript-eslint';
6
6
  import tsparser from '@typescript-eslint/parser';
7
+ import importPlugin from 'eslint-plugin-import';
8
+
9
+ const IMPORT_ORDER_RULES = {
10
+ 'import/order': ['error', {
11
+ groups: [
12
+ 'builtin',
13
+ 'external',
14
+ 'internal',
15
+ 'parent',
16
+ 'sibling',
17
+ 'index',
18
+ ],
19
+ 'newlines-between': 'never',
20
+ alphabetize: {
21
+ order: 'asc',
22
+ caseInsensitive: false,
23
+ },
24
+ }],
25
+ 'import/newline-after-import': ['error', { count: 1 }],
26
+ 'sort-imports': ['error', {
27
+ ignoreDeclarationSort: true,
28
+ ignoreCase: false,
29
+ memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],
30
+ }],
31
+ };
32
+
33
+ const IMPORT_SETTINGS = {
34
+ 'import/resolver': {
35
+ typescript: {
36
+ alwaysTryTypes: true,
37
+ project: './tsconfig.json',
38
+ },
39
+ node: true,
40
+ },
41
+ };
7
42
 
8
43
  export default defineConfig(
9
44
  eslint.configs.recommended,
@@ -41,8 +76,18 @@ export default defineConfig(
41
76
  },
42
77
  plugins: {
43
78
  '@stylistic': stylistic,
79
+ import: importPlugin,
44
80
  },
81
+ settings: IMPORT_SETTINGS,
45
82
  rules: {
83
+ ...IMPORT_ORDER_RULES,
84
+ '@stylistic/object-curly-newline': ['error', {
85
+ ObjectExpression: { multiline: true, minProperties: 1 },
86
+ ObjectPattern: { multiline: true, minProperties: 1 },
87
+ ImportDeclaration: { multiline: true, minProperties: 1 },
88
+ ExportDeclaration: { multiline: true, minProperties: 1 },
89
+ }],
90
+ '@stylistic/object-property-newline': ['error', { allowAllPropertiesOnSameLine: false }],
46
91
  '@typescript-eslint/no-explicit-any': 'off',
47
92
  'no-use-before-define': 'off',
48
93
  'no-continue': 'off',
@@ -59,18 +104,10 @@ export default defineConfig(
59
104
  '@typescript-eslint/consistent-return': [
60
105
  'error',
61
106
  ],
62
- '@stylistic/quotes': ['error', 'single', { 'avoidEscape': true }],
107
+ '@stylistic/quotes': ['error', 'single', { avoidEscape: true }],
63
108
  '@stylistic/max-statements-per-line': 'off',
64
109
  '@stylistic/operator-linebreak': ['error', 'before', { overrides: { '=': 'after' } }],
65
110
  },
66
- settings: {
67
- 'import/resolver': {
68
- typescript: {
69
- alwaysTryTypes: true,
70
- project: 'packages/*/{ts,js}config.json',
71
- },
72
- },
73
- },
74
111
  },
75
112
  {
76
113
  files: ['**/*.test.js', '**/*.spec.js', '**/*.test.ts', '**/*.spec.ts'],
package/lib/index.js CHANGED
@@ -21,26 +21,147 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
21
21
  }) : target, mod));
22
22
  let commander = require("commander");
23
23
  commander = __toESM(commander);
24
+ let path = require("path");
25
+ path = __toESM(path);
26
+ let __dbml_connector = require("@dbml/connector");
24
27
  let __dbml_core = require("@dbml/core");
25
- let figures = require("figures");
26
- figures = __toESM(figures);
27
28
  let chalk = require("chalk");
28
29
  chalk = __toESM(chalk);
29
- let path = require("path");
30
- path = __toESM(path);
30
+ let figures = require("figures");
31
+ figures = __toESM(figures);
32
+ let winston = require("winston");
31
33
  let fs = require("fs");
32
34
  fs = __toESM(fs);
33
- let winston = require("winston");
34
- let __dbml_connector = require("@dbml/connector");
35
- var config_default = {
36
- mysql: { name: "MySQL" },
37
- mysqlLegacy: { name: "MySQL" },
38
- postgres: { name: "PostgreSQL" },
39
- postgresLegacy: { name: "PostgreSQL" },
40
- mssql: { name: "SQL Server" },
41
- oracle: { name: "Oracle" },
42
- snowflake: { name: "Snowflake" }
35
+ const $schema = "https://json.schemastore.org/package";
36
+ const name = "@dbml/cli";
37
+ const version = "7.1.0-alpha.0";
38
+ const description = "";
39
+ const main = "lib/index.js";
40
+ const license = "Apache-2.0";
41
+ const scripts = {
42
+ "test": "vitest run",
43
+ "test:watch": "vitest watch",
44
+ "coverage": "vitest --coverage",
45
+ "build": "rm -rf ./lib && tsc --noEmit && vite build",
46
+ "dev": "vite build --watch",
47
+ "prepublish": "npm run build",
48
+ "lint": "eslint .",
49
+ "lint:fix": "eslint --fix ."
50
+ };
51
+ const publishConfig = { "access": "public" };
52
+ const bin = {
53
+ "dbml2sql": "bin/dbml2sql.js",
54
+ "sql2dbml": "bin/sql2dbml.js",
55
+ "db2dbml": "bin/db2dbml.js"
43
56
  };
57
+ const author = "Holistics <dev@holistics.io>";
58
+ const homepage = "https://dbml.dbdiagram.io";
59
+ const repository = "https://github.com/holistics/dbml/tree/master/packages/dbml-cli";
60
+ const keywords = ["dbml", "dbml-cli"];
61
+ const dependencies = {
62
+ "@babel/cli": "^7.21.0",
63
+ "@dbml/connector": "^7.1.0-alpha.0",
64
+ "@dbml/core": "^7.1.0-alpha.0",
65
+ "@dbml/parse": "^7.1.0-alpha.0",
66
+ "bluebird": "^3.5.5",
67
+ "chalk": "^2.4.2",
68
+ "commander": "^2.20.0",
69
+ "esm": "^3.2.25",
70
+ "figures": "^3.2.0",
71
+ "lodash-es": "^4.17.15",
72
+ "pegjs-require-import": "^0.0.2",
73
+ "strip-ansi": "^5.2.0",
74
+ "winston": "^3.2.1"
75
+ };
76
+ const gitHead = "109c30cccebfcb36b793945798d40963fb24d08c";
77
+ const engines = { "node": ">=18" };
78
+ var package_default = {
79
+ $schema,
80
+ name,
81
+ version,
82
+ description: "",
83
+ main,
84
+ license,
85
+ scripts,
86
+ publishConfig,
87
+ bin,
88
+ author,
89
+ homepage,
90
+ repository,
91
+ keywords,
92
+ dependencies,
93
+ gitHead,
94
+ engines
95
+ };
96
+ var { combine, timestamp, printf } = winston.format;
97
+ var consoleFormat = printf((info) => {
98
+ const { level, message } = info;
99
+ return ` ${chalk.default.red(level.toUpperCase())}: ${message}\n
100
+ A complete log can be found in:
101
+ ${path.default.resolve(process.cwd(), "dbml-error.log")}`;
102
+ });
103
+ var fileFormat = printf((info) => {
104
+ const { timestamp: ts, stack, rootError } = info;
105
+ let logContent = `${ts}\n${stack}\n`;
106
+ if (rootError) {
107
+ logContent += "\nROOT_ERROR:";
108
+ logContent += `\n${rootError.stack}`;
109
+ if (rootError.location) logContent += `\n${JSON.stringify(rootError.location)}`;
110
+ logContent += "\n";
111
+ }
112
+ return logContent;
113
+ });
114
+ var consoleLogger = (0, winston.createLogger)({
115
+ format: combine(consoleFormat),
116
+ transports: [new winston.transports.Console({ level: "error" })]
117
+ });
118
+ var fileLogger = (0, winston.createLogger)({
119
+ format: combine(timestamp(), fileFormat),
120
+ transports: [new winston.transports.File({
121
+ filename: "dbml-error.log",
122
+ level: "error"
123
+ })]
124
+ });
125
+ var logger = {
126
+ debug(msg) {
127
+ consoleLogger.debug(msg);
128
+ },
129
+ info(msg) {
130
+ consoleLogger.info(msg);
131
+ },
132
+ warn(msg) {
133
+ consoleLogger.warn(msg);
134
+ },
135
+ error(msg) {
136
+ consoleLogger.error(msg);
137
+ fileLogger.error(msg);
138
+ }
139
+ };
140
+ var logger_default = logger;
141
+ var OutputConsolePlugin = class {
142
+ static write(content) {
143
+ console.log(content);
144
+ }
145
+ };
146
+ var outputConsolePlugin_default = OutputConsolePlugin;
147
+ var OutputFilePlugin = class {
148
+ constructor(filePath, header) {
149
+ this.filePath = filePath;
150
+ this.header = header;
151
+ this.isWrite = false;
152
+ }
153
+ start() {
154
+ fs.default.writeFileSync(this.filePath, "");
155
+ this.stream = fs.default.createWriteStream(this.filePath, { flags: "a" });
156
+ if (this.header) this.stream.write(this.header);
157
+ this.isWrite = true;
158
+ }
159
+ write(content) {
160
+ if (!this.isWrite) this.start();
161
+ this.stream.write(content);
162
+ }
163
+ };
164
+ var outputFilePlugin_default = OutputFilePlugin;
44
165
  var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
45
166
  var _freeGlobal_default = freeGlobal;
46
167
  var freeSelf = typeof self == "object" && self && self.Object === Object && self;
@@ -1038,82 +1159,23 @@ function generate(inputPaths, transform, outputPlugin) {
1038
1159
  }
1039
1160
  });
1040
1161
  }
1041
- function validateFilePlugin(_path) {
1042
- if (fs.default.statSync(_path).isDirectory(_path)) throw new Error("Expect input to be files");
1043
- }
1044
- var OutputConsolePlugin = class {
1045
- static write(content) {
1046
- console.log(content);
1047
- }
1048
- };
1049
- var outputConsolePlugin_default = OutputConsolePlugin;
1050
- var OutputFilePlugin = class {
1051
- constructor(filePath, header) {
1052
- this.filePath = filePath;
1053
- this.header = header;
1054
- this.isWrite = false;
1055
- }
1056
- start() {
1057
- fs.default.writeFileSync(this.filePath, "");
1058
- this.stream = fs.default.createWriteStream(this.filePath, { flags: "a" });
1059
- if (this.header) this.stream.write(this.header);
1060
- this.isWrite = true;
1061
- }
1062
- write(content) {
1063
- if (!this.isWrite) this.start();
1064
- this.stream.write(content);
1065
- }
1066
- };
1067
- var outputFilePlugin_default = OutputFilePlugin;
1068
- var { combine, timestamp, printf } = winston.format;
1069
- var consoleFormat = printf((info) => {
1070
- const { level, message } = info;
1071
- return ` ${chalk.default.red(level.toUpperCase())}: ${message}\n
1072
- A complete log can be found in:
1073
- ${path.default.resolve(process.cwd(), "dbml-error.log")}`;
1074
- });
1075
- var fileFormat = printf((info) => {
1076
- const { timestamp: timestamp$1, stack, rootError } = info;
1077
- let logContent = `${timestamp$1}\n${stack}\n`;
1078
- if (rootError) {
1079
- logContent += "\nROOT_ERROR:";
1080
- logContent += `\n${rootError.stack}`;
1081
- if (rootError.location) logContent += `\n${JSON.stringify(rootError.location)}`;
1082
- logContent += "\n";
1083
- }
1084
- return logContent;
1085
- });
1086
- var consoleLogger = (0, winston.createLogger)({
1087
- format: combine(consoleFormat),
1088
- transports: [new winston.transports.Console({ level: "error" })]
1089
- });
1090
- var fileLogger = (0, winston.createLogger)({
1091
- format: combine(timestamp(), fileFormat),
1092
- transports: [new winston.transports.File({
1093
- filename: "dbml-error.log",
1094
- level: "error"
1095
- })]
1096
- });
1097
- var logger = {
1098
- debug(msg) {
1099
- consoleLogger.debug(msg);
1100
- },
1101
- info(msg) {
1102
- consoleLogger.info(msg);
1103
- },
1104
- warn(msg) {
1105
- consoleLogger.warn(msg);
1106
- },
1107
- error(msg) {
1108
- consoleLogger.error(msg);
1109
- fileLogger.error(msg);
1110
- },
1111
- log(level, msg) {
1112
- const lvl = exports[level];
1113
- lvl(msg);
1162
+ async function connectionHandler(program$1) {
1163
+ try {
1164
+ const { connection, databaseType } = getConnectionOpt(program$1.args);
1165
+ const opts = program$1.opts();
1166
+ const schemaJson = await __dbml_connector.connector.fetchSchemaJson(connection, databaseType);
1167
+ if (!opts.outFile && !opts.outDir) {
1168
+ const res = __dbml_core.importer.generateDbml(schemaJson);
1169
+ outputConsolePlugin_default.write(res);
1170
+ } else if (opts.outFile) {
1171
+ const res = __dbml_core.importer.generateDbml(schemaJson);
1172
+ new outputFilePlugin_default(resolvePaths(opts.outFile)).write(res);
1173
+ console.log(` ${chalk.default.green(figures.default.main.tick)} Generated DBML file from database's connection: ${path.default.basename(opts.outFile)}`);
1174
+ }
1175
+ } catch (error) {
1176
+ logger_default.error(error);
1114
1177
  }
1115
- };
1116
- var logger_default = logger;
1178
+ }
1117
1179
  var DomainError = class extends Error {
1118
1180
  constructor(message, rootError = {}) {
1119
1181
  super(message);
@@ -1133,24 +1195,18 @@ var SyntaxError = class extends domainError_default {
1133
1195
  }
1134
1196
  };
1135
1197
  var syntaxError_default = SyntaxError;
1136
- async function importHandler(program$1) {
1137
- try {
1138
- const inputPaths = resolvePaths(program$1.args);
1139
- validateInputFilePaths(inputPaths, validateFilePlugin);
1140
- const opts = program$1.opts();
1141
- const format$1 = getFormatOpt(opts);
1142
- if (!opts.outFile && !opts.outDir) generate(inputPaths, (sql) => __dbml_core.importer.import(sql, format$1), outputConsolePlugin_default);
1143
- else if (opts.outFile) {
1144
- generate(inputPaths, (sql) => __dbml_core.importer.import(sql, format$1), new outputFilePlugin_default(resolvePaths(opts.outFile)));
1145
- console.log(` ${chalk.default.green(figures.default.main.tick)} Generated DBML file from SQL file (${config_default[format$1].name}): ${path.default.basename(opts.outFile)}`);
1146
- }
1147
- } catch (error) {
1148
- if ("diags" in error) {
1149
- logger_default.error(`\n ${error.diags.map((diag) => new syntaxError_default(diag.filepath, diag)).map(({ message }) => message).join("\n ")}`);
1150
- return;
1151
- }
1152
- throw error;
1153
- }
1198
+ var config = {
1199
+ mysql: { name: "MySQL" },
1200
+ mysqlLegacy: { name: "MySQL" },
1201
+ postgres: { name: "PostgreSQL" },
1202
+ postgresLegacy: { name: "PostgreSQL" },
1203
+ mssql: { name: "SQL Server" },
1204
+ oracle: { name: "Oracle" },
1205
+ snowflake: { name: "Snowflake" }
1206
+ };
1207
+ var config_default = config;
1208
+ function validateFilePlugin(_path) {
1209
+ if (fs.default.statSync(_path).isDirectory()) throw new Error("Expect input to be files");
1154
1210
  }
1155
1211
  async function exportHandler(program$1) {
1156
1212
  try {
@@ -1169,86 +1225,29 @@ async function exportHandler(program$1) {
1169
1225
  console.log(` ${chalk.default.green(figures.default.main.tick)} Generated SQL dump file (${config_default[format$1].name}): ${path.default.basename(opts.outFile)}`);
1170
1226
  }
1171
1227
  } catch (error) {
1172
- logger_default.error(`\n ${error.diags.map((diag) => new syntaxError_default(diag.filepath, diag)).map(({ message }) => message).join("\n ")}`);
1228
+ const e = error;
1229
+ logger_default.error(`\n ${e.diags.map((diag) => new syntaxError_default(diag.filepath ?? "", diag)).map(({ message }) => message).join("\n ")}`);
1173
1230
  }
1174
1231
  }
1175
- async function connectionHandler(program$1) {
1232
+ async function importHandler(program$1) {
1176
1233
  try {
1177
- const { connection, databaseType } = getConnectionOpt(program$1.args);
1234
+ const inputPaths = resolvePaths(program$1.args);
1235
+ validateInputFilePaths(inputPaths, validateFilePlugin);
1178
1236
  const opts = program$1.opts();
1179
- const schemaJson = await __dbml_connector.connector.fetchSchemaJson(connection, databaseType);
1180
- if (!opts.outFile && !opts.outDir) {
1181
- const res = __dbml_core.importer.generateDbml(schemaJson);
1182
- outputConsolePlugin_default.write(res);
1183
- } else if (opts.outFile) {
1184
- const res = __dbml_core.importer.generateDbml(schemaJson);
1185
- new outputFilePlugin_default(resolvePaths(opts.outFile)).write(res);
1186
- console.log(` ${chalk.default.green(figures.default.main.tick)} Generated DBML file from database's connection: ${path.default.basename(opts.outFile)}`);
1237
+ const format$1 = getFormatOpt(opts);
1238
+ if (!opts.outFile && !opts.outDir) generate(inputPaths, (sql) => __dbml_core.importer.import(sql, format$1), outputConsolePlugin_default);
1239
+ else if (opts.outFile) {
1240
+ generate(inputPaths, (sql) => __dbml_core.importer.import(sql, format$1), new outputFilePlugin_default(resolvePaths(opts.outFile)));
1241
+ console.log(` ${chalk.default.green(figures.default.main.tick)} Generated DBML file from SQL file (${config_default[format$1].name}): ${path.default.basename(opts.outFile)}`);
1187
1242
  }
1188
1243
  } catch (error) {
1189
- logger_default.error(error);
1244
+ if (error instanceof __dbml_core.CompilerError) {
1245
+ logger_default.error(`\n ${error.diags.map((diag) => new syntaxError_default(diag.filepath ?? "", diag)).map(({ message }) => message).join("\n ")}`);
1246
+ return;
1247
+ }
1248
+ throw error;
1190
1249
  }
1191
1250
  }
1192
- const $schema = "https://json.schemastore.org/package";
1193
- const name = "@dbml/cli";
1194
- const version = "7.0.0-alpha.1";
1195
- const description = "";
1196
- const main = "lib/index.js";
1197
- const license = "Apache-2.0";
1198
- const scripts = {
1199
- "test": "vitest run",
1200
- "test:watch": "vitest watch",
1201
- "coverage": "vitest --coverage",
1202
- "build": "rm -rf ./lib && tsc --noEmit && vite build",
1203
- "dev": "vite build --watch",
1204
- "prepublish": "npm run build",
1205
- "lint": "eslint .",
1206
- "lint:fix": "eslint --fix ."
1207
- };
1208
- const publishConfig = { "access": "public" };
1209
- const bin = {
1210
- "dbml2sql": "bin/dbml2sql.js",
1211
- "sql2dbml": "bin/sql2dbml.js",
1212
- "db2dbml": "bin/db2dbml.js"
1213
- };
1214
- const author = "Holistics <dev@holistics.io>";
1215
- const homepage = "https://dbml.dbdiagram.io";
1216
- const repository = "https://github.com/holistics/dbml/tree/master/packages/dbml-cli";
1217
- const keywords = ["dbml", "dbml-cli"];
1218
- const dependencies = {
1219
- "@babel/cli": "^7.21.0",
1220
- "@dbml/connector": "^7.0.0-alpha.0",
1221
- "@dbml/core": "^7.0.0-alpha.1",
1222
- "bluebird": "^3.5.5",
1223
- "chalk": "^2.4.2",
1224
- "commander": "^2.20.0",
1225
- "esm": "^3.2.25",
1226
- "figures": "^3.2.0",
1227
- "lodash-es": "^4.17.15",
1228
- "pegjs-require-import": "^0.0.2",
1229
- "strip-ansi": "^5.2.0",
1230
- "winston": "^3.2.1"
1231
- };
1232
- const gitHead = "283f3bcf7373ecab1e808e8a8035ce906ee6a52e";
1233
- const engines = { "node": ">=18" };
1234
- var package_default = {
1235
- $schema,
1236
- name,
1237
- version,
1238
- description: "",
1239
- main,
1240
- license,
1241
- scripts,
1242
- publishConfig,
1243
- bin,
1244
- author,
1245
- homepage,
1246
- repository,
1247
- keywords,
1248
- dependencies,
1249
- gitHead,
1250
- engines
1251
- };
1252
1251
  function showHelp(args) {
1253
1252
  if (args.length < 3) commander.default.help();
1254
1253
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "@dbml/cli",
4
- "version": "7.0.0-alpha.1",
4
+ "version": "7.1.0-alpha.0",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "license": "Apache-2.0",
@@ -32,8 +32,9 @@
32
32
  ],
33
33
  "dependencies": {
34
34
  "@babel/cli": "^7.21.0",
35
- "@dbml/connector": "^7.0.0-alpha.0",
36
- "@dbml/core": "^7.0.0-alpha.1",
35
+ "@dbml/connector": "^7.1.0-alpha.0",
36
+ "@dbml/core": "^7.1.0-alpha.0",
37
+ "@dbml/parse": "^7.1.0-alpha.0",
37
38
  "bluebird": "^3.5.5",
38
39
  "chalk": "^2.4.2",
39
40
  "commander": "^2.20.0",
@@ -44,7 +45,7 @@
44
45
  "strip-ansi": "^5.2.0",
45
46
  "winston": "^3.2.1"
46
47
  },
47
- "gitHead": "283f3bcf7373ecab1e808e8a8035ce906ee6a52e",
48
+ "gitHead": "109c30cccebfcb36b793945798d40963fb24d08c",
48
49
  "engines": {
49
50
  "node": ">=18"
50
51
  }
@@ -1,4 +1,4 @@
1
- export default {
1
+ const config: Record<string, { name: string }> = {
2
2
  mysql: {
3
3
  name: 'MySQL',
4
4
  },
@@ -21,3 +21,5 @@ export default {
21
21
  name: 'Snowflake',
22
22
  },
23
23
  };
24
+
25
+ export default config;
@@ -1,19 +1,28 @@
1
- import { importer } from '@dbml/core';
2
- import { connector } from '@dbml/connector';
3
- import figures from 'figures';
4
- import chalk from 'chalk';
5
1
  import path from 'path';
6
2
  import {
7
- resolvePaths,
8
- getConnectionOpt,
9
- } from './utils';
3
+ connector,
4
+ } from '@dbml/connector';
5
+ import {
6
+ importer,
7
+ } from '@dbml/core';
8
+ import chalk from 'chalk';
9
+ import {
10
+ Command,
11
+ } from 'commander';
12
+ import figures from 'figures';
13
+ import logger from '../helpers/logger';
10
14
  import OutputConsolePlugin from './outputPlugins/outputConsolePlugin';
11
15
  import OutputFilePlugin from './outputPlugins/outputFilePlugin';
12
- import logger from '../helpers/logger';
16
+ import {
17
+ getConnectionOpt,
18
+ resolvePaths,
19
+ } from './utils';
13
20
 
14
- export default async function connectionHandler (program) {
21
+ export default async function connectionHandler (program: Command) {
15
22
  try {
16
- const { connection, databaseType } = getConnectionOpt(program.args);
23
+ const {
24
+ connection, databaseType,
25
+ } = getConnectionOpt(program.args);
17
26
  const opts = program.opts();
18
27
  const schemaJson = await connector.fetchSchemaJson(connection, databaseType);
19
28
 
@@ -1,27 +1,39 @@
1
- import figures from 'figures';
2
- import chalk from 'chalk';
3
1
  import path from 'path';
4
- import { exporter } from '@dbml/core';
5
2
  import {
6
- validateInputFilePaths,
7
- resolvePaths,
8
- getFormatOpt,
9
- generate,
10
- } from './utils';
11
- import { validateFilePlugin } from './validatePlugins/validatePlugins';
3
+ CompilerError, exporter,
4
+ } from '@dbml/core';
5
+ import type {
6
+ ExportFormat,
7
+ } from '@dbml/core';
8
+ import chalk from 'chalk';
9
+ import type {
10
+ Command,
11
+ } from 'commander';
12
+ import figures from 'figures';
13
+ import {
14
+ SyntaxError,
15
+ } from '../errors';
16
+ import logger from '../helpers/logger';
17
+ import config from './config';
12
18
  import OutputConsolePlugin from './outputPlugins/outputConsolePlugin';
13
19
  import OutputFilePlugin from './outputPlugins/outputFilePlugin';
14
- import config from './config';
15
- import logger from '../helpers/logger';
16
- import { SyntaxError } from '../errors';
20
+ import {
21
+ generate,
22
+ getFormatOpt,
23
+ resolvePaths,
24
+ validateInputFilePaths,
25
+ } from './utils';
26
+ import {
27
+ validateFilePlugin,
28
+ } from './validatePlugins/validatePlugins';
17
29
 
18
- export default async function exportHandler (program) {
30
+ export default async function exportHandler (program: Command) {
19
31
  try {
20
32
  const inputPaths = resolvePaths(program.args);
21
33
  validateInputFilePaths(inputPaths, validateFilePlugin);
22
34
  const opts = program.opts();
23
35
 
24
- const format = getFormatOpt(opts);
36
+ const format = getFormatOpt(opts) as ExportFormat;
25
37
 
26
38
  if (!opts.outFile && !opts.outDir) {
27
39
  generate(inputPaths, (dbml) => exporter.export(dbml, format), OutputConsolePlugin);
@@ -41,6 +53,9 @@ export default async function exportHandler (program) {
41
53
  console.log(` ${chalk.green(figures.main.tick)} Generated SQL dump file (${config[format].name}): ${path.basename(opts.outFile)}`);
42
54
  }
43
55
  } catch (error) {
44
- logger.error(`\n ${error.diags.map((diag) => new SyntaxError(diag.filepath, diag)).map(({ message }) => message).join('\n ')}`);
56
+ const e = error as CompilerError;
57
+ logger.error(`\n ${e.diags.map((diag) => new SyntaxError(diag.filepath ?? '', diag)).map(({
58
+ message,
59
+ }) => message).join('\n ')}`);
45
60
  }
46
61
  }