@dbml/core 3.11.0 → 3.12.0-alpha-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) 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/config.js +0 -0
  16. package/lib/model_structure/database.js +39 -10
  17. package/lib/model_structure/dbState.js +1 -0
  18. package/lib/model_structure/element.js +0 -0
  19. package/lib/model_structure/endpoint.js +0 -0
  20. package/lib/model_structure/enum.js +0 -0
  21. package/lib/model_structure/enumValue.js +0 -0
  22. package/lib/model_structure/field.js +0 -0
  23. package/lib/model_structure/indexColumn.js +0 -0
  24. package/lib/model_structure/indexes.js +0 -0
  25. package/lib/model_structure/ref.js +0 -0
  26. package/lib/model_structure/schema.js +0 -0
  27. package/lib/model_structure/stickyNote.js +0 -0
  28. package/lib/model_structure/table.js +0 -0
  29. package/lib/model_structure/tableGroup.js +0 -0
  30. package/lib/model_structure/utils.js +6 -0
  31. package/lib/parse/ANTLR/ASTGeneration/AST.js +0 -0
  32. package/lib/parse/ANTLR/ASTGeneration/ParserErrorListener.js +0 -0
  33. package/lib/parse/ANTLR/ASTGeneration/SyntaxError.js +0 -0
  34. package/lib/parse/ANTLR/ASTGeneration/constants.js +4 -2
  35. package/lib/parse/ANTLR/ASTGeneration/helpers.js +0 -0
  36. package/lib/parse/ANTLR/ASTGeneration/index.js +21 -5
  37. package/lib/parse/ANTLR/ASTGeneration/mssql/MssqlASTGen.js +1334 -0
  38. package/lib/parse/ANTLR/ASTGeneration/mysql/MySQLASTGen.js +159 -4
  39. package/lib/parse/ANTLR/ASTGeneration/postgres/PostgreSQLLexerBase.js +0 -0
  40. package/lib/parse/ANTLR/ASTGeneration/postgres/PostgreSQLParserBase.js +0 -0
  41. package/lib/parse/ANTLR/ASTGeneration/postgres/PostgresASTGen.js +225 -5
  42. package/lib/parse/ANTLR/ASTGeneration/snowflake/SnowflakeASTGen.js +0 -0
  43. package/lib/parse/ANTLR/README.md +6 -1
  44. package/lib/parse/ANTLR/parsers/mssql/TSqlLexer.g4 +1300 -0
  45. package/lib/parse/ANTLR/parsers/mssql/TSqlLexer.interp +3643 -0
  46. package/lib/parse/ANTLR/parsers/mssql/TSqlLexer.js +1255 -0
  47. package/lib/parse/ANTLR/parsers/mssql/TSqlLexer.tokens +2385 -0
  48. package/lib/parse/ANTLR/parsers/mssql/TSqlParser.g4 +6313 -0
  49. package/lib/parse/ANTLR/parsers/mssql/TSqlParser.interp +3034 -0
  50. package/lib/parse/ANTLR/parsers/mssql/TSqlParser.js +3 -0
  51. package/lib/parse/ANTLR/parsers/mssql/TSqlParser.tokens +2385 -0
  52. package/lib/parse/ANTLR/parsers/mssql/TSqlParserVisitor.js +5732 -0
  53. package/lib/parse/ANTLR/parsers/mysql/MySqlLexer.g4 +0 -0
  54. package/lib/parse/ANTLR/parsers/mysql/MySqlLexer.interp +0 -0
  55. package/lib/parse/ANTLR/parsers/mysql/MySqlLexer.js +0 -0
  56. package/lib/parse/ANTLR/parsers/mysql/MySqlLexer.tokens +0 -0
  57. package/lib/parse/ANTLR/parsers/mysql/MySqlParser.g4 +0 -0
  58. package/lib/parse/ANTLR/parsers/mysql/MySqlParser.interp +0 -0
  59. package/lib/parse/ANTLR/parsers/mysql/MySqlParser.js +0 -0
  60. package/lib/parse/ANTLR/parsers/mysql/MySqlParser.tokens +0 -0
  61. package/lib/parse/ANTLR/parsers/mysql/MySqlParserVisitor.js +0 -0
  62. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLLexer.g4 +0 -0
  63. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLLexer.interp +0 -0
  64. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLLexer.js +0 -0
  65. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLLexer.tokens +0 -0
  66. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLParser.g4 +0 -0
  67. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLParser.interp +0 -0
  68. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLParser.js +0 -0
  69. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLParser.tokens +0 -0
  70. package/lib/parse/ANTLR/parsers/postgresql/PostgreSQLParserVisitor.js +0 -0
  71. package/lib/parse/ANTLR/parsers/postgresql/README.md +0 -0
  72. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeLexer.g4 +0 -0
  73. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeLexer.interp +0 -0
  74. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeLexer.js +0 -0
  75. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeLexer.tokens +0 -0
  76. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeParser.g4 +0 -0
  77. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeParser.interp +0 -0
  78. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeParser.js +0 -0
  79. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeParser.tokens +0 -0
  80. package/lib/parse/ANTLR/parsers/snowflake/SnowflakeParserVisitor.js +0 -0
  81. package/lib/parse/Parser.js +10 -0
  82. package/lib/parse/buildParser.js +0 -0
  83. package/lib/parse/databaseGenerator.js +0 -0
  84. package/lib/parse/dbml/parser.pegjs +0 -0
  85. package/lib/parse/dbmlParser.js +0 -0
  86. package/lib/parse/error.js +0 -0
  87. package/lib/parse/mssql/base_parsers.js +0 -0
  88. package/lib/parse/mssql/column_definition/actions.js +0 -0
  89. package/lib/parse/mssql/column_definition/index.js +0 -0
  90. package/lib/parse/mssql/constraint_definition/actions.js +0 -0
  91. package/lib/parse/mssql/constraint_definition/index.js +0 -0
  92. package/lib/parse/mssql/expression.js +0 -0
  93. package/lib/parse/mssql/fk_definition/actions.js +0 -0
  94. package/lib/parse/mssql/fk_definition/index.js +0 -0
  95. package/lib/parse/mssql/index.js +0 -0
  96. package/lib/parse/mssql/index_definition/actions.js +0 -0
  97. package/lib/parse/mssql/index_definition/index.js +0 -0
  98. package/lib/parse/mssql/keyword_parsers.js +0 -0
  99. package/lib/parse/mssql/keyword_utils.js +0 -0
  100. package/lib/parse/mssql/statements/actions.js +0 -0
  101. package/lib/parse/mssql/statements/index.js +0 -0
  102. package/lib/parse/mssql/statements/statement_types/alter_table/actions.js +0 -0
  103. package/lib/parse/mssql/statements/statement_types/alter_table/add/actions.js +0 -0
  104. package/lib/parse/mssql/statements/statement_types/alter_table/add/index.js +0 -0
  105. package/lib/parse/mssql/statements/statement_types/alter_table/index.js +0 -0
  106. package/lib/parse/mssql/statements/statement_types/comments/actions.js +0 -0
  107. package/lib/parse/mssql/statements/statement_types/comments/index.js +0 -0
  108. package/lib/parse/mssql/statements/statement_types/create_index/actions.js +0 -0
  109. package/lib/parse/mssql/statements/statement_types/create_index/index.js +0 -0
  110. package/lib/parse/mssql/statements/statement_types/create_table/actions.js +0 -0
  111. package/lib/parse/mssql/statements/statement_types/create_table/index.js +0 -0
  112. package/lib/parse/mssql/statements/statement_types/index.js +0 -0
  113. package/lib/parse/mssql/utils.js +0 -0
  114. package/lib/parse/mssql/whitespaces.js +0 -0
  115. package/lib/parse/mssqlParser.js +0 -0
  116. package/lib/parse/mysql/parser.pegjs +0 -0
  117. package/lib/parse/mysqlParser.js +0 -0
  118. package/lib/parse/postgresParser.js +0 -0
  119. package/lib/parse/postgresql/Base_rules.pegjs +0 -0
  120. package/lib/parse/postgresql/Commands/Alter_table/Alter_table.pegjs +0 -0
  121. package/lib/parse/postgresql/Commands/Commands.pegjs +0 -0
  122. package/lib/parse/postgresql/Commands/Comment.pegjs +0 -0
  123. package/lib/parse/postgresql/Commands/Create_index.pegjs +0 -0
  124. package/lib/parse/postgresql/Commands/Create_table/Create_table.pegjs +0 -0
  125. package/lib/parse/postgresql/Commands/Create_table/Create_table_normal.pegjs +0 -0
  126. package/lib/parse/postgresql/Commands/Create_table/Create_table_of.pegjs +0 -0
  127. package/lib/parse/postgresql/Commands/Create_table/Create_table_partition_of.pegjs +0 -0
  128. package/lib/parse/postgresql/Commands/Create_type/Create_type.pegjs +0 -0
  129. package/lib/parse/postgresql/Commands/Create_type/Create_type_enum.pegjs +0 -0
  130. package/lib/parse/postgresql/Commands/Create_type/Create_type_range.pegjs +0 -0
  131. package/lib/parse/postgresql/Commands/Ignore_syntax.pegjs +0 -0
  132. package/lib/parse/postgresql/Expression.pegjs +0 -0
  133. package/lib/parse/postgresql/InitializerUtils.pegjs +0 -0
  134. package/lib/parse/postgresql/Keywords.pegjs +0 -0
  135. package/lib/parse/postgresql/get_parser.js +0 -0
  136. package/lib/parse/postgresql/parser.pegjs +0 -0
  137. package/lib/parse/schemarb/parser.pegjs +0 -0
  138. package/lib/parse/schemarbParser.js +0 -0
  139. package/lib/utils/version.js +0 -0
  140. package/package.json +3 -3
  141. package/types/export/ModelExporter.d.ts +0 -0
  142. package/types/export/index.d.ts +0 -0
  143. package/types/import/index.d.ts +0 -0
  144. package/types/index.d.ts +0 -0
  145. package/types/model_structure/database.d.ts +34 -1
  146. package/types/model_structure/dbState.d.ts +0 -0
  147. package/types/model_structure/element.d.ts +0 -0
  148. package/types/model_structure/endpoint.d.ts +0 -0
  149. package/types/model_structure/enum.d.ts +0 -0
  150. package/types/model_structure/enumValue.d.ts +0 -0
  151. package/types/model_structure/field.d.ts +0 -0
  152. package/types/model_structure/indexColumn.d.ts +0 -0
  153. package/types/model_structure/indexes.d.ts +0 -0
  154. package/types/model_structure/ref.d.ts +0 -0
  155. package/types/model_structure/schema.d.ts +0 -0
  156. package/types/model_structure/stickyNote.d.ts +0 -0
  157. package/types/model_structure/table.d.ts +0 -0
  158. package/types/model_structure/tableGroup.d.ts +0 -0
  159. package/types/parse/Parser.d.ts +3 -2
  160. package/types/parse/error.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
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports["default"] = void 0;
8
8
  var _lodash = _interopRequireWildcard(require("lodash"));
9
9
  var _schema = _interopRequireDefault(require("./schema"));
10
- var _ref2 = _interopRequireDefault(require("./ref"));
10
+ var _ref3 = _interopRequireDefault(require("./ref"));
11
11
  var _enum2 = _interopRequireDefault(require("./enum"));
12
12
  var _tableGroup = _interopRequireDefault(require("./tableGroup"));
13
13
  var _table = _interopRequireDefault(require("./table"));
@@ -53,7 +53,9 @@ var Database = /*#__PURE__*/function (_Element) {
53
53
  _ref$project = _ref.project,
54
54
  project = _ref$project === void 0 ? {} : _ref$project,
55
55
  _ref$aliases = _ref.aliases,
56
- aliases = _ref$aliases === void 0 ? [] : _ref$aliases;
56
+ aliases = _ref$aliases === void 0 ? [] : _ref$aliases,
57
+ _ref$records = _ref.records,
58
+ records = _ref$records === void 0 ? [] : _ref$records;
57
59
  _classCallCheck(this, Database);
58
60
  _this = _super.call(this);
59
61
  _this.dbState = new _dbState["default"]();
@@ -67,7 +69,9 @@ var Database = /*#__PURE__*/function (_Element) {
67
69
  _this.name = project.name;
68
70
  _this.token = project.token;
69
71
  _this.aliases = aliases;
72
+ _this.records = [];
70
73
  _this.processNotes(notes);
74
+ _this.processRecords(records);
71
75
  // The process order is important. Do not change !
72
76
  _this.processSchemas(schemas);
73
77
  _this.processSchemaElements(enums, _config.ENUM);
@@ -92,6 +96,24 @@ var Database = /*#__PURE__*/function (_Element) {
92
96
  })));
93
97
  });
94
98
  }
99
+ }, {
100
+ key: "processRecords",
101
+ value: function processRecords(rawRecords) {
102
+ var _this3 = this;
103
+ rawRecords.forEach(function (_ref2) {
104
+ var schemaName = _ref2.schemaName,
105
+ tableName = _ref2.tableName,
106
+ columns = _ref2.columns,
107
+ values = _ref2.values;
108
+ _this3.records.push({
109
+ id: _this3.dbState.generateId('recordId'),
110
+ schemaName: schemaName,
111
+ tableName: tableName,
112
+ columns: columns,
113
+ values: values
114
+ });
115
+ });
116
+ }
95
117
  }, {
96
118
  key: "pushNote",
97
119
  value: function pushNote(note) {
@@ -110,10 +132,10 @@ var Database = /*#__PURE__*/function (_Element) {
110
132
  }, {
111
133
  key: "processSchemas",
112
134
  value: function processSchemas(rawSchemas) {
113
- var _this3 = this;
135
+ var _this4 = this;
114
136
  rawSchemas.forEach(function (schema) {
115
- _this3.pushSchema(new _schema["default"](_objectSpread(_objectSpread({}, schema), {}, {
116
- database: _this3
137
+ _this4.pushSchema(new _schema["default"](_objectSpread(_objectSpread({}, schema), {}, {
138
+ database: _this4
117
139
  })));
118
140
  });
119
141
  }
@@ -135,16 +157,16 @@ var Database = /*#__PURE__*/function (_Element) {
135
157
  }, {
136
158
  key: "processSchemaElements",
137
159
  value: function processSchemaElements(elements, elementType) {
138
- var _this4 = this;
160
+ var _this5 = this;
139
161
  var schema;
140
162
  elements.forEach(function (element) {
141
163
  if (element.schemaName) {
142
- schema = _this4.findOrCreateSchema(element.schemaName);
164
+ schema = _this5.findOrCreateSchema(element.schemaName);
143
165
  if (element.schemaName === _config.DEFAULT_SCHEMA_NAME) {
144
166
  // this.hasDefaultSchema = true;
145
167
  }
146
168
  } else {
147
- schema = _this4.findOrCreateSchema(_config.DEFAULT_SCHEMA_NAME);
169
+ schema = _this5.findOrCreateSchema(_config.DEFAULT_SCHEMA_NAME);
148
170
  }
149
171
  switch (elementType) {
150
172
  case _config.TABLE:
@@ -163,7 +185,7 @@ var Database = /*#__PURE__*/function (_Element) {
163
185
  })));
164
186
  break;
165
187
  case _config.REF:
166
- schema.pushRef(new _ref2["default"](_objectSpread(_objectSpread({}, element), {}, {
188
+ schema.pushRef(new _ref3["default"](_objectSpread(_objectSpread({}, element), {}, {
167
189
  schema: schema
168
190
  })));
169
191
  break;
@@ -259,6 +281,9 @@ var Database = /*#__PURE__*/function (_Element) {
259
281
  }),
260
282
  notes: this.notes.map(function (n) {
261
283
  return n["export"]();
284
+ }),
285
+ records: this.records.map(function (r) {
286
+ return _objectSpread({}, r);
262
287
  })
263
288
  };
264
289
  }
@@ -291,7 +316,8 @@ var Database = /*#__PURE__*/function (_Element) {
291
316
  enumValues: {},
292
317
  indexes: {},
293
318
  indexColumns: {},
294
- fields: {}
319
+ fields: {},
320
+ records: {}
295
321
  };
296
322
  this.schemas.forEach(function (schema) {
297
323
  return schema.normalize(normalizedModel);
@@ -299,6 +325,9 @@ var Database = /*#__PURE__*/function (_Element) {
299
325
  this.notes.forEach(function (note) {
300
326
  return note.normalize(normalizedModel);
301
327
  });
328
+ this.records.forEach(function (record) {
329
+ return normalizedModel.records[record.id] = _objectSpread({}, record);
330
+ });
302
331
  return normalizedModel;
303
332
  }
304
333
  }]);
@@ -25,6 +25,7 @@ var DbState = /*#__PURE__*/function () {
25
25
  this.indexId = 1;
26
26
  this.fieldId = 1;
27
27
  this.indexColumnId = 1;
28
+ this.recordId = 1;
28
29
  }
29
30
  _createClass(DbState, [{
30
31
  key: "generateId",
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
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.getFullTableName = getFullTableName;
6
7
  exports.shouldPrintSchema = shouldPrintSchema;
7
8
  exports.shouldPrintSchemaName = shouldPrintSchemaName;
8
9
  var _config = require("./config");
@@ -11,4 +12,9 @@ function shouldPrintSchema(schema) {
11
12
  }
12
13
  function shouldPrintSchemaName(schemaName) {
13
14
  return schemaName !== _config.DEFAULT_SCHEMA_NAME;
15
+ }
16
+
17
+ // TODO: This is an ad hoc function for parsing inserts. It should be replaced with a more robust solution
18
+ function getFullTableName(schemaName, tableName) {
19
+ return "".concat(schemaName && shouldPrintSchemaName(schemaName) ? "".concat(schemaName, ".") : '').concat(tableName);
14
20
  }
File without changes
File without changes
@@ -9,7 +9,8 @@ var TABLE_CONSTRAINT_KIND = {
9
9
  INDEX: 'index',
10
10
  FK: 'fk',
11
11
  UNIQUE: 'unique',
12
- PK: 'pk'
12
+ PK: 'pk',
13
+ DEFAULT: 'default'
13
14
  };
14
15
  exports.TABLE_CONSTRAINT_KIND = TABLE_CONSTRAINT_KIND;
15
16
  var COLUMN_CONSTRAINT_KIND = {
@@ -19,7 +20,8 @@ var COLUMN_CONSTRAINT_KIND = {
19
20
  DEFAULT: 'dbdefault',
20
21
  INCREMENT: 'increment',
21
22
  INLINE_REF: 'inline_ref',
22
- NOTE: 'note'
23
+ NOTE: 'note',
24
+ CHECK: 'check'
23
25
  };
24
26
  exports.COLUMN_CONSTRAINT_KIND = COLUMN_CONSTRAINT_KIND;
25
27
  var DATA_TYPE = {
File without changes
@@ -15,6 +15,9 @@ var _SnowflakeLexer = _interopRequireDefault(require("../parsers/snowflake/Snowf
15
15
  var _SnowflakeParser = _interopRequireDefault(require("../parsers/snowflake/SnowflakeParser"));
16
16
  var _SnowflakeASTGen = _interopRequireDefault(require("./snowflake/SnowflakeASTGen"));
17
17
  var _ParserErrorListener = _interopRequireDefault(require("./ParserErrorListener"));
18
+ var _TSqlLexer = _interopRequireDefault(require("../parsers/mssql/TSqlLexer"));
19
+ var _TSqlParser = _interopRequireDefault(require("../parsers/mssql/TSqlParser"));
20
+ var _MssqlASTGen = _interopRequireDefault(require("./mssql/MssqlASTGen"));
18
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
22
  /* eslint-disable import/no-named-as-default-member */
20
23
  /* eslint-disable import/no-named-as-default */
@@ -50,16 +53,29 @@ function parse(input, format) {
50
53
  if (errorListener.errors.length) throw errorListener.errors;
51
54
  break;
52
55
  }
53
- case 'snowflake':
56
+ case 'mssql':
54
57
  {
55
- var _lexer2 = new _SnowflakeLexer["default"](chars);
58
+ var _lexer2 = new _TSqlLexer["default"](chars);
56
59
  var _tokens2 = new _antlr["default"].CommonTokenStream(_lexer2);
57
- var _parser2 = new _SnowflakeParser["default"](_tokens2);
60
+ var _parser2 = new _TSqlParser["default"](_tokens2);
58
61
  _parser2.buildParseTrees = true;
59
62
  _parser2.removeErrorListeners();
60
63
  _parser2.addErrorListener(errorListener);
61
- var _parseTree2 = _parser2.snowflake_file();
62
- database = _parseTree2.accept(new _SnowflakeASTGen["default"]());
64
+ var _parseTree2 = _parser2.tsql_file();
65
+ database = _parseTree2.accept(new _MssqlASTGen["default"]());
66
+ if (errorListener.errors.length) throw errorListener.errors;
67
+ break;
68
+ }
69
+ case 'snowflake':
70
+ {
71
+ var _lexer3 = new _SnowflakeLexer["default"](chars);
72
+ var _tokens3 = new _antlr["default"].CommonTokenStream(_lexer3);
73
+ var _parser3 = new _SnowflakeParser["default"](_tokens3);
74
+ _parser3.buildParseTrees = true;
75
+ _parser3.removeErrorListeners();
76
+ _parser3.addErrorListener(errorListener);
77
+ var _parseTree3 = _parser3.snowflake_file();
78
+ database = _parseTree3.accept(new _SnowflakeASTGen["default"]());
63
79
  if (errorListener.errors.length) throw errorListener.errors;
64
80
  break;
65
81
  }