@dbml/core 10.3.0-alpha.0 → 10.3.0-alpha.2

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 (414) hide show
  1. package/lib/export/DbmlExporter.cjs +13 -13
  2. package/lib/export/DbmlExporter.mjs +88 -84
  3. package/lib/export/MysqlExporter.cjs +8 -8
  4. package/lib/export/MysqlExporter.mjs +54 -50
  5. package/lib/export/OracleExporter.cjs +7 -7
  6. package/lib/export/OracleExporter.mjs +79 -74
  7. package/lib/export/PostgresExporter.cjs +9 -9
  8. package/lib/export/PostgresExporter.mjs +82 -78
  9. package/lib/export/SqlServerExporter.cjs +11 -11
  10. package/lib/export/SqlServerExporter.mjs +64 -60
  11. package/lib/model_structure/database.cjs +1 -1
  12. package/lib/model_structure/database.mjs +56 -53
  13. package/lib/model_structure/dep.cjs +1 -1
  14. package/lib/model_structure/dep.mjs +11 -9
  15. package/lib/model_structure/enum.cjs +1 -1
  16. package/lib/model_structure/enum.mjs +15 -13
  17. package/lib/model_structure/enumValue.cjs +1 -1
  18. package/lib/model_structure/enumValue.mjs +8 -6
  19. package/lib/model_structure/field.cjs +1 -1
  20. package/lib/model_structure/field.mjs +10 -8
  21. package/lib/model_structure/schema.cjs +1 -1
  22. package/lib/model_structure/schema.mjs +25 -23
  23. package/lib/model_structure/table.cjs +1 -1
  24. package/lib/model_structure/table.mjs +43 -40
  25. package/lib/model_structure/tableGroup.cjs +1 -1
  26. package/lib/model_structure/tableGroup.mjs +11 -9
  27. package/lib/model_structure/tablePartial.cjs +1 -1
  28. package/lib/model_structure/tablePartial.mjs +8 -6
  29. package/lib/node_modules/lodash-es/_DataView.cjs +1 -0
  30. package/lib/node_modules/lodash-es/_DataView.mjs +10 -0
  31. package/lib/node_modules/lodash-es/_Hash.cjs +1 -0
  32. package/lib/node_modules/lodash-es/_Hash.mjs +20 -0
  33. package/lib/node_modules/lodash-es/_ListCache.cjs +1 -0
  34. package/lib/node_modules/lodash-es/_ListCache.mjs +20 -0
  35. package/lib/node_modules/lodash-es/_Map.cjs +1 -0
  36. package/lib/node_modules/lodash-es/_Map.mjs +10 -0
  37. package/lib/node_modules/lodash-es/_MapCache.cjs +1 -0
  38. package/lib/node_modules/lodash-es/_MapCache.mjs +20 -0
  39. package/lib/node_modules/lodash-es/_Promise.cjs +1 -0
  40. package/lib/node_modules/lodash-es/_Promise.mjs +10 -0
  41. package/lib/node_modules/lodash-es/_Set.cjs +1 -0
  42. package/lib/node_modules/lodash-es/_Set.mjs +10 -0
  43. package/lib/node_modules/lodash-es/_SetCache.cjs +1 -0
  44. package/lib/node_modules/lodash-es/_SetCache.mjs +15 -0
  45. package/lib/node_modules/lodash-es/_Stack.cjs +1 -0
  46. package/lib/node_modules/lodash-es/_Stack.mjs +18 -0
  47. package/lib/node_modules/lodash-es/_Symbol.cjs +1 -0
  48. package/lib/node_modules/lodash-es/_Symbol.mjs +9 -0
  49. package/lib/node_modules/lodash-es/_Uint8Array.cjs +1 -0
  50. package/lib/node_modules/lodash-es/_Uint8Array.mjs +9 -0
  51. package/lib/node_modules/lodash-es/_WeakMap.cjs +1 -0
  52. package/lib/node_modules/lodash-es/_WeakMap.mjs +10 -0
  53. package/lib/node_modules/lodash-es/_arrayAggregator.cjs +1 -0
  54. package/lib/node_modules/lodash-es/_arrayAggregator.mjs +13 -0
  55. package/lib/node_modules/lodash-es/_arrayEach.cjs +1 -0
  56. package/lib/node_modules/lodash-es/_arrayEach.mjs +10 -0
  57. package/lib/node_modules/lodash-es/_arrayFilter.cjs +1 -0
  58. package/lib/node_modules/lodash-es/_arrayFilter.mjs +13 -0
  59. package/lib/node_modules/lodash-es/_arrayLikeKeys.cjs +1 -0
  60. package/lib/node_modules/lodash-es/_arrayLikeKeys.mjs +19 -0
  61. package/lib/node_modules/lodash-es/_arrayMap.cjs +1 -0
  62. package/lib/node_modules/lodash-es/_arrayMap.mjs +10 -0
  63. package/lib/node_modules/lodash-es/_arrayPush.cjs +1 -0
  64. package/lib/node_modules/lodash-es/_arrayPush.mjs +10 -0
  65. package/lib/node_modules/lodash-es/_arrayReduce.cjs +1 -0
  66. package/lib/node_modules/lodash-es/_arrayReduce.mjs +11 -0
  67. package/lib/node_modules/lodash-es/_arraySome.cjs +1 -0
  68. package/lib/node_modules/lodash-es/_arraySome.mjs +10 -0
  69. package/lib/node_modules/lodash-es/_asciiToArray.cjs +1 -0
  70. package/lib/node_modules/lodash-es/_asciiToArray.mjs +9 -0
  71. package/lib/node_modules/lodash-es/_assocIndexOf.cjs +1 -0
  72. package/lib/node_modules/lodash-es/_assocIndexOf.mjs +13 -0
  73. package/lib/node_modules/lodash-es/_baseAggregator.cjs +1 -0
  74. package/lib/node_modules/lodash-es/_baseAggregator.mjs +14 -0
  75. package/lib/node_modules/lodash-es/_baseAssignValue.cjs +1 -0
  76. package/lib/node_modules/lodash-es/_baseAssignValue.mjs +17 -0
  77. package/lib/node_modules/lodash-es/_baseEach.cjs +1 -0
  78. package/lib/node_modules/lodash-es/_baseEach.mjs +10 -0
  79. package/lib/node_modules/lodash-es/_baseFlatten.cjs +1 -0
  80. package/lib/node_modules/lodash-es/_baseFlatten.mjs +18 -0
  81. package/lib/node_modules/lodash-es/_baseFor.cjs +1 -0
  82. package/lib/node_modules/lodash-es/_baseFor.mjs +9 -0
  83. package/lib/node_modules/lodash-es/_baseForOwn.cjs +1 -0
  84. package/lib/node_modules/lodash-es/_baseForOwn.mjs +13 -0
  85. package/lib/node_modules/lodash-es/_baseGet.cjs +1 -0
  86. package/lib/node_modules/lodash-es/_baseGet.mjs +15 -0
  87. package/lib/node_modules/lodash-es/_baseGetAllKeys.cjs +1 -0
  88. package/lib/node_modules/lodash-es/_baseGetAllKeys.mjs +14 -0
  89. package/lib/node_modules/lodash-es/_baseGetTag.cjs +1 -0
  90. package/lib/node_modules/lodash-es/_baseGetTag.mjs +14 -0
  91. package/lib/node_modules/lodash-es/_baseHasIn.cjs +1 -0
  92. package/lib/node_modules/lodash-es/_baseHasIn.mjs +9 -0
  93. package/lib/node_modules/lodash-es/_baseIsArguments.cjs +1 -0
  94. package/lib/node_modules/lodash-es/_baseIsArguments.mjs +13 -0
  95. package/lib/node_modules/lodash-es/_baseIsEqual.cjs +1 -0
  96. package/lib/node_modules/lodash-es/_baseIsEqual.mjs +13 -0
  97. package/lib/node_modules/lodash-es/_baseIsEqualDeep.cjs +1 -0
  98. package/lib/node_modules/lodash-es/_baseIsEqualDeep.mjs +34 -0
  99. package/lib/node_modules/lodash-es/_baseIsMatch.cjs +1 -0
  100. package/lib/node_modules/lodash-es/_baseIsMatch.mjs +30 -0
  101. package/lib/node_modules/lodash-es/_baseIsNative.cjs +1 -0
  102. package/lib/node_modules/lodash-es/_baseIsNative.mjs +15 -0
  103. package/lib/node_modules/lodash-es/_baseIsTypedArray.cjs +1 -0
  104. package/lib/node_modules/lodash-es/_baseIsTypedArray.mjs +14 -0
  105. package/lib/node_modules/lodash-es/_baseIteratee.cjs +1 -0
  106. package/lib/node_modules/lodash-es/_baseIteratee.mjs +16 -0
  107. package/lib/node_modules/lodash-es/_baseKeys.cjs +1 -0
  108. package/lib/node_modules/lodash-es/_baseKeys.mjs +16 -0
  109. package/lib/node_modules/lodash-es/_baseMatches.cjs +1 -0
  110. package/lib/node_modules/lodash-es/_baseMatches.mjs +17 -0
  111. package/lib/node_modules/lodash-es/_baseMatchesProperty.cjs +1 -0
  112. package/lib/node_modules/lodash-es/_baseMatchesProperty.mjs +21 -0
  113. package/lib/node_modules/lodash-es/_baseNth.cjs +1 -0
  114. package/lib/node_modules/lodash-es/_baseNth.mjs +13 -0
  115. package/lib/node_modules/lodash-es/_baseProperty.cjs +1 -0
  116. package/lib/node_modules/lodash-es/_baseProperty.mjs +11 -0
  117. package/lib/node_modules/lodash-es/_basePropertyDeep.cjs +1 -0
  118. package/lib/node_modules/lodash-es/_basePropertyDeep.mjs +14 -0
  119. package/lib/node_modules/lodash-es/_baseReduce.cjs +1 -0
  120. package/lib/node_modules/lodash-es/_baseReduce.mjs +11 -0
  121. package/lib/node_modules/lodash-es/_baseSlice.cjs +1 -0
  122. package/lib/node_modules/lodash-es/_baseSlice.mjs +12 -0
  123. package/lib/node_modules/lodash-es/_baseTimes.cjs +1 -0
  124. package/lib/node_modules/lodash-es/_baseTimes.mjs +10 -0
  125. package/lib/node_modules/lodash-es/_baseToString.cjs +1 -0
  126. package/lib/node_modules/lodash-es/_baseToString.mjs +19 -0
  127. package/lib/node_modules/lodash-es/_baseTrim.cjs +1 -0
  128. package/lib/node_modules/lodash-es/_baseTrim.mjs +12 -0
  129. package/lib/node_modules/lodash-es/_baseUnary.cjs +1 -0
  130. package/lib/node_modules/lodash-es/_baseUnary.mjs +11 -0
  131. package/lib/node_modules/lodash-es/_cacheHas.cjs +1 -0
  132. package/lib/node_modules/lodash-es/_cacheHas.mjs +9 -0
  133. package/lib/node_modules/lodash-es/_castFunction.cjs +1 -0
  134. package/lib/node_modules/lodash-es/_castFunction.mjs +12 -0
  135. package/lib/node_modules/lodash-es/_castPath.cjs +1 -0
  136. package/lib/node_modules/lodash-es/_castPath.mjs +15 -0
  137. package/lib/node_modules/lodash-es/_castSlice.cjs +1 -0
  138. package/lib/node_modules/lodash-es/_castSlice.mjs +13 -0
  139. package/lib/node_modules/lodash-es/_copyArray.cjs +1 -0
  140. package/lib/node_modules/lodash-es/_copyArray.mjs +11 -0
  141. package/lib/node_modules/lodash-es/_coreJsData.cjs +1 -0
  142. package/lib/node_modules/lodash-es/_coreJsData.mjs +9 -0
  143. package/lib/node_modules/lodash-es/_createAggregator.cjs +1 -0
  144. package/lib/node_modules/lodash-es/_createAggregator.mjs +18 -0
  145. package/lib/node_modules/lodash-es/_createBaseEach.cjs +1 -0
  146. package/lib/node_modules/lodash-es/_createBaseEach.mjs +17 -0
  147. package/lib/node_modules/lodash-es/_createBaseFor.cjs +1 -0
  148. package/lib/node_modules/lodash-es/_createBaseFor.mjs +15 -0
  149. package/lib/node_modules/lodash-es/_createCaseFirst.cjs +1 -0
  150. package/lib/node_modules/lodash-es/_createCaseFirst.mjs +19 -0
  151. package/lib/node_modules/lodash-es/_defineProperty.cjs +1 -0
  152. package/lib/node_modules/lodash-es/_defineProperty.mjs +14 -0
  153. package/lib/node_modules/lodash-es/_equalArrays.cjs +1 -0
  154. package/lib/node_modules/lodash-es/_equalArrays.mjs +39 -0
  155. package/lib/node_modules/lodash-es/_equalByTag.cjs +1 -0
  156. package/lib/node_modules/lodash-es/_equalByTag.mjs +39 -0
  157. package/lib/node_modules/lodash-es/_equalObjects.cjs +1 -0
  158. package/lib/node_modules/lodash-es/_equalObjects.mjs +36 -0
  159. package/lib/node_modules/lodash-es/_freeGlobal.cjs +1 -0
  160. package/lib/node_modules/lodash-es/_freeGlobal.mjs +8 -0
  161. package/lib/node_modules/lodash-es/_getAllKeys.cjs +1 -0
  162. package/lib/node_modules/lodash-es/_getAllKeys.mjs +14 -0
  163. package/lib/node_modules/lodash-es/_getMapData.cjs +1 -0
  164. package/lib/node_modules/lodash-es/_getMapData.mjs +13 -0
  165. package/lib/node_modules/lodash-es/_getMatchData.cjs +1 -0
  166. package/lib/node_modules/lodash-es/_getMatchData.mjs +21 -0
  167. package/lib/node_modules/lodash-es/_getNative.cjs +1 -0
  168. package/lib/node_modules/lodash-es/_getNative.mjs +14 -0
  169. package/lib/node_modules/lodash-es/_getRawTag.cjs +1 -0
  170. package/lib/node_modules/lodash-es/_getRawTag.mjs +18 -0
  171. package/lib/node_modules/lodash-es/_getSymbols.cjs +1 -0
  172. package/lib/node_modules/lodash-es/_getSymbols.mjs +14 -0
  173. package/lib/node_modules/lodash-es/_getTag.cjs +1 -0
  174. package/lib/node_modules/lodash-es/_getTag.mjs +25 -0
  175. package/lib/node_modules/lodash-es/_getValue.cjs +1 -0
  176. package/lib/node_modules/lodash-es/_getValue.mjs +9 -0
  177. package/lib/node_modules/lodash-es/_hasPath.cjs +1 -0
  178. package/lib/node_modules/lodash-es/_hasPath.mjs +23 -0
  179. package/lib/node_modules/lodash-es/_hasUnicode.cjs +1 -0
  180. package/lib/node_modules/lodash-es/_hasUnicode.mjs +11 -0
  181. package/lib/node_modules/lodash-es/_hashClear.cjs +1 -0
  182. package/lib/node_modules/lodash-es/_hashClear.mjs +12 -0
  183. package/lib/node_modules/lodash-es/_hashDelete.cjs +1 -0
  184. package/lib/node_modules/lodash-es/_hashDelete.mjs +10 -0
  185. package/lib/node_modules/lodash-es/_hashGet.cjs +1 -0
  186. package/lib/node_modules/lodash-es/_hashGet.mjs +17 -0
  187. package/lib/node_modules/lodash-es/_hashHas.cjs +1 -0
  188. package/lib/node_modules/lodash-es/_hashHas.mjs +13 -0
  189. package/lib/node_modules/lodash-es/_hashSet.cjs +1 -0
  190. package/lib/node_modules/lodash-es/_hashSet.mjs +13 -0
  191. package/lib/node_modules/lodash-es/_isFlattenable.cjs +1 -0
  192. package/lib/node_modules/lodash-es/_isFlattenable.mjs +14 -0
  193. package/lib/node_modules/lodash-es/_isIndex.cjs +1 -0
  194. package/lib/node_modules/lodash-es/_isIndex.mjs +12 -0
  195. package/lib/node_modules/lodash-es/_isKey.cjs +1 -0
  196. package/lib/node_modules/lodash-es/_isKey.mjs +15 -0
  197. package/lib/node_modules/lodash-es/_isKeyable.cjs +1 -0
  198. package/lib/node_modules/lodash-es/_isKeyable.mjs +10 -0
  199. package/lib/node_modules/lodash-es/_isMasked.cjs +1 -0
  200. package/lib/node_modules/lodash-es/_isMasked.mjs +15 -0
  201. package/lib/node_modules/lodash-es/_isPrototype.cjs +1 -0
  202. package/lib/node_modules/lodash-es/_isPrototype.mjs +12 -0
  203. package/lib/node_modules/lodash-es/_isStrictComparable.cjs +1 -0
  204. package/lib/node_modules/lodash-es/_isStrictComparable.mjs +12 -0
  205. package/lib/node_modules/lodash-es/_listCacheClear.cjs +1 -0
  206. package/lib/node_modules/lodash-es/_listCacheClear.mjs +9 -0
  207. package/lib/node_modules/lodash-es/_listCacheDelete.cjs +1 -0
  208. package/lib/node_modules/lodash-es/_listCacheDelete.mjs +13 -0
  209. package/lib/node_modules/lodash-es/_listCacheGet.cjs +1 -0
  210. package/lib/node_modules/lodash-es/_listCacheGet.mjs +13 -0
  211. package/lib/node_modules/lodash-es/_listCacheHas.cjs +1 -0
  212. package/lib/node_modules/lodash-es/_listCacheHas.mjs +12 -0
  213. package/lib/node_modules/lodash-es/_listCacheSet.cjs +1 -0
  214. package/lib/node_modules/lodash-es/_listCacheSet.mjs +13 -0
  215. package/lib/node_modules/lodash-es/_mapCacheClear.cjs +1 -0
  216. package/lib/node_modules/lodash-es/_mapCacheClear.mjs +18 -0
  217. package/lib/node_modules/lodash-es/_mapCacheDelete.cjs +1 -0
  218. package/lib/node_modules/lodash-es/_mapCacheDelete.mjs +13 -0
  219. package/lib/node_modules/lodash-es/_mapCacheGet.cjs +1 -0
  220. package/lib/node_modules/lodash-es/_mapCacheGet.mjs +12 -0
  221. package/lib/node_modules/lodash-es/_mapCacheHas.cjs +1 -0
  222. package/lib/node_modules/lodash-es/_mapCacheHas.mjs +12 -0
  223. package/lib/node_modules/lodash-es/_mapCacheSet.cjs +1 -0
  224. package/lib/node_modules/lodash-es/_mapCacheSet.mjs +13 -0
  225. package/lib/node_modules/lodash-es/_mapToArray.cjs +1 -0
  226. package/lib/node_modules/lodash-es/_mapToArray.mjs +12 -0
  227. package/lib/node_modules/lodash-es/_matchesStrictComparable.cjs +1 -0
  228. package/lib/node_modules/lodash-es/_matchesStrictComparable.mjs +11 -0
  229. package/lib/node_modules/lodash-es/_memoizeCapped.cjs +1 -0
  230. package/lib/node_modules/lodash-es/_memoizeCapped.mjs +15 -0
  231. package/lib/node_modules/lodash-es/_nativeCreate.cjs +1 -0
  232. package/lib/node_modules/lodash-es/_nativeCreate.mjs +9 -0
  233. package/lib/node_modules/lodash-es/_nativeKeys.cjs +1 -0
  234. package/lib/node_modules/lodash-es/_nativeKeys.mjs +9 -0
  235. package/lib/node_modules/lodash-es/_nodeUtil.cjs +1 -0
  236. package/lib/node_modules/lodash-es/_nodeUtil.mjs +13 -0
  237. package/lib/node_modules/lodash-es/_objectToString.cjs +1 -0
  238. package/lib/node_modules/lodash-es/_objectToString.mjs +11 -0
  239. package/lib/node_modules/lodash-es/_overArg.cjs +1 -0
  240. package/lib/node_modules/lodash-es/_overArg.mjs +11 -0
  241. package/lib/node_modules/lodash-es/_root.cjs +1 -0
  242. package/lib/node_modules/lodash-es/_root.mjs +9 -0
  243. package/lib/node_modules/lodash-es/_setCacheAdd.cjs +1 -0
  244. package/lib/node_modules/lodash-es/_setCacheAdd.mjs +11 -0
  245. package/lib/node_modules/lodash-es/_setCacheHas.cjs +1 -0
  246. package/lib/node_modules/lodash-es/_setCacheHas.mjs +9 -0
  247. package/lib/node_modules/lodash-es/_setToArray.cjs +1 -0
  248. package/lib/node_modules/lodash-es/_setToArray.mjs +12 -0
  249. package/lib/node_modules/lodash-es/_stackClear.cjs +1 -0
  250. package/lib/node_modules/lodash-es/_stackClear.mjs +12 -0
  251. package/lib/node_modules/lodash-es/_stackDelete.cjs +1 -0
  252. package/lib/node_modules/lodash-es/_stackDelete.mjs +10 -0
  253. package/lib/node_modules/lodash-es/_stackGet.cjs +1 -0
  254. package/lib/node_modules/lodash-es/_stackGet.mjs +9 -0
  255. package/lib/node_modules/lodash-es/_stackHas.cjs +1 -0
  256. package/lib/node_modules/lodash-es/_stackHas.mjs +9 -0
  257. package/lib/node_modules/lodash-es/_stackSet.cjs +1 -0
  258. package/lib/node_modules/lodash-es/_stackSet.mjs +20 -0
  259. package/lib/node_modules/lodash-es/_stringToArray.cjs +1 -0
  260. package/lib/node_modules/lodash-es/_stringToArray.mjs +14 -0
  261. package/lib/node_modules/lodash-es/_stringToPath.cjs +1 -0
  262. package/lib/node_modules/lodash-es/_stringToPath.mjs +14 -0
  263. package/lib/node_modules/lodash-es/_toKey.cjs +1 -0
  264. package/lib/node_modules/lodash-es/_toKey.mjs +14 -0
  265. package/lib/node_modules/lodash-es/_toSource.cjs +1 -0
  266. package/lib/node_modules/lodash-es/_toSource.mjs +19 -0
  267. package/lib/node_modules/lodash-es/_trimmedEndIndex.cjs +1 -0
  268. package/lib/node_modules/lodash-es/_trimmedEndIndex.mjs +12 -0
  269. package/lib/node_modules/lodash-es/_unicodeToArray.cjs +1 -0
  270. package/lib/node_modules/lodash-es/_unicodeToArray.mjs +21 -0
  271. package/lib/node_modules/lodash-es/capitalize.cjs +1 -0
  272. package/lib/node_modules/lodash-es/capitalize.mjs +13 -0
  273. package/lib/node_modules/lodash-es/concat.cjs +1 -0
  274. package/lib/node_modules/lodash-es/concat.mjs +18 -0
  275. package/lib/node_modules/lodash-es/eq.cjs +1 -0
  276. package/lib/node_modules/lodash-es/eq.mjs +9 -0
  277. package/lib/node_modules/lodash-es/first.cjs +1 -0
  278. package/lib/node_modules/lodash-es/first.mjs +9 -0
  279. package/lib/node_modules/lodash-es/flatten.cjs +1 -0
  280. package/lib/node_modules/lodash-es/flatten.mjs +12 -0
  281. package/lib/node_modules/lodash-es/flattenDeep.cjs +1 -0
  282. package/lib/node_modules/lodash-es/flattenDeep.mjs +12 -0
  283. package/lib/node_modules/lodash-es/flattenDepth.cjs +1 -0
  284. package/lib/node_modules/lodash-es/flattenDepth.mjs +13 -0
  285. package/lib/node_modules/lodash-es/forEach.cjs +1 -0
  286. package/lib/node_modules/lodash-es/forEach.mjs +15 -0
  287. package/lib/node_modules/lodash-es/get.cjs +1 -0
  288. package/lib/node_modules/lodash-es/get.mjs +13 -0
  289. package/lib/node_modules/lodash-es/groupBy.cjs +1 -0
  290. package/lib/node_modules/lodash-es/groupBy.mjs +12 -0
  291. package/lib/node_modules/lodash-es/hasIn.cjs +1 -0
  292. package/lib/node_modules/lodash-es/hasIn.mjs +13 -0
  293. package/lib/node_modules/lodash-es/head.cjs +1 -0
  294. package/lib/node_modules/lodash-es/head.mjs +9 -0
  295. package/lib/node_modules/lodash-es/identity.cjs +1 -0
  296. package/lib/node_modules/lodash-es/identity.mjs +9 -0
  297. package/lib/node_modules/lodash-es/isArguments.cjs +1 -0
  298. package/lib/node_modules/lodash-es/isArguments.mjs +14 -0
  299. package/lib/node_modules/lodash-es/isArray.cjs +1 -0
  300. package/lib/node_modules/lodash-es/isArray.mjs +8 -0
  301. package/lib/node_modules/lodash-es/isArrayLike.cjs +1 -0
  302. package/lib/node_modules/lodash-es/isArrayLike.mjs +13 -0
  303. package/lib/node_modules/lodash-es/isBuffer.cjs +1 -0
  304. package/lib/node_modules/lodash-es/isBuffer.mjs +10 -0
  305. package/lib/node_modules/lodash-es/isEmpty.cjs +1 -0
  306. package/lib/node_modules/lodash-es/isEmpty.mjs +25 -0
  307. package/lib/node_modules/lodash-es/isFunction.cjs +1 -0
  308. package/lib/node_modules/lodash-es/isFunction.mjs +15 -0
  309. package/lib/node_modules/lodash-es/isLength.cjs +1 -0
  310. package/lib/node_modules/lodash-es/isLength.mjs +11 -0
  311. package/lib/node_modules/lodash-es/isNil.cjs +1 -0
  312. package/lib/node_modules/lodash-es/isNil.mjs +9 -0
  313. package/lib/node_modules/lodash-es/isObject.cjs +1 -0
  314. package/lib/node_modules/lodash-es/isObject.mjs +10 -0
  315. package/lib/node_modules/lodash-es/isObjectLike.cjs +1 -0
  316. package/lib/node_modules/lodash-es/isObjectLike.mjs +9 -0
  317. package/lib/node_modules/lodash-es/isSymbol.cjs +1 -0
  318. package/lib/node_modules/lodash-es/isSymbol.mjs +13 -0
  319. package/lib/node_modules/lodash-es/isTypedArray.cjs +1 -0
  320. package/lib/node_modules/lodash-es/isTypedArray.mjs +11 -0
  321. package/lib/node_modules/lodash-es/keys.cjs +1 -0
  322. package/lib/node_modules/lodash-es/keys.mjs +14 -0
  323. package/lib/node_modules/lodash-es/last.cjs +1 -0
  324. package/lib/node_modules/lodash-es/last.mjs +10 -0
  325. package/lib/node_modules/lodash-es/lodash.cjs +1 -0
  326. package/lib/node_modules/lodash-es/lodash.mjs +46 -0
  327. package/lib/node_modules/lodash-es/memoize.cjs +1 -0
  328. package/lib/node_modules/lodash-es/memoize.mjs +19 -0
  329. package/lib/node_modules/lodash-es/nth.cjs +1 -0
  330. package/lib/node_modules/lodash-es/nth.mjs +13 -0
  331. package/lib/node_modules/lodash-es/property.cjs +1 -0
  332. package/lib/node_modules/lodash-es/property.mjs +15 -0
  333. package/lib/node_modules/lodash-es/reduce.cjs +1 -0
  334. package/lib/node_modules/lodash-es/reduce.mjs +17 -0
  335. package/lib/node_modules/lodash-es/stubArray.cjs +1 -0
  336. package/lib/node_modules/lodash-es/stubArray.mjs +9 -0
  337. package/lib/node_modules/lodash-es/stubFalse.cjs +1 -0
  338. package/lib/node_modules/lodash-es/stubFalse.mjs +9 -0
  339. package/lib/node_modules/lodash-es/toFinite.cjs +1 -0
  340. package/lib/node_modules/lodash-es/toFinite.mjs +12 -0
  341. package/lib/node_modules/lodash-es/toInteger.cjs +1 -0
  342. package/lib/node_modules/lodash-es/toInteger.mjs +13 -0
  343. package/lib/node_modules/lodash-es/toNumber.cjs +1 -0
  344. package/lib/node_modules/lodash-es/toNumber.mjs +23 -0
  345. package/lib/node_modules/lodash-es/toString.cjs +1 -0
  346. package/lib/node_modules/lodash-es/toString.mjs +12 -0
  347. package/lib/node_modules/lodash-es/upperFirst.cjs +1 -0
  348. package/lib/node_modules/lodash-es/upperFirst.mjs +9 -0
  349. package/lib/node_modules/parsimmon/build/parsimmon.umd.min.cjs +16 -0
  350. package/lib/node_modules/parsimmon/build/parsimmon.umd.min.mjs +689 -0
  351. package/lib/node_modules/pluralize/pluralize.cjs +1 -0
  352. package/lib/node_modules/pluralize/pluralize.mjs +276 -0
  353. package/lib/packages/dbml-core/node_modules/lodash/lodash.cjs +20 -0
  354. package/lib/packages/dbml-core/node_modules/lodash/lodash.mjs +3306 -0
  355. package/lib/packages/dbml-core/package.json.cjs +1 -0
  356. package/lib/{package.json.mjs → packages/dbml-core/package.json.mjs} +1 -1
  357. package/lib/parse/ANTLR/ASTGeneration/helpers.cjs +1 -1
  358. package/lib/parse/ANTLR/ASTGeneration/helpers.mjs +5 -3
  359. package/lib/parse/ANTLR/ASTGeneration/mssql/MssqlASTGen.cjs +1 -1
  360. package/lib/parse/ANTLR/ASTGeneration/mssql/MssqlASTGen.mjs +149 -143
  361. package/lib/parse/ANTLR/ASTGeneration/mysql/MySQLASTGen.cjs +1 -1
  362. package/lib/parse/ANTLR/ASTGeneration/mysql/MySQLASTGen.mjs +146 -142
  363. package/lib/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.cjs +1 -1
  364. package/lib/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.mjs +184 -181
  365. package/lib/parse/ANTLR/ASTGeneration/postgres/PostgresASTGen.cjs +1 -1
  366. package/lib/parse/ANTLR/ASTGeneration/postgres/PostgresASTGen.mjs +149 -145
  367. package/lib/parse/ANTLR/ASTGeneration/snowflake/SnowflakeASTGen.cjs +1 -1
  368. package/lib/parse/ANTLR/ASTGeneration/snowflake/SnowflakeASTGen.mjs +89 -85
  369. package/lib/parse/deprecated/dbmlParser.cjs +3 -3
  370. package/lib/parse/deprecated/dbmlParser.mjs +27 -25
  371. package/lib/parse/deprecated/mssql/base_parsers.cjs +1 -1
  372. package/lib/parse/deprecated/mssql/base_parsers.mjs +38 -38
  373. package/lib/parse/deprecated/mssql/column_definition/actions.cjs +1 -1
  374. package/lib/parse/deprecated/mssql/column_definition/actions.mjs +9 -6
  375. package/lib/parse/deprecated/mssql/column_definition/index.cjs +1 -1
  376. package/lib/parse/deprecated/mssql/column_definition/index.mjs +28 -28
  377. package/lib/parse/deprecated/mssql/constraint_definition/index.cjs +1 -1
  378. package/lib/parse/deprecated/mssql/constraint_definition/index.mjs +24 -24
  379. package/lib/parse/deprecated/mssql/expression.cjs +1 -1
  380. package/lib/parse/deprecated/mssql/expression.mjs +28 -27
  381. package/lib/parse/deprecated/mssql/fk_definition/index.cjs +1 -1
  382. package/lib/parse/deprecated/mssql/fk_definition/index.mjs +20 -20
  383. package/lib/parse/deprecated/mssql/index_definition/index.cjs +1 -1
  384. package/lib/parse/deprecated/mssql/index_definition/index.mjs +21 -21
  385. package/lib/parse/deprecated/mssql/keyword_utils.cjs +1 -1
  386. package/lib/parse/deprecated/mssql/keyword_utils.mjs +13 -13
  387. package/lib/parse/deprecated/mssql/statements/actions.cjs +1 -1
  388. package/lib/parse/deprecated/mssql/statements/actions.mjs +36 -33
  389. package/lib/parse/deprecated/mssql/statements/index.cjs +1 -1
  390. package/lib/parse/deprecated/mssql/statements/index.mjs +28 -28
  391. package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/add/index.cjs +1 -1
  392. package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/add/index.mjs +24 -24
  393. package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/index.cjs +1 -1
  394. package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/index.mjs +16 -16
  395. package/lib/parse/deprecated/mssql/statements/statement_types/comments/index.cjs +1 -1
  396. package/lib/parse/deprecated/mssql/statements/statement_types/comments/index.mjs +31 -31
  397. package/lib/parse/deprecated/mssql/statements/statement_types/create_index/index.cjs +1 -1
  398. package/lib/parse/deprecated/mssql/statements/statement_types/create_index/index.mjs +20 -20
  399. package/lib/parse/deprecated/mssql/statements/statement_types/create_table/index.cjs +1 -1
  400. package/lib/parse/deprecated/mssql/statements/statement_types/create_table/index.mjs +21 -21
  401. package/lib/parse/deprecated/mssql/utils.cjs +1 -1
  402. package/lib/parse/deprecated/mssql/utils.mjs +21 -20
  403. package/lib/parse/deprecated/mssql/whitespaces.cjs +1 -1
  404. package/lib/parse/deprecated/mssql/whitespaces.mjs +11 -11
  405. package/lib/parse/deprecated/mysqlParser.cjs +6 -6
  406. package/lib/parse/deprecated/mysqlParser.mjs +20 -18
  407. package/lib/parse/deprecated/postgresParser.cjs +2 -2
  408. package/lib/parse/deprecated/postgresParser.mjs +25 -23
  409. package/lib/parse/deprecated/schemarbParser.cjs +10 -10
  410. package/lib/parse/deprecated/schemarbParser.mjs +313 -311
  411. package/lib/utils/version.cjs +1 -1
  412. package/lib/utils/version.mjs +1 -1
  413. package/package.json +2 -2
  414. package/lib/package.json.cjs +0 -1
@@ -1,19 +1,19 @@
1
- require("../_virtual/_rolldown/runtime.cjs"),require("../model_structure/config.cjs");const e=require("./utils.cjs");let t=require("lodash-es"),n=require("@dbml/parse");var r=class r{static hasWhiteSpace(e){return/\s/g.test(e)}static hasSquareBracket(e){return/\[|\]/.test(e)}static isExpression(e){return/\s*(\*|\+|-|\([A-Za-z0-9_]+\)|\(\))/g.test(e)}static escapeNote(e){if(e===null)return``;let t=e.replaceAll(`\\`,`\\\\`);return t.match(/[\n\r']/)?(t=t.replaceAll(`'`,`\\'`),t=t.replaceAll(`\r
1
+ require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/lodash-es/groupBy.cjs"),t=require("../node_modules/lodash-es/isEmpty.cjs"),n=require("../node_modules/lodash-es/reduce.cjs"),r=require("../node_modules/lodash-es/lodash.cjs");require("../model_structure/config.cjs");const i=require("./utils.cjs");let a=require("@dbml/parse");r.init_lodash();var o=class r{static hasWhiteSpace(e){return/\s/g.test(e)}static hasSquareBracket(e){return/\[|\]/.test(e)}static isExpression(e){return/\s*(\*|\+|-|\([A-Za-z0-9_]+\)|\(\))/g.test(e)}static escapeNote(e){if(e===null)return``;let t=e.replaceAll(`\\`,`\\\\`);return t.match(/[\n\r']/)?(t=t.replaceAll(`'`,`\\'`),t=t.replaceAll(`\r
2
2
  `,`
3
- `),`'''${t}'''`):`'${t}'`}static exportEnums(t,n){let i=t.map(t=>{let i=n.enums[t],a=n.schemas[i.schemaId];return`Enum ${e.shouldPrintSchema(a,n)?`"${a.name}".`:``}"${i.name}" {\n${i.valueIds.map(e=>` "${n.enumValues[e].name}"${n.enumValues[e].note?` [note: ${r.escapeNote(n.enumValues[e].note)}]`:``}`).join(`
4
- `)}\n}\n`});return i.length?i.join(`
3
+ `),`'''${t}'''`):`'${t}'`}static exportEnums(e,t){let n=e.map(e=>{let n=t.enums[e],a=t.schemas[n.schemaId];return`Enum ${i.shouldPrintSchema(a,t)?`"${a.name}".`:``}"${n.name}" {\n${n.valueIds.map(e=>` "${t.enumValues[e].name}"${t.enumValues[e].note?` [note: ${r.escapeNote(t.enumValues[e].note)}]`:``}`).join(`
4
+ `)}\n}\n`});return n.length?n.join(`
5
5
  `):``}static getFieldLines(e,t){return t.tables[e].fieldIds.map(e=>{let n=t.fields[e],i=``;n.type.schemaName&&n.type.schemaName!==`public`&&(i=r.hasWhiteSpace(n.type.schemaName)?`"${n.type.schemaName}".`:`${n.type.schemaName}.`);let a=`"${n.name}" ${i}${r.hasWhiteSpace(n.type.type_name)||r.hasSquareBracket(n.type.type_name)?`"${n.type.type_name}"`:n.type.type_name}`,o=[];if(n.unique&&o.push(`unique`),n.pk&&o.push(`pk`),n.not_null&&o.push(`not null`),n.increment&&o.push(`increment`),n.checkIds&&o.push(...n.checkIds.map(e=>`check: \`${t.checks[e].expression}\``)),n.dbdefault&&!(n.dbdefault.type===`boolean`&&(n.dbdefault.value===null||typeof n.dbdefault.value==`string`&&n.dbdefault.value.toLowerCase()===`null`))){let e=`default: `;switch(n.dbdefault.type){case`boolean`:case`number`:e+=`${n.dbdefault.value}`;break;case`string`:{let t=String(n.dbdefault.value),r=t.includes(`
6
- `)?`'''`:`'`;e+=`${r}${t}${r}`;break}case`expression`:e+=`\`${n.dbdefault.value}\``;break;default:e+=`\`${n.dbdefault.value}\``;break}o.push(e)}return n.note&&o.push(`note: ${r.escapeNote(n.note)}`),o.length>0&&(a+=` [${o.join(`, `)}]`),a})}static getIndexLines(e,t){return t.tables[e].indexIds.map(e=>{let n=``,r=t.indexes[e];if(r.columnIds.length>1)n=`(${r.columnIds.map(e=>{let n=t.indexColumns[e];return n.type===`expression`?`\`${n.value}\``:n.value}).join(`, `)})`;else if(r.columnIds.length===1){let e=t.indexColumns[r.columnIds[0]];n=e.type===`expression`?`\`${e.value}\``:e.value}let i=[];return r.pk&&i.push(`pk`),r.type&&i.push(`type: ${r.type.toLowerCase()}`),r.unique&&i.push(`unique`),r.name&&i.push(`name: "${r.name}"`),i.length>1?n+=` [${i.join(`, `)}]`:i.length===1&&(n+=` [${i[0]}]`),n})}static getCheckLines(e,t){return t.tables[e].checkIds.map(e=>{let n=``,{expression:r,name:i}=t.checks[e];return n+=`\`${r}\``,i&&(n+=` [name: '${i}']`),n})}static getTableContentArr(e,t){return e.map(e=>({tableId:e,fieldContents:r.getFieldLines(e,t),checkContents:r.getCheckLines(e,t),indexContents:r.getIndexLines(e,t)}))}static getTableSettings(e){let t=``;return e.headerColor&&(t+=`headerColor: ${e.headerColor}, `),t.endsWith(`, `)&&(t=t.replace(/,\s$/,``)),t?` [${t}]`:``}static exportTables(i,a){let o=r.getTableContentArr(i,a).map(i=>{let o=a.tables[i.tableId],s=a.schemas[o.schemaId],c=r.getTableSettings(o),l=`"${o.name}"`;e.shouldPrintSchema(s,a)&&(l=`"${s.name}"."${o.name}"`);let u=o.alias?` as ${(0,n.addDoubleQuoteIfNeeded)(o.alias)}`:``,d=i.fieldContents.map(e=>` ${e}\n`).join(``),f=``;(0,t.isEmpty)(i.checkContents)||(f=`\n Checks {\n${i.checkContents.map(e=>` ${e}\n`).join(``)} }\n`);let p=``;(0,t.isEmpty)(i.indexContents)||(p=`\n Indexes {\n${i.indexContents.map(e=>` ${e}\n`).join(``)} }\n`);let m=o.note?` Note: ${r.escapeNote(o.note)}\n`:``;return`Table ${l}${u}${c} {\n${d}${f}${p}${m}}\n`});return o.length?o.join(`
7
- `):``}static buildFieldName(e,t){let n=e.map(e=>`"${t.fields[e].name}"`).join(`, `);return e.length===1?n:`(${n})`}static exportRefs(t,i){let a=t.map(t=>{let a=i.refs[t],o=a.endpointIds.findIndex(e=>(0,n.parseCardinality)(i.endpoints[e].relation).max===1),s=o===-1?0:o,c=i.endpoints[a.endpointIds[s]],l=i.endpoints[a.endpointIds[1-s]],u=(0,n.getRelationshipOp)(c.relation,l.relation),d=i.fields[c.fieldIds[0]],f=i.tables[d.tableId],p=i.schemas[f.schemaId],m=r.buildFieldName(c.fieldIds,i),h=`Ref`;a.name&&(h+=` ${e.shouldPrintSchema(i.schemas[a.schemaId],i)?`"${i.schemas[a.schemaId].name}".`:``}"${a.name}"`),h+=`:`,h+=`${e.shouldPrintSchema(p,i)?`"${p.name}".`:``}"${f.name}".${m} `;let g=i.fields[l.fieldIds[0]],_=i.tables[g.tableId],v=i.schemas[_.schemaId],y=r.buildFieldName(l.fieldIds,i);h+=`${u} `,h+=`${e.shouldPrintSchema(v,i)?`"${v.name}".`:``}"${_.name}".${y}`;let b=[];return a.onUpdate&&b.push(`update: ${a.onUpdate.toLowerCase()}`),a.onDelete&&b.push(`delete: ${a.onDelete.toLowerCase()}`),a.inactive&&b.push(`inactive`),b.length>0&&(h+=` [${b.join(`, `)}]`),h+=`
8
- `,h});return a.length?a.join(`
9
- `):``}static getTableGroupSettings(e){let t=[];return e.color&&t.push(`color: ${e.color}`),t.length?` [${t.join(`, `)}]`:``}static formatDepEndpoint(e){let t=e.schemaName?`"${e.schemaName}".`:``,n=`"${e.tableName}"`;return!e.fieldNames||e.fieldNames.length===0?`${t}${n}`:`${t}${n}.${e.fieldNames.length===1?`"${e.fieldNames[0]}"`:`(${e.fieldNames.map(e=>`"${e}"`).join(`, `)})`}`}static formatDepCustomValue(e){return typeof e==`string`?`'${(0,n.escapeString)(e)}'`:e==null?`null`:String(e)}static exportDeps(e,t){let n=e.map(e=>{let n=t.deps[e],i=n.edgeIds.map(e=>t.depEdges[e]),a=!!n.note,o=n.metadata?Object.entries(n.metadata):[],s=a||o.length>0;if(i.length===1&&!s)return`Dep: ${r.formatDepEndpoint(i[0].upstream)} -> ${r.formatDepEndpoint(i[0].downstream)}\n`;let c=`Dep {
6
+ `)?`'''`:`'`;e+=`${r}${t}${r}`;break}case`expression`:e+=`\`${n.dbdefault.value}\``;break;default:e+=`\`${n.dbdefault.value}\``;break}o.push(e)}return n.note&&o.push(`note: ${r.escapeNote(n.note)}`),o.length>0&&(a+=` [${o.join(`, `)}]`),a})}static getIndexLines(e,t){return t.tables[e].indexIds.map(e=>{let n=``,r=t.indexes[e];if(r.columnIds.length>1)n=`(${r.columnIds.map(e=>{let n=t.indexColumns[e];return n.type===`expression`?`\`${n.value}\``:n.value}).join(`, `)})`;else if(r.columnIds.length===1){let e=t.indexColumns[r.columnIds[0]];n=e.type===`expression`?`\`${e.value}\``:e.value}let i=[];return r.pk&&i.push(`pk`),r.type&&i.push(`type: ${r.type.toLowerCase()}`),r.unique&&i.push(`unique`),r.name&&i.push(`name: "${r.name}"`),i.length>1?n+=` [${i.join(`, `)}]`:i.length===1&&(n+=` [${i[0]}]`),n})}static getCheckLines(e,t){return t.tables[e].checkIds.map(e=>{let n=``,{expression:r,name:i}=t.checks[e];return n+=`\`${r}\``,i&&(n+=` [name: '${i}']`),n})}static getTableContentArr(e,t){return e.map(e=>({tableId:e,fieldContents:r.getFieldLines(e,t),checkContents:r.getCheckLines(e,t),indexContents:r.getIndexLines(e,t)}))}static getTableSettings(e){let t=``;return e.headerColor&&(t+=`headerColor: ${e.headerColor}, `),t.endsWith(`, `)&&(t=t.replace(/,\s$/,``)),t?` [${t}]`:``}static exportTables(e,n){let o=r.getTableContentArr(e,n).map(e=>{let o=n.tables[e.tableId],s=n.schemas[o.schemaId],c=r.getTableSettings(o),l=`"${o.name}"`;i.shouldPrintSchema(s,n)&&(l=`"${s.name}"."${o.name}"`);let u=o.alias?` as ${(0,a.addDoubleQuoteIfNeeded)(o.alias)}`:``,d=e.fieldContents.map(e=>` ${e}\n`).join(``),f=``;t.default(e.checkContents)||(f=`\n Checks {\n${e.checkContents.map(e=>` ${e}\n`).join(``)} }\n`);let p=``;t.default(e.indexContents)||(p=`\n Indexes {\n${e.indexContents.map(e=>` ${e}\n`).join(``)} }\n`);let m=o.note?` Note: ${r.escapeNote(o.note)}\n`:``;return`Table ${l}${u}${c} {\n${d}${f}${p}${m}}\n`});return o.length?o.join(`
7
+ `):``}static buildFieldName(e,t){let n=e.map(e=>`"${t.fields[e].name}"`).join(`, `);return e.length===1?n:`(${n})`}static exportRefs(e,t){let n=e.map(e=>{let n=t.refs[e],o=n.endpointIds.findIndex(e=>(0,a.parseCardinality)(t.endpoints[e].relation).max===1),s=o===-1?0:o,c=t.endpoints[n.endpointIds[s]],l=t.endpoints[n.endpointIds[1-s]],u=(0,a.getRelationshipOp)(c.relation,l.relation),d=t.fields[c.fieldIds[0]],f=t.tables[d.tableId],p=t.schemas[f.schemaId],m=r.buildFieldName(c.fieldIds,t),h=`Ref`;n.name&&(h+=` ${i.shouldPrintSchema(t.schemas[n.schemaId],t)?`"${t.schemas[n.schemaId].name}".`:``}"${n.name}"`),h+=`:`,h+=`${i.shouldPrintSchema(p,t)?`"${p.name}".`:``}"${f.name}".${m} `;let g=t.fields[l.fieldIds[0]],_=t.tables[g.tableId],v=t.schemas[_.schemaId],y=r.buildFieldName(l.fieldIds,t);h+=`${u} `,h+=`${i.shouldPrintSchema(v,t)?`"${v.name}".`:``}"${_.name}".${y}`;let b=[];return n.onUpdate&&b.push(`update: ${n.onUpdate.toLowerCase()}`),n.onDelete&&b.push(`delete: ${n.onDelete.toLowerCase()}`),n.inactive&&b.push(`inactive`),b.length>0&&(h+=` [${b.join(`, `)}]`),h+=`
8
+ `,h});return n.length?n.join(`
9
+ `):``}static getTableGroupSettings(e){let t=[];return e.color&&t.push(`color: ${e.color}`),t.length?` [${t.join(`, `)}]`:``}static formatDepEndpoint(e){let t=e.schemaName?`"${e.schemaName}".`:``,n=`"${e.tableName}"`;return!e.fieldNames||e.fieldNames.length===0?`${t}${n}`:`${t}${n}.${e.fieldNames.length===1?`"${e.fieldNames[0]}"`:`(${e.fieldNames.map(e=>`"${e}"`).join(`, `)})`}`}static formatDepCustomValue(e){return typeof e==`string`?`'${(0,a.escapeString)(e)}'`:e==null?`null`:String(e)}static exportDeps(e,t){let n=e.map(e=>{let n=t.deps[e],i=n.edgeIds.map(e=>t.depEdges[e]),a=!!n.note,o=n.metadata?Object.entries(n.metadata):[],s=a||o.length>0;if(i.length===1&&!s)return`Dep: ${r.formatDepEndpoint(i[0].upstream)} -> ${r.formatDepEndpoint(i[0].downstream)}\n`;let c=`Dep {
10
10
  `;return i.forEach(e=>{c+=` ${r.formatDepEndpoint(e.upstream)} -> ${r.formatDepEndpoint(e.downstream)}\n`}),s&&(c+=`
11
11
  `,a&&(c+=` note: ${r.escapeNote(n.note)}\n`),o.forEach(([e,t])=>{c+=` ${e}: ${r.formatDepCustomValue(t)}\n`})),c+=`}
12
12
  `,c});return n.length?n.join(`
13
- `):``}static exportTableGroups(t,n){let i=t.map(t=>{let i=n.tableGroups[t],a=r.getTableGroupSettings(i),o=i.note?` Note: ${r.escapeNote(i.note)}\n`:``;return`TableGroup ${`"${i.name}"`}${a} {\n${i.tableIds.reduce((t,r)=>{let i=n.tables[r],a=n.schemas[i.schemaId];return`${t}${` ${e.shouldPrintSchema(a,n)?`"${a.name}".`:``}"${i.name}"`}\n`},``)}${o}}\n`});return i.length?i.join(`
14
- `):``}static getStickyNoteSettings(e){let t=``;return e.color&&(t+=`color: ${e.color}`),t?` [${t}]`:``}static exportStickyNotes(e){return(0,t.reduce)(e.notes,(e,t)=>{let n=` ${r.escapeNote(t.content)}`,i=r.getStickyNoteSettings(t),a=`Note ${t.name}${i} {\n${n}\n}\n`;return e?`${e}\n${a}`:a},``)}static exportRecords(e){let{records:r}=e;if(!r||(0,t.isEmpty)(r))return``;let i=(0,t.groupBy)(Object.values(r),e=>`${e.schemaName||``}.${e.tableName}`);return Object.values(i).map(e=>{let{schemaName:t,tableName:r}=e[0],i=t?(0,n.normalizeQualifiedName)(t,r):(0,n.addDoubleQuoteIfNeeded)(r),a=[...new Set(e.flatMap(e=>e.columns))],o=a.map(n.addDoubleQuoteIfNeeded).join(`, `),s=e.flatMap(e=>{let t=a.map(t=>e.columns.indexOf(t));return e.values.map(e=>t.map(t=>t===-1?{value:null,type:`expression`}:e[t]))}).map(e=>` ${e.map(n.formatRecordValue).join(`, `)}`);return`Records ${i}(${o})${e.some(e=>e.example)?` [example]`:``} {\n${s.join(`
13
+ `):``}static exportTableGroups(e,t){let n=e.map(e=>{let n=t.tableGroups[e],a=r.getTableGroupSettings(n),o=n.note?` Note: ${r.escapeNote(n.note)}\n`:``;return`TableGroup ${`"${n.name}"`}${a} {\n${n.tableIds.reduce((e,n)=>{let r=t.tables[n],a=t.schemas[r.schemaId];return`${e}${` ${i.shouldPrintSchema(a,t)?`"${a.name}".`:``}"${r.name}"`}\n`},``)}${o}}\n`});return n.length?n.join(`
14
+ `):``}static getStickyNoteSettings(e){let t=``;return e.color&&(t+=`color: ${e.color}`),t?` [${t}]`:``}static exportStickyNotes(e){return n.default(e.notes,(e,t)=>{let n=` ${r.escapeNote(t.content)}`,i=r.getStickyNoteSettings(t),a=`Note ${t.name}${i} {\n${n}\n}\n`;return e?`${e}\n${a}`:a},``)}static exportRecords(n){let{records:r}=n;if(!r||t.default(r))return``;let i=e.default(Object.values(r),e=>`${e.schemaName||``}.${e.tableName}`);return Object.values(i).map(e=>{let{schemaName:t,tableName:n}=e[0],r=t?(0,a.normalizeQualifiedName)(t,n):(0,a.addDoubleQuoteIfNeeded)(n),i=[...new Set(e.flatMap(e=>e.columns))],o=i.map(a.addDoubleQuoteIfNeeded).join(`, `),s=e.flatMap(e=>{let t=i.map(t=>e.columns.indexOf(t));return e.values.map(e=>t.map(t=>t===-1?{value:null,type:`expression`}:e[t]))}).map(e=>` ${e.map(a.formatRecordValue).join(`, `)}`);return`Records ${r}(${o})${e.some(e=>e.example)?` [example]`:``} {\n${s.join(`
15
15
  `)}\n}\n`}).join(`
16
- `)}static exportMetadata(n){let i=[],a=n.database[1],o=(e,t)=>`Metadata ${e} {\n${Object.entries(t).map(([e,t])=>` ${e}: ${r.escapeNote(t)}`).join(`
17
- `)}\n}\n`;return a.schemaIds.forEach(r=>{let{tableIds:a,tableGroupIds:s}=n.schemas[r];a.forEach(r=>{let a=n.tables[r],s=n.schemas[a.schemaId],c=e.shouldPrintSchema(s,n)?`"${s.name}".`:``;(0,t.isEmpty)(a.metadata)||i.push(o(`Table ${c}"${a.name}"`,a.metadata)),a.fieldIds.map(e=>n.fields[e]).filter(e=>!(0,t.isEmpty)(e.metadata)).forEach(e=>i.push(o(`Column ${c}"${a.name}"."${e.name}"`,e.metadata)))}),s.map(e=>n.tableGroups[e]).filter(e=>!(0,t.isEmpty)(e.metadata)).forEach(e=>i.push(o(`TableGroup "${e.name}"`,e.metadata)))}),Object.values(n.notes).filter(e=>!(0,t.isEmpty)(e.metadata)).forEach(e=>i.push(o(`Note ${e.name}`,e.metadata))),i.join(`
18
- `)}static export(e,n){let i=[],a=e.database[1],{includeRecords:o}=n;a.schemaIds.forEach(n=>{let{enumIds:a,tableIds:o,tableGroupIds:s,refIds:c,depIds:l}=e.schemas[n];(0,t.isEmpty)(a)||i.push(r.exportEnums(a,e)),(0,t.isEmpty)(o)||i.push(r.exportTables(o,e)),(0,t.isEmpty)(s)||i.push(r.exportTableGroups(s,e)),(0,t.isEmpty)(c)||i.push(r.exportRefs(c,e)),(0,t.isEmpty)(l)||i.push(r.exportDeps(l,e))}),(0,t.isEmpty)(e.notes)||i.push(r.exportStickyNotes(e)),o&&!(0,t.isEmpty)(e.records)&&i.push(r.exportRecords(e));let s=r.exportMetadata(e);return s&&i.push(s),i.join(`
19
- `)}};exports.default=r;
16
+ `)}static exportMetadata(e){let n=[],a=e.database[1],o=(e,t)=>`Metadata ${e} {\n${Object.entries(t).map(([e,t])=>` ${e}: ${r.escapeNote(t)}`).join(`
17
+ `)}\n}\n`;return a.schemaIds.forEach(r=>{let{tableIds:a,tableGroupIds:s}=e.schemas[r];a.forEach(r=>{let a=e.tables[r],s=e.schemas[a.schemaId],c=i.shouldPrintSchema(s,e)?`"${s.name}".`:``;t.default(a.metadata)||n.push(o(`Table ${c}"${a.name}"`,a.metadata)),a.fieldIds.map(t=>e.fields[t]).filter(e=>!t.default(e.metadata)).forEach(e=>n.push(o(`Column ${c}"${a.name}"."${e.name}"`,e.metadata)))}),s.map(t=>e.tableGroups[t]).filter(e=>!t.default(e.metadata)).forEach(e=>n.push(o(`TableGroup "${e.name}"`,e.metadata)))}),Object.values(e.notes).filter(e=>!t.default(e.metadata)).forEach(e=>n.push(o(`Note ${e.name}`,e.metadata))),n.join(`
18
+ `)}static export(e,n){let i=[],a=e.database[1],{includeRecords:o}=n;a.schemaIds.forEach(n=>{let{enumIds:a,tableIds:o,tableGroupIds:s,refIds:c,depIds:l}=e.schemas[n];t.default(a)||i.push(r.exportEnums(a,e)),t.default(o)||i.push(r.exportTables(o,e)),t.default(s)||i.push(r.exportTableGroups(s,e)),t.default(c)||i.push(r.exportRefs(c,e)),t.default(l)||i.push(r.exportDeps(l,e))}),t.default(e.notes)||i.push(r.exportStickyNotes(e)),o&&!t.default(e.records)&&i.push(r.exportRecords(e));let s=r.exportMetadata(e);return s&&i.push(s),i.join(`
19
+ `)}};exports.default=o;
@@ -1,9 +1,13 @@
1
+ import e from "../node_modules/lodash-es/groupBy.mjs";
2
+ import t from "../node_modules/lodash-es/isEmpty.mjs";
3
+ import n from "../node_modules/lodash-es/reduce.mjs";
4
+ import { init_lodash as r } from "../node_modules/lodash-es/lodash.mjs";
1
5
  import "../model_structure/config.mjs";
2
- import { shouldPrintSchema as e } from "./utils.mjs";
3
- import { groupBy as t, isEmpty as n, reduce as r } from "lodash-es";
4
- import { addDoubleQuoteIfNeeded as i, escapeString as a, formatRecordValue as o, getRelationshipOp as s, normalizeQualifiedName as c, parseCardinality as l } from "@dbml/parse";
6
+ import { shouldPrintSchema as i } from "./utils.mjs";
7
+ import { addDoubleQuoteIfNeeded as a, escapeString as o, formatRecordValue as s, getRelationshipOp as c, normalizeQualifiedName as l, parseCardinality as u } from "@dbml/parse";
5
8
  //#region src/export/DbmlExporter.ts
6
- var u = class u {
9
+ r();
10
+ var d = class r {
7
11
  static hasWhiteSpace(e) {
8
12
  return /\s/g.test(e);
9
13
  }
@@ -18,19 +22,19 @@ var u = class u {
18
22
  let t = e.replaceAll("\\", "\\\\");
19
23
  return t.match(/[\n\r']/) ? (t = t.replaceAll("'", "\\'"), t = t.replaceAll("\r\n", "\n"), `'''${t}'''`) : `'${t}'`;
20
24
  }
21
- static exportEnums(t, n) {
22
- let r = t.map((t) => {
23
- let r = n.enums[t], i = n.schemas[r.schemaId];
24
- return `Enum ${e(i, n) ? `"${i.name}".` : ""}"${r.name}" {\n${r.valueIds.map((e) => ` "${n.enumValues[e].name}"${n.enumValues[e].note ? ` [note: ${u.escapeNote(n.enumValues[e].note)}]` : ""}`).join("\n")}\n}\n`;
25
+ static exportEnums(e, t) {
26
+ let n = e.map((e) => {
27
+ let n = t.enums[e], a = t.schemas[n.schemaId];
28
+ return `Enum ${i(a, t) ? `"${a.name}".` : ""}"${n.name}" {\n${n.valueIds.map((e) => ` "${t.enumValues[e].name}"${t.enumValues[e].note ? ` [note: ${r.escapeNote(t.enumValues[e].note)}]` : ""}`).join("\n")}\n}\n`;
25
29
  });
26
- return r.length ? r.join("\n") : "";
30
+ return n.length ? n.join("\n") : "";
27
31
  }
28
32
  static getFieldLines(e, t) {
29
33
  return t.tables[e].fieldIds.map((e) => {
30
- let n = t.fields[e], r = "";
31
- n.type.schemaName && n.type.schemaName !== "public" && (r = u.hasWhiteSpace(n.type.schemaName) ? `"${n.type.schemaName}".` : `${n.type.schemaName}.`);
32
- let i = `"${n.name}" ${r}${u.hasWhiteSpace(n.type.type_name) || u.hasSquareBracket(n.type.type_name) ? `"${n.type.type_name}"` : n.type.type_name}`, a = [];
33
- if (n.unique && a.push("unique"), n.pk && a.push("pk"), n.not_null && a.push("not null"), n.increment && a.push("increment"), n.checkIds && a.push(...n.checkIds.map((e) => `check: \`${t.checks[e].expression}\``)), n.dbdefault && !(n.dbdefault.type === "boolean" && (n.dbdefault.value === null || typeof n.dbdefault.value == "string" && n.dbdefault.value.toLowerCase() === "null"))) {
34
+ let n = t.fields[e], i = "";
35
+ n.type.schemaName && n.type.schemaName !== "public" && (i = r.hasWhiteSpace(n.type.schemaName) ? `"${n.type.schemaName}".` : `${n.type.schemaName}.`);
36
+ let a = `"${n.name}" ${i}${r.hasWhiteSpace(n.type.type_name) || r.hasSquareBracket(n.type.type_name) ? `"${n.type.type_name}"` : n.type.type_name}`, o = [];
37
+ if (n.unique && o.push("unique"), n.pk && o.push("pk"), n.not_null && o.push("not null"), n.increment && o.push("increment"), n.checkIds && o.push(...n.checkIds.map((e) => `check: \`${t.checks[e].expression}\``)), n.dbdefault && !(n.dbdefault.type === "boolean" && (n.dbdefault.value === null || typeof n.dbdefault.value == "string" && n.dbdefault.value.toLowerCase() === "null"))) {
34
38
  let e = "default: ";
35
39
  switch (n.dbdefault.type) {
36
40
  case "boolean":
@@ -49,9 +53,9 @@ var u = class u {
49
53
  e += `\`${n.dbdefault.value}\``;
50
54
  break;
51
55
  }
52
- a.push(e);
56
+ o.push(e);
53
57
  }
54
- return n.note && a.push(`note: ${u.escapeNote(n.note)}`), a.length > 0 && (i += ` [${a.join(", ")}]`), i;
58
+ return n.note && o.push(`note: ${r.escapeNote(n.note)}`), o.length > 0 && (a += ` [${o.join(", ")}]`), a;
55
59
  });
56
60
  }
57
61
  static getIndexLines(e, t) {
@@ -78,42 +82,42 @@ var u = class u {
78
82
  static getTableContentArr(e, t) {
79
83
  return e.map((e) => ({
80
84
  tableId: e,
81
- fieldContents: u.getFieldLines(e, t),
82
- checkContents: u.getCheckLines(e, t),
83
- indexContents: u.getIndexLines(e, t)
85
+ fieldContents: r.getFieldLines(e, t),
86
+ checkContents: r.getCheckLines(e, t),
87
+ indexContents: r.getIndexLines(e, t)
84
88
  }));
85
89
  }
86
90
  static getTableSettings(e) {
87
91
  let t = "";
88
92
  return e.headerColor && (t += `headerColor: ${e.headerColor}, `), t.endsWith(", ") && (t = t.replace(/,\s$/, "")), t ? ` [${t}]` : "";
89
93
  }
90
- static exportTables(t, r) {
91
- let a = u.getTableContentArr(t, r).map((t) => {
92
- let a = r.tables[t.tableId], o = r.schemas[a.schemaId], s = u.getTableSettings(a), c = `"${a.name}"`;
93
- e(o, r) && (c = `"${o.name}"."${a.name}"`);
94
- let l = a.alias ? ` as ${i(a.alias)}` : "", d = t.fieldContents.map((e) => ` ${e}\n`).join(""), f = "";
95
- n(t.checkContents) || (f = `\n Checks {\n${t.checkContents.map((e) => ` ${e}\n`).join("")} }\n`);
94
+ static exportTables(e, n) {
95
+ let o = r.getTableContentArr(e, n).map((e) => {
96
+ let o = n.tables[e.tableId], s = n.schemas[o.schemaId], c = r.getTableSettings(o), l = `"${o.name}"`;
97
+ i(s, n) && (l = `"${s.name}"."${o.name}"`);
98
+ let u = o.alias ? ` as ${a(o.alias)}` : "", d = e.fieldContents.map((e) => ` ${e}\n`).join(""), f = "";
99
+ t(e.checkContents) || (f = `\n Checks {\n${e.checkContents.map((e) => ` ${e}\n`).join("")} }\n`);
96
100
  let p = "";
97
- n(t.indexContents) || (p = `\n Indexes {\n${t.indexContents.map((e) => ` ${e}\n`).join("")} }\n`);
98
- let m = a.note ? ` Note: ${u.escapeNote(a.note)}\n` : "";
99
- return `Table ${c}${l}${s} {\n${d}${f}${p}${m}}\n`;
101
+ t(e.indexContents) || (p = `\n Indexes {\n${e.indexContents.map((e) => ` ${e}\n`).join("")} }\n`);
102
+ let m = o.note ? ` Note: ${r.escapeNote(o.note)}\n` : "";
103
+ return `Table ${l}${u}${c} {\n${d}${f}${p}${m}}\n`;
100
104
  });
101
- return a.length ? a.join("\n") : "";
105
+ return o.length ? o.join("\n") : "";
102
106
  }
103
107
  static buildFieldName(e, t) {
104
108
  let n = e.map((e) => `"${t.fields[e].name}"`).join(", ");
105
109
  return e.length === 1 ? n : `(${n})`;
106
110
  }
107
- static exportRefs(t, n) {
108
- let r = t.map((t) => {
109
- let r = n.refs[t], i = r.endpointIds.findIndex((e) => l(n.endpoints[e].relation).max === 1), a = i === -1 ? 0 : i, o = n.endpoints[r.endpointIds[a]], c = n.endpoints[r.endpointIds[1 - a]], d = s(o.relation, c.relation), f = n.fields[o.fieldIds[0]], p = n.tables[f.tableId], m = n.schemas[p.schemaId], h = u.buildFieldName(o.fieldIds, n), g = "Ref";
110
- r.name && (g += ` ${e(n.schemas[r.schemaId], n) ? `"${n.schemas[r.schemaId].name}".` : ""}"${r.name}"`), g += ":", g += `${e(m, n) ? `"${m.name}".` : ""}"${p.name}".${h} `;
111
- let _ = n.fields[c.fieldIds[0]], v = n.tables[_.tableId], y = n.schemas[v.schemaId], b = u.buildFieldName(c.fieldIds, n);
112
- g += `${d} `, g += `${e(y, n) ? `"${y.name}".` : ""}"${v.name}".${b}`;
111
+ static exportRefs(e, t) {
112
+ let n = e.map((e) => {
113
+ let n = t.refs[e], a = n.endpointIds.findIndex((e) => u(t.endpoints[e].relation).max === 1), o = a === -1 ? 0 : a, s = t.endpoints[n.endpointIds[o]], l = t.endpoints[n.endpointIds[1 - o]], d = c(s.relation, l.relation), f = t.fields[s.fieldIds[0]], p = t.tables[f.tableId], m = t.schemas[p.schemaId], h = r.buildFieldName(s.fieldIds, t), g = "Ref";
114
+ n.name && (g += ` ${i(t.schemas[n.schemaId], t) ? `"${t.schemas[n.schemaId].name}".` : ""}"${n.name}"`), g += ":", g += `${i(m, t) ? `"${m.name}".` : ""}"${p.name}".${h} `;
115
+ let _ = t.fields[l.fieldIds[0]], v = t.tables[_.tableId], y = t.schemas[v.schemaId], b = r.buildFieldName(l.fieldIds, t);
116
+ g += `${d} `, g += `${i(y, t) ? `"${y.name}".` : ""}"${v.name}".${b}`;
113
117
  let x = [];
114
- return r.onUpdate && x.push(`update: ${r.onUpdate.toLowerCase()}`), r.onDelete && x.push(`delete: ${r.onDelete.toLowerCase()}`), r.inactive && x.push("inactive"), x.length > 0 && (g += ` [${x.join(", ")}]`), g += "\n", g;
118
+ return n.onUpdate && x.push(`update: ${n.onUpdate.toLowerCase()}`), n.onDelete && x.push(`delete: ${n.onDelete.toLowerCase()}`), n.inactive && x.push("inactive"), x.length > 0 && (g += ` [${x.join(", ")}]`), g += "\n", g;
115
119
  });
116
- return r.length ? r.join("\n") : "";
120
+ return n.length ? n.join("\n") : "";
117
121
  }
118
122
  static getTableGroupSettings(e) {
119
123
  let t = [];
@@ -124,75 +128,75 @@ var u = class u {
124
128
  return !e.fieldNames || e.fieldNames.length === 0 ? `${t}${n}` : `${t}${n}.${e.fieldNames.length === 1 ? `"${e.fieldNames[0]}"` : `(${e.fieldNames.map((e) => `"${e}"`).join(", ")})`}`;
125
129
  }
126
130
  static formatDepCustomValue(e) {
127
- return typeof e == "string" ? `'${a(e)}'` : e == null ? "null" : String(e);
131
+ return typeof e == "string" ? `'${o(e)}'` : e == null ? "null" : String(e);
128
132
  }
129
133
  static exportDeps(e, t) {
130
134
  let n = e.map((e) => {
131
- let n = t.deps[e], r = n.edgeIds.map((e) => t.depEdges[e]), i = !!n.note, a = n.metadata ? Object.entries(n.metadata) : [], o = i || a.length > 0;
132
- if (r.length === 1 && !o) return `Dep: ${u.formatDepEndpoint(r[0].upstream)} -> ${u.formatDepEndpoint(r[0].downstream)}\n`;
133
- let s = "Dep {\n";
134
- return r.forEach((e) => {
135
- s += ` ${u.formatDepEndpoint(e.upstream)} -> ${u.formatDepEndpoint(e.downstream)}\n`;
136
- }), o && (s += "\n", i && (s += ` note: ${u.escapeNote(n.note)}\n`), a.forEach(([e, t]) => {
137
- s += ` ${e}: ${u.formatDepCustomValue(t)}\n`;
138
- })), s += "}\n", s;
135
+ let n = t.deps[e], i = n.edgeIds.map((e) => t.depEdges[e]), a = !!n.note, o = n.metadata ? Object.entries(n.metadata) : [], s = a || o.length > 0;
136
+ if (i.length === 1 && !s) return `Dep: ${r.formatDepEndpoint(i[0].upstream)} -> ${r.formatDepEndpoint(i[0].downstream)}\n`;
137
+ let c = "Dep {\n";
138
+ return i.forEach((e) => {
139
+ c += ` ${r.formatDepEndpoint(e.upstream)} -> ${r.formatDepEndpoint(e.downstream)}\n`;
140
+ }), s && (c += "\n", a && (c += ` note: ${r.escapeNote(n.note)}\n`), o.forEach(([e, t]) => {
141
+ c += ` ${e}: ${r.formatDepCustomValue(t)}\n`;
142
+ })), c += "}\n", c;
139
143
  });
140
144
  return n.length ? n.join("\n") : "";
141
145
  }
142
- static exportTableGroups(t, n) {
143
- let r = t.map((t) => {
144
- let r = n.tableGroups[t], i = u.getTableGroupSettings(r), a = r.note ? ` Note: ${u.escapeNote(r.note)}\n` : "";
145
- return `TableGroup ${`"${r.name}"`}${i} {\n${r.tableIds.reduce((t, r) => {
146
- let i = n.tables[r], a = n.schemas[i.schemaId];
147
- return `${t}${` ${e(a, n) ? `"${a.name}".` : ""}"${i.name}"`}\n`;
148
- }, "")}${a}}\n`;
146
+ static exportTableGroups(e, t) {
147
+ let n = e.map((e) => {
148
+ let n = t.tableGroups[e], a = r.getTableGroupSettings(n), o = n.note ? ` Note: ${r.escapeNote(n.note)}\n` : "";
149
+ return `TableGroup ${`"${n.name}"`}${a} {\n${n.tableIds.reduce((e, n) => {
150
+ let r = t.tables[n], a = t.schemas[r.schemaId];
151
+ return `${e}${` ${i(a, t) ? `"${a.name}".` : ""}"${r.name}"`}\n`;
152
+ }, "")}${o}}\n`;
149
153
  });
150
- return r.length ? r.join("\n") : "";
154
+ return n.length ? n.join("\n") : "";
151
155
  }
152
156
  static getStickyNoteSettings(e) {
153
157
  let t = "";
154
158
  return e.color && (t += `color: ${e.color}`), t ? ` [${t}]` : "";
155
159
  }
156
160
  static exportStickyNotes(e) {
157
- return r(e.notes, (e, t) => {
158
- let n = ` ${u.escapeNote(t.content)}`, r = u.getStickyNoteSettings(t), i = `Note ${t.name}${r} {\n${n}\n}\n`;
159
- return e ? `${e}\n${i}` : i;
161
+ return n(e.notes, (e, t) => {
162
+ let n = ` ${r.escapeNote(t.content)}`, i = r.getStickyNoteSettings(t), a = `Note ${t.name}${i} {\n${n}\n}\n`;
163
+ return e ? `${e}\n${a}` : a;
160
164
  }, "");
161
165
  }
162
- static exportRecords(e) {
163
- let { records: r } = e;
164
- if (!r || n(r)) return "";
165
- let a = t(Object.values(r), (e) => `${e.schemaName || ""}.${e.tableName}`);
166
- return Object.values(a).map((e) => {
167
- let { schemaName: t, tableName: n } = e[0], r = t ? c(t, n) : i(n), a = [...new Set(e.flatMap((e) => e.columns))], s = a.map(i).join(", "), l = e.flatMap((e) => {
168
- let t = a.map((t) => e.columns.indexOf(t));
166
+ static exportRecords(n) {
167
+ let { records: r } = n;
168
+ if (!r || t(r)) return "";
169
+ let i = e(Object.values(r), (e) => `${e.schemaName || ""}.${e.tableName}`);
170
+ return Object.values(i).map((e) => {
171
+ let { schemaName: t, tableName: n } = e[0], r = t ? l(t, n) : a(n), i = [...new Set(e.flatMap((e) => e.columns))], o = i.map(a).join(", "), c = e.flatMap((e) => {
172
+ let t = i.map((t) => e.columns.indexOf(t));
169
173
  return e.values.map((e) => t.map((t) => t === -1 ? {
170
174
  value: null,
171
175
  type: "expression"
172
176
  } : e[t]));
173
- }).map((e) => ` ${e.map(o).join(", ")}`);
174
- return `Records ${r}(${s})${e.some((e) => e.example) ? " [example]" : ""} {\n${l.join("\n")}\n}\n`;
177
+ }).map((e) => ` ${e.map(s).join(", ")}`);
178
+ return `Records ${r}(${o})${e.some((e) => e.example) ? " [example]" : ""} {\n${c.join("\n")}\n}\n`;
175
179
  }).join("\n");
176
180
  }
177
- static exportMetadata(t) {
178
- let r = [], i = t.database[1], a = (e, t) => `Metadata ${e} {\n${Object.entries(t).map(([e, t]) => ` ${e}: ${u.escapeNote(t)}`).join("\n")}\n}\n`;
179
- return i.schemaIds.forEach((i) => {
180
- let { tableIds: o, tableGroupIds: s } = t.schemas[i];
181
- o.forEach((i) => {
182
- let o = t.tables[i], s = t.schemas[o.schemaId], c = e(s, t) ? `"${s.name}".` : "";
183
- n(o.metadata) || r.push(a(`Table ${c}"${o.name}"`, o.metadata)), o.fieldIds.map((e) => t.fields[e]).filter((e) => !n(e.metadata)).forEach((e) => r.push(a(`Column ${c}"${o.name}"."${e.name}"`, e.metadata)));
184
- }), s.map((e) => t.tableGroups[e]).filter((e) => !n(e.metadata)).forEach((e) => r.push(a(`TableGroup "${e.name}"`, e.metadata)));
185
- }), Object.values(t.notes).filter((e) => !n(e.metadata)).forEach((e) => r.push(a(`Note ${e.name}`, e.metadata))), r.join("\n");
186
- }
187
- static export(e, t) {
188
- let r = [], i = e.database[1], { includeRecords: a } = t;
189
- i.schemaIds.forEach((t) => {
190
- let { enumIds: i, tableIds: a, tableGroupIds: o, refIds: s, depIds: c } = e.schemas[t];
191
- n(i) || r.push(u.exportEnums(i, e)), n(a) || r.push(u.exportTables(a, e)), n(o) || r.push(u.exportTableGroups(o, e)), n(s) || r.push(u.exportRefs(s, e)), n(c) || r.push(u.exportDeps(c, e));
192
- }), n(e.notes) || r.push(u.exportStickyNotes(e)), a && !n(e.records) && r.push(u.exportRecords(e));
193
- let o = u.exportMetadata(e);
194
- return o && r.push(o), r.join("\n");
181
+ static exportMetadata(e) {
182
+ let n = [], a = e.database[1], o = (e, t) => `Metadata ${e} {\n${Object.entries(t).map(([e, t]) => ` ${e}: ${r.escapeNote(t)}`).join("\n")}\n}\n`;
183
+ return a.schemaIds.forEach((r) => {
184
+ let { tableIds: a, tableGroupIds: s } = e.schemas[r];
185
+ a.forEach((r) => {
186
+ let a = e.tables[r], s = e.schemas[a.schemaId], c = i(s, e) ? `"${s.name}".` : "";
187
+ t(a.metadata) || n.push(o(`Table ${c}"${a.name}"`, a.metadata)), a.fieldIds.map((t) => e.fields[t]).filter((e) => !t(e.metadata)).forEach((e) => n.push(o(`Column ${c}"${a.name}"."${e.name}"`, e.metadata)));
188
+ }), s.map((t) => e.tableGroups[t]).filter((e) => !t(e.metadata)).forEach((e) => n.push(o(`TableGroup "${e.name}"`, e.metadata)));
189
+ }), Object.values(e.notes).filter((e) => !t(e.metadata)).forEach((e) => n.push(o(`Note ${e.name}`, e.metadata))), n.join("\n");
190
+ }
191
+ static export(e, n) {
192
+ let i = [], a = e.database[1], { includeRecords: o } = n;
193
+ a.schemaIds.forEach((n) => {
194
+ let { enumIds: a, tableIds: o, tableGroupIds: s, refIds: c, depIds: l } = e.schemas[n];
195
+ t(a) || i.push(r.exportEnums(a, e)), t(o) || i.push(r.exportTables(o, e)), t(s) || i.push(r.exportTableGroups(s, e)), t(c) || i.push(r.exportRefs(c, e)), t(l) || i.push(r.exportDeps(l, e));
196
+ }), t(e.notes) || i.push(r.exportStickyNotes(e)), o && !t(e.records) && i.push(r.exportRecords(e));
197
+ let s = r.exportMetadata(e);
198
+ return s && i.push(s), i.join("\n");
195
199
  }
196
200
  };
197
201
  //#endregion
198
- export { u as default };
202
+ export { d as default };
@@ -1,9 +1,9 @@
1
- require("../_virtual/_rolldown/runtime.cjs");const e=require("./utils.cjs");let t=require("lodash-es"),n=require("@dbml/parse");var r=class r{static exportRecords(e){let r=Object.values(e.records||{}).filter(e=>!e.example);return(0,t.isEmpty)(r)?[]:r.map(e=>{let{schemaName:t,tableName:r,columns:i,values:a}=e,o=t?`\`${t}\`.\`${r}\``:`\`${r}\``,s=i.length>0?`(\`${i.join("`, `")}\`)`:``,c=e=>e.value===null?`NULL`:e.type===`expression`||(0,n.isNumericType)(e.type)?e.value:(0,n.isBooleanType)(e.type)?String(e.value).toUpperCase()===`TRUE`?`TRUE`:`FALSE`:(0,n.isStringType)(e.type)||(0,n.isBinaryType)(e.type)||(0,n.isDateTimeType)(e.type)?`'${e.value.replace(/'/g,`''`).replace(/\\/g,`\\\\`)}'`:`CAST('${e.value.replace(/'/g,`''`).replace(/\\/g,`\\\\`)}' AS ${e.type})`;return`INSERT INTO ${o} ${s}\nVALUES\n ${a.map(e=>`(${e.map(c).join(`, `)})`).join(`,
2
- `)};`})}static getFieldLines(e,t){return t.tables[e].fieldIds.map(e=>{let n=t.fields[e],r=``;if(n.enumId){let e=t.enums[n.enumId];r=`\`${n.name}\` ENUM (`;let i=e.valueIds.map(e=>`'${t.enumValues[e].name}'`);r+=`${i.join(`, `)})`}else r=`\`${n.name}\` ${n.type.type_name===`varchar`?`varchar(255)`:n.type.type_name}`;if(n.unique&&(r+=` UNIQUE`),n.pk&&(r+=` PRIMARY KEY`),n.not_null&&(r+=` NOT NULL`),n.increment&&(r+=` AUTO_INCREMENT`),n.checkIds&&n.checkIds.length>0)if(n.checkIds.length===1){let e=t.checks[n.checkIds[0]];e.name&&(r+=` CONSTRAINT \`${e.name}\``),r+=` CHECK (${e.expression})`}else{let e=n.checkIds.map(e=>`(${t.checks[e].expression})`);r+=` CHECK (${e.join(` AND `)})`}return n.dbdefault&&(n.dbdefault.type===`boolean`&&(n.dbdefault.value===null||typeof n.dbdefault.value==`string`&&n.dbdefault.value.toLowerCase()===`null`)||(n.dbdefault.type===`expression`?r+=` DEFAULT (${n.dbdefault.value})`:n.dbdefault.type===`string`?r+=` DEFAULT '${n.dbdefault.value}'`:r+=` DEFAULT ${n.dbdefault.value}`)),n.note&&(r+=` COMMENT '${n.note.replace(/'/g,`''`)}'`),r})}static getCompositePKs(e,t){let n=t.tables[e];return(n.indexIds?n.indexIds.filter(e=>t.indexes[e].pk):[]).map(e=>{let n=t.indexes[e],r=`PRIMARY KEY`,i=[];return n.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`\`${n.value}\``,i.push(r)}),r+=` (${i.join(`, `)})`,r})}static getCheckLines(e,t){let n=t.tables[e];return!n.checkIds||n.checkIds.length===0?[]:n.checkIds.map(e=>{let n=t.checks[e],r=``;return n.name&&(r=`CONSTRAINT \`${n.name}\` `),r+=`CHECK (${n.expression})`,r})}static getTableContentArr(e,t){return e.map(e=>({tableId:e,fieldContents:r.getFieldLines(e,t),checkContents:r.getCheckLines(e,t),compositePKs:r.getCompositePKs(e,t)}))}static exportTables(t,n){return r.getTableContentArr(t,n).map(t=>{let r=[...t.fieldContents,...t.checkContents,...t.compositePKs],i=n.tables[t.tableId],a=n.schemas[i.schemaId];return`CREATE TABLE ${e.shouldPrintSchema(a,n)?`\`${a.name}\`.`:``}\`${i.name}\` (\n${r.map(e=>` ${e}`).join(`,
3
- `)}\n);\n`})}static buildFieldName(e,t){return`(${e.map(e=>`\`${t.fields[e].name}\``).join(`, `)})`}static buildTableManyToMany(t,n,r,i,a){let o=`CREATE TABLE ${e.shouldPrintSchema(i,a)?`\`${i.name}\`.`:``}\`${r}\` (\n`,s=[...t.keys()].join("`, `"),c=[...n.keys()].join("`, `");return t.forEach((e,t)=>{o+=` \`${t}\` ${e},\n`}),n.forEach((e,t)=>{o+=` \`${t}\` ${e},\n`}),o+=` PRIMARY KEY (\`${s}\`, \`${c}\`)\n`,o+=`);
1
+ require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/lodash-es/flatten.cjs"),t=require("../node_modules/lodash-es/concat.cjs"),n=require("../node_modules/lodash-es/isEmpty.cjs"),r=require("../node_modules/lodash-es/lodash.cjs"),i=require("./utils.cjs");let a=require("@dbml/parse");r.init_lodash();var o=class r{static exportRecords(e){let t=Object.values(e.records||{}).filter(e=>!e.example);return n.default(t)?[]:t.map(e=>{let{schemaName:t,tableName:n,columns:r,values:i}=e,o=t?`\`${t}\`.\`${n}\``:`\`${n}\``,s=r.length>0?`(\`${r.join("`, `")}\`)`:``,c=e=>e.value===null?`NULL`:e.type===`expression`||(0,a.isNumericType)(e.type)?e.value:(0,a.isBooleanType)(e.type)?String(e.value).toUpperCase()===`TRUE`?`TRUE`:`FALSE`:(0,a.isStringType)(e.type)||(0,a.isBinaryType)(e.type)||(0,a.isDateTimeType)(e.type)?`'${e.value.replace(/'/g,`''`).replace(/\\/g,`\\\\`)}'`:`CAST('${e.value.replace(/'/g,`''`).replace(/\\/g,`\\\\`)}' AS ${e.type})`;return`INSERT INTO ${o} ${s}\nVALUES\n ${i.map(e=>`(${e.map(c).join(`, `)})`).join(`,
2
+ `)};`})}static getFieldLines(e,t){return t.tables[e].fieldIds.map(e=>{let n=t.fields[e],r=``;if(n.enumId){let e=t.enums[n.enumId];r=`\`${n.name}\` ENUM (`;let i=e.valueIds.map(e=>`'${t.enumValues[e].name}'`);r+=`${i.join(`, `)})`}else r=`\`${n.name}\` ${n.type.type_name===`varchar`?`varchar(255)`:n.type.type_name}`;if(n.unique&&(r+=` UNIQUE`),n.pk&&(r+=` PRIMARY KEY`),n.not_null&&(r+=` NOT NULL`),n.increment&&(r+=` AUTO_INCREMENT`),n.checkIds&&n.checkIds.length>0)if(n.checkIds.length===1){let e=t.checks[n.checkIds[0]];e.name&&(r+=` CONSTRAINT \`${e.name}\``),r+=` CHECK (${e.expression})`}else{let e=n.checkIds.map(e=>`(${t.checks[e].expression})`);r+=` CHECK (${e.join(` AND `)})`}return n.dbdefault&&(n.dbdefault.type===`boolean`&&(n.dbdefault.value===null||typeof n.dbdefault.value==`string`&&n.dbdefault.value.toLowerCase()===`null`)||(n.dbdefault.type===`expression`?r+=` DEFAULT (${n.dbdefault.value})`:n.dbdefault.type===`string`?r+=` DEFAULT '${n.dbdefault.value}'`:r+=` DEFAULT ${n.dbdefault.value}`)),n.note&&(r+=` COMMENT '${n.note.replace(/'/g,`''`)}'`),r})}static getCompositePKs(e,t){let n=t.tables[e];return(n.indexIds?n.indexIds.filter(e=>t.indexes[e].pk):[]).map(e=>{let n=t.indexes[e],r=`PRIMARY KEY`,i=[];return n.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`\`${n.value}\``,i.push(r)}),r+=` (${i.join(`, `)})`,r})}static getCheckLines(e,t){let n=t.tables[e];return!n.checkIds||n.checkIds.length===0?[]:n.checkIds.map(e=>{let n=t.checks[e],r=``;return n.name&&(r=`CONSTRAINT \`${n.name}\` `),r+=`CHECK (${n.expression})`,r})}static getTableContentArr(e,t){return e.map(e=>({tableId:e,fieldContents:r.getFieldLines(e,t),checkContents:r.getCheckLines(e,t),compositePKs:r.getCompositePKs(e,t)}))}static exportTables(e,t){return r.getTableContentArr(e,t).map(e=>{let n=[...e.fieldContents,...e.checkContents,...e.compositePKs],r=t.tables[e.tableId],a=t.schemas[r.schemaId];return`CREATE TABLE ${i.shouldPrintSchema(a,t)?`\`${a.name}\`.`:``}\`${r.name}\` (\n${n.map(e=>` ${e}`).join(`,
3
+ `)}\n);\n`})}static buildFieldName(e,t){return`(${e.map(e=>`\`${t.fields[e].name}\``).join(`, `)})`}static buildTableManyToMany(e,t,n,r,a){let o=`CREATE TABLE ${i.shouldPrintSchema(r,a)?`\`${r.name}\`.`:``}\`${n}\` (\n`,s=[...e.keys()].join("`, `"),c=[...t.keys()].join("`, `");return e.forEach((e,t)=>{o+=` \`${t}\` ${e},\n`}),t.forEach((e,t)=>{o+=` \`${t}\` ${e},\n`}),o+=` PRIMARY KEY (\`${s}\`, \`${c}\`)\n`,o+=`);
4
4
 
5
- `,o}static buildForeignKeyManyToMany(t,n,r,i,a,o,s){let c=[...t.keys()].join("`, `");return`ALTER TABLE ${e.shouldPrintSchema(a,s)?`\`${a.name}\`.`:``}\`${r}\` ADD FOREIGN KEY (\`${c}\`) REFERENCES ${e.shouldPrintSchema(o,s)?`\`${o.name}\`.`:``}\`${i}\` ${n};\n\n`}static exportRefs(t,r,i){return t.map(t=>{let a=``,o=r.refs[t],s=o.endpointIds.findIndex(e=>(0,n.parseCardinality)(r.endpoints[e].relation).max===1),c=s===-1?0:s,l=o.endpointIds[1-c],u=o.endpointIds[c],d=r.endpoints[l],f=r.endpoints[u],p=r.fields[f.fieldIds[0]],m=r.tables[p.tableId],h=r.schemas[m.schemaId],g=this.buildFieldName(f.fieldIds,r,`mysql`),_=r.fields[d.fieldIds[0]],v=r.tables[_.tableId],y=r.schemas[v.schemaId],b=this.buildFieldName(d.fieldIds,r,`mysql`);if(s===-1){let t=e.buildJunctionFields1(f.fieldIds,r),n=e.buildJunctionFields2(d.fieldIds,r,t),o=e.buildNewTableName(m.name,v.name,i);a+=this.buildTableManyToMany(t,n,o,h,r),a+=this.buildForeignKeyManyToMany(t,g,o,m.name,h,h,r),a+=this.buildForeignKeyManyToMany(n,b,o,v.name,h,y,r)}else a=`ALTER TABLE ${e.shouldPrintSchema(y,r)?`\`${y.name}\`.`:``}\`${v.name}\` ADD `,o.name&&(a+=`CONSTRAINT \`${o.name}\` `),a+=`FOREIGN KEY ${b} REFERENCES ${e.shouldPrintSchema(h,r)?`\`${h.name}\`.`:``}\`${m.name}\` ${g}`,o.onDelete&&(a+=` ON DELETE ${o.onDelete.toUpperCase()}`),o.onUpdate&&(a+=` ON UPDATE ${o.onUpdate.toUpperCase()}`),a+=`;
6
- `;return a})}static exportIndexes(t,n){return t.filter(e=>!n.indexes[e].pk).map((t,r)=>{let i=n.indexes[t],a=n.tables[i.tableId],o=n.schemas[a.schemaId],s=`CREATE`;i.unique&&(s+=` UNIQUE`);let c=i.name?`\`${i.name}\``:`\`${e.shouldPrintSchema(o,n)?`\`${o.name}\`.`:``}${a.name}_index_${r}\``;s+=` INDEX ${c} ON ${e.shouldPrintSchema(o,n)?`\`${o.name}\`.`:``}\`${a.name}\``;let l=[];return i.columnIds.forEach(e=>{let t=n.indexColumns[e],r=``;r=t.type===`expression`?`(${t.value})`:`\`${t.value}\``,l.push(r)}),s+=` (${l.join(`, `)})`,i.type&&(s+=` USING ${i.type.toUpperCase()}`),s+=`;
7
- `,s})}static exportComments(t,n){return t.map(t=>{let r=``;if(t.type===`table`){let i=n.tables[t.tableId],a=n.schemas[i.schemaId];r+=`ALTER TABLE ${e.shouldPrintSchema(a,n)?`\`${a.name}\`.`:``}\`${i.name}\` COMMENT = '${i.note.replace(/'/g,`''`)}'`}return r+=`;
8
- `,r})}static export(n){let i=n.database[1],a=new Set(Object.values(n.tables).map(e=>e.name)),o=i.schemaIds.reduce((i,o)=>{let s=n.schemas[o],{tableIds:c,refIds:l}=s;e.shouldPrintSchema(s,n)&&i.schemas.push(`CREATE SCHEMA \`${s.name}\`;\n`),(0,t.isEmpty)(c)||i.tables.push(...r.exportTables(c,n));let u=(0,t.flatten)(c.map(e=>n.tables[e].indexIds));(0,t.isEmpty)(u)||i.indexes.push(...r.exportIndexes(u,n));let d=(0,t.flatten)(c.map(e=>{let{note:t}=n.tables[e];return t?[{type:`table`,tableId:e}]:[]}));return(0,t.isEmpty)(d)||i.comments.push(...r.exportComments(d,n)),(0,t.isEmpty)(l)||i.refs.push(...r.exportRefs(l,n,a)),i},{schemas:[],enums:[],tables:[],indexes:[],comments:[],refs:[]}),s=r.exportRecords(n),c=(0,t.isEmpty)(s)?[]:[`-- Disable foreign key checks for INSERT`,`SET FOREIGN_KEY_CHECKS = 0;`,``,...s,``,`-- Re-enable foreign key checks`,`SET FOREIGN_KEY_CHECKS = 1;`];return(0,t.concat)(o.schemas,o.enums,o.tables,o.indexes,o.comments,o.refs,c).join(`
9
- `)}};exports.default=r;
5
+ `,o}static buildForeignKeyManyToMany(e,t,n,r,a,o,s){let c=[...e.keys()].join("`, `");return`ALTER TABLE ${i.shouldPrintSchema(a,s)?`\`${a.name}\`.`:``}\`${n}\` ADD FOREIGN KEY (\`${c}\`) REFERENCES ${i.shouldPrintSchema(o,s)?`\`${o.name}\`.`:``}\`${r}\` ${t};\n\n`}static exportRefs(e,t,n){return e.map(e=>{let r=``,o=t.refs[e],s=o.endpointIds.findIndex(e=>(0,a.parseCardinality)(t.endpoints[e].relation).max===1),c=s===-1?0:s,l=o.endpointIds[1-c],u=o.endpointIds[c],d=t.endpoints[l],f=t.endpoints[u],p=t.fields[f.fieldIds[0]],m=t.tables[p.tableId],h=t.schemas[m.schemaId],g=this.buildFieldName(f.fieldIds,t,`mysql`),_=t.fields[d.fieldIds[0]],v=t.tables[_.tableId],y=t.schemas[v.schemaId],b=this.buildFieldName(d.fieldIds,t,`mysql`);if(s===-1){let e=i.buildJunctionFields1(f.fieldIds,t),a=i.buildJunctionFields2(d.fieldIds,t,e),o=i.buildNewTableName(m.name,v.name,n);r+=this.buildTableManyToMany(e,a,o,h,t),r+=this.buildForeignKeyManyToMany(e,g,o,m.name,h,h,t),r+=this.buildForeignKeyManyToMany(a,b,o,v.name,h,y,t)}else r=`ALTER TABLE ${i.shouldPrintSchema(y,t)?`\`${y.name}\`.`:``}\`${v.name}\` ADD `,o.name&&(r+=`CONSTRAINT \`${o.name}\` `),r+=`FOREIGN KEY ${b} REFERENCES ${i.shouldPrintSchema(h,t)?`\`${h.name}\`.`:``}\`${m.name}\` ${g}`,o.onDelete&&(r+=` ON DELETE ${o.onDelete.toUpperCase()}`),o.onUpdate&&(r+=` ON UPDATE ${o.onUpdate.toUpperCase()}`),r+=`;
6
+ `;return r})}static exportIndexes(e,t){return e.filter(e=>!t.indexes[e].pk).map((e,n)=>{let r=t.indexes[e],a=t.tables[r.tableId],o=t.schemas[a.schemaId],s=`CREATE`;r.unique&&(s+=` UNIQUE`);let c=r.name?`\`${r.name}\``:`\`${i.shouldPrintSchema(o,t)?`\`${o.name}\`.`:``}${a.name}_index_${n}\``;s+=` INDEX ${c} ON ${i.shouldPrintSchema(o,t)?`\`${o.name}\`.`:``}\`${a.name}\``;let l=[];return r.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`\`${n.value}\``,l.push(r)}),s+=` (${l.join(`, `)})`,r.type&&(s+=` USING ${r.type.toUpperCase()}`),s+=`;
7
+ `,s})}static exportComments(e,t){return e.map(e=>{let n=``;if(e.type===`table`){let r=t.tables[e.tableId],a=t.schemas[r.schemaId];n+=`ALTER TABLE ${i.shouldPrintSchema(a,t)?`\`${a.name}\`.`:``}\`${r.name}\` COMMENT = '${r.note.replace(/'/g,`''`)}'`}return n+=`;
8
+ `,n})}static export(a){let o=a.database[1],s=new Set(Object.values(a.tables).map(e=>e.name)),c=o.schemaIds.reduce((t,o)=>{let c=a.schemas[o],{tableIds:l,refIds:u}=c;i.shouldPrintSchema(c,a)&&t.schemas.push(`CREATE SCHEMA \`${c.name}\`;\n`),n.default(l)||t.tables.push(...r.exportTables(l,a));let d=e.default(l.map(e=>a.tables[e].indexIds));n.default(d)||t.indexes.push(...r.exportIndexes(d,a));let f=e.default(l.map(e=>{let{note:t}=a.tables[e];return t?[{type:`table`,tableId:e}]:[]}));return n.default(f)||t.comments.push(...r.exportComments(f,a)),n.default(u)||t.refs.push(...r.exportRefs(u,a,s)),t},{schemas:[],enums:[],tables:[],indexes:[],comments:[],refs:[]}),l=r.exportRecords(a),u=n.default(l)?[]:[`-- Disable foreign key checks for INSERT`,`SET FOREIGN_KEY_CHECKS = 0;`,``,...l,``,`-- Re-enable foreign key checks`,`SET FOREIGN_KEY_CHECKS = 1;`];return t.default(c.schemas,c.enums,c.tables,c.indexes,c.comments,c.refs,u).join(`
9
+ `)}};exports.default=o;
@@ -1,13 +1,17 @@
1
- import { buildJunctionFields1 as e, buildJunctionFields2 as t, buildNewTableName as n, shouldPrintSchema as r } from "./utils.mjs";
2
- import { concat as i, flatten as a, isEmpty as o } from "lodash-es";
3
- import { isBinaryType as s, isBooleanType as c, isDateTimeType as l, isNumericType as u, isStringType as d, parseCardinality as f } from "@dbml/parse";
1
+ import e from "../node_modules/lodash-es/flatten.mjs";
2
+ import t from "../node_modules/lodash-es/concat.mjs";
3
+ import n from "../node_modules/lodash-es/isEmpty.mjs";
4
+ import { init_lodash as r } from "../node_modules/lodash-es/lodash.mjs";
5
+ import { buildJunctionFields1 as i, buildJunctionFields2 as a, buildNewTableName as o, shouldPrintSchema as s } from "./utils.mjs";
6
+ import { isBinaryType as c, isBooleanType as l, isDateTimeType as u, isNumericType as d, isStringType as f, parseCardinality as p } from "@dbml/parse";
4
7
  //#region src/export/MysqlExporter.js
5
- var p = class p {
8
+ r();
9
+ var m = class r {
6
10
  static exportRecords(e) {
7
11
  let t = Object.values(e.records || {}).filter((e) => !e.example);
8
- return o(t) ? [] : t.map((e) => {
9
- let { schemaName: t, tableName: n, columns: r, values: i } = e, a = t ? `\`${t}\`.\`${n}\`` : `\`${n}\``, o = r.length > 0 ? `(\`${r.join("`, `")}\`)` : "", f = (e) => e.value === null ? "NULL" : e.type === "expression" || u(e.type) ? e.value : c(e.type) ? String(e.value).toUpperCase() === "TRUE" ? "TRUE" : "FALSE" : d(e.type) || s(e.type) || l(e.type) ? `'${e.value.replace(/'/g, "''").replace(/\\/g, "\\\\")}'` : `CAST('${e.value.replace(/'/g, "''").replace(/\\/g, "\\\\")}' AS ${e.type})`;
10
- return `INSERT INTO ${a} ${o}\nVALUES\n ${i.map((e) => `(${e.map(f).join(", ")})`).join(",\n ")};`;
12
+ return n(t) ? [] : t.map((e) => {
13
+ let { schemaName: t, tableName: n, columns: r, values: i } = e, a = t ? `\`${t}\`.\`${n}\`` : `\`${n}\``, o = r.length > 0 ? `(\`${r.join("`, `")}\`)` : "", s = (e) => e.value === null ? "NULL" : e.type === "expression" || d(e.type) ? e.value : l(e.type) ? String(e.value).toUpperCase() === "TRUE" ? "TRUE" : "FALSE" : f(e.type) || c(e.type) || u(e.type) ? `'${e.value.replace(/'/g, "''").replace(/\\/g, "\\\\")}'` : `CAST('${e.value.replace(/'/g, "''").replace(/\\/g, "\\\\")}' AS ${e.type})`;
14
+ return `INSERT INTO ${a} ${o}\nVALUES\n ${i.map((e) => `(${e.map(s).join(", ")})`).join(",\n ")};`;
11
15
  });
12
16
  }
13
17
  static getFieldLines(e, t) {
@@ -49,83 +53,83 @@ var p = class p {
49
53
  static getTableContentArr(e, t) {
50
54
  return e.map((e) => ({
51
55
  tableId: e,
52
- fieldContents: p.getFieldLines(e, t),
53
- checkContents: p.getCheckLines(e, t),
54
- compositePKs: p.getCompositePKs(e, t)
56
+ fieldContents: r.getFieldLines(e, t),
57
+ checkContents: r.getCheckLines(e, t),
58
+ compositePKs: r.getCompositePKs(e, t)
55
59
  }));
56
60
  }
57
61
  static exportTables(e, t) {
58
- return p.getTableContentArr(e, t).map((e) => {
62
+ return r.getTableContentArr(e, t).map((e) => {
59
63
  let n = [
60
64
  ...e.fieldContents,
61
65
  ...e.checkContents,
62
66
  ...e.compositePKs
63
- ], i = t.tables[e.tableId], a = t.schemas[i.schemaId];
64
- return `CREATE TABLE ${r(a, t) ? `\`${a.name}\`.` : ""}\`${i.name}\` (\n${n.map((e) => ` ${e}`).join(",\n")}\n);\n`;
67
+ ], r = t.tables[e.tableId], i = t.schemas[r.schemaId];
68
+ return `CREATE TABLE ${s(i, t) ? `\`${i.name}\`.` : ""}\`${r.name}\` (\n${n.map((e) => ` ${e}`).join(",\n")}\n);\n`;
65
69
  });
66
70
  }
67
71
  static buildFieldName(e, t) {
68
72
  return `(${e.map((e) => `\`${t.fields[e].name}\``).join(", ")})`;
69
73
  }
70
- static buildTableManyToMany(e, t, n, i, a) {
71
- let o = `CREATE TABLE ${r(i, a) ? `\`${i.name}\`.` : ""}\`${n}\` (\n`, s = [...e.keys()].join("`, `"), c = [...t.keys()].join("`, `");
74
+ static buildTableManyToMany(e, t, n, r, i) {
75
+ let a = `CREATE TABLE ${s(r, i) ? `\`${r.name}\`.` : ""}\`${n}\` (\n`, o = [...e.keys()].join("`, `"), c = [...t.keys()].join("`, `");
72
76
  return e.forEach((e, t) => {
73
- o += ` \`${t}\` ${e},\n`;
77
+ a += ` \`${t}\` ${e},\n`;
74
78
  }), t.forEach((e, t) => {
75
- o += ` \`${t}\` ${e},\n`;
76
- }), o += ` PRIMARY KEY (\`${s}\`, \`${c}\`)\n`, o += ");\n\n", o;
79
+ a += ` \`${t}\` ${e},\n`;
80
+ }), a += ` PRIMARY KEY (\`${o}\`, \`${c}\`)\n`, a += ");\n\n", a;
77
81
  }
78
- static buildForeignKeyManyToMany(e, t, n, i, a, o, s) {
82
+ static buildForeignKeyManyToMany(e, t, n, r, i, a, o) {
79
83
  let c = [...e.keys()].join("`, `");
80
- return `ALTER TABLE ${r(a, s) ? `\`${a.name}\`.` : ""}\`${n}\` ADD FOREIGN KEY (\`${c}\`) REFERENCES ${r(o, s) ? `\`${o.name}\`.` : ""}\`${i}\` ${t};\n\n`;
84
+ return `ALTER TABLE ${s(i, o) ? `\`${i.name}\`.` : ""}\`${n}\` ADD FOREIGN KEY (\`${c}\`) REFERENCES ${s(a, o) ? `\`${a.name}\`.` : ""}\`${r}\` ${t};\n\n`;
81
85
  }
82
- static exportRefs(i, a, o) {
83
- return i.map((i) => {
84
- let s = "", c = a.refs[i], l = c.endpointIds.findIndex((e) => f(a.endpoints[e].relation).max === 1), u = l === -1 ? 0 : l, d = c.endpointIds[1 - u], p = c.endpointIds[u], m = a.endpoints[d], h = a.endpoints[p], g = a.fields[h.fieldIds[0]], _ = a.tables[g.tableId], v = a.schemas[_.schemaId], y = this.buildFieldName(h.fieldIds, a, "mysql"), b = a.fields[m.fieldIds[0]], x = a.tables[b.tableId], S = a.schemas[x.schemaId], C = this.buildFieldName(m.fieldIds, a, "mysql");
86
+ static exportRefs(e, t, n) {
87
+ return e.map((e) => {
88
+ let r = "", c = t.refs[e], l = c.endpointIds.findIndex((e) => p(t.endpoints[e].relation).max === 1), u = l === -1 ? 0 : l, d = c.endpointIds[1 - u], f = c.endpointIds[u], m = t.endpoints[d], h = t.endpoints[f], g = t.fields[h.fieldIds[0]], _ = t.tables[g.tableId], v = t.schemas[_.schemaId], y = this.buildFieldName(h.fieldIds, t, "mysql"), b = t.fields[m.fieldIds[0]], x = t.tables[b.tableId], S = t.schemas[x.schemaId], C = this.buildFieldName(m.fieldIds, t, "mysql");
85
89
  if (l === -1) {
86
- let r = e(h.fieldIds, a), i = t(m.fieldIds, a, r), c = n(_.name, x.name, o);
87
- s += this.buildTableManyToMany(r, i, c, v, a), s += this.buildForeignKeyManyToMany(r, y, c, _.name, v, v, a), s += this.buildForeignKeyManyToMany(i, C, c, x.name, v, S, a);
88
- } else s = `ALTER TABLE ${r(S, a) ? `\`${S.name}\`.` : ""}\`${x.name}\` ADD `, c.name && (s += `CONSTRAINT \`${c.name}\` `), s += `FOREIGN KEY ${C} REFERENCES ${r(v, a) ? `\`${v.name}\`.` : ""}\`${_.name}\` ${y}`, c.onDelete && (s += ` ON DELETE ${c.onDelete.toUpperCase()}`), c.onUpdate && (s += ` ON UPDATE ${c.onUpdate.toUpperCase()}`), s += ";\n";
89
- return s;
90
+ let e = i(h.fieldIds, t), s = a(m.fieldIds, t, e), c = o(_.name, x.name, n);
91
+ r += this.buildTableManyToMany(e, s, c, v, t), r += this.buildForeignKeyManyToMany(e, y, c, _.name, v, v, t), r += this.buildForeignKeyManyToMany(s, C, c, x.name, v, S, t);
92
+ } else r = `ALTER TABLE ${s(S, t) ? `\`${S.name}\`.` : ""}\`${x.name}\` ADD `, c.name && (r += `CONSTRAINT \`${c.name}\` `), r += `FOREIGN KEY ${C} REFERENCES ${s(v, t) ? `\`${v.name}\`.` : ""}\`${_.name}\` ${y}`, c.onDelete && (r += ` ON DELETE ${c.onDelete.toUpperCase()}`), c.onUpdate && (r += ` ON UPDATE ${c.onUpdate.toUpperCase()}`), r += ";\n";
93
+ return r;
90
94
  });
91
95
  }
92
96
  static exportIndexes(e, t) {
93
97
  return e.filter((e) => !t.indexes[e].pk).map((e, n) => {
94
- let i = t.indexes[e], a = t.tables[i.tableId], o = t.schemas[a.schemaId], s = "CREATE";
95
- i.unique && (s += " UNIQUE");
96
- let c = i.name ? `\`${i.name}\`` : `\`${r(o, t) ? `\`${o.name}\`.` : ""}${a.name}_index_${n}\``;
97
- s += ` INDEX ${c} ON ${r(o, t) ? `\`${o.name}\`.` : ""}\`${a.name}\``;
98
+ let r = t.indexes[e], i = t.tables[r.tableId], a = t.schemas[i.schemaId], o = "CREATE";
99
+ r.unique && (o += " UNIQUE");
100
+ let c = r.name ? `\`${r.name}\`` : `\`${s(a, t) ? `\`${a.name}\`.` : ""}${i.name}_index_${n}\``;
101
+ o += ` INDEX ${c} ON ${s(a, t) ? `\`${a.name}\`.` : ""}\`${i.name}\``;
98
102
  let l = [];
99
- return i.columnIds.forEach((e) => {
103
+ return r.columnIds.forEach((e) => {
100
104
  let n = t.indexColumns[e], r = "";
101
105
  r = n.type === "expression" ? `(${n.value})` : `\`${n.value}\``, l.push(r);
102
- }), s += ` (${l.join(", ")})`, i.type && (s += ` USING ${i.type.toUpperCase()}`), s += ";\n", s;
106
+ }), o += ` (${l.join(", ")})`, r.type && (o += ` USING ${r.type.toUpperCase()}`), o += ";\n", o;
103
107
  });
104
108
  }
105
109
  static exportComments(e, t) {
106
110
  return e.map((e) => {
107
111
  let n = "";
108
112
  if (e.type === "table") {
109
- let i = t.tables[e.tableId], a = t.schemas[i.schemaId];
110
- n += `ALTER TABLE ${r(a, t) ? `\`${a.name}\`.` : ""}\`${i.name}\` COMMENT = '${i.note.replace(/'/g, "''")}'`;
113
+ let r = t.tables[e.tableId], i = t.schemas[r.schemaId];
114
+ n += `ALTER TABLE ${s(i, t) ? `\`${i.name}\`.` : ""}\`${r.name}\` COMMENT = '${r.note.replace(/'/g, "''")}'`;
111
115
  }
112
116
  return n += ";\n", n;
113
117
  });
114
118
  }
115
- static export(e) {
116
- let t = e.database[1], n = new Set(Object.values(e.tables).map((e) => e.name)), s = t.schemaIds.reduce((t, i) => {
117
- let s = e.schemas[i], { tableIds: c, refIds: l } = s;
118
- r(s, e) && t.schemas.push(`CREATE SCHEMA \`${s.name}\`;\n`), o(c) || t.tables.push(...p.exportTables(c, e));
119
- let u = a(c.map((t) => e.tables[t].indexIds));
120
- o(u) || t.indexes.push(...p.exportIndexes(u, e));
121
- let d = a(c.map((t) => {
122
- let { note: n } = e.tables[t];
123
- return n ? [{
119
+ static export(i) {
120
+ let a = i.database[1], o = new Set(Object.values(i.tables).map((e) => e.name)), c = a.schemaIds.reduce((t, a) => {
121
+ let c = i.schemas[a], { tableIds: l, refIds: u } = c;
122
+ s(c, i) && t.schemas.push(`CREATE SCHEMA \`${c.name}\`;\n`), n(l) || t.tables.push(...r.exportTables(l, i));
123
+ let d = e(l.map((e) => i.tables[e].indexIds));
124
+ n(d) || t.indexes.push(...r.exportIndexes(d, i));
125
+ let f = e(l.map((e) => {
126
+ let { note: t } = i.tables[e];
127
+ return t ? [{
124
128
  type: "table",
125
- tableId: t
129
+ tableId: e
126
130
  }] : [];
127
131
  }));
128
- return o(d) || t.comments.push(...p.exportComments(d, e)), o(l) || t.refs.push(...p.exportRefs(l, e, n)), t;
132
+ return n(f) || t.comments.push(...r.exportComments(f, i)), n(u) || t.refs.push(...r.exportRefs(u, i, o)), t;
129
133
  }, {
130
134
  schemas: [],
131
135
  enums: [],
@@ -133,17 +137,17 @@ var p = class p {
133
137
  indexes: [],
134
138
  comments: [],
135
139
  refs: []
136
- }), c = p.exportRecords(e), l = o(c) ? [] : [
140
+ }), l = r.exportRecords(i), u = n(l) ? [] : [
137
141
  "-- Disable foreign key checks for INSERT",
138
142
  "SET FOREIGN_KEY_CHECKS = 0;",
139
143
  "",
140
- ...c,
144
+ ...l,
141
145
  "",
142
146
  "-- Re-enable foreign key checks",
143
147
  "SET FOREIGN_KEY_CHECKS = 1;"
144
148
  ];
145
- return i(s.schemas, s.enums, s.tables, s.indexes, s.comments, s.refs, l).join("\n");
149
+ return t(c.schemas, c.enums, c.tables, c.indexes, c.comments, c.refs, u).join("\n");
146
150
  }
147
151
  };
148
152
  //#endregion
149
- export { p as default };
153
+ export { m as default };