@dbml/core 11.0.2-arch.0.2 → 11.0.2-arch.0.3

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 (359) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/lib/_virtual/_rolldown/runtime.cjs +1 -1
  4. package/lib/_virtual/_rolldown/runtime.mjs +3 -2
  5. package/lib/export/DbmlExporter.cjs +1 -1
  6. package/lib/export/DbmlExporter.mjs +3 -2
  7. package/lib/export/JsonExporter.mjs +2 -1
  8. package/lib/export/ModelExporter.cjs +1 -1
  9. package/lib/export/ModelExporter.mjs +10 -9
  10. package/lib/export/MysqlExporter.mjs +2 -1
  11. package/lib/export/OracleExporter.mjs +2 -1
  12. package/lib/export/PostgresExporter.cjs +8 -8
  13. package/lib/export/PostgresExporter.mjs +31 -30
  14. package/lib/export/SqlServerExporter.mjs +2 -1
  15. package/lib/export/index.cjs +1 -1
  16. package/lib/export/index.mjs +6 -5
  17. package/lib/export/utils.mjs +2 -1
  18. package/lib/import/index.cjs +1 -1
  19. package/lib/import/index.mjs +11 -10
  20. package/lib/index.cjs +1 -1
  21. package/lib/index.mjs +5 -5
  22. package/lib/model_structure/check.mjs +2 -1
  23. package/lib/model_structure/config.mjs +2 -1
  24. package/lib/model_structure/database.cjs +1 -1
  25. package/lib/model_structure/database.mjs +15 -14
  26. package/lib/model_structure/dbState.mjs +2 -1
  27. package/lib/model_structure/dep.cjs +1 -1
  28. package/lib/model_structure/dep.mjs +7 -6
  29. package/lib/model_structure/depEdge.cjs +1 -1
  30. package/lib/model_structure/depEdge.mjs +11 -10
  31. package/lib/model_structure/element.mjs +2 -1
  32. package/lib/model_structure/endpoint.cjs +1 -1
  33. package/lib/model_structure/endpoint.mjs +18 -17
  34. package/lib/model_structure/enum.cjs +1 -1
  35. package/lib/model_structure/enum.mjs +9 -8
  36. package/lib/model_structure/enumValue.mjs +2 -1
  37. package/lib/model_structure/field.cjs +1 -1
  38. package/lib/model_structure/field.mjs +6 -5
  39. package/lib/model_structure/group.mjs +2 -1
  40. package/lib/model_structure/indexColumn.mjs +2 -1
  41. package/lib/model_structure/indexes.mjs +2 -1
  42. package/lib/model_structure/link.mjs +2 -1
  43. package/lib/model_structure/node.mjs +2 -1
  44. package/lib/model_structure/ref.mjs +2 -1
  45. package/lib/model_structure/schema.cjs +1 -1
  46. package/lib/model_structure/schema.mjs +16 -15
  47. package/lib/model_structure/stickyNote.mjs +2 -1
  48. package/lib/model_structure/table.cjs +1 -1
  49. package/lib/model_structure/table.mjs +29 -28
  50. package/lib/model_structure/tableGroup.cjs +1 -1
  51. package/lib/model_structure/tableGroup.mjs +6 -5
  52. package/lib/model_structure/tablePartial.mjs +2 -1
  53. package/lib/model_structure/utils.mjs +2 -1
  54. package/lib/node_modules/antlr4/dist/antlr4.web.mjs +2 -1
  55. package/lib/node_modules/lodash-es/_DataView.cjs +1 -1
  56. package/lib/node_modules/lodash-es/_DataView.mjs +5 -4
  57. package/lib/node_modules/lodash-es/_Hash.mjs +2 -1
  58. package/lib/node_modules/lodash-es/_ListCache.mjs +2 -1
  59. package/lib/node_modules/lodash-es/_Map.cjs +1 -1
  60. package/lib/node_modules/lodash-es/_Map.mjs +5 -4
  61. package/lib/node_modules/lodash-es/_MapCache.mjs +2 -1
  62. package/lib/node_modules/lodash-es/_Promise.cjs +1 -1
  63. package/lib/node_modules/lodash-es/_Promise.mjs +5 -4
  64. package/lib/node_modules/lodash-es/_Set.cjs +1 -1
  65. package/lib/node_modules/lodash-es/_Set.mjs +5 -4
  66. package/lib/node_modules/lodash-es/_SetCache.mjs +2 -1
  67. package/lib/node_modules/lodash-es/_Stack.mjs +2 -1
  68. package/lib/node_modules/lodash-es/_Symbol.mjs +2 -1
  69. package/lib/node_modules/lodash-es/_Uint8Array.mjs +2 -1
  70. package/lib/node_modules/lodash-es/_WeakMap.cjs +1 -1
  71. package/lib/node_modules/lodash-es/_WeakMap.mjs +5 -4
  72. package/lib/node_modules/lodash-es/_arrayAggregator.mjs +2 -1
  73. package/lib/node_modules/lodash-es/_arrayEach.mjs +2 -1
  74. package/lib/node_modules/lodash-es/_arrayFilter.mjs +2 -1
  75. package/lib/node_modules/lodash-es/_arrayLikeKeys.cjs +1 -1
  76. package/lib/node_modules/lodash-es/_arrayLikeKeys.mjs +10 -9
  77. package/lib/node_modules/lodash-es/_arrayMap.mjs +2 -1
  78. package/lib/node_modules/lodash-es/_arrayPush.mjs +2 -1
  79. package/lib/node_modules/lodash-es/_arrayReduce.mjs +2 -1
  80. package/lib/node_modules/lodash-es/_arraySome.mjs +2 -1
  81. package/lib/node_modules/lodash-es/_asciiToArray.mjs +2 -1
  82. package/lib/node_modules/lodash-es/_assocIndexOf.mjs +2 -1
  83. package/lib/node_modules/lodash-es/_baseAggregator.mjs +2 -1
  84. package/lib/node_modules/lodash-es/_baseAssignValue.mjs +2 -1
  85. package/lib/node_modules/lodash-es/_baseEach.mjs +2 -1
  86. package/lib/node_modules/lodash-es/_baseFlatten.mjs +2 -1
  87. package/lib/node_modules/lodash-es/_baseFor.mjs +2 -1
  88. package/lib/node_modules/lodash-es/_baseForOwn.cjs +1 -1
  89. package/lib/node_modules/lodash-es/_baseForOwn.mjs +6 -5
  90. package/lib/node_modules/lodash-es/_baseGet.mjs +2 -1
  91. package/lib/node_modules/lodash-es/_baseGetAllKeys.cjs +1 -1
  92. package/lib/node_modules/lodash-es/_baseGetAllKeys.mjs +6 -5
  93. package/lib/node_modules/lodash-es/_baseGetTag.mjs +2 -1
  94. package/lib/node_modules/lodash-es/_baseHasIn.mjs +2 -1
  95. package/lib/node_modules/lodash-es/_baseIsArguments.mjs +2 -1
  96. package/lib/node_modules/lodash-es/_baseIsEqual.cjs +1 -1
  97. package/lib/node_modules/lodash-es/_baseIsEqual.mjs +6 -5
  98. package/lib/node_modules/lodash-es/_baseIsEqualDeep.cjs +1 -1
  99. package/lib/node_modules/lodash-es/_baseIsEqualDeep.mjs +16 -15
  100. package/lib/node_modules/lodash-es/_baseIsMatch.mjs +2 -1
  101. package/lib/node_modules/lodash-es/_baseIsNative.cjs +1 -1
  102. package/lib/node_modules/lodash-es/_baseIsNative.mjs +7 -6
  103. package/lib/node_modules/lodash-es/_baseIsTypedArray.cjs +1 -1
  104. package/lib/node_modules/lodash-es/_baseIsTypedArray.mjs +6 -5
  105. package/lib/node_modules/lodash-es/_baseIteratee.cjs +1 -1
  106. package/lib/node_modules/lodash-es/_baseIteratee.mjs +8 -7
  107. package/lib/node_modules/lodash-es/_baseKeys.mjs +2 -1
  108. package/lib/node_modules/lodash-es/_baseMatches.mjs +2 -1
  109. package/lib/node_modules/lodash-es/_baseMatchesProperty.cjs +1 -1
  110. package/lib/node_modules/lodash-es/_baseMatchesProperty.mjs +11 -10
  111. package/lib/node_modules/lodash-es/_baseNth.mjs +2 -1
  112. package/lib/node_modules/lodash-es/_baseProperty.mjs +2 -1
  113. package/lib/node_modules/lodash-es/_basePropertyDeep.mjs +2 -1
  114. package/lib/node_modules/lodash-es/_baseReduce.mjs +2 -1
  115. package/lib/node_modules/lodash-es/_baseSlice.mjs +2 -1
  116. package/lib/node_modules/lodash-es/_baseTimes.mjs +2 -1
  117. package/lib/node_modules/lodash-es/_baseToString.cjs +1 -1
  118. package/lib/node_modules/lodash-es/_baseToString.mjs +8 -7
  119. package/lib/node_modules/lodash-es/_baseTrim.mjs +2 -1
  120. package/lib/node_modules/lodash-es/_baseUnary.mjs +2 -1
  121. package/lib/node_modules/lodash-es/_cacheHas.mjs +2 -1
  122. package/lib/node_modules/lodash-es/_castFunction.mjs +2 -1
  123. package/lib/node_modules/lodash-es/_castPath.mjs +2 -1
  124. package/lib/node_modules/lodash-es/_castSlice.mjs +2 -1
  125. package/lib/node_modules/lodash-es/_copyArray.mjs +2 -1
  126. package/lib/node_modules/lodash-es/_coreJsData.mjs +2 -1
  127. package/lib/node_modules/lodash-es/_createAggregator.cjs +1 -1
  128. package/lib/node_modules/lodash-es/_createAggregator.mjs +9 -8
  129. package/lib/node_modules/lodash-es/_createBaseEach.mjs +2 -1
  130. package/lib/node_modules/lodash-es/_createBaseFor.mjs +2 -1
  131. package/lib/node_modules/lodash-es/_createCaseFirst.cjs +1 -1
  132. package/lib/node_modules/lodash-es/_createCaseFirst.mjs +9 -8
  133. package/lib/node_modules/lodash-es/_defineProperty.mjs +2 -1
  134. package/lib/node_modules/lodash-es/_equalArrays.mjs +2 -1
  135. package/lib/node_modules/lodash-es/_equalByTag.cjs +1 -1
  136. package/lib/node_modules/lodash-es/_equalByTag.mjs +7 -6
  137. package/lib/node_modules/lodash-es/_equalObjects.mjs +2 -1
  138. package/lib/node_modules/lodash-es/_freeGlobal.mjs +2 -1
  139. package/lib/node_modules/lodash-es/_getAllKeys.cjs +1 -1
  140. package/lib/node_modules/lodash-es/_getAllKeys.mjs +6 -5
  141. package/lib/node_modules/lodash-es/_getMapData.mjs +2 -1
  142. package/lib/node_modules/lodash-es/_getMatchData.cjs +1 -1
  143. package/lib/node_modules/lodash-es/_getMatchData.mjs +7 -6
  144. package/lib/node_modules/lodash-es/_getNative.mjs +2 -1
  145. package/lib/node_modules/lodash-es/_getRawTag.mjs +2 -1
  146. package/lib/node_modules/lodash-es/_getSymbols.mjs +2 -1
  147. package/lib/node_modules/lodash-es/_getTag.cjs +1 -1
  148. package/lib/node_modules/lodash-es/_getTag.mjs +13 -12
  149. package/lib/node_modules/lodash-es/_getValue.mjs +2 -1
  150. package/lib/node_modules/lodash-es/_hasPath.cjs +1 -1
  151. package/lib/node_modules/lodash-es/_hasPath.mjs +10 -9
  152. package/lib/node_modules/lodash-es/_hasUnicode.mjs +2 -1
  153. package/lib/node_modules/lodash-es/_hashClear.mjs +2 -1
  154. package/lib/node_modules/lodash-es/_hashDelete.mjs +2 -1
  155. package/lib/node_modules/lodash-es/_hashGet.mjs +2 -1
  156. package/lib/node_modules/lodash-es/_hashHas.mjs +2 -1
  157. package/lib/node_modules/lodash-es/_hashSet.mjs +2 -1
  158. package/lib/node_modules/lodash-es/_isFlattenable.cjs +1 -1
  159. package/lib/node_modules/lodash-es/_isFlattenable.mjs +6 -5
  160. package/lib/node_modules/lodash-es/_isIndex.mjs +2 -1
  161. package/lib/node_modules/lodash-es/_isKey.cjs +1 -1
  162. package/lib/node_modules/lodash-es/_isKey.mjs +7 -6
  163. package/lib/node_modules/lodash-es/_isKeyable.mjs +2 -1
  164. package/lib/node_modules/lodash-es/_isMasked.mjs +2 -1
  165. package/lib/node_modules/lodash-es/_isPrototype.mjs +2 -1
  166. package/lib/node_modules/lodash-es/_isStrictComparable.mjs +2 -1
  167. package/lib/node_modules/lodash-es/_listCacheClear.mjs +2 -1
  168. package/lib/node_modules/lodash-es/_listCacheDelete.mjs +2 -1
  169. package/lib/node_modules/lodash-es/_listCacheGet.mjs +2 -1
  170. package/lib/node_modules/lodash-es/_listCacheHas.mjs +2 -1
  171. package/lib/node_modules/lodash-es/_listCacheSet.mjs +2 -1
  172. package/lib/node_modules/lodash-es/_mapCacheClear.mjs +2 -1
  173. package/lib/node_modules/lodash-es/_mapCacheDelete.mjs +2 -1
  174. package/lib/node_modules/lodash-es/_mapCacheGet.mjs +2 -1
  175. package/lib/node_modules/lodash-es/_mapCacheHas.mjs +2 -1
  176. package/lib/node_modules/lodash-es/_mapCacheSet.mjs +2 -1
  177. package/lib/node_modules/lodash-es/_mapToArray.mjs +2 -1
  178. package/lib/node_modules/lodash-es/_matchesStrictComparable.mjs +2 -1
  179. package/lib/node_modules/lodash-es/_memoizeCapped.mjs +2 -1
  180. package/lib/node_modules/lodash-es/_nativeCreate.mjs +2 -1
  181. package/lib/node_modules/lodash-es/_nativeKeys.mjs +2 -1
  182. package/lib/node_modules/lodash-es/_nodeUtil.mjs +2 -1
  183. package/lib/node_modules/lodash-es/_objectToString.mjs +2 -1
  184. package/lib/node_modules/lodash-es/_overArg.mjs +2 -1
  185. package/lib/node_modules/lodash-es/_root.mjs +2 -1
  186. package/lib/node_modules/lodash-es/_setCacheAdd.mjs +2 -1
  187. package/lib/node_modules/lodash-es/_setCacheHas.mjs +2 -1
  188. package/lib/node_modules/lodash-es/_setToArray.mjs +2 -1
  189. package/lib/node_modules/lodash-es/_stackClear.mjs +2 -1
  190. package/lib/node_modules/lodash-es/_stackDelete.mjs +2 -1
  191. package/lib/node_modules/lodash-es/_stackGet.mjs +2 -1
  192. package/lib/node_modules/lodash-es/_stackHas.mjs +2 -1
  193. package/lib/node_modules/lodash-es/_stackSet.mjs +2 -1
  194. package/lib/node_modules/lodash-es/_stringToArray.cjs +1 -1
  195. package/lib/node_modules/lodash-es/_stringToArray.mjs +6 -5
  196. package/lib/node_modules/lodash-es/_stringToPath.mjs +2 -1
  197. package/lib/node_modules/lodash-es/_toKey.mjs +2 -1
  198. package/lib/node_modules/lodash-es/_toSource.mjs +2 -1
  199. package/lib/node_modules/lodash-es/_trimmedEndIndex.mjs +2 -1
  200. package/lib/node_modules/lodash-es/_unicodeToArray.mjs +2 -1
  201. package/lib/node_modules/lodash-es/capitalize.mjs +2 -1
  202. package/lib/node_modules/lodash-es/concat.cjs +1 -1
  203. package/lib/node_modules/lodash-es/concat.mjs +8 -7
  204. package/lib/node_modules/lodash-es/eq.mjs +2 -1
  205. package/lib/node_modules/lodash-es/first.mjs +1 -1
  206. package/lib/node_modules/lodash-es/flatten.mjs +2 -1
  207. package/lib/node_modules/lodash-es/flattenDeep.mjs +2 -1
  208. package/lib/node_modules/lodash-es/flattenDepth.cjs +1 -1
  209. package/lib/node_modules/lodash-es/flattenDepth.mjs +6 -5
  210. package/lib/node_modules/lodash-es/forEach.cjs +1 -1
  211. package/lib/node_modules/lodash-es/forEach.mjs +8 -7
  212. package/lib/node_modules/lodash-es/get.mjs +2 -1
  213. package/lib/node_modules/lodash-es/groupBy.mjs +2 -1
  214. package/lib/node_modules/lodash-es/hasIn.mjs +2 -1
  215. package/lib/node_modules/lodash-es/head.mjs +2 -1
  216. package/lib/node_modules/lodash-es/identity.mjs +2 -1
  217. package/lib/node_modules/lodash-es/isArguments.cjs +1 -1
  218. package/lib/node_modules/lodash-es/isArguments.mjs +7 -6
  219. package/lib/node_modules/lodash-es/isArray.mjs +2 -1
  220. package/lib/node_modules/lodash-es/isArrayLike.mjs +2 -1
  221. package/lib/node_modules/lodash-es/isBuffer.mjs +2 -1
  222. package/lib/node_modules/lodash-es/isEmpty.cjs +1 -1
  223. package/lib/node_modules/lodash-es/isEmpty.mjs +14 -13
  224. package/lib/node_modules/lodash-es/isFunction.mjs +2 -1
  225. package/lib/node_modules/lodash-es/isLength.mjs +2 -1
  226. package/lib/node_modules/lodash-es/isNil.mjs +2 -1
  227. package/lib/node_modules/lodash-es/isObject.mjs +2 -1
  228. package/lib/node_modules/lodash-es/isObjectLike.mjs +2 -1
  229. package/lib/node_modules/lodash-es/isSymbol.mjs +2 -1
  230. package/lib/node_modules/lodash-es/isTypedArray.mjs +2 -1
  231. package/lib/node_modules/lodash-es/keys.cjs +1 -1
  232. package/lib/node_modules/lodash-es/keys.mjs +7 -6
  233. package/lib/node_modules/lodash-es/last.mjs +2 -1
  234. package/lib/node_modules/lodash-es/lodash.cjs +1 -1
  235. package/lib/node_modules/lodash-es/lodash.mjs +19 -19
  236. package/lib/node_modules/lodash-es/memoize.mjs +2 -1
  237. package/lib/node_modules/lodash-es/nth.cjs +1 -1
  238. package/lib/node_modules/lodash-es/nth.mjs +6 -5
  239. package/lib/node_modules/lodash-es/property.cjs +1 -1
  240. package/lib/node_modules/lodash-es/property.mjs +8 -7
  241. package/lib/node_modules/lodash-es/reduce.cjs +1 -1
  242. package/lib/node_modules/lodash-es/reduce.mjs +9 -8
  243. package/lib/node_modules/lodash-es/stubArray.mjs +2 -1
  244. package/lib/node_modules/lodash-es/stubFalse.mjs +2 -1
  245. package/lib/node_modules/lodash-es/toFinite.mjs +2 -1
  246. package/lib/node_modules/lodash-es/toInteger.mjs +2 -1
  247. package/lib/node_modules/lodash-es/toNumber.cjs +1 -1
  248. package/lib/node_modules/lodash-es/toNumber.mjs +10 -9
  249. package/lib/node_modules/lodash-es/toString.mjs +2 -1
  250. package/lib/node_modules/lodash-es/upperFirst.mjs +2 -1
  251. package/lib/node_modules/luxon/build/es6/luxon.mjs +2 -1
  252. package/lib/node_modules/parsimmon/build/parsimmon.umd.min.cjs +1 -1
  253. package/lib/node_modules/parsimmon/build/parsimmon.umd.min.mjs +4 -3
  254. package/lib/node_modules/pluralize/pluralize.cjs +1 -1
  255. package/lib/node_modules/pluralize/pluralize.mjs +4 -3
  256. package/lib/packages/dbml-core/node_modules/lodash/lodash.cjs +2 -2
  257. package/lib/packages/dbml-core/node_modules/lodash/lodash.mjs +4 -3
  258. package/lib/packages/dbml-core/package.json.cjs +1 -1
  259. package/lib/packages/dbml-core/package.json.mjs +3 -2
  260. package/lib/parse/ANTLR/ASTGeneration/AST.mjs +2 -1
  261. package/lib/parse/ANTLR/ASTGeneration/ParserErrorListener.mjs +2 -1
  262. package/lib/parse/ANTLR/ASTGeneration/SyntaxError.mjs +2 -1
  263. package/lib/parse/ANTLR/ASTGeneration/constants.mjs +2 -1
  264. package/lib/parse/ANTLR/ASTGeneration/helpers.mjs +2 -1
  265. package/lib/parse/ANTLR/ASTGeneration/index.mjs +2 -1
  266. package/lib/parse/ANTLR/ASTGeneration/mssql/MssqlASTGen.mjs +2 -1
  267. package/lib/parse/ANTLR/ASTGeneration/mysql/MySQLASTGen.cjs +1 -1
  268. package/lib/parse/ANTLR/ASTGeneration/mysql/MySQLASTGen.mjs +3 -2
  269. package/lib/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.cjs +1 -1
  270. package/lib/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.mjs +58 -57
  271. package/lib/parse/ANTLR/ASTGeneration/postgres/PostgresASTGen.cjs +1 -1
  272. package/lib/parse/ANTLR/ASTGeneration/postgres/PostgresASTGen.mjs +3 -2
  273. package/lib/parse/ANTLR/ASTGeneration/snowflake/SnowflakeASTGen.mjs +2 -1
  274. package/lib/parse/ANTLR/parsers/mssql/TSqlLexer.mjs +2 -1
  275. package/lib/parse/ANTLR/parsers/mssql/TSqlParser.mjs +2 -1
  276. package/lib/parse/ANTLR/parsers/mssql/TSqlParserVisitor.mjs +2 -1
  277. package/lib/parse/ANTLR/parsers/mysql/MySqlLexer.mjs +2 -1
  278. package/lib/parse/ANTLR/parsers/mysql/MySqlLexerBase.mjs +2 -1
  279. package/lib/parse/ANTLR/parsers/mysql/MySqlParser.mjs +2 -1
  280. package/lib/parse/ANTLR/parsers/mysql/MySqlParserVisitor.mjs +2 -1
  281. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.mjs +2 -1
  282. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlLexerBase.mjs +2 -1
  283. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlParser.mjs +2 -1
  284. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlParserBase.mjs +2 -1
  285. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlParserVisitor.mjs +2 -1
  286. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLLexer.mjs +2 -1
  287. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLLexerBase.mjs +2 -1
  288. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLParser.mjs +2 -1
  289. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLParserBase.mjs +2 -1
  290. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLParserVisitor.mjs +2 -1
  291. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeLexer.mjs +2 -1
  292. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeParser.mjs +2 -1
  293. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeParserVisitor.mjs +2 -1
  294. package/lib/parse/Parser.cjs +1 -1
  295. package/lib/parse/Parser.mjs +38 -37
  296. package/lib/parse/databaseGenerator.mjs +2 -1
  297. package/lib/parse/deprecated/dbmlParser.mjs +2 -1
  298. package/lib/parse/deprecated/mssql/base_parsers.cjs +1 -1
  299. package/lib/parse/deprecated/mssql/base_parsers.mjs +28 -27
  300. package/lib/parse/deprecated/mssql/column_definition/actions.mjs +2 -1
  301. package/lib/parse/deprecated/mssql/column_definition/index.cjs +1 -1
  302. package/lib/parse/deprecated/mssql/column_definition/index.mjs +19 -19
  303. package/lib/parse/deprecated/mssql/constraint_definition/actions.mjs +2 -1
  304. package/lib/parse/deprecated/mssql/constraint_definition/index.cjs +1 -1
  305. package/lib/parse/deprecated/mssql/constraint_definition/index.mjs +10 -10
  306. package/lib/parse/deprecated/mssql/expression.cjs +1 -1
  307. package/lib/parse/deprecated/mssql/expression.mjs +18 -17
  308. package/lib/parse/deprecated/mssql/fk_definition/actions.mjs +2 -1
  309. package/lib/parse/deprecated/mssql/fk_definition/index.cjs +1 -1
  310. package/lib/parse/deprecated/mssql/fk_definition/index.mjs +8 -7
  311. package/lib/parse/deprecated/mssql/index.mjs +2 -1
  312. package/lib/parse/deprecated/mssql/index_definition/actions.mjs +2 -1
  313. package/lib/parse/deprecated/mssql/index_definition/index.cjs +1 -1
  314. package/lib/parse/deprecated/mssql/index_definition/index.mjs +14 -13
  315. package/lib/parse/deprecated/mssql/keyword_parsers.mjs +2 -1
  316. package/lib/parse/deprecated/mssql/keyword_utils.mjs +2 -1
  317. package/lib/parse/deprecated/mssql/statements/actions.mjs +2 -1
  318. package/lib/parse/deprecated/mssql/statements/index.cjs +1 -1
  319. package/lib/parse/deprecated/mssql/statements/index.mjs +24 -23
  320. package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/actions.mjs +2 -1
  321. package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/add/actions.mjs +1 -1
  322. package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/add/index.cjs +1 -1
  323. package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/add/index.mjs +14 -13
  324. package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/index.mjs +2 -1
  325. package/lib/parse/deprecated/mssql/statements/statement_types/comments/actions.mjs +2 -1
  326. package/lib/parse/deprecated/mssql/statements/statement_types/comments/index.cjs +1 -1
  327. package/lib/parse/deprecated/mssql/statements/statement_types/comments/index.mjs +6 -5
  328. package/lib/parse/deprecated/mssql/statements/statement_types/create_index/actions.mjs +2 -1
  329. package/lib/parse/deprecated/mssql/statements/statement_types/create_index/index.cjs +1 -1
  330. package/lib/parse/deprecated/mssql/statements/statement_types/create_index/index.mjs +12 -11
  331. package/lib/parse/deprecated/mssql/statements/statement_types/create_table/actions.mjs +2 -1
  332. package/lib/parse/deprecated/mssql/statements/statement_types/create_table/index.cjs +1 -1
  333. package/lib/parse/deprecated/mssql/statements/statement_types/create_table/index.mjs +12 -11
  334. package/lib/parse/deprecated/mssql/statements/statement_types/index.mjs +1 -1
  335. package/lib/parse/deprecated/mssql/utils.cjs +1 -1
  336. package/lib/parse/deprecated/mssql/utils.mjs +11 -10
  337. package/lib/parse/deprecated/mssql/whitespaces.mjs +2 -1
  338. package/lib/parse/deprecated/mssqlParser.mjs +2 -1
  339. package/lib/parse/deprecated/mysqlParser.mjs +2 -1
  340. package/lib/parse/deprecated/postgresParser.mjs +2 -1
  341. package/lib/parse/deprecated/schemarbParser.mjs +2 -1
  342. package/lib/parse/error.mjs +2 -1
  343. package/lib/transform/index.mjs +2 -1
  344. package/lib/transform/relations.mjs +2 -1
  345. package/lib/utils/version.mjs +2 -1
  346. package/package.json +3 -3
  347. package/types/export/DbmlExporter.d.ts +0 -0
  348. package/types/export/JsonExporter.d.ts +0 -0
  349. package/types/export/ModelExporter.d.ts +0 -0
  350. package/types/export/index.d.ts +0 -0
  351. package/types/model_structure/check.d.ts +0 -0
  352. package/types/model_structure/element.d.ts +0 -0
  353. package/types/model_structure/enum.d.ts +0 -0
  354. package/types/model_structure/enumValue.d.ts +0 -0
  355. package/types/model_structure/index.d.ts +0 -0
  356. package/types/model_structure/indexes.d.ts +0 -0
  357. package/types/model_structure/ref.d.ts +0 -0
  358. package/types/model_structure/tablePartial.d.ts +0 -0
  359. package/types/parse/Parser.d.ts +0 -0
package/LICENSE CHANGED
File without changes
package/README.md CHANGED
File without changes
@@ -1 +1 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,o)=>(o=n==null?{}:e(i(n)),l(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),d=e=>a.call(e,`module.exports`)?e[`module.exports`]:l(t({},`__esModule`,{value:!0}),e);exports.__commonJSMin=s,exports.__esmMin=o,exports.__exportAll=c,exports.__toCommonJS=d,exports.__toESM=u;
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,o)=>(o=n==null?{}:e(i(n)),l(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),d=e=>a.call(e,`module.exports`)?e[`module.exports`]:l(t({},`__esModule`,{value:!0}),e);exports.__commonJSMin=s,exports.__esmMin=o,exports.__exportAll=c,exports.__toCommonJS=d,exports.__toESM=u;
@@ -1,4 +1,4 @@
1
- // \0rolldown/runtime.js
1
+ //#region \0rolldown/runtime.js
2
2
  var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescriptor, r = Object.getOwnPropertyNames, i = Object.getPrototypeOf, a = Object.prototype.hasOwnProperty, o = (e, t, n) => () => {
3
3
  if (n) throw n[0];
4
4
  try {
@@ -6,7 +6,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
6
6
  } catch (e) {
7
7
  throw n = [e], e;
8
8
  }
9
- }, s = (e, t) => () => (t || (e((t = { exports: {} }).exports, t, t.exports), e = null), t.exports), c = (e, n) => {
9
+ }, s = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), c = (e, n) => {
10
10
  let r = {};
11
11
  for (var i in e) t(r, i, {
12
12
  get: e[i],
@@ -26,4 +26,5 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
26
26
  if (typeof require < "u") return require.apply(this, arguments);
27
27
  throw Error("Calling `require` for \"" + e + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
28
28
  });
29
+ //#endregion
29
30
  export { s as __commonJSMin, o as __esmMin, c as __exportAll, f as __require, d as __toCommonJS, u as __toESM };
@@ -1,4 +1,4 @@
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"),i=require("./utils.cjs");require("../model_structure/config.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
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
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
4
  `)}\n}\n`});return n.length?n.join(`
@@ -2,10 +2,10 @@ import e from "../node_modules/lodash-es/groupBy.mjs";
2
2
  import t from "../node_modules/lodash-es/isEmpty.mjs";
3
3
  import n from "../node_modules/lodash-es/reduce.mjs";
4
4
  import { init_lodash as r } from "../node_modules/lodash-es/lodash.mjs";
5
- import { shouldPrintSchema as i } from "./utils.mjs";
6
5
  import "../model_structure/config.mjs";
6
+ import { shouldPrintSchema as i } from "./utils.mjs";
7
7
  import { addDoubleQuoteIfNeeded as a, escapeString as o, formatTypedValue as s, getRelationshipOp as c, normalizeQualifiedName as l, parseCardinality as u } from "@dbml/parse";
8
- // src/export/DbmlExporter.ts
8
+ //#region src/export/DbmlExporter.ts
9
9
  r();
10
10
  var d = class r {
11
11
  static hasWhiteSpace(e) {
@@ -195,4 +195,5 @@ var d = class r {
195
195
  return s && i.push(s), i.join("\n");
196
196
  }
197
197
  };
198
+ //#endregion
198
199
  export { d as default };
@@ -1,9 +1,10 @@
1
1
  import e from "../model_structure/database.mjs";
2
- // src/export/JsonExporter.ts
2
+ //#region src/export/JsonExporter.ts
3
3
  var t = class {
4
4
  static export(t, n) {
5
5
  let { isNormalized: r } = n;
6
6
  return !r && t instanceof e ? JSON.stringify(t.export(), null, 2) : JSON.stringify(t, null, 2);
7
7
  }
8
8
  };
9
+ //#endregion
9
10
  export { t as default };
@@ -1 +1 @@
1
- require("../_virtual/_rolldown/runtime.cjs");const e=require("./DbmlExporter.cjs"),t=require("./MysqlExporter.cjs"),n=require("./PostgresExporter.cjs"),r=require("./JsonExporter.cjs"),i=require("./SqlServerExporter.cjs"),a=require("./OracleExporter.cjs"),o=require("../model_structure/database.cjs"),s=require("./index.cjs");var c=class{static export(c,l,u={isNormalized:!0,includeRecords:!0}){let{isNormalized:d,includeRecords:f}=s.normalizeExportOptions(u),p=c instanceof o.default?c.normalize():c,m=``;switch(l){case`dbml`:m=e.default.export(p,{includeRecords:f});break;case`mysql`:m=t.default.export(p);break;case`postgres`:m=n.default.export(p);break;case`json`:m=r.default.export(c,{isNormalized:d});break;case`mssql`:m=i.default.export(p);break;case`oracle`:m=a.default.export(p)}return m}};exports.default=c;
1
+ require("../_virtual/_rolldown/runtime.cjs");const e=require("./DbmlExporter.cjs"),t=require("./MysqlExporter.cjs"),n=require("./PostgresExporter.cjs"),r=require("../model_structure/database.cjs"),i=require("./JsonExporter.cjs"),a=require("./SqlServerExporter.cjs"),o=require("./OracleExporter.cjs"),s=require("./index.cjs");var c=class{static export(c,l,u={isNormalized:!0,includeRecords:!0}){let{isNormalized:d,includeRecords:f}=s.normalizeExportOptions(u),p=c instanceof r.default?c.normalize():c,m=``;switch(l){case`dbml`:m=e.default.export(p,{includeRecords:f});break;case`mysql`:m=t.default.export(p);break;case`postgres`:m=n.default.export(p);break;case`json`:m=i.default.export(c,{isNormalized:d});break;case`mssql`:m=a.default.export(p);break;case`oracle`:m=o.default.export(p)}return m}};exports.default=c;
@@ -1,18 +1,18 @@
1
1
  import e from "./DbmlExporter.mjs";
2
2
  import t from "./MysqlExporter.mjs";
3
3
  import n from "./PostgresExporter.mjs";
4
- import r from "./JsonExporter.mjs";
5
- import i from "./SqlServerExporter.mjs";
6
- import a from "./OracleExporter.mjs";
7
- import o from "../model_structure/database.mjs";
4
+ import r from "../model_structure/database.mjs";
5
+ import i from "./JsonExporter.mjs";
6
+ import a from "./SqlServerExporter.mjs";
7
+ import o from "./OracleExporter.mjs";
8
8
  import { normalizeExportOptions as s } from "./index.mjs";
9
- // src/export/ModelExporter.ts
9
+ //#region src/export/ModelExporter.ts
10
10
  var c = class {
11
11
  static export(c, l, u = {
12
12
  isNormalized: !0,
13
13
  includeRecords: !0
14
14
  }) {
15
- let { isNormalized: d, includeRecords: f } = s(u), p = c instanceof o ? c.normalize() : c, m = "";
15
+ let { isNormalized: d, includeRecords: f } = s(u), p = c instanceof r ? c.normalize() : c, m = "";
16
16
  switch (l) {
17
17
  case "dbml":
18
18
  m = e.export(p, { includeRecords: f });
@@ -24,14 +24,15 @@ var c = class {
24
24
  m = n.export(p);
25
25
  break;
26
26
  case "json":
27
- m = r.export(c, { isNormalized: d });
27
+ m = i.export(c, { isNormalized: d });
28
28
  break;
29
29
  case "mssql":
30
- m = i.export(p);
30
+ m = a.export(p);
31
31
  break;
32
- case "oracle": m = a.export(p);
32
+ case "oracle": m = o.export(p);
33
33
  }
34
34
  return m;
35
35
  }
36
36
  };
37
+ //#endregion
37
38
  export { c as default };
@@ -4,7 +4,7 @@ import n from "../node_modules/lodash-es/isEmpty.mjs";
4
4
  import { init_lodash as r } from "../node_modules/lodash-es/lodash.mjs";
5
5
  import { buildJunctionFields1 as i, buildJunctionFields2 as a, buildNewTableName as o, shouldPrintSchema as s } from "./utils.mjs";
6
6
  import { isBinaryType as c, isBooleanType as l, isDateTimeType as u, isNumericType as d, isStringType as f, parseCardinality as p } from "@dbml/parse";
7
- // src/export/MysqlExporter.js
7
+ //#region src/export/MysqlExporter.js
8
8
  r();
9
9
  var m = class r {
10
10
  static exportRecords(e) {
@@ -151,4 +151,5 @@ var m = class r {
151
151
  return t(c.schemas, c.enums, c.tables, c.indexes, c.comments, c.refs, u).join("\n");
152
152
  }
153
153
  };
154
+ //#endregion
154
155
  export { m as default };
@@ -5,7 +5,7 @@ import r from "../node_modules/lodash-es/isEmpty.mjs";
5
5
  import { init_lodash as i } from "../node_modules/lodash-es/lodash.mjs";
6
6
  import { buildJunctionFields1 as a, buildJunctionFields2 as o, buildUniqueTableName as s, escapeObjectName as c, formatDatetimeForOracle as l, parseIsoDatetime as u, shouldPrintSchema as d } from "./utils.mjs";
7
7
  import { isBinaryType as f, isBooleanType as p, isDateTimeType as m, isNumericType as h, isStringType as g, parseCardinality as _ } from "@dbml/parse";
8
- // src/export/OracleExporter.js
8
+ //#region src/export/OracleExporter.js
9
9
  i();
10
10
  var v = class {
11
11
  static exportRecords(e) {
@@ -230,4 +230,5 @@ QUOTA UNLIMITED ON system;
230
230
  return t(o.schemas, o.tables, o.indexes, o.comments, o.referenceGrants, o.refs, c).join("\n");
231
231
  }
232
232
  };
233
+ //#endregion
233
234
  export { v as default };
@@ -1,10 +1,10 @@
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("../model_structure/utils.cjs"),a=require("./utils.cjs");let o=require("@dbml/parse");r.init_lodash();var s=`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(`.`),c=[`USER`],l=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;if(!i||i.length===0)return null;let a=t?`"${t}"."${n}"`:`"${n}"`,s=r.length>0?`(${r.map(e=>`"${e}"`).join(`, `)})`:``,c=e=>e.value===null?`NULL`:e.type===`expression`||(0,o.isNumericType)(e.type)?e.value:(0,o.isBooleanType)(e.type)?String(e.value).toUpperCase()===`TRUE`?`TRUE`:`FALSE`:(0,o.isStringType)(e.type)||(0,o.isDateTimeType)(e.type)||(0,o.isBinaryType)(e.type)?`'${String(e.value).replace(/'/g,`''`)}'`:`CAST('${String(e.value).replace(/'/g,`''`)}' AS ${e.type})`;return`INSERT INTO ${a} ${s}\nVALUES\n ${i.map(e=>`(${e.map(c).join(`, `)})`).join(`,
2
- `)};`}).filter(Boolean)}static exportEnums(e,t){return e.map(e=>{let n=t.enums[e],r=t.schemas[n.schemaId],i=`${a.shouldPrintSchema(r,t)?`"${r.name}".`:``}"${n.name}"`;return[i,`CREATE TYPE ${i} AS ENUM (\n${n.valueIds.map(e=>` '${t.enumValues[e].name}'`).join(`,
3
- `)}\n);\n`]})}static getFieldLines(e,t,n){return t.tables[e].fieldIds.map(e=>{let r=t.fields[e],o=``;if(r.increment){let e=new Set([`BIGINT`,`INT`,`INTEGER`,`SMALLINT`]),t=new Set([`SMALLSERIAL`,`SERIAL`,`BIGSERIAL`]),n=r.type.type_name.toUpperCase(),i=``;i=e.has(n)?`${n} GENERATED BY DEFAULT AS IDENTITY`:t.has(n)?n:`SERIAL`,o=`"${r.name}" ${i}`}else if(!r.type.schemaName||!i.shouldPrintSchemaName(r.type.schemaName)){let e=r.type.type_name,t=e.toUpperCase(),n=!s.includes(t)&&(a.hasWhiteSpaceOrUpperCase(e)||c.includes(t))?`"${e}"`:e;o=`"${r.name}" ${n}`}else if(r.type.originalTypeName)o=`"${r.name}" "${r.type.schemaName}"."${r.type.originalTypeName}"`;else{let e=`${a.hasWhiteSpaceOrUpperCase(r.type.schemaName)?`"${r.type.schemaName}".`:`${r.type.schemaName}.`}${a.hasWhiteSpaceOrUpperCase(r.type.type_name)?`"${r.type.type_name}"`:r.type.type_name}`,t=`"${r.type.schemaName}"."${r.type.type_name}"`;!n.has(t)&&!a.hasWhiteSpace(t)&&(e=e.replaceAll(`"`,``)),o=`"${r.name}" ${e}`}if(r.unique&&(o+=` UNIQUE`),r.pk&&(o+=` PRIMARY KEY`),r.not_null&&(o+=` NOT NULL`),r.checkIds&&r.checkIds.length>0){if(r.checkIds.length===1){let e=t.checks[r.checkIds[0]];e.name&&(o+=` CONSTRAINT "${e.name}"`),o+=` CHECK (${e.expression})`}else{let e=r.checkIds.map(e=>`(${t.checks[e].expression})`);o+=` CHECK (${e.join(` AND `)})`}}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`?o+=` DEFAULT (${r.dbdefault.value})`:r.dbdefault.type===`string`?o+=` DEFAULT '${r.dbdefault.value}'`:o+=` DEFAULT ${r.dbdefault.value}`),o})}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,n){return e.map(e=>({tableId:e,fieldContents:r.getFieldLines(e,t,n),checkContents:r.getCheckLines(e,t),compositePKs:r.getCompositePKs(e,t)}))}static exportTables(e,t,n){return r.getTableContentArr(e,t,n).map(e=>{let n=[...e.fieldContents,...e.checkContents,...e.compositePKs],r=t.tables[e.tableId],i=t.schemas[r.schemaId];return`CREATE TABLE ${a.shouldPrintSchema(i,t)?`"${i.name}".`:``}"${r.name}" (\n${n.map(e=>` ${e}`).join(`,
4
- `)}\n);\n`})}static buildFieldName(e,t){return`(${e.map(e=>`"${t.fields[e].name}"`).join(`, `)})`}static buildTableManyToMany(e,t,n,r,i){let o=`CREATE TABLE ${a.shouldPrintSchema(r,i)?`"${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+=`);
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"),a=require("../model_structure/utils.cjs");let o=require("@dbml/parse");r.init_lodash();var s=`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(`.`),c=[`USER`],l=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;if(!i||i.length===0)return null;let a=t?`"${t}"."${n}"`:`"${n}"`,s=r.length>0?`(${r.map(e=>`"${e}"`).join(`, `)})`:``,c=e=>e.value===null?`NULL`:e.type===`expression`||(0,o.isNumericType)(e.type)?e.value:(0,o.isBooleanType)(e.type)?String(e.value).toUpperCase()===`TRUE`?`TRUE`:`FALSE`:(0,o.isStringType)(e.type)||(0,o.isDateTimeType)(e.type)||(0,o.isBinaryType)(e.type)?`'${String(e.value).replace(/'/g,`''`)}'`:`CAST('${String(e.value).replace(/'/g,`''`)}' AS ${e.type})`;return`INSERT INTO ${a} ${s}\nVALUES\n ${i.map(e=>`(${e.map(c).join(`, `)})`).join(`,
2
+ `)};`}).filter(Boolean)}static exportEnums(e,t){return e.map(e=>{let n=t.enums[e],r=t.schemas[n.schemaId],a=`${i.shouldPrintSchema(r,t)?`"${r.name}".`:``}"${n.name}"`;return[a,`CREATE TYPE ${a} AS ENUM (\n${n.valueIds.map(e=>` '${t.enumValues[e].name}'`).join(`,
3
+ `)}\n);\n`]})}static getFieldLines(e,t,n){return t.tables[e].fieldIds.map(e=>{let r=t.fields[e],o=``;if(r.increment){let e=new Set([`BIGINT`,`INT`,`INTEGER`,`SMALLINT`]),t=new Set([`SMALLSERIAL`,`SERIAL`,`BIGSERIAL`]),n=r.type.type_name.toUpperCase(),i=``;i=e.has(n)?`${n} GENERATED BY DEFAULT AS IDENTITY`:t.has(n)?n:`SERIAL`,o=`"${r.name}" ${i}`}else if(!r.type.schemaName||!a.shouldPrintSchemaName(r.type.schemaName)){let e=r.type.type_name,t=e.toUpperCase(),n=!s.includes(t)&&(i.hasWhiteSpaceOrUpperCase(e)||c.includes(t))?`"${e}"`:e;o=`"${r.name}" ${n}`}else if(r.type.originalTypeName)o=`"${r.name}" "${r.type.schemaName}"."${r.type.originalTypeName}"`;else{let e=`${i.hasWhiteSpaceOrUpperCase(r.type.schemaName)?`"${r.type.schemaName}".`:`${r.type.schemaName}.`}${i.hasWhiteSpaceOrUpperCase(r.type.type_name)?`"${r.type.type_name}"`:r.type.type_name}`,t=`"${r.type.schemaName}"."${r.type.type_name}"`;!n.has(t)&&!i.hasWhiteSpace(t)&&(e=e.replaceAll(`"`,``)),o=`"${r.name}" ${e}`}if(r.unique&&(o+=` UNIQUE`),r.pk&&(o+=` PRIMARY KEY`),r.not_null&&(o+=` NOT NULL`),r.checkIds&&r.checkIds.length>0){if(r.checkIds.length===1){let e=t.checks[r.checkIds[0]];e.name&&(o+=` CONSTRAINT "${e.name}"`),o+=` CHECK (${e.expression})`}else{let e=r.checkIds.map(e=>`(${t.checks[e].expression})`);o+=` CHECK (${e.join(` AND `)})`}}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`?o+=` DEFAULT (${r.dbdefault.value})`:r.dbdefault.type===`string`?o+=` DEFAULT '${r.dbdefault.value}'`:o+=` DEFAULT ${r.dbdefault.value}`),o})}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,n){return e.map(e=>({tableId:e,fieldContents:r.getFieldLines(e,t,n),checkContents:r.getCheckLines(e,t),compositePKs:r.getCompositePKs(e,t)}))}static exportTables(e,t,n){return r.getTableContentArr(e,t,n).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(`,
4
+ `)}\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+=`);
5
5
 
6
- `,o}static buildForeignKeyManyToMany(e,t,n,r,i,o,s){let c=[...e.keys()].join(`", "`);return`ALTER TABLE ${a.shouldPrintSchema(i,s)?`"${i.name}".`:``}"${n}" ADD FOREIGN KEY ("${c}") REFERENCES ${a.shouldPrintSchema(o,s)?`"${o.name}".`:``}"${r}" ${t} DEFERRABLE INITIALLY IMMEDIATE;\n\n`}static exportRefs(e,t,n){return e.map(e=>{let r=``,i=t.refs[e],s=i.endpointIds.findIndex(e=>(0,o.parseCardinality)(t.endpoints[e].relation).max===1),c=s===-1?0:s,l=i.endpointIds[1-c],u=i.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,`postgres`),_=t.fields[d.fieldIds[0]],v=t.tables[_.tableId],y=t.schemas[v.schemaId],b=this.buildFieldName(d.fieldIds,t,`postgres`);if(s===-1){let e=a.buildJunctionFields1(f.fieldIds,t),i=a.buildJunctionFields2(d.fieldIds,t,e),o=a.buildNewTableName(m.name,v.name,n);r+=this.buildTableManyToMany(e,i,o,h,t),r+=this.buildForeignKeyManyToMany(e,g,o,m.name,h,h,t),r+=this.buildForeignKeyManyToMany(i,b,o,v.name,h,y,t)}else r=`ALTER TABLE ${a.shouldPrintSchema(y,t)?`"${y.name}".`:``}"${v.name}" ADD `,i.name&&(r+=`CONSTRAINT "${i.name}" `),r+=`FOREIGN KEY ${b} REFERENCES ${a.shouldPrintSchema(h,t)?`"${h.name}".`:``}"${m.name}" ${g}`,i.onDelete&&(r+=` ON DELETE ${i.onDelete.toUpperCase()}`),i.onUpdate&&(r+=` ON UPDATE ${i.onUpdate.toUpperCase()}`),r+=` DEFERRABLE INITIALLY IMMEDIATE;
7
- `;return r})}static exportIndexes(e,t){return e.filter(e=>!t.indexes[e].pk).map(e=>{let n=t.indexes[e],r=t.tables[n.tableId],i=t.schemas[r.schemaId],o=`CREATE`;n.unique&&(o+=` UNIQUE`);let s=n.name?`"${n.name}"`:``;o+=` INDEX`,s&&(o+=` ${s}`),o+=` ON ${a.shouldPrintSchema(i,t)?`"${i.name}".`:``}"${r.name}"`,n.type&&(o+=` USING ${n.type.toUpperCase()}`);let c=[];return n.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`"${n.value}"`,n.sortOrder===`desc`&&(r+=` DESC`),c.push(r)}),o+=` (${c.join(`, `)})`,o+=`;
8
- `,o})}static exportComments(e,t){return e.map(e=>{let n=`COMMENT ON`,r=t.tables[e.tableId],i=t.schemas[r.schemaId];switch(e.type){case`table`:n+=` TABLE ${a.shouldPrintSchema(i,t)?`"${i.name}".`:``}"${r.name}" IS '${r.note.replace(/'/g,`''`)}'`;break;case`column`:{let o=t.fields[e.fieldId];n+=` COLUMN ${a.shouldPrintSchema(i,t)?`"${i.name}".`:``}"${r.name}"."${o.name}" IS '${o.note.replace(/'/g,`''`)}'`;break}}return n+=`;
9
- `,n})}static export(i){let o=i.database[1],s=new Set(Object.values(i.tables).map(e=>e.name)),c=new Set,l=o.schemaIds.reduce((e,t)=>{let o=i.schemas[t],{enumIds:s}=o;return a.shouldPrintSchema(o,i)&&e.schemas.push(`CREATE SCHEMA "${o.name}";\n`),n.default(s)||r.exportEnums(s,i).forEach(t=>{let[n,r]=t;e.enums.push(r),c.add(n)}),e},{schemas:[],enums:[],tables:[],indexes:[],comments:[],refs:[]}),u=o.schemaIds.reduce((t,a)=>{let{tableIds:o,refIds:l}=i.schemas[a];n.default(o)||t.tables.push(...r.exportTables(o,i,c));let u=e.default(o.map(e=>i.tables[e].indexIds));n.default(u)||t.indexes.push(...r.exportIndexes(u,i));let d=e.default(o.map(e=>{let{fieldIds:t,note:n}=i.tables[e],r=t.filter(e=>i.fields[e].note).map(t=>({type:`column`,fieldId:t,tableId:e}));return n?[{type:`table`,tableId:e}].concat(r):r}));return n.default(d)||t.comments.push(...r.exportComments(d,i)),n.default(l)||t.refs.push(...r.exportRefs(l,i,s)),t},l),d=r.exportRecords(i),f=n.default(d)?[]:[`-- Defer constraint checking for INSERT`,`BEGIN;`,`SET CONSTRAINTS ALL DEFERRED;`,``,...d,``,`SET CONSTRAINTS ALL IMMEDIATE;`,`COMMIT;`];return t.default(u.schemas,u.enums,u.tables,u.indexes,u.comments,u.refs,f).join(`
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} DEFERRABLE INITIALLY IMMEDIATE;\n\n`}static exportRefs(e,t,n){return e.map(e=>{let r=``,a=t.refs[e],s=a.endpointIds.findIndex(e=>(0,o.parseCardinality)(t.endpoints[e].relation).max===1),c=s===-1?0:s,l=a.endpointIds[1-c],u=a.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,`postgres`),_=t.fields[d.fieldIds[0]],v=t.tables[_.tableId],y=t.schemas[v.schemaId],b=this.buildFieldName(d.fieldIds,t,`postgres`);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 `,a.name&&(r+=`CONSTRAINT "${a.name}" `),r+=`FOREIGN KEY ${b} REFERENCES ${i.shouldPrintSchema(h,t)?`"${h.name}".`:``}"${m.name}" ${g}`,a.onDelete&&(r+=` ON DELETE ${a.onDelete.toUpperCase()}`),a.onUpdate&&(r+=` ON UPDATE ${a.onUpdate.toUpperCase()}`),r+=` DEFERRABLE INITIALLY IMMEDIATE;
7
+ `;return r})}static exportIndexes(e,t){return e.filter(e=>!t.indexes[e].pk).map(e=>{let n=t.indexes[e],r=t.tables[n.tableId],a=t.schemas[r.schemaId],o=`CREATE`;n.unique&&(o+=` UNIQUE`);let s=n.name?`"${n.name}"`:``;o+=` INDEX`,s&&(o+=` ${s}`),o+=` ON ${i.shouldPrintSchema(a,t)?`"${a.name}".`:``}"${r.name}"`,n.type&&(o+=` USING ${n.type.toUpperCase()}`);let c=[];return n.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`"${n.value}"`,n.sortOrder===`desc`&&(r+=` DESC`),c.push(r)}),o+=` (${c.join(`, `)})`,o+=`;
8
+ `,o})}static exportComments(e,t){return e.map(e=>{let n=`COMMENT ON`,r=t.tables[e.tableId],a=t.schemas[r.schemaId];switch(e.type){case`table`:n+=` TABLE ${i.shouldPrintSchema(a,t)?`"${a.name}".`:``}"${r.name}" IS '${r.note.replace(/'/g,`''`)}'`;break;case`column`:{let o=t.fields[e.fieldId];n+=` COLUMN ${i.shouldPrintSchema(a,t)?`"${a.name}".`:``}"${r.name}"."${o.name}" IS '${o.note.replace(/'/g,`''`)}'`;break}}return n+=`;
9
+ `,n})}static export(a){let o=a.database[1],s=new Set(Object.values(a.tables).map(e=>e.name)),c=new Set,l=o.schemaIds.reduce((e,t)=>{let o=a.schemas[t],{enumIds:s}=o;return i.shouldPrintSchema(o,a)&&e.schemas.push(`CREATE SCHEMA "${o.name}";\n`),n.default(s)||r.exportEnums(s,a).forEach(t=>{let[n,r]=t;e.enums.push(r),c.add(n)}),e},{schemas:[],enums:[],tables:[],indexes:[],comments:[],refs:[]}),u=o.schemaIds.reduce((t,i)=>{let{tableIds:o,refIds:l}=a.schemas[i];n.default(o)||t.tables.push(...r.exportTables(o,a,c));let u=e.default(o.map(e=>a.tables[e].indexIds));n.default(u)||t.indexes.push(...r.exportIndexes(u,a));let d=e.default(o.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(d)||t.comments.push(...r.exportComments(d,a)),n.default(l)||t.refs.push(...r.exportRefs(l,a,s)),t},l),d=r.exportRecords(a),f=n.default(d)?[]:[`-- Defer constraint checking for INSERT`,`BEGIN;`,`SET CONSTRAINTS ALL DEFERRED;`,``,...d,``,`SET CONSTRAINTS ALL IMMEDIATE;`,`COMMIT;`];return t.default(u.schemas,u.enums,u.tables,u.indexes,u.comments,u.refs,f).join(`
10
10
  `)}};exports.default=l;
@@ -2,10 +2,10 @@ import e from "../node_modules/lodash-es/flatten.mjs";
2
2
  import t from "../node_modules/lodash-es/concat.mjs";
3
3
  import n from "../node_modules/lodash-es/isEmpty.mjs";
4
4
  import { init_lodash as r } from "../node_modules/lodash-es/lodash.mjs";
5
- import { shouldPrintSchemaName as i } from "../model_structure/utils.mjs";
6
- import { buildJunctionFields1 as a, buildJunctionFields2 as o, buildNewTableName as s, hasWhiteSpace as c, hasWhiteSpaceOrUpperCase as l, shouldPrintSchema as u } from "./utils.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
7
  import { isBinaryType as d, isBooleanType as f, isDateTimeType as p, isNumericType as m, isStringType as h, parseCardinality as g } from "@dbml/parse";
8
- // src/export/PostgresExporter.js
8
+ //#region src/export/PostgresExporter.js
9
9
  r();
10
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 {
11
11
  static exportRecords(e) {
@@ -19,13 +19,13 @@ var _ = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
19
19
  }
20
20
  static exportEnums(e, t) {
21
21
  return e.map((e) => {
22
- let n = t.enums[e], r = t.schemas[n.schemaId], i = `${u(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}"`;
23
23
  return [i, `CREATE TYPE ${i} AS ENUM (\n${n.valueIds.map((e) => ` '${t.enumValues[e].name}'`).join(",\n")}\n);\n`];
24
24
  });
25
25
  }
26
26
  static getFieldLines(e, t, n) {
27
27
  return t.tables[e].fieldIds.map((e) => {
28
- let r = t.fields[e], a = "";
28
+ let r = t.fields[e], i = "";
29
29
  if (r.increment) {
30
30
  let e = /* @__PURE__ */ new Set([
31
31
  "BIGINT",
@@ -36,26 +36,26 @@ var _ = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
36
36
  "SMALLSERIAL",
37
37
  "SERIAL",
38
38
  "BIGSERIAL"
39
- ]), n = r.type.type_name.toUpperCase(), i = "";
40
- i = e.has(n) ? `${n} GENERATED BY DEFAULT AS IDENTITY` : t.has(n) ? n : "SERIAL", a = `"${r.name}" ${i}`;
41
- } else if (!r.type.schemaName || !i(r.type.schemaName)) {
42
- let e = r.type.type_name, t = e.toUpperCase(), n = !_.includes(t) && (l(e) || v.includes(t)) ? `"${e}"` : e;
43
- a = `"${r.name}" ${n}`;
44
- } else if (r.type.originalTypeName) a = `"${r.name}" "${r.type.schemaName}"."${r.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}"`;
45
45
  else {
46
- let e = `${l(r.type.schemaName) ? `"${r.type.schemaName}".` : `${r.type.schemaName}.`}${l(r.type.type_name) ? `"${r.type.type_name}"` : r.type.type_name}`, t = `"${r.type.schemaName}"."${r.type.type_name}"`;
47
- !n.has(t) && !c(t) && (e = e.replaceAll("\"", "")), a = `"${r.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}`;
48
48
  }
49
- if (r.unique && (a += " UNIQUE"), r.pk && (a += " PRIMARY KEY"), r.not_null && (a += " NOT NULL"), r.checkIds && r.checkIds.length > 0) {
49
+ if (r.unique && (i += " UNIQUE"), r.pk && (i += " PRIMARY KEY"), r.not_null && (i += " NOT NULL"), r.checkIds && r.checkIds.length > 0) {
50
50
  if (r.checkIds.length === 1) {
51
51
  let e = t.checks[r.checkIds[0]];
52
- e.name && (a += ` CONSTRAINT "${e.name}"`), a += ` CHECK (${e.expression})`;
52
+ e.name && (i += ` CONSTRAINT "${e.name}"`), i += ` CHECK (${e.expression})`;
53
53
  } else {
54
54
  let e = r.checkIds.map((e) => `(${t.checks[e].expression})`);
55
- a += ` CHECK (${e.join(" AND ")})`;
55
+ i += ` CHECK (${e.join(" AND ")})`;
56
56
  }
57
57
  }
58
- 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" ? a += ` DEFAULT (${r.dbdefault.value})` : r.dbdefault.type === "string" ? a += ` DEFAULT '${r.dbdefault.value}'` : a += ` DEFAULT ${r.dbdefault.value}`), a;
58
+ 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;
59
59
  });
60
60
  }
61
61
  static getCompositePKs(e, t) {
@@ -90,14 +90,14 @@ var _ = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
90
90
  ...e.checkContents,
91
91
  ...e.compositePKs
92
92
  ], r = t.tables[e.tableId], i = t.schemas[r.schemaId];
93
- return `CREATE TABLE ${u(i, t) ? `"${i.name}".` : ""}"${r.name}" (\n${n.map((e) => ` ${e}`).join(",\n")}\n);\n`;
93
+ return `CREATE TABLE ${l(i, t) ? `"${i.name}".` : ""}"${r.name}" (\n${n.map((e) => ` ${e}`).join(",\n")}\n);\n`;
94
94
  });
95
95
  }
96
96
  static buildFieldName(e, t) {
97
97
  return `(${e.map((e) => `"${t.fields[e].name}"`).join(", ")})`;
98
98
  }
99
99
  static buildTableManyToMany(e, t, n, r, i) {
100
- let a = `CREATE TABLE ${u(r, i) ? `"${r.name}".` : ""}"${n}" (\n`, o = [...e.keys()].join("\", \""), s = [...t.keys()].join("\", \"");
100
+ let a = `CREATE TABLE ${l(r, i) ? `"${r.name}".` : ""}"${n}" (\n`, o = [...e.keys()].join("\", \""), s = [...t.keys()].join("\", \"");
101
101
  return e.forEach((e, t) => {
102
102
  a += ` "${t}" ${e},\n`;
103
103
  }), t.forEach((e, t) => {
@@ -106,15 +106,15 @@ var _ = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
106
106
  }
107
107
  static buildForeignKeyManyToMany(e, t, n, r, i, a, o) {
108
108
  let s = [...e.keys()].join("\", \"");
109
- return `ALTER TABLE ${u(i, o) ? `"${i.name}".` : ""}"${n}" ADD FOREIGN KEY ("${s}") REFERENCES ${u(a, o) ? `"${a.name}".` : ""}"${r}" ${t} DEFERRABLE INITIALLY IMMEDIATE;\n\n`;
109
+ 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`;
110
110
  }
111
111
  static exportRefs(e, t, n) {
112
112
  return e.map((e) => {
113
- let r = "", i = t.refs[e], c = i.endpointIds.findIndex((e) => g(t.endpoints[e].relation).max === 1), l = c === -1 ? 0 : c, d = i.endpointIds[1 - l], f = i.endpointIds[l], 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");
113
+ 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");
114
114
  if (c === -1) {
115
- let e = a(m.fieldIds, t), i = o(p.fieldIds, t, e), c = s(_.name, x.name, n);
116
- r += this.buildTableManyToMany(e, i, c, v, t), r += this.buildForeignKeyManyToMany(e, y, c, _.name, v, v, t), r += this.buildForeignKeyManyToMany(i, C, c, x.name, v, S, t);
117
- } else r = `ALTER TABLE ${u(S, t) ? `"${S.name}".` : ""}"${x.name}" ADD `, i.name && (r += `CONSTRAINT "${i.name}" `), r += `FOREIGN KEY ${C} REFERENCES ${u(v, t) ? `"${v.name}".` : ""}"${_.name}" ${y}`, i.onDelete && (r += ` ON DELETE ${i.onDelete.toUpperCase()}`), i.onUpdate && (r += ` ON UPDATE ${i.onUpdate.toUpperCase()}`), r += " DEFERRABLE INITIALLY IMMEDIATE;\n";
115
+ let e = i(m.fieldIds, t), s = a(p.fieldIds, t, e), c = o(_.name, x.name, n);
116
+ 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);
117
+ } 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";
118
118
  return r;
119
119
  });
120
120
  }
@@ -123,7 +123,7 @@ var _ = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
123
123
  let n = t.indexes[e], r = t.tables[n.tableId], i = t.schemas[r.schemaId], a = "CREATE";
124
124
  n.unique && (a += " UNIQUE");
125
125
  let o = n.name ? `"${n.name}"` : "";
126
- a += " INDEX", o && (a += ` ${o}`), a += ` ON ${u(i, t) ? `"${i.name}".` : ""}"${r.name}"`, n.type && (a += ` USING ${n.type.toUpperCase()}`);
126
+ a += " INDEX", o && (a += ` ${o}`), a += ` ON ${l(i, t) ? `"${i.name}".` : ""}"${r.name}"`, n.type && (a += ` USING ${n.type.toUpperCase()}`);
127
127
  let s = [];
128
128
  return n.columnIds.forEach((e) => {
129
129
  let n = t.indexColumns[e], r = "";
@@ -136,11 +136,11 @@ var _ = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
136
136
  let n = "COMMENT ON", r = t.tables[e.tableId], i = t.schemas[r.schemaId];
137
137
  switch (e.type) {
138
138
  case "table":
139
- n += ` TABLE ${u(i, t) ? `"${i.name}".` : ""}"${r.name}" IS '${r.note.replace(/'/g, "''")}'`;
139
+ n += ` TABLE ${l(i, t) ? `"${i.name}".` : ""}"${r.name}" IS '${r.note.replace(/'/g, "''")}'`;
140
140
  break;
141
141
  case "column": {
142
142
  let a = t.fields[e.fieldId];
143
- n += ` COLUMN ${u(i, t) ? `"${i.name}".` : ""}"${r.name}"."${a.name}" IS '${a.note.replace(/'/g, "''")}'`;
143
+ n += ` COLUMN ${l(i, t) ? `"${i.name}".` : ""}"${r.name}"."${a.name}" IS '${a.note.replace(/'/g, "''")}'`;
144
144
  break;
145
145
  }
146
146
  }
@@ -150,7 +150,7 @@ var _ = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
150
150
  static export(i) {
151
151
  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) => {
152
152
  let a = i.schemas[t], { enumIds: o } = a;
153
- return u(a, i) && e.schemas.push(`CREATE SCHEMA "${a.name}";\n`), n(o) || r.exportEnums(o, i).forEach((t) => {
153
+ return l(a, i) && e.schemas.push(`CREATE SCHEMA "${a.name}";\n`), n(o) || r.exportEnums(o, i).forEach((t) => {
154
154
  let [n, r] = t;
155
155
  e.enums.push(r), s.add(n);
156
156
  }), e;
@@ -161,7 +161,7 @@ var _ = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
161
161
  indexes: [],
162
162
  comments: [],
163
163
  refs: []
164
- }), l = a.schemaIds.reduce((t, a) => {
164
+ }), u = a.schemaIds.reduce((t, a) => {
165
165
  let { tableIds: c, refIds: l } = i.schemas[a];
166
166
  n(c) || t.tables.push(...r.exportTables(c, i, s));
167
167
  let u = e(c.map((e) => i.tables[e].indexIds));
@@ -188,7 +188,8 @@ var _ = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
188
188
  "SET CONSTRAINTS ALL IMMEDIATE;",
189
189
  "COMMIT;"
190
190
  ];
191
- return t(l.schemas, l.enums, l.tables, l.indexes, l.comments, l.refs, f).join("\n");
191
+ return t(u.schemas, u.enums, u.tables, u.indexes, u.comments, u.refs, f).join("\n");
192
192
  }
193
193
  };
194
+ //#endregion
194
195
  export { y as default };
@@ -4,7 +4,7 @@ import n from "../node_modules/lodash-es/isEmpty.mjs";
4
4
  import { init_lodash as r } from "../node_modules/lodash-es/lodash.mjs";
5
5
  import { buildJunctionFields1 as i, buildJunctionFields2 as a, buildNewTableName as o, shouldPrintSchema as s } from "./utils.mjs";
6
6
  import { isBinaryType as c, isBooleanType as l, isDateTimeType as u, isNumericType as d, isStringType as f, parseCardinality as p } from "@dbml/parse";
7
- // src/export/SqlServerExporter.js
7
+ //#region src/export/SqlServerExporter.js
8
8
  r();
9
9
  var m = class r {
10
10
  static exportRecords(e) {
@@ -164,4 +164,5 @@ var m = class r {
164
164
  return t(c.schemas, c.enums, c.tables, c.indexes, c.comments, c.refs, u).join("\n");
165
165
  }
166
166
  };
167
+ //#endregion
167
168
  export { m as default };
@@ -1 +1 @@
1
- require("../_virtual/_rolldown/runtime.cjs");const e=require("./ModelExporter.cjs"),t=require("../parse/Parser.cjs");function n(n,i,a={isNormalized:!0,includeRecords:!0}){let o=r(a),s=new t.default().parse(n,`dbmlv2`);return e.default.export(s.normalize(),i,o)}function r(e={}){if(typeof e==`boolean`)return{isNormalized:e,includeRecords:!0};let{isNormalized:t=!0,includeRecords:n=!0}=e;return{isNormalized:t,includeRecords:n}}var i={export:n};exports.default=i,exports.normalizeExportOptions=r;
1
+ require("../_virtual/_rolldown/runtime.cjs");const e=require("../parse/Parser.cjs"),t=require("./ModelExporter.cjs");function n(n,i,a={isNormalized:!0,includeRecords:!0}){let o=r(a),s=new e.default().parse(n,`dbmlv2`);return t.default.export(s.normalize(),i,o)}function r(e={}){if(typeof e==`boolean`)return{isNormalized:e,includeRecords:!0};let{isNormalized:t=!0,includeRecords:n=!0}=e;return{isNormalized:t,includeRecords:n}}var i={export:n};exports.default=i,exports.normalizeExportOptions=r;
@@ -1,12 +1,12 @@
1
- import e from "./ModelExporter.mjs";
2
- import t from "../parse/Parser.mjs";
3
- // src/export/index.ts
1
+ import e from "../parse/Parser.mjs";
2
+ import t from "./ModelExporter.mjs";
3
+ //#region src/export/index.ts
4
4
  function n(n, i, a = {
5
5
  isNormalized: !0,
6
6
  includeRecords: !0
7
7
  }) {
8
- let o = r(a), s = new t().parse(n, "dbmlv2");
9
- return e.export(s.normalize(), i, o);
8
+ let o = r(a), s = new e().parse(n, "dbmlv2");
9
+ return t.export(s.normalize(), i, o);
10
10
  }
11
11
  function r(e = {}) {
12
12
  if (typeof e == "boolean") return {
@@ -20,4 +20,5 @@ function r(e = {}) {
20
20
  };
21
21
  }
22
22
  var i = { export: n };
23
+ //#endregion
23
24
  export { i as default, r as normalizeExportOptions };
@@ -1,7 +1,7 @@
1
1
  import { DateTime as e } from "../node_modules/luxon/build/es6/luxon.mjs";
2
2
  import "../model_structure/config.mjs";
3
3
  import { tryExtractDateTime as t } from "@dbml/parse";
4
- // src/export/utils.ts
4
+ //#region src/export/utils.ts
5
5
  function n(e) {
6
6
  return /\s/g.test(e);
7
7
  }
@@ -63,4 +63,5 @@ function u(n) {
63
63
  function d(e, t) {
64
64
  return t ? e.toFormat("yyyy-MM-dd HH:mm:ss.SSS ZZ") : e.toUTC().toFormat("yyyy-MM-dd HH:mm:ss.SSS");
65
65
  }
66
+ //#endregion
66
67
  export { a as buildJunctionFields1, o as buildJunctionFields2, s as buildNewTableName, c as buildUniqueTableName, l as escapeObjectName, d as formatDatetimeForOracle, n as hasWhiteSpace, r as hasWhiteSpaceOrUpperCase, u as parseIsoDatetime, i as shouldPrintSchema };
@@ -1 +1 @@
1
- require("../_virtual/_rolldown/runtime.cjs");const e=require("../parse/databaseGenerator.cjs"),t=require("../parse/Parser.cjs"),n=require("../export/ModelExporter.cjs");function r(e,r,i={includeRecords:!0}){let{includeRecords:a=!0}=i,o=new t.default().parse(e,r);return n.default.export(o.normalize(),`dbml`,{includeRecords:a})}function i(t){let r=e.generateDatabase(t);return n.default.export(r.normalize(),`dbml`)}var a={import:r,generateDbml:i};exports.default=a;
1
+ require("../_virtual/_rolldown/runtime.cjs");const e=require("../parse/Parser.cjs"),t=require("../export/ModelExporter.cjs"),n=require("../parse/databaseGenerator.cjs");function r(n,r,i={includeRecords:!0}){let{includeRecords:a=!0}=i,o=new e.default().parse(n,r);return t.default.export(o.normalize(),`dbml`,{includeRecords:a})}function i(e){let r=n.generateDatabase(e);return t.default.export(r.normalize(),`dbml`)}var a={import:r,generateDbml:i};exports.default=a;
@@ -1,17 +1,18 @@
1
- import { generateDatabase as e } from "../parse/databaseGenerator.mjs";
2
- import t from "../parse/Parser.mjs";
3
- import n from "../export/ModelExporter.mjs";
4
- // src/import/index.ts
5
- function r(e, r, i = { includeRecords: !0 }) {
6
- let { includeRecords: a = !0 } = i, o = new t().parse(e, r);
7
- return n.export(o.normalize(), "dbml", { includeRecords: a });
1
+ import e from "../parse/Parser.mjs";
2
+ import t from "../export/ModelExporter.mjs";
3
+ import { generateDatabase as n } from "../parse/databaseGenerator.mjs";
4
+ //#region src/import/index.ts
5
+ function r(n, r, i = { includeRecords: !0 }) {
6
+ let { includeRecords: a = !0 } = i, o = new e().parse(n, r);
7
+ return t.export(o.normalize(), "dbml", { includeRecords: a });
8
8
  }
9
- function i(t) {
10
- let r = e(t);
11
- return n.export(r.normalize(), "dbml");
9
+ function i(e) {
10
+ let r = n(e);
11
+ return t.export(r.normalize(), "dbml");
12
12
  }
13
13
  var a = {
14
14
  import: r,
15
15
  generateDbml: i
16
16
  };
17
+ //#endregion
17
18
  export { a as default };
package/lib/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require("./_virtual/_rolldown/runtime.cjs");const e=require("./export/ModelExporter.cjs"),t=require("./parse/Parser.cjs"),n=require("./parse/error.cjs"),r=require("./import/index.cjs"),i=require("./export/index.cjs"),a=require("./transform/index.cjs"),o=require("./utils/version.cjs"),s=require("./transform/relations.cjs");let c=require("@dbml/parse");Object.defineProperty(exports,"ARCH_BUILTIN_ROLES",{enumerable:!0,get:function(){return c.ARCH_BUILTIN_ROLES}}),Object.defineProperty(exports,"ARCH_NAME_PRECEDENCE",{enumerable:!0,get:function(){return c.ARCH_NAME_PRECEDENCE}}),Object.defineProperty(exports,"CARDINALITY_MANY",{enumerable:!0,get:function(){return c.CARDINALITY_MANY}}),Object.defineProperty(exports,"CARDINALITY_MAYBE",{enumerable:!0,get:function(){return c.CARDINALITY_MAYBE}}),Object.defineProperty(exports,"CARDINALITY_ONE",{enumerable:!0,get:function(){return c.CARDINALITY_ONE}}),Object.defineProperty(exports,"CARDINALITY_SOME",{enumerable:!0,get:function(){return c.CARDINALITY_SOME}}),Object.defineProperty(exports,"CompileError",{enumerable:!0,get:function(){return c.CompileError}}),Object.defineProperty(exports,"CompileErrorCode",{enumerable:!0,get:function(){return c.CompileErrorCode}}),Object.defineProperty(exports,"CompileInfo",{enumerable:!0,get:function(){return c.CompileInfo}}),Object.defineProperty(exports,"CompileWarning",{enumerable:!0,get:function(){return c.CompileWarning}}),exports.CompilerDiagnostics=n.CompilerDiagnostics,Object.defineProperty(exports,"DEFAULT_ENTRY",{enumerable:!0,get:function(){return c.DEFAULT_ENTRY}}),Object.defineProperty(exports,"Filepath",{enumerable:!0,get:function(){return c.Filepath}}),Object.defineProperty(exports,"MetadataKind",{enumerable:!0,get:function(){return c.MetadataKind}}),exports.ModelExporter=e.default,exports.Parser=t.default,Object.defineProperty(exports,"SymbolKind",{enumerable:!0,get:function(){return c.SymbolKind}}),exports.VERSION=o.VERSION,Object.defineProperty(exports,"addDoubleQuoteIfNeeded",{enumerable:!0,get:function(){return c.addDoubleQuoteIfNeeded}}),Object.defineProperty(exports,"applyTextEdits",{enumerable:!0,get:function(){return c.applyTextEdits}}),Object.defineProperty(exports,"dbmlMonarchTokensProvider",{enumerable:!0,get:function(){return c.dbmlMonarchTokensProvider}}),exports.exporter=i.default,Object.defineProperty(exports,"findDiagramViewBlocks",{enumerable:!0,get:function(){return c.findDiagramViewBlocks}}),Object.defineProperty(exports,"formatTypedValue",{enumerable:!0,get:function(){return c.formatTypedValue}}),Object.defineProperty(exports,"fullName",{enumerable:!0,get:function(){return c.fullName}}),Object.defineProperty(exports,"getMultiplicities",{enumerable:!0,get:function(){return c.getMultiplicities}}),Object.defineProperty(exports,"getRelationshipOp",{enumerable:!0,get:function(){return c.getRelationshipOp}}),exports.importer=r.default,exports.inferMultiplicitiesFromColumns=s.inferMultiplicitiesFromColumns,Object.defineProperty(exports,"isBinaryType",{enumerable:!0,get:function(){return c.isBinaryType}}),Object.defineProperty(exports,"isBooleanType",{enumerable:!0,get:function(){return c.isBooleanType}}),Object.defineProperty(exports,"isDateTimeType",{enumerable:!0,get:function(){return c.isDateTimeType}}),Object.defineProperty(exports,"isEndpointManySide",{enumerable:!0,get:function(){return c.isEndpointManySide}}),Object.defineProperty(exports,"isEndpointOneSide",{enumerable:!0,get:function(){return c.isEndpointOneSide}}),Object.defineProperty(exports,"isEndpointOptional",{enumerable:!0,get:function(){return c.isEndpointOptional}}),Object.defineProperty(exports,"isEndpointRequired",{enumerable:!0,get:function(){return c.isEndpointRequired}}),Object.defineProperty(exports,"isFloatType",{enumerable:!0,get:function(){return c.isFloatType}}),Object.defineProperty(exports,"isIntegerType",{enumerable:!0,get:function(){return c.isIntegerType}}),Object.defineProperty(exports,"isNumericType",{enumerable:!0,get:function(){return c.isNumericType}}),Object.defineProperty(exports,"isSerialType",{enumerable:!0,get:function(){return c.isSerialType}}),Object.defineProperty(exports,"isStringType",{enumerable:!0,get:function(){return c.isStringType}}),Object.defineProperty(exports,"makeRelationshipRequired",{enumerable:!0,get:function(){return c.makeRelationshipRequired}}),exports.renameElement=a.renameElement,exports.renameTable=a.renameTable,exports.syncDep=a.syncDep,exports.syncDiagramView=a.syncDiagramView,Object.defineProperty(exports,"syncElementMetadata",{enumerable:!0,get:function(){return c.syncElementMetadata}}),Object.defineProperty(exports,"tryExtractBoolean",{enumerable:!0,get:function(){return c.tryExtractBoolean}}),Object.defineProperty(exports,"tryExtractDateTime",{enumerable:!0,get:function(){return c.tryExtractDateTime}}),Object.defineProperty(exports,"tryExtractEnum",{enumerable:!0,get:function(){return c.tryExtractEnum}}),Object.defineProperty(exports,"tryExtractInteger",{enumerable:!0,get:function(){return c.tryExtractInteger}}),Object.defineProperty(exports,"tryExtractNumeric",{enumerable:!0,get:function(){return c.tryExtractNumeric}}),Object.defineProperty(exports,"tryExtractString",{enumerable:!0,get:function(){return c.tryExtractString}}),exports.updateElementSetting=a.updateElementSetting,exports.updateElementSettingEdit=a.updateElementSettingEdit;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require("./_virtual/_rolldown/runtime.cjs");const e=require("./parse/error.cjs"),t=require("./parse/Parser.cjs"),n=require("./export/index.cjs"),r=require("./export/ModelExporter.cjs"),i=require("./import/index.cjs"),a=require("./transform/index.cjs"),o=require("./utils/version.cjs"),s=require("./transform/relations.cjs");let c=require("@dbml/parse");Object.defineProperty(exports,"ARCH_BUILTIN_ROLES",{enumerable:!0,get:function(){return c.ARCH_BUILTIN_ROLES}}),Object.defineProperty(exports,"ARCH_NAME_PRECEDENCE",{enumerable:!0,get:function(){return c.ARCH_NAME_PRECEDENCE}}),Object.defineProperty(exports,"CARDINALITY_MANY",{enumerable:!0,get:function(){return c.CARDINALITY_MANY}}),Object.defineProperty(exports,"CARDINALITY_MAYBE",{enumerable:!0,get:function(){return c.CARDINALITY_MAYBE}}),Object.defineProperty(exports,"CARDINALITY_ONE",{enumerable:!0,get:function(){return c.CARDINALITY_ONE}}),Object.defineProperty(exports,"CARDINALITY_SOME",{enumerable:!0,get:function(){return c.CARDINALITY_SOME}}),Object.defineProperty(exports,"CompileError",{enumerable:!0,get:function(){return c.CompileError}}),Object.defineProperty(exports,"CompileErrorCode",{enumerable:!0,get:function(){return c.CompileErrorCode}}),Object.defineProperty(exports,"CompileInfo",{enumerable:!0,get:function(){return c.CompileInfo}}),Object.defineProperty(exports,"CompileWarning",{enumerable:!0,get:function(){return c.CompileWarning}}),exports.CompilerDiagnostics=e.CompilerDiagnostics,Object.defineProperty(exports,"DEFAULT_ENTRY",{enumerable:!0,get:function(){return c.DEFAULT_ENTRY}}),Object.defineProperty(exports,"Filepath",{enumerable:!0,get:function(){return c.Filepath}}),Object.defineProperty(exports,"MetadataKind",{enumerable:!0,get:function(){return c.MetadataKind}}),exports.ModelExporter=r.default,exports.Parser=t.default,Object.defineProperty(exports,"SymbolKind",{enumerable:!0,get:function(){return c.SymbolKind}}),exports.VERSION=o.VERSION,Object.defineProperty(exports,"addDoubleQuoteIfNeeded",{enumerable:!0,get:function(){return c.addDoubleQuoteIfNeeded}}),Object.defineProperty(exports,"applyTextEdits",{enumerable:!0,get:function(){return c.applyTextEdits}}),Object.defineProperty(exports,"dbmlMonarchTokensProvider",{enumerable:!0,get:function(){return c.dbmlMonarchTokensProvider}}),exports.exporter=n.default,Object.defineProperty(exports,"findDiagramViewBlocks",{enumerable:!0,get:function(){return c.findDiagramViewBlocks}}),Object.defineProperty(exports,"formatTypedValue",{enumerable:!0,get:function(){return c.formatTypedValue}}),Object.defineProperty(exports,"fullName",{enumerable:!0,get:function(){return c.fullName}}),Object.defineProperty(exports,"getMultiplicities",{enumerable:!0,get:function(){return c.getMultiplicities}}),Object.defineProperty(exports,"getRelationshipOp",{enumerable:!0,get:function(){return c.getRelationshipOp}}),exports.importer=i.default,exports.inferMultiplicitiesFromColumns=s.inferMultiplicitiesFromColumns,Object.defineProperty(exports,"isBinaryType",{enumerable:!0,get:function(){return c.isBinaryType}}),Object.defineProperty(exports,"isBooleanType",{enumerable:!0,get:function(){return c.isBooleanType}}),Object.defineProperty(exports,"isDateTimeType",{enumerable:!0,get:function(){return c.isDateTimeType}}),Object.defineProperty(exports,"isEndpointManySide",{enumerable:!0,get:function(){return c.isEndpointManySide}}),Object.defineProperty(exports,"isEndpointOneSide",{enumerable:!0,get:function(){return c.isEndpointOneSide}}),Object.defineProperty(exports,"isEndpointOptional",{enumerable:!0,get:function(){return c.isEndpointOptional}}),Object.defineProperty(exports,"isEndpointRequired",{enumerable:!0,get:function(){return c.isEndpointRequired}}),Object.defineProperty(exports,"isFloatType",{enumerable:!0,get:function(){return c.isFloatType}}),Object.defineProperty(exports,"isIntegerType",{enumerable:!0,get:function(){return c.isIntegerType}}),Object.defineProperty(exports,"isNumericType",{enumerable:!0,get:function(){return c.isNumericType}}),Object.defineProperty(exports,"isSerialType",{enumerable:!0,get:function(){return c.isSerialType}}),Object.defineProperty(exports,"isStringType",{enumerable:!0,get:function(){return c.isStringType}}),Object.defineProperty(exports,"makeRelationshipRequired",{enumerable:!0,get:function(){return c.makeRelationshipRequired}}),exports.renameElement=a.renameElement,exports.renameTable=a.renameTable,exports.syncDep=a.syncDep,exports.syncDiagramView=a.syncDiagramView,Object.defineProperty(exports,"syncElementMetadata",{enumerable:!0,get:function(){return c.syncElementMetadata}}),Object.defineProperty(exports,"tryExtractBoolean",{enumerable:!0,get:function(){return c.tryExtractBoolean}}),Object.defineProperty(exports,"tryExtractDateTime",{enumerable:!0,get:function(){return c.tryExtractDateTime}}),Object.defineProperty(exports,"tryExtractEnum",{enumerable:!0,get:function(){return c.tryExtractEnum}}),Object.defineProperty(exports,"tryExtractInteger",{enumerable:!0,get:function(){return c.tryExtractInteger}}),Object.defineProperty(exports,"tryExtractNumeric",{enumerable:!0,get:function(){return c.tryExtractNumeric}}),Object.defineProperty(exports,"tryExtractString",{enumerable:!0,get:function(){return c.tryExtractString}}),exports.updateElementSetting=a.updateElementSetting,exports.updateElementSettingEdit=a.updateElementSettingEdit;
package/lib/index.mjs CHANGED
@@ -1,10 +1,10 @@
1
- import e from "./export/ModelExporter.mjs";
1
+ import { CompilerDiagnostics as e } from "./parse/error.mjs";
2
2
  import t from "./parse/Parser.mjs";
3
- import { CompilerDiagnostics as n } from "./parse/error.mjs";
4
- import r from "./import/index.mjs";
5
- import i from "./export/index.mjs";
3
+ import n from "./export/index.mjs";
4
+ import r from "./export/ModelExporter.mjs";
5
+ import i from "./import/index.mjs";
6
6
  import { findDiagramViewBlocks as a, renameElement as o, renameTable as s, syncDep as c, syncDiagramView as l, updateElementSetting as u, updateElementSettingEdit as d } from "./transform/index.mjs";
7
7
  import { VERSION as f } from "./utils/version.mjs";
8
8
  import { inferMultiplicitiesFromColumns as p } from "./transform/relations.mjs";
9
9
  import { ARCH_BUILTIN_ROLES as m, ARCH_NAME_PRECEDENCE as h, CARDINALITY_MANY as g, CARDINALITY_MAYBE as _, CARDINALITY_ONE as v, CARDINALITY_SOME as y, CompileError as b, CompileErrorCode as x, CompileInfo as S, CompileWarning as C, DEFAULT_ENTRY as w, Filepath as T, MetadataKind as E, SymbolKind as D, addDoubleQuoteIfNeeded as O, applyTextEdits as k, dbmlMonarchTokensProvider as A, formatTypedValue as j, fullName as M, getMultiplicities as N, getRelationshipOp as P, isBinaryType as F, isBooleanType as I, isDateTimeType as L, isEndpointManySide as R, isEndpointOneSide as z, isEndpointOptional as B, isEndpointRequired as V, isFloatType as H, isIntegerType as U, isNumericType as W, isSerialType as G, isStringType as K, makeRelationshipRequired as q, syncElementMetadata as J, tryExtractBoolean as Y, tryExtractDateTime as X, tryExtractEnum as Z, tryExtractInteger as Q, tryExtractNumeric as $, tryExtractString as ee } from "@dbml/parse";
10
- export { m as ARCH_BUILTIN_ROLES, h as ARCH_NAME_PRECEDENCE, g as CARDINALITY_MANY, _ as CARDINALITY_MAYBE, v as CARDINALITY_ONE, y as CARDINALITY_SOME, b as CompileError, x as CompileErrorCode, S as CompileInfo, C as CompileWarning, n as CompilerDiagnostics, w as DEFAULT_ENTRY, T as Filepath, E as MetadataKind, e as ModelExporter, t as Parser, D as SymbolKind, f as VERSION, O as addDoubleQuoteIfNeeded, k as applyTextEdits, A as dbmlMonarchTokensProvider, i as exporter, a as findDiagramViewBlocks, j as formatTypedValue, M as fullName, N as getMultiplicities, P as getRelationshipOp, r as importer, p as inferMultiplicitiesFromColumns, F as isBinaryType, I as isBooleanType, L as isDateTimeType, R as isEndpointManySide, z as isEndpointOneSide, B as isEndpointOptional, V as isEndpointRequired, H as isFloatType, U as isIntegerType, W as isNumericType, G as isSerialType, K as isStringType, q as makeRelationshipRequired, o as renameElement, s as renameTable, c as syncDep, l as syncDiagramView, J as syncElementMetadata, Y as tryExtractBoolean, X as tryExtractDateTime, Z as tryExtractEnum, Q as tryExtractInteger, $ as tryExtractNumeric, ee as tryExtractString, u as updateElementSetting, d as updateElementSettingEdit };
10
+ export { m as ARCH_BUILTIN_ROLES, h as ARCH_NAME_PRECEDENCE, g as CARDINALITY_MANY, _ as CARDINALITY_MAYBE, v as CARDINALITY_ONE, y as CARDINALITY_SOME, b as CompileError, x as CompileErrorCode, S as CompileInfo, C as CompileWarning, e as CompilerDiagnostics, w as DEFAULT_ENTRY, T as Filepath, E as MetadataKind, r as ModelExporter, t as Parser, D as SymbolKind, f as VERSION, O as addDoubleQuoteIfNeeded, k as applyTextEdits, A as dbmlMonarchTokensProvider, n as exporter, a as findDiagramViewBlocks, j as formatTypedValue, M as fullName, N as getMultiplicities, P as getRelationshipOp, i as importer, p as inferMultiplicitiesFromColumns, F as isBinaryType, I as isBooleanType, L as isDateTimeType, R as isEndpointManySide, z as isEndpointOneSide, B as isEndpointOptional, V as isEndpointRequired, H as isFloatType, U as isIntegerType, W as isNumericType, G as isSerialType, K as isStringType, q as makeRelationshipRequired, o as renameElement, s as renameTable, c as syncDep, l as syncDiagramView, J as syncElementMetadata, Y as tryExtractBoolean, X as tryExtractDateTime, Z as tryExtractEnum, Q as tryExtractInteger, $ as tryExtractNumeric, ee as tryExtractString, u as updateElementSetting, d as updateElementSettingEdit };
@@ -1,5 +1,5 @@
1
1
  import e from "./element.mjs";
2
- // src/model_structure/check.ts
2
+ //#region src/model_structure/check.ts
3
3
  var t = class extends e {
4
4
  constructor({ token: e, name: t, expression: n, table: r, column: i = null, injectedPartial: a = null }) {
5
5
  super(e), this.name = t, this.expression = n, this.table = r, this.column = i, this.injectedPartial = a, this.dbState = this.table.dbState, this.generateId();
@@ -31,4 +31,5 @@ var t = class extends e {
31
31
  };
32
32
  }
33
33
  };
34
+ //#endregion
34
35
  export { t as default };
@@ -1,3 +1,4 @@
1
- // src/model_structure/config.ts
1
+ //#region src/model_structure/config.ts
2
2
  var e = "public", t = "table", n = "note", r = "enum", i = "table_group";
3
+ //#endregion
3
4
  export { e as DEFAULT_SCHEMA_NAME, r as ENUM, n as NOTE, t as TABLE, i as TABLE_GROUP };
@@ -1 +1 @@
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("./dep.cjs"),o=require("./element.cjs"),s=require("./enum.cjs"),c=require("./ref.cjs"),l=require("./schema.cjs"),u=require("./stickyNote.cjs"),d=require("./table.cjs"),f=require("./tableGroup.cjs"),p=require("./tablePartial.cjs"),m=require("./node.cjs"),h=require("./group.cjs"),g=require("./link.cjs");let _=require("@dbml/parse");n.init_lodash();var v=class extends o.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=[],nodes:g=[],groups:_=[],links:v=[],frontMatter:y,diagramType:b}={}){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)}),this.nodes=[],this.groups=[],this.links=[],this.diagramType=b??null,this.frontMatter=y??null,this.processArch(g,_,v)}processArch(e,t,n){e.forEach(e=>this.nodes.push(new m.default({...e,database:this}))),t.forEach(e=>this.groups.push(new h.default({...e,database:this})));let r=(e,t)=>`${t}\u0000${e}`,i=new Map,a=(e,t,n,a)=>{let o=r(e,t);i.has(o)||i.set(o,{type:n,element:a})};this.nodes.forEach(e=>a(e.alias??e.name,e.role,`node`,e)),this.groups.forEach(e=>a(e.alias??e.name,`Group`,`group`,e)),this.notes.forEach(e=>a(e.name,`Note`,`note`,e)),this.groups.forEach(e=>{e.children.forEach(({handle:t,role:n})=>{let a=i.get(r(t,n));a&&(e.childIds.push(a.element.id),e.childTypes.push(a.type),(a.element instanceof m.default||a.element instanceof h.default)&&(a.element.groupId=e.id))})}),n.forEach(({from:e,fromRole:t,to:n,toRole:a,...o})=>{let s=i.get(r(e,t)),c=i.get(r(n,a));s&&c&&this.links.push(new g.default({...o,fromId:s.element.id,fromType:s.type,toId:c.element.id,toType:c.type,database:this}))})}generateId(){this.id=this.dbState.generateId(`dbId`)}processNotes(e){e.forEach(e=>{this.pushNote(new u.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 l.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 d.default({...e,schema:n}));break;case r.ENUM:n.pushEnum(new s.default({...e,schema:n}));break;case r.TABLE_GROUP:n.pushTableGroup(new f.default({...e,schema:n}));break;case`ref`:n.pushRef(new c.default({...e,schema:n}));break;case`dep`:n.pushDep(new a.default({...e,schema:n}))}})}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=t.schemaName??`public`,r=e[n]?.[t.tableName];r&&(t.tableId=r.id,r.records.push(t))})}findOrCreateSchema(e){let n=this.schemas.find(t=>t.name===e||t.alias===e);return n||(n=new l.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,_.parseCardinality)(e.relation).max===`*`),n=e.endpoints.find(e=>(0,_.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,_.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})),...this.archEntries(e=>e.map(e=>e.export()))}}exportChildIds(){return{schemaIds:this.schemas.map(e=>e.id),noteIds:this.notes.map(e=>e.id),...this.archIds(),...this.diagramType?{diagramType:this.diagramType}:{},...this.frontMatter?{frontMatter:this.frontMatter}:{}}}archEntries(e){let t={},n={nodes:this.nodes,groups:this.groups,links:this.links};return Object.entries(n).forEach(([n,r])=>{r.length&&(t[n]=e(r))}),t}archIds(){let e=this.archEntries(e=>e.map(e=>e.id));return{...e.nodes?{nodeIds:e.nodes}:{},...e.groups?{groupIds:e.groups}:{},...e.links?{linkIds:e.links}:{}}}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)),Object.entries(this.archEntries(e=>e)).forEach(([t,n])=>{e[t]={},n.forEach(t=>t.normalize(e))}),e}};exports.default=v;
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"),m=require("./node.cjs"),h=require("./group.cjs"),g=require("./link.cjs");let _=require("@dbml/parse");n.init_lodash();var v=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=[],nodes:g=[],groups:_=[],links:v=[],frontMatter:y,diagramType:b}={}){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)}),this.nodes=[],this.groups=[],this.links=[],this.diagramType=b??null,this.frontMatter=y??null,this.processArch(g,_,v)}processArch(e,t,n){e.forEach(e=>this.nodes.push(new m.default({...e,database:this}))),t.forEach(e=>this.groups.push(new h.default({...e,database:this})));let r=(e,t)=>`${t}\u0000${e}`,i=new Map,a=(e,t,n,a)=>{let o=r(e,t);i.has(o)||i.set(o,{type:n,element:a})};this.nodes.forEach(e=>a(e.alias??e.name,e.role,`node`,e)),this.groups.forEach(e=>a(e.alias??e.name,`Group`,`group`,e)),this.notes.forEach(e=>a(e.name,`Note`,`note`,e)),this.groups.forEach(e=>{e.children.forEach(({handle:t,role:n})=>{let a=i.get(r(t,n));a&&(e.childIds.push(a.element.id),e.childTypes.push(a.type),(a.element instanceof m.default||a.element instanceof h.default)&&(a.element.groupId=e.id))})}),n.forEach(({from:e,fromRole:t,to:n,toRole:a,...o})=>{let s=i.get(r(e,t)),c=i.get(r(n,a));s&&c&&this.links.push(new g.default({...o,fromId:s.element.id,fromType:s.type,toId:c.element.id,toType:c.type,database:this}))})}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}))}})}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=t.schemaName??`public`,r=e[n]?.[t.tableName];r&&(t.tableId=r.id,r.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,_.parseCardinality)(e.relation).max===`*`),n=e.endpoints.find(e=>(0,_.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,_.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})),...this.archEntries(e=>e.map(e=>e.export()))}}exportChildIds(){return{schemaIds:this.schemas.map(e=>e.id),noteIds:this.notes.map(e=>e.id),...this.archIds(),...this.diagramType?{diagramType:this.diagramType}:{},...this.frontMatter?{frontMatter:this.frontMatter}:{}}}archEntries(e){let t={},n={nodes:this.nodes,groups:this.groups,links:this.links};return Object.entries(n).forEach(([n,r])=>{r.length&&(t[n]=e(r))}),t}archIds(){let e=this.archEntries(e=>e.map(e=>e.id));return{...e.nodes?{nodeIds:e.nodes}:{},...e.groups?{groupIds:e.groups}:{},...e.links?{linkIds:e.links}:{}}}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)),Object.entries(this.archEntries(e=>e)).forEach(([t,n])=>{e[t]={},n.forEach(t=>t.normalize(e))}),e}};exports.default=v;