@dbml/core 5.4.0 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/lib/export/DbmlExporter.js +0 -0
  4. package/lib/export/JsonExporter.js +0 -0
  5. package/lib/export/ModelExporter.js +0 -0
  6. package/lib/export/MysqlExporter.js +0 -0
  7. package/lib/export/OracleExporter.js +0 -0
  8. package/lib/export/PostgresExporter.js +0 -0
  9. package/lib/export/README.md +0 -0
  10. package/lib/export/SqlServerExporter.js +0 -0
  11. package/lib/export/index.js +0 -0
  12. package/lib/export/utils.js +0 -0
  13. package/lib/import/index.js +0 -0
  14. package/lib/index.js +0 -0
  15. package/lib/model_structure/check.js +0 -0
  16. package/lib/model_structure/config.js +0 -0
  17. package/lib/model_structure/database.js +0 -0
  18. package/lib/model_structure/dbState.js +0 -0
  19. package/lib/model_structure/element.js +0 -0
  20. package/lib/model_structure/endpoint.js +0 -0
  21. package/lib/model_structure/enum.js +0 -0
  22. package/lib/model_structure/enumValue.js +0 -0
  23. package/lib/model_structure/field.js +0 -0
  24. package/lib/model_structure/indexColumn.js +0 -0
  25. package/lib/model_structure/indexes.js +0 -0
  26. package/lib/model_structure/ref.js +0 -0
  27. package/lib/model_structure/schema.js +0 -0
  28. package/lib/model_structure/stickyNote.js +0 -0
  29. package/lib/model_structure/table.js +0 -0
  30. package/lib/model_structure/tableGroup.js +0 -0
  31. package/lib/model_structure/tablePartial.js +0 -0
  32. package/lib/model_structure/utils.js +0 -0
  33. package/lib/parse/ANTLR/ASTGeneration/AST.js +0 -0
  34. package/lib/parse/ANTLR/ASTGeneration/ParserErrorListener.js +0 -0
  35. package/lib/parse/ANTLR/ASTGeneration/SyntaxError.js +0 -0
  36. package/lib/parse/ANTLR/ASTGeneration/constants.js +0 -0
  37. package/lib/parse/ANTLR/ASTGeneration/helpers.js +0 -0
  38. package/lib/parse/ANTLR/ASTGeneration/index.js +0 -0
  39. package/lib/parse/ANTLR/ASTGeneration/mssql/MssqlASTGen.js +37 -3
  40. package/lib/parse/ANTLR/ASTGeneration/mssql/README.md +0 -0
  41. package/lib/parse/ANTLR/ASTGeneration/mysql/MySQLASTGen.js +0 -0
  42. package/lib/parse/ANTLR/ASTGeneration/mysql/README.md +0 -0
  43. package/lib/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js +0 -0
  44. package/lib/parse/ANTLR/ASTGeneration/oraclesql/README.md +0 -0
  45. package/lib/parse/ANTLR/ASTGeneration/postgres/PostgreSQLLexerBase.js +0 -0
  46. package/lib/parse/ANTLR/ASTGeneration/postgres/PostgreSQLParserBase.js +0 -0
  47. package/lib/parse/ANTLR/ASTGeneration/postgres/PostgresASTGen.js +0 -0
  48. package/lib/parse/ANTLR/ASTGeneration/postgres/README.md +0 -0
  49. package/lib/parse/ANTLR/ASTGeneration/snowflake/README.md +0 -0
  50. package/lib/parse/ANTLR/ASTGeneration/snowflake/SnowflakeASTGen.js +0 -0
  51. package/lib/parse/ANTLR/README.md +0 -0
  52. package/lib/parse/ANTLR/parsers/mssql/TSqlLexer.g4 +0 -0
  53. package/lib/parse/ANTLR/parsers/mssql/TSqlLexer.interp +0 -0
  54. package/lib/parse/ANTLR/parsers/mssql/TSqlLexer.js +0 -0
  55. package/lib/parse/ANTLR/parsers/mssql/TSqlLexer.tokens +0 -0
  56. package/lib/parse/ANTLR/parsers/mssql/TSqlParser.g4 +0 -0
  57. package/lib/parse/ANTLR/parsers/mssql/TSqlParser.interp +0 -0
  58. package/lib/parse/ANTLR/parsers/mssql/TSqlParser.js +0 -0
  59. package/lib/parse/ANTLR/parsers/mssql/TSqlParser.tokens +0 -0
  60. package/lib/parse/ANTLR/parsers/mssql/TSqlParserVisitor.js +0 -0
  61. package/lib/parse/ANTLR/parsers/mysql/MySqlLexer.g4 +0 -0
  62. package/lib/parse/ANTLR/parsers/mysql/MySqlLexer.interp +0 -0
  63. package/lib/parse/ANTLR/parsers/mysql/MySqlLexer.js +0 -0
  64. package/lib/parse/ANTLR/parsers/mysql/MySqlLexer.tokens +0 -0
  65. package/lib/parse/ANTLR/parsers/mysql/MySqlLexerBase.js +0 -0
  66. package/lib/parse/ANTLR/parsers/mysql/MySqlParser.g4 +0 -0
  67. package/lib/parse/ANTLR/parsers/mysql/MySqlParser.interp +0 -0
  68. package/lib/parse/ANTLR/parsers/mysql/MySqlParser.js +0 -0
  69. package/lib/parse/ANTLR/parsers/mysql/MySqlParser.tokens +0 -0
  70. package/lib/parse/ANTLR/parsers/mysql/MySqlParserVisitor.js +0 -0
  71. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.g4 +0 -0
  72. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.interp +0 -0
  73. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.js +0 -0
  74. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.tokens +0 -0
  75. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlLexerBase.js +0 -0
  76. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlParser.g4 +0 -0
  77. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlParser.interp +0 -0
  78. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlParser.js +0 -0
  79. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlParser.tokens +0 -0
  80. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlParserBase.js +0 -0
  81. package/lib/parse/ANTLR/parsers/oraclesql/OracleSqlParserVisitor.js +0 -0
  82. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLLexer.g4 +0 -0
  83. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLLexer.interp +0 -0
  84. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLLexer.js +0 -0
  85. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLLexer.tokens +0 -0
  86. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLParser.g4 +0 -0
  87. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLParser.interp +0 -0
  88. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLParser.js +0 -0
  89. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLParser.tokens +0 -0
  90. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLParserVisitor.js +0 -0
  91. package/lib/parse/ANTLR/parsers/postgresql/README.md +0 -0
  92. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeLexer.g4 +0 -0
  93. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeLexer.interp +0 -0
  94. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeLexer.js +0 -0
  95. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeLexer.tokens +0 -0
  96. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeParser.g4 +0 -0
  97. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeParser.interp +0 -0
  98. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeParser.js +0 -0
  99. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeParser.tokens +0 -0
  100. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeParserVisitor.js +0 -0
  101. package/lib/parse/Parser.js +0 -0
  102. package/lib/parse/buildParser.js +0 -0
  103. package/lib/parse/databaseGenerator.js +0 -0
  104. package/lib/parse/dbml/parser.pegjs +0 -0
  105. package/lib/parse/dbmlParser.js +0 -0
  106. package/lib/parse/error.js +0 -0
  107. package/lib/parse/mssql/base_parsers.js +0 -0
  108. package/lib/parse/mssql/column_definition/actions.js +0 -0
  109. package/lib/parse/mssql/column_definition/index.js +0 -0
  110. package/lib/parse/mssql/constraint_definition/actions.js +0 -0
  111. package/lib/parse/mssql/constraint_definition/index.js +0 -0
  112. package/lib/parse/mssql/expression.js +0 -0
  113. package/lib/parse/mssql/fk_definition/actions.js +0 -0
  114. package/lib/parse/mssql/fk_definition/index.js +0 -0
  115. package/lib/parse/mssql/index.js +0 -0
  116. package/lib/parse/mssql/index_definition/actions.js +0 -0
  117. package/lib/parse/mssql/index_definition/index.js +0 -0
  118. package/lib/parse/mssql/keyword_parsers.js +0 -0
  119. package/lib/parse/mssql/keyword_utils.js +0 -0
  120. package/lib/parse/mssql/statements/actions.js +0 -0
  121. package/lib/parse/mssql/statements/index.js +0 -0
  122. package/lib/parse/mssql/statements/statement_types/alter_table/actions.js +0 -0
  123. package/lib/parse/mssql/statements/statement_types/alter_table/add/actions.js +0 -0
  124. package/lib/parse/mssql/statements/statement_types/alter_table/add/index.js +0 -0
  125. package/lib/parse/mssql/statements/statement_types/alter_table/index.js +0 -0
  126. package/lib/parse/mssql/statements/statement_types/comments/actions.js +0 -0
  127. package/lib/parse/mssql/statements/statement_types/comments/index.js +0 -0
  128. package/lib/parse/mssql/statements/statement_types/create_index/actions.js +0 -0
  129. package/lib/parse/mssql/statements/statement_types/create_index/index.js +0 -0
  130. package/lib/parse/mssql/statements/statement_types/create_table/actions.js +0 -0
  131. package/lib/parse/mssql/statements/statement_types/create_table/index.js +0 -0
  132. package/lib/parse/mssql/statements/statement_types/index.js +0 -0
  133. package/lib/parse/mssql/utils.js +0 -0
  134. package/lib/parse/mssql/whitespaces.js +0 -0
  135. package/lib/parse/mssqlParser.js +0 -0
  136. package/lib/parse/mysql/parser.pegjs +0 -0
  137. package/lib/parse/mysqlParser.js +0 -0
  138. package/lib/parse/postgresParser.js +0 -0
  139. package/lib/parse/postgresql/Base_rules.pegjs +0 -0
  140. package/lib/parse/postgresql/Commands/Alter_table/Alter_table.pegjs +0 -0
  141. package/lib/parse/postgresql/Commands/Commands.pegjs +0 -0
  142. package/lib/parse/postgresql/Commands/Comment.pegjs +0 -0
  143. package/lib/parse/postgresql/Commands/Create_index.pegjs +0 -0
  144. package/lib/parse/postgresql/Commands/Create_table/Create_table.pegjs +0 -0
  145. package/lib/parse/postgresql/Commands/Create_table/Create_table_normal.pegjs +0 -0
  146. package/lib/parse/postgresql/Commands/Create_table/Create_table_of.pegjs +0 -0
  147. package/lib/parse/postgresql/Commands/Create_table/Create_table_partition_of.pegjs +0 -0
  148. package/lib/parse/postgresql/Commands/Create_type/Create_type.pegjs +0 -0
  149. package/lib/parse/postgresql/Commands/Create_type/Create_type_enum.pegjs +0 -0
  150. package/lib/parse/postgresql/Commands/Create_type/Create_type_range.pegjs +0 -0
  151. package/lib/parse/postgresql/Commands/Ignore_syntax.pegjs +0 -0
  152. package/lib/parse/postgresql/Expression.pegjs +0 -0
  153. package/lib/parse/postgresql/InitializerUtils.pegjs +0 -0
  154. package/lib/parse/postgresql/Keywords.pegjs +0 -0
  155. package/lib/parse/postgresql/get_parser.js +0 -0
  156. package/lib/parse/postgresql/parser.pegjs +0 -0
  157. package/lib/parse/schemarb/parser.pegjs +0 -0
  158. package/lib/parse/schemarbParser.js +0 -0
  159. package/lib/transform/index.js +0 -0
  160. package/lib/utils/version.js +0 -0
  161. package/package.json +6 -16
  162. package/types/export/ModelExporter.d.ts +1 -1
  163. package/types/export/index.d.ts +0 -0
  164. package/types/import/index.d.ts +0 -0
  165. package/types/index.d.ts +0 -0
  166. package/types/model_structure/check.d.ts +0 -0
  167. package/types/model_structure/database.d.ts +0 -0
  168. package/types/model_structure/dbState.d.ts +0 -0
  169. package/types/model_structure/element.d.ts +0 -0
  170. package/types/model_structure/endpoint.d.ts +0 -0
  171. package/types/model_structure/enum.d.ts +0 -0
  172. package/types/model_structure/enumValue.d.ts +0 -0
  173. package/types/model_structure/field.d.ts +0 -0
  174. package/types/model_structure/indexColumn.d.ts +0 -0
  175. package/types/model_structure/indexes.d.ts +0 -0
  176. package/types/model_structure/ref.d.ts +0 -0
  177. package/types/model_structure/schema.d.ts +0 -0
  178. package/types/model_structure/stickyNote.d.ts +0 -0
  179. package/types/model_structure/table.d.ts +0 -0
  180. package/types/model_structure/tableGroup.d.ts +0 -0
  181. package/types/model_structure/tablePartial.d.ts +0 -0
  182. package/types/parse/Parser.d.ts +1 -1
  183. package/types/parse/error.d.ts +0 -0
  184. package/types/transform/index.d.ts +0 -0
package/LICENSE CHANGED
File without changes
package/README.md CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/lib/index.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1157,6 +1157,40 @@ var MssqlASTGen = exports["default"] = /*#__PURE__*/function (_TSqlParserVisitor
1157
1157
  });
1158
1158
  if (!table) return; // ALTER TABLE should appear after CREATE TABLE, so skip if table is not created yet
1159
1159
 
1160
+ // Handle WITH CHECK/NOCHECK ADD CONSTRAINT FK
1161
+ if (ctx.WITH() && (ctx.CHECK() || ctx.NOCHECK()) && ctx.FOREIGN()) {
1162
+ var constraintName = ctx.constraint ? ctx.constraint.accept(this) : undefined;
1163
+ var localColumns = ctx.fk.accept(this);
1164
+
1165
+ // table_name()[1] is the referenced table (table_name()[0] is the table being altered)
1166
+ var refTableNames = ctx.table_name()[1].accept(this);
1167
+ var _getSchemaAndTableNam4 = getSchemaAndTableName(refTableNames),
1168
+ refSchemaName = _getSchemaAndTableNam4.schemaName,
1169
+ refTableName = _getSchemaAndTableNam4.tableName;
1170
+
1171
+ // pk is optional - if not specified, assume same column names as fk
1172
+ var refColumns = ctx.pk ? ctx.pk.accept(this) : localColumns;
1173
+ var onDelete = ctx.on_delete().length > 0 ? ctx.on_delete()[0].accept(this) : null;
1174
+ var onUpdate = ctx.on_update().length > 0 ? ctx.on_update()[0].accept(this) : null;
1175
+ var ref = {
1176
+ name: constraintName,
1177
+ endpoints: [{
1178
+ tableName: tableName,
1179
+ schemaName: schemaName,
1180
+ fieldNames: localColumns,
1181
+ relation: '*'
1182
+ }, {
1183
+ tableName: refTableName,
1184
+ schemaName: refSchemaName,
1185
+ fieldNames: refColumns,
1186
+ relation: '1'
1187
+ }],
1188
+ onDelete: onDelete,
1189
+ onUpdate: onUpdate
1190
+ };
1191
+ this.data.refs.push(ref);
1192
+ return;
1193
+ }
1160
1194
  var columnDefTableConstraints = ctx.column_def_table_constraints() ? ctx.column_def_table_constraints().accept(this) : [];
1161
1195
  var _splitColumnDefTableC2 = splitColumnDefTableConstraints(columnDefTableConstraints),
1162
1196
  fieldsData = _splitColumnDefTableC2.fieldsData,
@@ -1201,9 +1235,9 @@ var MssqlASTGen = exports["default"] = /*#__PURE__*/function (_TSqlParserVisitor
1201
1235
  }, {
1202
1236
  key: "visitCreate_index",
1203
1237
  value: function visitCreate_index(ctx) {
1204
- var _getSchemaAndTableNam4 = getSchemaAndTableName(ctx.table_name().accept(this)),
1205
- schemaName = _getSchemaAndTableNam4.schemaName,
1206
- tableName = _getSchemaAndTableNam4.tableName;
1238
+ var _getSchemaAndTableNam5 = getSchemaAndTableName(ctx.table_name().accept(this)),
1239
+ schemaName = _getSchemaAndTableNam5.schemaName,
1240
+ tableName = _getSchemaAndTableNam5.tableName;
1207
1241
  var table = this.data.tables.find(function (t) {
1208
1242
  return t.name === tableName && t.schemaName === schemaName;
1209
1243
  });
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "@dbml/core",
4
- "version": "5.4.0",
4
+ "version": "5.5.0",
5
5
  "description": "> TODO: description",
6
6
  "author": "Holistics <dev@holistics.io>",
7
7
  "license": "Apache-2.0",
@@ -25,7 +25,8 @@
25
25
  "access": "public"
26
26
  },
27
27
  "scripts": {
28
- "test": "jest",
28
+ "test": "jest --coverage=false",
29
+ "coverage": "jest --coverage",
29
30
  "benchmark": "jest --projects jest-bench.config.json",
30
31
  "build:lib": "babel src --out-dir lib --copy-files",
31
32
  "build:parser": "npx babel-node src/parse/buildParser.js",
@@ -35,7 +36,7 @@
35
36
  "lint:fix": "eslint --fix ."
36
37
  },
37
38
  "dependencies": {
38
- "@dbml/parse": "^5.4.0",
39
+ "@dbml/parse": "^5.5.0",
39
40
  "antlr4": "^4.13.1",
40
41
  "lodash": "^4.17.15",
41
42
  "parsimmon": "^1.13.0",
@@ -58,22 +59,11 @@
58
59
  "jest": "^29.5.0",
59
60
  "jest-bench": "^29.4.1",
60
61
  "pegjs-require-import": "0.0.6",
62
+ "ts-jest": "^29.4.5",
61
63
  "typescript": "^5.9.3",
62
64
  "typescript-eslint": "^8.46.3"
63
65
  },
64
- "jest": {
65
- "setupFiles": [
66
- "./jestHelpers.js"
67
- ],
68
- "transform": {
69
- "^.+\\.js$": "babel-jest",
70
- "\\.(?!json$)[^.]*$": "@glen/jest-raw-loader"
71
- },
72
- "moduleNameMapper": {
73
- "^lodash-es$": "lodash"
74
- }
75
- },
76
- "gitHead": "e7837a6418602e2b9d5a350335b669155d5c7ad4",
66
+ "gitHead": "dc9d32e973037784935ec6d92d22e751945bb194",
77
67
  "engines": {
78
68
  "node": ">=16"
79
69
  }
@@ -1,6 +1,6 @@
1
1
  import Database, { NormalizedDatabase } from '../model_structure/database';
2
2
 
3
- export type ExportFormatOption = 'dbml' | 'mysql' | 'postgres' | 'json' | 'mssql' | 'oracle';
3
+ export declare type ExportFormatOption = 'dbml' | 'mysql' | 'postgres' | 'json' | 'mssql' | 'oracle';
4
4
  declare class ModelExporter {
5
5
  static export(model: Database | NormalizedDatabase, format: ExportFormatOption, isNormalized?: boolean): string;
6
6
  }
File without changes
File without changes
package/types/index.d.ts CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,7 +1,7 @@
1
1
  import { Compiler } from '@dbml/parse';
2
2
  import Database, { RawDatabase } from '../model_structure/database';
3
3
 
4
- declare type ParseFormat = 'json'
4
+ export declare type ParseFormat = 'json'
5
5
  | 'mysql' | 'mysqlLegacy'
6
6
  | 'postgres' | 'postgresLegacy'
7
7
  | 'dbml' | 'dbmlv2'
File without changes
File without changes