@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,28 +1,32 @@
1
- import { buildJunctionFields1 as e, buildJunctionFields2 as t, buildNewTableName as n, hasWhiteSpace as r, hasWhiteSpaceOrUpperCase as i, shouldPrintSchema as a } from "./utils.mjs";
2
- import { shouldPrintSchemaName as o } from "../model_structure/utils.mjs";
3
- import { concat as s, flatten as c, isEmpty as l } from "lodash-es";
4
- import { isBinaryType as u, isBooleanType as d, isDateTimeType as f, isNumericType as p, isStringType as m, parseCardinality as h } 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, hasWhiteSpace as s, hasWhiteSpaceOrUpperCase as c, shouldPrintSchema as l } from "./utils.mjs";
6
+ import { shouldPrintSchemaName as u } from "../model_structure/utils.mjs";
7
+ import { isBinaryType as d, isBooleanType as f, isDateTimeType as p, isNumericType as m, isStringType as h, parseCardinality as g } from "@dbml/parse";
5
8
  //#region src/export/PostgresExporter.js
6
- var g = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE PRECISION.SMALLSERIAL.SERIAL.BIGSERIAL.FLOAT.MONEY.CHARACTER.CHAR.CHARACTER VARYING.VARCHAR.TEXT.NAME.BPCHAR.BYTEA.TIMESTAMP.TIMESTAMP WITH TIME ZONE.TIMESTAMP WITHOUT TIME ZONE.DATE.TIME.TIME WITH TIME ZONE.TIME WITHOUT TIME ZONE.INTERVAL.BOOLEAN.BOOL.POINT.LINE.LSEG.BOX.PATH.POLYGON.CIRCLE.CIDR.INET.MACADDR.MACADDR8.BIT.BIT VARYING.VARBIT.UUID.XML.JSON.JSONB.INT4RANGE.INT8RANGE.NUMRANGE.TSRANGE.TSTZRANGE.DATERANGE.OID.REGCLASS.REGCOLLATION.REGCONFIG.REGDICTIONARY.REGNAMESPACE.REGOPER.REGOPERATOR.REGPROC.REGPROCEDURE.REGROLE.REGTYPE.PG_LSN.VOID.RECORD.TRIGGER.EVENT_TRIGGER.PG_DDL_COMMAND.UNKNOWN.ANYELEMENT.ANYARRAY.ANYNONARRAY.ANYENUM.ANYRANGE.ANY.CSTRING.INTERNAL.LANGUAGE_HANDLER.FDW_HANDLER.INDEX_AM_HANDLER.TSM_HANDLER.OPAQUE".split("."), _ = ["USER"], v = class v {
9
+ r();
10
+ var _ = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE PRECISION.SMALLSERIAL.SERIAL.BIGSERIAL.FLOAT.MONEY.CHARACTER.CHAR.CHARACTER VARYING.VARCHAR.TEXT.NAME.BPCHAR.BYTEA.TIMESTAMP.TIMESTAMP WITH TIME ZONE.TIMESTAMP WITHOUT TIME ZONE.DATE.TIME.TIME WITH TIME ZONE.TIME WITHOUT TIME ZONE.INTERVAL.BOOLEAN.BOOL.POINT.LINE.LSEG.BOX.PATH.POLYGON.CIRCLE.CIDR.INET.MACADDR.MACADDR8.BIT.BIT VARYING.VARBIT.UUID.XML.JSON.JSONB.INT4RANGE.INT8RANGE.NUMRANGE.TSRANGE.TSTZRANGE.DATERANGE.OID.REGCLASS.REGCOLLATION.REGCONFIG.REGDICTIONARY.REGNAMESPACE.REGOPER.REGOPERATOR.REGPROC.REGPROCEDURE.REGROLE.REGTYPE.PG_LSN.VOID.RECORD.TRIGGER.EVENT_TRIGGER.PG_DDL_COMMAND.UNKNOWN.ANYELEMENT.ANYARRAY.ANYNONARRAY.ANYENUM.ANYRANGE.ANY.CSTRING.INTERNAL.LANGUAGE_HANDLER.FDW_HANDLER.INDEX_AM_HANDLER.TSM_HANDLER.OPAQUE".split("."), v = ["USER"], y = class r {
7
11
  static exportRecords(e) {
8
12
  let t = Object.values(e.records || {}).filter((e) => !e.example);
9
- return l(t) ? [] : t.map((e) => {
13
+ return n(t) ? [] : t.map((e) => {
10
14
  let { schemaName: t, tableName: n, columns: r, values: i } = e;
11
15
  if (!i || i.length === 0) return null;
12
- let a = t ? `"${t}"."${n}"` : `"${n}"`, o = r.length > 0 ? `(${r.map((e) => `"${e}"`).join(", ")})` : "", s = (e) => e.value === null ? "NULL" : e.type === "expression" || p(e.type) ? e.value : d(e.type) ? String(e.value).toUpperCase() === "TRUE" ? "TRUE" : "FALSE" : m(e.type) || f(e.type) || u(e.type) ? `'${String(e.value).replace(/'/g, "''")}'` : `CAST('${String(e.value).replace(/'/g, "''")}' AS ${e.type})`;
16
+ let a = t ? `"${t}"."${n}"` : `"${n}"`, o = r.length > 0 ? `(${r.map((e) => `"${e}"`).join(", ")})` : "", s = (e) => e.value === null ? "NULL" : e.type === "expression" || m(e.type) ? e.value : f(e.type) ? String(e.value).toUpperCase() === "TRUE" ? "TRUE" : "FALSE" : h(e.type) || p(e.type) || d(e.type) ? `'${String(e.value).replace(/'/g, "''")}'` : `CAST('${String(e.value).replace(/'/g, "''")}' AS ${e.type})`;
13
17
  return `INSERT INTO ${a} ${o}\nVALUES\n ${i.map((e) => `(${e.map(s).join(", ")})`).join(",\n ")};`;
14
18
  }).filter(Boolean);
15
19
  }
16
20
  static exportEnums(e, t) {
17
21
  return e.map((e) => {
18
- let n = t.enums[e], r = t.schemas[n.schemaId], i = `${a(r, t) ? `"${r.name}".` : ""}"${n.name}"`;
22
+ let n = t.enums[e], r = t.schemas[n.schemaId], i = `${l(r, t) ? `"${r.name}".` : ""}"${n.name}"`;
19
23
  return [i, `CREATE TYPE ${i} AS ENUM (\n${n.valueIds.map((e) => ` '${t.enumValues[e].name}'`).join(",\n")}\n);\n`];
20
24
  });
21
25
  }
22
26
  static getFieldLines(e, t, n) {
23
27
  return t.tables[e].fieldIds.map((e) => {
24
- let a = t.fields[e], s = "";
25
- if (a.increment) {
28
+ let r = t.fields[e], i = "";
29
+ if (r.increment) {
26
30
  let e = new Set([
27
31
  "BIGINT",
28
32
  "INT",
@@ -32,24 +36,24 @@ var g = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
32
36
  "SMALLSERIAL",
33
37
  "SERIAL",
34
38
  "BIGSERIAL"
35
- ]), n = a.type.type_name.toUpperCase(), r = "";
36
- r = e.has(n) ? `${n} GENERATED BY DEFAULT AS IDENTITY` : t.has(n) ? n : "SERIAL", s = `"${a.name}" ${r}`;
37
- } else if (!a.type.schemaName || !o(a.type.schemaName)) {
38
- let e = a.type.type_name, t = e.toUpperCase(), n = !g.includes(t) && (i(e) || _.includes(t)) ? `"${e}"` : e;
39
- s = `"${a.name}" ${n}`;
40
- } else if (a.type.originalTypeName) s = `"${a.name}" "${a.type.schemaName}"."${a.type.originalTypeName}"`;
39
+ ]), n = r.type.type_name.toUpperCase(), a = "";
40
+ a = e.has(n) ? `${n} GENERATED BY DEFAULT AS IDENTITY` : t.has(n) ? n : "SERIAL", i = `"${r.name}" ${a}`;
41
+ } else if (!r.type.schemaName || !u(r.type.schemaName)) {
42
+ let e = r.type.type_name, t = e.toUpperCase(), n = !_.includes(t) && (c(e) || v.includes(t)) ? `"${e}"` : e;
43
+ i = `"${r.name}" ${n}`;
44
+ } else if (r.type.originalTypeName) i = `"${r.name}" "${r.type.schemaName}"."${r.type.originalTypeName}"`;
41
45
  else {
42
- let e = `${i(a.type.schemaName) ? `"${a.type.schemaName}".` : `${a.type.schemaName}.`}${i(a.type.type_name) ? `"${a.type.type_name}"` : a.type.type_name}`, t = `"${a.type.schemaName}"."${a.type.type_name}"`;
43
- !n.has(t) && !r(t) && (e = e.replaceAll("\"", "")), s = `"${a.name}" ${e}`;
46
+ let e = `${c(r.type.schemaName) ? `"${r.type.schemaName}".` : `${r.type.schemaName}.`}${c(r.type.type_name) ? `"${r.type.type_name}"` : r.type.type_name}`, t = `"${r.type.schemaName}"."${r.type.type_name}"`;
47
+ !n.has(t) && !s(t) && (e = e.replaceAll("\"", "")), i = `"${r.name}" ${e}`;
44
48
  }
45
- if (a.unique && (s += " UNIQUE"), a.pk && (s += " PRIMARY KEY"), a.not_null && (s += " NOT NULL"), a.checkIds && a.checkIds.length > 0) if (a.checkIds.length === 1) {
46
- let e = t.checks[a.checkIds[0]];
47
- e.name && (s += ` CONSTRAINT "${e.name}"`), s += ` CHECK (${e.expression})`;
49
+ if (r.unique && (i += " UNIQUE"), r.pk && (i += " PRIMARY KEY"), r.not_null && (i += " NOT NULL"), r.checkIds && r.checkIds.length > 0) if (r.checkIds.length === 1) {
50
+ let e = t.checks[r.checkIds[0]];
51
+ e.name && (i += ` CONSTRAINT "${e.name}"`), i += ` CHECK (${e.expression})`;
48
52
  } else {
49
- let e = a.checkIds.map((e) => `(${t.checks[e].expression})`);
50
- s += ` CHECK (${e.join(" AND ")})`;
53
+ let e = r.checkIds.map((e) => `(${t.checks[e].expression})`);
54
+ i += ` CHECK (${e.join(" AND ")})`;
51
55
  }
52
- return a.dbdefault && (a.dbdefault.type === "boolean" && (a.dbdefault.value === null || typeof a.dbdefault.value == "string" && a.dbdefault.value.toLowerCase() === "null") || (a.dbdefault.type === "expression" ? s += ` DEFAULT (${a.dbdefault.value})` : a.dbdefault.type === "string" ? s += ` DEFAULT '${a.dbdefault.value}'` : s += ` DEFAULT ${a.dbdefault.value}`)), s;
56
+ return r.dbdefault && (r.dbdefault.type === "boolean" && (r.dbdefault.value === null || typeof r.dbdefault.value == "string" && r.dbdefault.value.toLowerCase() === "null") || (r.dbdefault.type === "expression" ? i += ` DEFAULT (${r.dbdefault.value})` : r.dbdefault.type === "string" ? i += ` DEFAULT '${r.dbdefault.value}'` : i += ` DEFAULT ${r.dbdefault.value}`)), i;
53
57
  });
54
58
  }
55
59
  static getCompositePKs(e, t) {
@@ -72,57 +76,57 @@ var g = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
72
76
  static getTableContentArr(e, t, n) {
73
77
  return e.map((e) => ({
74
78
  tableId: e,
75
- fieldContents: v.getFieldLines(e, t, n),
76
- checkContents: v.getCheckLines(e, t),
77
- compositePKs: v.getCompositePKs(e, t)
79
+ fieldContents: r.getFieldLines(e, t, n),
80
+ checkContents: r.getCheckLines(e, t),
81
+ compositePKs: r.getCompositePKs(e, t)
78
82
  }));
79
83
  }
80
84
  static exportTables(e, t, n) {
81
- return v.getTableContentArr(e, t, n).map((e) => {
85
+ return r.getTableContentArr(e, t, n).map((e) => {
82
86
  let n = [
83
87
  ...e.fieldContents,
84
88
  ...e.checkContents,
85
89
  ...e.compositePKs
86
90
  ], r = t.tables[e.tableId], i = t.schemas[r.schemaId];
87
- return `CREATE TABLE ${a(i, t) ? `"${i.name}".` : ""}"${r.name}" (\n${n.map((e) => ` ${e}`).join(",\n")}\n);\n`;
91
+ return `CREATE TABLE ${l(i, t) ? `"${i.name}".` : ""}"${r.name}" (\n${n.map((e) => ` ${e}`).join(",\n")}\n);\n`;
88
92
  });
89
93
  }
90
94
  static buildFieldName(e, t) {
91
95
  return `(${e.map((e) => `"${t.fields[e].name}"`).join(", ")})`;
92
96
  }
93
97
  static buildTableManyToMany(e, t, n, r, i) {
94
- let o = `CREATE TABLE ${a(r, i) ? `"${r.name}".` : ""}"${n}" (\n`, s = [...e.keys()].join("\", \""), c = [...t.keys()].join("\", \"");
98
+ let a = `CREATE TABLE ${l(r, i) ? `"${r.name}".` : ""}"${n}" (\n`, o = [...e.keys()].join("\", \""), s = [...t.keys()].join("\", \"");
95
99
  return e.forEach((e, t) => {
96
- o += ` "${t}" ${e},\n`;
100
+ a += ` "${t}" ${e},\n`;
97
101
  }), t.forEach((e, t) => {
98
- o += ` "${t}" ${e},\n`;
99
- }), o += ` PRIMARY KEY ("${s}", "${c}")\n`, o += ");\n\n", o;
102
+ a += ` "${t}" ${e},\n`;
103
+ }), a += ` PRIMARY KEY ("${o}", "${s}")\n`, a += ");\n\n", a;
100
104
  }
101
- static buildForeignKeyManyToMany(e, t, n, r, i, o, s) {
102
- let c = [...e.keys()].join("\", \"");
103
- return `ALTER TABLE ${a(i, s) ? `"${i.name}".` : ""}"${n}" ADD FOREIGN KEY ("${c}") REFERENCES ${a(o, s) ? `"${o.name}".` : ""}"${r}" ${t} DEFERRABLE INITIALLY IMMEDIATE;\n\n`;
105
+ static buildForeignKeyManyToMany(e, t, n, r, i, a, o) {
106
+ let s = [...e.keys()].join("\", \"");
107
+ return `ALTER TABLE ${l(i, o) ? `"${i.name}".` : ""}"${n}" ADD FOREIGN KEY ("${s}") REFERENCES ${l(a, o) ? `"${a.name}".` : ""}"${r}" ${t} DEFERRABLE INITIALLY IMMEDIATE;\n\n`;
104
108
  }
105
- static exportRefs(r, i, o) {
106
- return r.map((r) => {
107
- let s = "", c = i.refs[r], l = c.endpointIds.findIndex((e) => h(i.endpoints[e].relation).max === 1), u = l === -1 ? 0 : l, d = c.endpointIds[1 - u], f = c.endpointIds[u], p = i.endpoints[d], m = i.endpoints[f], g = i.fields[m.fieldIds[0]], _ = i.tables[g.tableId], v = i.schemas[_.schemaId], y = this.buildFieldName(m.fieldIds, i, "postgres"), b = i.fields[p.fieldIds[0]], x = i.tables[b.tableId], S = i.schemas[x.schemaId], C = this.buildFieldName(p.fieldIds, i, "postgres");
108
- if (l === -1) {
109
- let r = e(m.fieldIds, i), a = t(p.fieldIds, i, r), c = n(_.name, x.name, o);
110
- s += this.buildTableManyToMany(r, a, c, v, i), s += this.buildForeignKeyManyToMany(r, y, c, _.name, v, v, i), s += this.buildForeignKeyManyToMany(a, C, c, x.name, v, S, i);
111
- } else s = `ALTER TABLE ${a(S, i) ? `"${S.name}".` : ""}"${x.name}" ADD `, c.name && (s += `CONSTRAINT "${c.name}" `), s += `FOREIGN KEY ${C} REFERENCES ${a(v, i) ? `"${v.name}".` : ""}"${_.name}" ${y}`, c.onDelete && (s += ` ON DELETE ${c.onDelete.toUpperCase()}`), c.onUpdate && (s += ` ON UPDATE ${c.onUpdate.toUpperCase()}`), s += " DEFERRABLE INITIALLY IMMEDIATE;\n";
112
- return s;
109
+ static exportRefs(e, t, n) {
110
+ return e.map((e) => {
111
+ let r = "", s = t.refs[e], c = s.endpointIds.findIndex((e) => g(t.endpoints[e].relation).max === 1), u = c === -1 ? 0 : c, d = s.endpointIds[1 - u], f = s.endpointIds[u], p = t.endpoints[d], m = t.endpoints[f], h = t.fields[m.fieldIds[0]], _ = t.tables[h.tableId], v = t.schemas[_.schemaId], y = this.buildFieldName(m.fieldIds, t, "postgres"), b = t.fields[p.fieldIds[0]], x = t.tables[b.tableId], S = t.schemas[x.schemaId], C = this.buildFieldName(p.fieldIds, t, "postgres");
112
+ if (c === -1) {
113
+ let e = i(m.fieldIds, t), s = a(p.fieldIds, t, e), c = o(_.name, x.name, n);
114
+ 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);
115
+ } else r = `ALTER TABLE ${l(S, t) ? `"${S.name}".` : ""}"${x.name}" ADD `, s.name && (r += `CONSTRAINT "${s.name}" `), r += `FOREIGN KEY ${C} REFERENCES ${l(v, t) ? `"${v.name}".` : ""}"${_.name}" ${y}`, s.onDelete && (r += ` ON DELETE ${s.onDelete.toUpperCase()}`), s.onUpdate && (r += ` ON UPDATE ${s.onUpdate.toUpperCase()}`), r += " DEFERRABLE INITIALLY IMMEDIATE;\n";
116
+ return r;
113
117
  });
114
118
  }
115
119
  static exportIndexes(e, t) {
116
120
  return e.filter((e) => !t.indexes[e].pk).map((e) => {
117
- let n = t.indexes[e], r = t.tables[n.tableId], i = t.schemas[r.schemaId], o = "CREATE";
118
- n.unique && (o += " UNIQUE");
119
- let s = n.name ? `"${n.name}"` : "";
120
- o += " INDEX", s && (o += ` ${s}`), o += ` ON ${a(i, t) ? `"${i.name}".` : ""}"${r.name}"`, n.type && (o += ` USING ${n.type.toUpperCase()}`);
121
- let c = [];
121
+ let n = t.indexes[e], r = t.tables[n.tableId], i = t.schemas[r.schemaId], a = "CREATE";
122
+ n.unique && (a += " UNIQUE");
123
+ let o = n.name ? `"${n.name}"` : "";
124
+ a += " INDEX", o && (a += ` ${o}`), a += ` ON ${l(i, t) ? `"${i.name}".` : ""}"${r.name}"`, n.type && (a += ` USING ${n.type.toUpperCase()}`);
125
+ let s = [];
122
126
  return n.columnIds.forEach((e) => {
123
127
  let n = t.indexColumns[e], r = "";
124
- r = n.type === "expression" ? `(${n.value})` : `"${n.value}"`, c.push(r);
125
- }), o += ` (${c.join(", ")})`, o += ";\n", o;
128
+ r = n.type === "expression" ? `(${n.value})` : `"${n.value}"`, s.push(r);
129
+ }), a += ` (${s.join(", ")})`, a += ";\n", a;
126
130
  });
127
131
  }
128
132
  static exportComments(e, t) {
@@ -130,11 +134,11 @@ var g = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
130
134
  let n = "COMMENT ON", r = t.tables[e.tableId], i = t.schemas[r.schemaId];
131
135
  switch (e.type) {
132
136
  case "table":
133
- n += ` TABLE ${a(i, t) ? `"${i.name}".` : ""}"${r.name}" IS '${r.note.replace(/'/g, "''")}'`;
137
+ n += ` TABLE ${l(i, t) ? `"${i.name}".` : ""}"${r.name}" IS '${r.note.replace(/'/g, "''")}'`;
134
138
  break;
135
139
  case "column": {
136
- let o = t.fields[e.fieldId];
137
- n += ` COLUMN ${a(i, t) ? `"${i.name}".` : ""}"${r.name}"."${o.name}" IS '${o.note.replace(/'/g, "''")}'`;
140
+ let a = t.fields[e.fieldId];
141
+ n += ` COLUMN ${l(i, t) ? `"${i.name}".` : ""}"${r.name}"."${a.name}" IS '${a.note.replace(/'/g, "''")}'`;
138
142
  break;
139
143
  }
140
144
  default: break;
@@ -142,13 +146,13 @@ var g = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
142
146
  return n += ";\n", n;
143
147
  });
144
148
  }
145
- static export(e) {
146
- let t = e.database[1], n = new Set(Object.values(e.tables).map((e) => e.name)), r = /* @__PURE__ */ new Set(), i = t.schemaIds.reduce((t, n) => {
147
- let i = e.schemas[n], { enumIds: o } = i;
148
- return a(i, e) && t.schemas.push(`CREATE SCHEMA "${i.name}";\n`), l(o) || v.exportEnums(o, e).forEach((e) => {
149
- let [n, i] = e;
150
- t.enums.push(i), r.add(n);
151
- }), t;
149
+ static export(i) {
150
+ let a = i.database[1], o = new Set(Object.values(i.tables).map((e) => e.name)), s = /* @__PURE__ */ new Set(), c = a.schemaIds.reduce((e, t) => {
151
+ let a = i.schemas[t], { enumIds: o } = a;
152
+ return l(a, i) && e.schemas.push(`CREATE SCHEMA "${a.name}";\n`), n(o) || r.exportEnums(o, i).forEach((t) => {
153
+ let [n, r] = t;
154
+ e.enums.push(r), s.add(n);
155
+ }), e;
152
156
  }, {
153
157
  schemas: [],
154
158
  enums: [],
@@ -156,35 +160,35 @@ var g = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
156
160
  indexes: [],
157
161
  comments: [],
158
162
  refs: []
159
- }), o = t.schemaIds.reduce((t, i) => {
160
- let { tableIds: a, refIds: o } = e.schemas[i];
161
- l(a) || t.tables.push(...v.exportTables(a, e, r));
162
- let s = c(a.map((t) => e.tables[t].indexIds));
163
- l(s) || t.indexes.push(...v.exportIndexes(s, e));
164
- let u = c(a.map((t) => {
165
- let { fieldIds: n, note: r } = e.tables[t], i = n.filter((t) => e.fields[t].note).map((e) => ({
163
+ }), u = a.schemaIds.reduce((t, a) => {
164
+ let { tableIds: c, refIds: l } = i.schemas[a];
165
+ n(c) || t.tables.push(...r.exportTables(c, i, s));
166
+ let u = e(c.map((e) => i.tables[e].indexIds));
167
+ n(u) || t.indexes.push(...r.exportIndexes(u, i));
168
+ let d = e(c.map((e) => {
169
+ let { fieldIds: t, note: n } = i.tables[e], r = t.filter((e) => i.fields[e].note).map((t) => ({
166
170
  type: "column",
167
- fieldId: e,
168
- tableId: t
171
+ fieldId: t,
172
+ tableId: e
169
173
  }));
170
- return r ? [{
174
+ return n ? [{
171
175
  type: "table",
172
- tableId: t
173
- }].concat(i) : i;
176
+ tableId: e
177
+ }].concat(r) : r;
174
178
  }));
175
- return l(u) || t.comments.push(...v.exportComments(u, e)), l(o) || t.refs.push(...v.exportRefs(o, e, n)), t;
176
- }, i), u = v.exportRecords(e), d = l(u) ? [] : [
179
+ return n(d) || t.comments.push(...r.exportComments(d, i)), n(l) || t.refs.push(...r.exportRefs(l, i, o)), t;
180
+ }, c), d = r.exportRecords(i), f = n(d) ? [] : [
177
181
  "-- Defer constraint checking for INSERT",
178
182
  "BEGIN;",
179
183
  "SET CONSTRAINTS ALL DEFERRED;",
180
184
  "",
181
- ...u,
185
+ ...d,
182
186
  "",
183
187
  "SET CONSTRAINTS ALL IMMEDIATE;",
184
188
  "COMMIT;"
185
189
  ];
186
- return s(o.schemas, o.enums, o.tables, o.indexes, o.comments, o.refs, d).join("\n");
190
+ return t(u.schemas, u.enums, u.tables, u.indexes, u.comments, u.refs, f).join("\n");
187
191
  }
188
192
  };
189
193
  //#endregion
190
- export { v as default };
194
+ export { y as default };
@@ -1,15 +1,15 @@
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`?`1`:`0`:(0,n.isStringType)(e.type)||(0,n.isDateTimeType)(e.type)?`'${e.value.replace(/'/g,`''`)}'`:(0,n.isBinaryType)(e.type)?`0x${e.value}`:`CAST('${e.value.replace(/'/g,`''`)}' AS ${e.type})`;return`INSERT INTO ${o} ${s}\nVALUES\n ${a.map(e=>`(${e.map(c).join(`, `)})`).join(`,
2
- `)};\nGO`})}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}] nvarchar(255) CHECK ([${n.name}] IN (`;let i=e.valueIds.map(e=>`'${t.enumValues[e].name}'`);r+=`${i.join(`, `)}))`}else r=`[${n.name}] ${n.type.type_name===`varchar`?`nvarchar(255)`:n.type.type_name}`;if(n.unique&&(r+=` UNIQUE`),n.pk&&(r+=` PRIMARY KEY`),n.not_null&&(r+=` NOT NULL`),n.increment&&(r+=` IDENTITY(1, 1)`),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})`)),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)\nGO\n`})}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`?`1`:`0`:(0,a.isStringType)(e.type)||(0,a.isDateTimeType)(e.type)?`'${e.value.replace(/'/g,`''`)}'`:(0,a.isBinaryType)(e.type)?`0x${e.value}`:`CAST('${e.value.replace(/'/g,`''`)}' AS ${e.type})`;return`INSERT INTO ${o} ${s}\nVALUES\n ${i.map(e=>`(${e.map(c).join(`, `)})`).join(`,
2
+ `)};\nGO`})}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}] nvarchar(255) CHECK ([${n.name}] IN (`;let i=e.valueIds.map(e=>`'${t.enumValues[e].name}'`);r+=`${i.join(`, `)}))`}else r=`[${n.name}] ${n.type.type_name===`varchar`?`nvarchar(255)`:n.type.type_name}`;if(n.unique&&(r+=` UNIQUE`),n.pk&&(r+=` PRIMARY KEY`),n.not_null&&(r+=` NOT NULL`),n.increment&&(r+=` IDENTITY(1, 1)`),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})`)),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)\nGO\n`})}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
  GO
5
5
 
6
- `,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};\nGO\n\n`}static buildFieldName(e,t){return`(${e.map(e=>`[${t.fields[e].name}]`).join(`, `)})`}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,`mssql`),_=r.fields[d.fieldIds[0]],v=r.tables[_.tableId],y=r.schemas[v.schemaId],b=this.buildFieldName(d.fieldIds,r,`mssql`);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
+ `,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};\nGO\n\n`}static buildFieldName(e,t){return`(${e.map(e=>`[${t.fields[e].name}]`).join(`, `)})`}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,`mssql`),_=t.fields[d.fieldIds[0]],v=t.tables[_.tableId],y=t.schemas[v.schemaId],b=this.buildFieldName(d.fieldIds,t,`mssql`);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+=`
7
7
  GO
8
- `;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}]`:`[${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(`, `)})`,s+=`
8
+ `;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}]`:`[${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(`, `)})`,s+=`
9
9
  GO
10
- `,s})}static exportComments(t,n){return t.map(t=>{let r=n.tables[t.tableId],i=n.schemas[r.schemaId],a=``;switch(a=`EXEC sp_addextendedproperty
11
- `,t.type){case`table`:a+=`@name = N'Table_Description',
12
- `,a+=`@value = '${r.note.replace(/'/g,`''`)}',\n`,a+=`@level0type = N'Schema', @level0name = '${e.shouldPrintSchema(i,n)?`${i.name}`:`dbo`}',\n`,a+=`@level1type = N'Table', @level1name = '${r.name}';\n`;break;case`column`:{let o=n.fields[t.fieldId];a+=`@name = N'Column_Description',
13
- `,a+=`@value = '${o.note.replace(/'/g,`''`)}',\n`,a+=`@level0type = N'Schema', @level0name = '${e.shouldPrintSchema(i,n)?`${i.name}`:`dbo`}',\n`,a+=`@level1type = N'Table', @level1name = '${r.name}',\n`,a+=`@level2type = N'Column', @level2name = '${o.name}';\n`;break}default:break}return a+=`GO
14
- `,a})}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}]\nGO\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{fieldIds:t,note:r}=n.tables[e],i=t.filter(e=>n.fields[e].note).map(t=>({type:`column`,fieldId:t,tableId:e}));return r?[{type:`table`,tableId:e}].concat(i):i}));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)?[]:(()=>{let e=[...new Set(Object.values(n.records||{}).map(e=>e.schemaName?`[${e.schemaName}].[${e.tableName}]`:`[${e.tableName}]`))];return[`-- Disable constraint checks for tables with data`,...e.map(e=>`ALTER TABLE ${e} NOCHECK CONSTRAINT ALL;\nGO`),``,...s,``,`-- Re-enable constraint checks`,...e.map(e=>`ALTER TABLE ${e} WITH CHECK CHECK CONSTRAINT ALL;\nGO`)]})();return(0,t.concat)(o.schemas,o.enums,o.tables,o.indexes,o.comments,o.refs,c).join(`
15
- `)}};exports.default=r;
10
+ `,s})}static exportComments(e,t){return e.map(e=>{let n=t.tables[e.tableId],r=t.schemas[n.schemaId],a=``;switch(a=`EXEC sp_addextendedproperty
11
+ `,e.type){case`table`:a+=`@name = N'Table_Description',
12
+ `,a+=`@value = '${n.note.replace(/'/g,`''`)}',\n`,a+=`@level0type = N'Schema', @level0name = '${i.shouldPrintSchema(r,t)?`${r.name}`:`dbo`}',\n`,a+=`@level1type = N'Table', @level1name = '${n.name}';\n`;break;case`column`:{let o=t.fields[e.fieldId];a+=`@name = N'Column_Description',
13
+ `,a+=`@value = '${o.note.replace(/'/g,`''`)}',\n`,a+=`@level0type = N'Schema', @level0name = '${i.shouldPrintSchema(r,t)?`${r.name}`:`dbo`}',\n`,a+=`@level1type = N'Table', @level1name = '${n.name}',\n`,a+=`@level2type = N'Column', @level2name = '${o.name}';\n`;break}default:break}return a+=`GO
14
+ `,a})}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}]\nGO\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{fieldIds:t,note:n}=a.tables[e],r=t.filter(e=>a.fields[e].note).map(t=>({type:`column`,fieldId:t,tableId:e}));return n?[{type:`table`,tableId:e}].concat(r):r}));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)?[]:(()=>{let e=[...new Set(Object.values(a.records||{}).map(e=>e.schemaName?`[${e.schemaName}].[${e.tableName}]`:`[${e.tableName}]`))];return[`-- Disable constraint checks for tables with data`,...e.map(e=>`ALTER TABLE ${e} NOCHECK CONSTRAINT ALL;\nGO`),``,...l,``,`-- Re-enable constraint checks`,...e.map(e=>`ALTER TABLE ${e} WITH CHECK CHECK CONSTRAINT ALL;\nGO`)]})();return t.default(c.schemas,c.enums,c.tables,c.indexes,c.comments,c.refs,u).join(`
15
+ `)}};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/SqlServerExporter.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" ? "1" : "0" : d(e.type) || l(e.type) ? `'${e.value.replace(/'/g, "''")}'` : s(e.type) ? `0x${e.value}` : `CAST('${e.value.replace(/'/g, "''")}' AS ${e.type})`;
10
- return `INSERT INTO ${a} ${o}\nVALUES\n ${i.map((e) => `(${e.map(f).join(", ")})`).join(",\n ")};\nGO`;
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" ? "1" : "0" : f(e.type) || u(e.type) ? `'${e.value.replace(/'/g, "''")}'` : c(e.type) ? `0x${e.value}` : `CAST('${e.value.replace(/'/g, "''")}' AS ${e.type})`;
14
+ return `INSERT INTO ${a} ${o}\nVALUES\n ${i.map((e) => `(${e.map(s).join(", ")})`).join(",\n ")};\nGO`;
11
15
  });
12
16
  }
13
17
  static getFieldLines(e, t) {
@@ -49,94 +53,94 @@ 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)\nGO\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)\nGO\n`;
65
69
  });
66
70
  }
67
- static buildTableManyToMany(e, t, n, i, a) {
68
- let o = `CREATE TABLE ${r(i, a) ? `[${i.name}].` : ""}[${n}] (\n`, s = [...e.keys()].join("], ["), c = [...t.keys()].join("], [");
71
+ static buildTableManyToMany(e, t, n, r, i) {
72
+ let a = `CREATE TABLE ${s(r, i) ? `[${r.name}].` : ""}[${n}] (\n`, o = [...e.keys()].join("], ["), c = [...t.keys()].join("], [");
69
73
  return e.forEach((e, t) => {
70
- o += ` [${t}] ${e},\n`;
74
+ a += ` [${t}] ${e},\n`;
71
75
  }), t.forEach((e, t) => {
72
- o += ` [${t}] ${e},\n`;
73
- }), o += ` PRIMARY KEY ([${s}], [${c}])\n`, o += ");\nGO\n\n", o;
76
+ a += ` [${t}] ${e},\n`;
77
+ }), a += ` PRIMARY KEY ([${o}], [${c}])\n`, a += ");\nGO\n\n", a;
74
78
  }
75
- static buildForeignKeyManyToMany(e, t, n, i, a, o, s) {
79
+ static buildForeignKeyManyToMany(e, t, n, r, i, a, o) {
76
80
  let c = [...e.keys()].join("], [");
77
- return `ALTER TABLE ${r(a, s) ? `[${a.name}].` : ""}[${n}] ADD FOREIGN KEY ([${c}]) REFERENCES ${r(o, s) ? `[${o.name}].` : ""}[${i}] ${t};\nGO\n\n`;
81
+ return `ALTER TABLE ${s(i, o) ? `[${i.name}].` : ""}[${n}] ADD FOREIGN KEY ([${c}]) REFERENCES ${s(a, o) ? `[${a.name}].` : ""}[${r}] ${t};\nGO\n\n`;
78
82
  }
79
83
  static buildFieldName(e, t) {
80
84
  return `(${e.map((e) => `[${t.fields[e].name}]`).join(", ")})`;
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, "mssql"), b = a.fields[m.fieldIds[0]], x = a.tables[b.tableId], S = a.schemas[x.schemaId], C = this.buildFieldName(m.fieldIds, a, "mssql");
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, "mssql"), b = t.fields[m.fieldIds[0]], x = t.tables[b.tableId], S = t.schemas[x.schemaId], C = this.buildFieldName(m.fieldIds, t, "mssql");
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 += "\nGO\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 += "\nGO\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}]` : `[${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}]` : `[${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(", ")})`, s += "\nGO\n", s;
106
+ }), o += ` (${l.join(", ")})`, o += "\nGO\n", o;
103
107
  });
104
108
  }
105
109
  static exportComments(e, t) {
106
110
  return e.map((e) => {
107
- let n = t.tables[e.tableId], i = t.schemas[n.schemaId], a = "";
108
- switch (a = "EXEC sp_addextendedproperty\n", e.type) {
111
+ let n = t.tables[e.tableId], r = t.schemas[n.schemaId], i = "";
112
+ switch (i = "EXEC sp_addextendedproperty\n", e.type) {
109
113
  case "table":
110
- a += "@name = N'Table_Description',\n", a += `@value = '${n.note.replace(/'/g, "''")}',\n`, a += `@level0type = N'Schema', @level0name = '${r(i, t) ? `${i.name}` : "dbo"}',\n`, a += `@level1type = N'Table', @level1name = '${n.name}';\n`;
114
+ i += "@name = N'Table_Description',\n", i += `@value = '${n.note.replace(/'/g, "''")}',\n`, i += `@level0type = N'Schema', @level0name = '${s(r, t) ? `${r.name}` : "dbo"}',\n`, i += `@level1type = N'Table', @level1name = '${n.name}';\n`;
111
115
  break;
112
116
  case "column": {
113
- let o = t.fields[e.fieldId];
114
- a += "@name = N'Column_Description',\n", a += `@value = '${o.note.replace(/'/g, "''")}',\n`, a += `@level0type = N'Schema', @level0name = '${r(i, t) ? `${i.name}` : "dbo"}',\n`, a += `@level1type = N'Table', @level1name = '${n.name}',\n`, a += `@level2type = N'Column', @level2name = '${o.name}';\n`;
117
+ let a = t.fields[e.fieldId];
118
+ i += "@name = N'Column_Description',\n", i += `@value = '${a.note.replace(/'/g, "''")}',\n`, i += `@level0type = N'Schema', @level0name = '${s(r, t) ? `${r.name}` : "dbo"}',\n`, i += `@level1type = N'Table', @level1name = '${n.name}',\n`, i += `@level2type = N'Column', @level2name = '${a.name}';\n`;
115
119
  break;
116
120
  }
117
121
  default: break;
118
122
  }
119
- return a += "GO\n", a;
123
+ return i += "GO\n", i;
120
124
  });
121
125
  }
122
- static export(e) {
123
- let t = e.database[1], n = new Set(Object.values(e.tables).map((e) => e.name)), s = t.schemaIds.reduce((t, i) => {
124
- let s = e.schemas[i], { tableIds: c, refIds: l } = s;
125
- r(s, e) && t.schemas.push(`CREATE SCHEMA [${s.name}]\nGO\n`), o(c) || t.tables.push(...p.exportTables(c, e));
126
- let u = a(c.map((t) => e.tables[t].indexIds));
127
- o(u) || t.indexes.push(...p.exportIndexes(u, e));
128
- let d = a(c.map((t) => {
129
- let { fieldIds: n, note: r } = e.tables[t], i = n.filter((t) => e.fields[t].note).map((e) => ({
126
+ static export(i) {
127
+ let a = i.database[1], o = new Set(Object.values(i.tables).map((e) => e.name)), c = a.schemaIds.reduce((t, a) => {
128
+ let c = i.schemas[a], { tableIds: l, refIds: u } = c;
129
+ s(c, i) && t.schemas.push(`CREATE SCHEMA [${c.name}]\nGO\n`), n(l) || t.tables.push(...r.exportTables(l, i));
130
+ let d = e(l.map((e) => i.tables[e].indexIds));
131
+ n(d) || t.indexes.push(...r.exportIndexes(d, i));
132
+ let f = e(l.map((e) => {
133
+ let { fieldIds: t, note: n } = i.tables[e], r = t.filter((e) => i.fields[e].note).map((t) => ({
130
134
  type: "column",
131
- fieldId: e,
132
- tableId: t
135
+ fieldId: t,
136
+ tableId: e
133
137
  }));
134
- return r ? [{
138
+ return n ? [{
135
139
  type: "table",
136
- tableId: t
137
- }].concat(i) : i;
140
+ tableId: e
141
+ }].concat(r) : r;
138
142
  }));
139
- return o(d) || t.comments.push(...p.exportComments(d, e)), o(l) || t.refs.push(...p.exportRefs(l, e, n)), t;
143
+ return n(f) || t.comments.push(...r.exportComments(f, i)), n(u) || t.refs.push(...r.exportRefs(u, i, o)), t;
140
144
  }, {
141
145
  schemas: [],
142
146
  enums: [],
@@ -144,20 +148,20 @@ var p = class p {
144
148
  indexes: [],
145
149
  comments: [],
146
150
  refs: []
147
- }), c = p.exportRecords(e), l = o(c) ? [] : (() => {
148
- let t = [...new Set(Object.values(e.records || {}).map((e) => e.schemaName ? `[${e.schemaName}].[${e.tableName}]` : `[${e.tableName}]`))];
151
+ }), l = r.exportRecords(i), u = n(l) ? [] : (() => {
152
+ let e = [...new Set(Object.values(i.records || {}).map((e) => e.schemaName ? `[${e.schemaName}].[${e.tableName}]` : `[${e.tableName}]`))];
149
153
  return [
150
154
  "-- Disable constraint checks for tables with data",
151
- ...t.map((e) => `ALTER TABLE ${e} NOCHECK CONSTRAINT ALL;\nGO`),
155
+ ...e.map((e) => `ALTER TABLE ${e} NOCHECK CONSTRAINT ALL;\nGO`),
152
156
  "",
153
- ...c,
157
+ ...l,
154
158
  "",
155
159
  "-- Re-enable constraint checks",
156
- ...t.map((e) => `ALTER TABLE ${e} WITH CHECK CHECK CONSTRAINT ALL;\nGO`)
160
+ ...e.map((e) => `ALTER TABLE ${e} WITH CHECK CHECK CONSTRAINT ALL;\nGO`)
157
161
  ];
158
162
  })();
159
- return i(s.schemas, s.enums, s.tables, s.indexes, s.comments, s.refs, l).join("\n");
163
+ return t(c.schemas, c.enums, c.tables, c.indexes, c.comments, c.refs, u).join("\n");
160
164
  }
161
165
  };
162
166
  //#endregion
163
- export { p as default };
167
+ export { m as default };
@@ -1 +1 @@
1
- require("../_virtual/_rolldown/runtime.cjs");const e=require("./config.cjs"),t=require("./dbState.cjs"),n=require("./element.cjs"),r=require("./dep.cjs"),i=require("./enum.cjs"),a=require("./ref.cjs"),o=require("./table.cjs"),s=require("./tableGroup.cjs"),c=require("./schema.cjs"),l=require("./stickyNote.cjs"),u=require("./tablePartial.cjs");let d=require("lodash-es"),f=require("@dbml/parse");var p=class extends n.default{constructor({schemas:n=[],tables:r=[],notes:i=[],enums:o=[],refs:s=[],deps:c=[],tableGroups:l=[],project:u={},aliases:f=[],records:p=[],tablePartials:m=[],diagramViews:h=[]}={}){super(),this.dbState=new t.default,this.generateId(),this.hasDefaultSchema=!1,this.schemas=[],this.notes=[],this.note=u.note?(0,d.get)(u,`note.value`,typeof u.note==`string`?u.note:null):null,this.noteToken=u.note?(0,d.get)(u,`note.token`,u.noteToken):null,this.databaseType=u.database_type,this.name=u.name,this.token=u.token,this.aliases=f,this.records=[],this.tablePartials=[],this.diagramViews=h,this.injectedRawRefs=[],this.processNotes(i),this.processRecords(p),this.processTablePartials(m),this.processSchemas(n),this.processSchemaElements(o,e.ENUM),this.processSchemaElements(r,e.TABLE),this.linkRecordsToTables(),this.processSchemaElements(i,e.NOTE),this.processSchemaElements(s,`ref`),this.processSchemaElements(c,`dep`),this.processSchemaElements(l,e.TABLE_GROUP),this.injectedRawRefs.forEach(t=>{let n=this.findOrCreateSchema(e.DEFAULT_SCHEMA_NAME),r=new a.default({...t,schema:n});n.refs.some(e=>e.equals(r))||n.pushRef(r)})}generateId(){this.id=this.dbState.generateId(`dbId`)}processNotes(e){e.forEach(e=>{this.pushNote(new l.default({...e,database:this}))})}processRecords(e){e.forEach(({schemaName:e,tableName:t,columns:n,values:r,example:i,token:a})=>{this.records.push({id:this.dbState.generateId(`recordId`),schemaName:e,tableName:t,columns:n,values:r,example:i,token:a})})}processTablePartials(e){e.forEach(e=>{this.tablePartials.push(new u.default({...e,dbState:this.dbState}))})}pushNote(e){this.checkNote(e),this.notes.push(e)}checkNote(e){this.notes.some(t=>t.name===e.name)&&e.error(`Notes ${e.name} existed`)}processSchemas(e){e.forEach(e=>{this.pushSchema(new c.default({...e,database:this}))})}pushSchema(e){this.checkSchema(e),this.schemas.push(e)}checkSchema(e){this.schemas.some(t=>t.name===e.name)&&e.error(`Schemas ${e.name} existed`)}processSchemaElements(t,n){let c;t.forEach(t=>{switch(t.schemaName?(c=this.findOrCreateSchema(t.schemaName),t.schemaName):c=this.findOrCreateSchema(e.DEFAULT_SCHEMA_NAME),n){case e.TABLE:c.pushTable(new o.default({...t,schema:c}));break;case e.ENUM:c.pushEnum(new i.default({...t,schema:c}));break;case e.TABLE_GROUP:c.pushTableGroup(new s.default({...t,schema:c}));break;case`ref`:c.pushRef(new a.default({...t,schema:c}));break;case`dep`:c.pushDep(new r.default({...t,schema:c}));break;default:break}})}linkRecordsToTables(){let e={};this.schemas.forEach(t=>{e[t.name]={},t.tables.forEach(n=>{e[t.name][n.name]=n})}),this.records.forEach(t=>{let n=e[t.schemaName??`public`]?.[t.tableName];n&&(t.tableId=n.id,n.records.push(t))})}findOrCreateSchema(t){let n=this.schemas.find(e=>e.name===t||e.alias===t);return n||(n=new c.default({name:t,note:{value:t===`public`?`Default ${(0,d.capitalize)(e.DEFAULT_SCHEMA_NAME)} Schema`:null},database:this}),this.pushSchema(n)),n}findTableAlias(e){let t=this.aliases.find(t=>t.name===e);if(!t||t.kind!==`table`)return null;let n=t.value.schemaName||`public`,r=this.schemas.find(e=>e.name===n);if(!r)return null;let{tableName:i}=t.value;return r.tables.find(e=>e.name===i)||null}findTable(e,t){let n=null;if(!e&&(n=this.findTableAlias(t),n))return n;let r=this.findOrCreateSchema(e||`public`);return r||this.error(`Schema ${e||`public`} don't exist`),r.findTable(t)}findEnum(e,t){let n=this.schemas.find(t=>t.name===e||t.alias===e);if(n)return n.enums.find(e=>e.name===t)}findTablePartial(e){return this.tablePartials.find(t=>t.name===e)}adjustCardinalitiesFromColumns(){this.schemas.forEach(e=>{e.refs.forEach(e=>{let t=e.endpoints.find(e=>(0,f.parseCardinality)(e.relation).max===`*`),n=e.endpoints.find(e=>(0,f.parseCardinality)(e.relation).max===1);if(!n)return;let r,i;t?(r=t,i=n):(r=e.endpoints[1],i=e.endpoints[0]),!(!r||!i)&&r.fields.every(e=>e.not_null||e.pk||e.increment)&&(i.relation=(0,f.makeCardinalityRequired)(i.relation))})})}export(){return{...this.exportChild()}}shallowExport(){return{hasDefaultSchema:this.hasDefaultSchema,note:this.note,databaseType:this.databaseType,name:this.name}}exportChild(){return{schemas:this.schemas.map(e=>e.export()),notes:this.notes.map(e=>e.export()),records:this.records.map(e=>({...e}))}}exportChildIds(){return{schemaIds:this.schemas.map(e=>e.id),noteIds:this.notes.map(e=>e.id)}}normalize(){let e={database:{[this.id]:{id:this.id,...this.shallowExport(),...this.exportChildIds()}},schemas:{},notes:{},refs:{},deps:{},depEdges:{},enums:{},tableGroups:{},tables:{},endpoints:{},enumValues:{},indexes:{},indexColumns:{},checks:{},fields:{},records:{},tablePartials:{}};return this.schemas.forEach(t=>t.normalize(e)),this.notes.forEach(t=>t.normalize(e)),this.records.forEach(t=>{e.records[t.id]={...t}}),this.tablePartials.forEach(t=>t.normalize(e)),e}};exports.default=p;
1
+ require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/lodash-es/get.cjs"),t=require("../node_modules/lodash-es/capitalize.cjs"),n=require("../node_modules/lodash-es/lodash.cjs"),r=require("./config.cjs"),i=require("./dbState.cjs"),a=require("./element.cjs"),o=require("./dep.cjs"),s=require("./enum.cjs"),c=require("./ref.cjs"),l=require("./table.cjs"),u=require("./tableGroup.cjs"),d=require("./schema.cjs"),f=require("./stickyNote.cjs"),p=require("./tablePartial.cjs");let m=require("@dbml/parse");n.init_lodash();var h=class extends a.default{constructor({schemas:t=[],tables:n=[],notes:a=[],enums:o=[],refs:s=[],deps:l=[],tableGroups:u=[],project:d={},aliases:f=[],records:p=[],tablePartials:m=[],diagramViews:h=[]}={}){super(),this.dbState=new i.default,this.generateId(),this.hasDefaultSchema=!1,this.schemas=[],this.notes=[],this.note=d.note?e.default(d,`note.value`,typeof d.note==`string`?d.note:null):null,this.noteToken=d.note?e.default(d,`note.token`,d.noteToken):null,this.databaseType=d.database_type,this.name=d.name,this.token=d.token,this.aliases=f,this.records=[],this.tablePartials=[],this.diagramViews=h,this.injectedRawRefs=[],this.processNotes(a),this.processRecords(p),this.processTablePartials(m),this.processSchemas(t),this.processSchemaElements(o,r.ENUM),this.processSchemaElements(n,r.TABLE),this.linkRecordsToTables(),this.processSchemaElements(a,r.NOTE),this.processSchemaElements(s,`ref`),this.processSchemaElements(l,`dep`),this.processSchemaElements(u,r.TABLE_GROUP),this.injectedRawRefs.forEach(e=>{let t=this.findOrCreateSchema(r.DEFAULT_SCHEMA_NAME),n=new c.default({...e,schema:t});t.refs.some(e=>e.equals(n))||t.pushRef(n)})}generateId(){this.id=this.dbState.generateId(`dbId`)}processNotes(e){e.forEach(e=>{this.pushNote(new f.default({...e,database:this}))})}processRecords(e){e.forEach(({schemaName:e,tableName:t,columns:n,values:r,example:i,token:a})=>{this.records.push({id:this.dbState.generateId(`recordId`),schemaName:e,tableName:t,columns:n,values:r,example:i,token:a})})}processTablePartials(e){e.forEach(e=>{this.tablePartials.push(new p.default({...e,dbState:this.dbState}))})}pushNote(e){this.checkNote(e),this.notes.push(e)}checkNote(e){this.notes.some(t=>t.name===e.name)&&e.error(`Notes ${e.name} existed`)}processSchemas(e){e.forEach(e=>{this.pushSchema(new d.default({...e,database:this}))})}pushSchema(e){this.checkSchema(e),this.schemas.push(e)}checkSchema(e){this.schemas.some(t=>t.name===e.name)&&e.error(`Schemas ${e.name} existed`)}processSchemaElements(e,t){let n;e.forEach(e=>{switch(e.schemaName?(n=this.findOrCreateSchema(e.schemaName),e.schemaName):n=this.findOrCreateSchema(r.DEFAULT_SCHEMA_NAME),t){case r.TABLE:n.pushTable(new l.default({...e,schema:n}));break;case r.ENUM:n.pushEnum(new s.default({...e,schema:n}));break;case r.TABLE_GROUP:n.pushTableGroup(new u.default({...e,schema:n}));break;case`ref`:n.pushRef(new c.default({...e,schema:n}));break;case`dep`:n.pushDep(new o.default({...e,schema:n}));break;default:break}})}linkRecordsToTables(){let e={};this.schemas.forEach(t=>{e[t.name]={},t.tables.forEach(n=>{e[t.name][n.name]=n})}),this.records.forEach(t=>{let n=e[t.schemaName??`public`]?.[t.tableName];n&&(t.tableId=n.id,n.records.push(t))})}findOrCreateSchema(e){let n=this.schemas.find(t=>t.name===e||t.alias===e);return n||(n=new d.default({name:e,note:{value:e===`public`?`Default ${t.default(r.DEFAULT_SCHEMA_NAME)} Schema`:null},database:this}),this.pushSchema(n)),n}findTableAlias(e){let t=this.aliases.find(t=>t.name===e);if(!t||t.kind!==`table`)return null;let n=t.value.schemaName||`public`,r=this.schemas.find(e=>e.name===n);if(!r)return null;let{tableName:i}=t.value;return r.tables.find(e=>e.name===i)||null}findTable(e,t){let n=null;if(!e&&(n=this.findTableAlias(t),n))return n;let r=this.findOrCreateSchema(e||`public`);return r||this.error(`Schema ${e||`public`} don't exist`),r.findTable(t)}findEnum(e,t){let n=this.schemas.find(t=>t.name===e||t.alias===e);if(n)return n.enums.find(e=>e.name===t)}findTablePartial(e){return this.tablePartials.find(t=>t.name===e)}adjustCardinalitiesFromColumns(){this.schemas.forEach(e=>{e.refs.forEach(e=>{let t=e.endpoints.find(e=>(0,m.parseCardinality)(e.relation).max===`*`),n=e.endpoints.find(e=>(0,m.parseCardinality)(e.relation).max===1);if(!n)return;let r,i;t?(r=t,i=n):(r=e.endpoints[1],i=e.endpoints[0]),!(!r||!i)&&r.fields.every(e=>e.not_null||e.pk||e.increment)&&(i.relation=(0,m.makeCardinalityRequired)(i.relation))})})}export(){return{...this.exportChild()}}shallowExport(){return{hasDefaultSchema:this.hasDefaultSchema,note:this.note,databaseType:this.databaseType,name:this.name}}exportChild(){return{schemas:this.schemas.map(e=>e.export()),notes:this.notes.map(e=>e.export()),records:this.records.map(e=>({...e}))}}exportChildIds(){return{schemaIds:this.schemas.map(e=>e.id),noteIds:this.notes.map(e=>e.id)}}normalize(){let e={database:{[this.id]:{id:this.id,...this.shallowExport(),...this.exportChildIds()}},schemas:{},notes:{},refs:{},deps:{},depEdges:{},enums:{},tableGroups:{},tables:{},endpoints:{},enumValues:{},indexes:{},indexColumns:{},checks:{},fields:{},records:{},tablePartials:{}};return this.schemas.forEach(t=>t.normalize(e)),this.notes.forEach(t=>t.normalize(e)),this.records.forEach(t=>{e.records[t.id]={...t}}),this.tablePartials.forEach(t=>t.normalize(e)),e}};exports.default=h;