@dbml/core 2.2.0 → 2.4.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.
- package/lib/export/DbmlExporter.js +15 -4
- package/lib/export/JsonExporter.js +1 -3
- package/lib/export/ModelExporter.js +1 -3
- package/lib/export/MysqlExporter.js +50 -42
- package/lib/export/PostgresExporter.js +64 -49
- package/lib/export/SqlServerExporter.js +52 -46
- package/lib/model_structure/database.js +73 -28
- package/lib/model_structure/dbState.js +1 -3
- package/lib/model_structure/element.js +13 -13
- package/lib/model_structure/endpoint.js +18 -14
- package/lib/model_structure/enum.js +18 -14
- package/lib/model_structure/enumValue.js +16 -12
- package/lib/model_structure/field.js +47 -13
- package/lib/model_structure/indexColumn.js +16 -12
- package/lib/model_structure/indexes.js +18 -14
- package/lib/model_structure/ref.js +19 -16
- package/lib/model_structure/schema.js +24 -36
- package/lib/model_structure/table.js +19 -15
- package/lib/model_structure/tableGroup.js +18 -14
- package/lib/model_structure/utils.js +5 -0
- package/lib/parse/Parser.js +2 -4
- package/lib/parse/buildParser.js +1 -3
- package/lib/parse/dbml/parser.pegjs +64 -20
- package/lib/parse/dbmlParser.js +1401 -899
- package/lib/parse/mssql/constraint_definition/actions.js +2 -2
- package/lib/parse/mssql/fk_definition/actions.js +10 -3
- package/lib/parse/mssql/keyword_parsers.js +0 -1
- package/lib/parse/mssql/statements/actions.js +9 -6
- package/lib/parse/mssql/statements/statement_types/alter_table/actions.js +11 -5
- package/lib/parse/mssql/statements/statement_types/create_index/actions.js +6 -1
- package/lib/parse/mssql/statements/statement_types/create_table/actions.js +12 -10
- package/lib/parse/mssql/utils.js +16 -1
- package/lib/parse/mysql/parser.pegjs +57 -34
- package/lib/parse/mysqlParser.js +270 -218
- package/lib/parse/postgresParser.js +12 -10
- package/lib/parse/postgresql/Base_rules.pegjs +45 -10
- package/lib/parse/postgresql/Commands/Alter_table/Alter_table.pegjs +2 -1
- package/lib/parse/postgresql/Commands/Create_table/Create_table_normal.pegjs +5 -3
- package/lib/parse/postgresql/Commands/Create_table/Create_table_of.pegjs +1 -1
- package/lib/parse/postgresql/Commands/Create_table/Create_table_partition_of.pegjs +1 -1
- package/lib/parse/postgresql/Commands/Create_type/Create_type_enum.pegjs +2 -2
- package/lib/parse/postgresql/InitializerUtils.pegjs +10 -0
- package/lib/parse/postgresql/parser.pegjs +2 -1
- package/lib/parse/schemarbParser.js +3 -3
- package/package.json +5 -3
- package/types/export/ModelExporter.d.ts +5 -0
- package/types/export/index.d.ts +5 -0
- package/types/import/index.d.ts +5 -0
- package/types/index.d.ts +5 -0
- package/types/model_structure/database.d.ts +195 -0
- package/types/model_structure/dbState.d.ts +14 -0
- package/types/model_structure/element.d.ts +21 -0
- package/types/model_structure/endpoint.d.ts +55 -0
- package/types/model_structure/enum.d.ts +67 -0
- package/types/model_structure/enumValue.d.ts +39 -0
- package/types/model_structure/field.d.ts +77 -0
- package/types/model_structure/indexColumn.d.ts +37 -0
- package/types/model_structure/indexes.d.ts +74 -0
- package/types/model_structure/ref.d.ts +66 -0
- package/types/model_structure/schema.d.ts +188 -0
- package/types/model_structure/table.d.ts +118 -0
- package/types/model_structure/tableGroup.d.ts +54 -0
- package/types/parse/Parser.d.ts +11 -0
- package/lib/export/Exporter.js +0 -80
- package/lib/export/SchemaExporter.js +0 -99
- package/lib/parse/dbml/multiline_content.txt +0 -7
- package/lib/parse/dbml/multiline_string.pegjs +0 -17
- package/lib/parse/dbml/parser1.json +0 -219
- package/lib/parse/dbml/parser1.pegjs +0 -702
- package/lib/parse/dbml/parser1_content.txt +0 -29
- package/lib/parse/dbml/test_multiline.js +0 -53
- package/lib/parse/dbml/test_parser1.js +0 -16
- package/lib/parse/mssql/base_utils.js +0 -28
- package/lib/parse/mssql/composite_parsers.js +0 -109
- package/lib/parse/mssql/statement_types/alter_table/actions.js +0 -29
- package/lib/parse/mssql/statement_types/alter_table/add/actions.js +0 -8
- package/lib/parse/mssql/statement_types/alter_table/add/index.js +0 -58
- package/lib/parse/mssql/statement_types/alter_table/index.js +0 -32
- package/lib/parse/mssql/statement_types/create_index/actions.js +0 -25
- package/lib/parse/mssql/statement_types/create_index/index.js +0 -50
- package/lib/parse/mssql/statement_types/create_table/actions.js +0 -95
- package/lib/parse/mssql/statement_types/create_table/index.js +0 -50
- package/lib/parse/mssql/statement_types/index.js +0 -13
- package/lib/schema/element.js +0 -84
- package/lib/schema/endpoint.js +0 -102
- package/lib/schema/enum.js +0 -102
- package/lib/schema/enumValue.js +0 -70
- package/lib/schema/field.js +0 -104
- package/lib/schema/indexes.js +0 -74
- package/lib/schema/ref.js +0 -93
- package/lib/schema/schema.js +0 -245
- package/lib/schema/table.js +0 -163
- package/lib/schema/tableGroup.js +0 -93
package/lib/export/Exporter.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
|
|
8
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
|
-
|
|
12
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
|
|
13
|
-
|
|
14
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
|
|
15
|
-
|
|
16
|
-
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
|
|
17
|
-
|
|
18
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
|
|
19
|
-
|
|
20
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
21
|
-
|
|
22
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
23
|
-
|
|
24
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
25
|
-
|
|
26
|
-
var Exporter =
|
|
27
|
-
/*#__PURE__*/
|
|
28
|
-
function () {
|
|
29
|
-
function Exporter() {
|
|
30
|
-
var schema = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
31
|
-
|
|
32
|
-
_classCallCheck(this, Exporter);
|
|
33
|
-
|
|
34
|
-
this.schema = schema;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
_createClass(Exporter, null, [{
|
|
38
|
-
key: "getIndexesFromSchema",
|
|
39
|
-
value: function getIndexesFromSchema(schema) {
|
|
40
|
-
var indexes = [];
|
|
41
|
-
schema.tables.forEach(function (table) {
|
|
42
|
-
if (!_lodash["default"].isEmpty(table.indexes)) {
|
|
43
|
-
// primary composite key is not included here
|
|
44
|
-
var tableIndexes = table.indexes.filter(function (index) {
|
|
45
|
-
return !index.pk;
|
|
46
|
-
});
|
|
47
|
-
indexes.push.apply(indexes, _toConsumableArray(tableIndexes));
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
return indexes;
|
|
51
|
-
}
|
|
52
|
-
}, {
|
|
53
|
-
key: "getCommentsFromSchema",
|
|
54
|
-
value: function getCommentsFromSchema(schema) {
|
|
55
|
-
var comments = [];
|
|
56
|
-
schema.tables.forEach(function (table) {
|
|
57
|
-
table.fields.forEach(function (field) {
|
|
58
|
-
if (field.note) {
|
|
59
|
-
comments.push({
|
|
60
|
-
type: 'column',
|
|
61
|
-
table: table,
|
|
62
|
-
field: field
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
return comments;
|
|
68
|
-
}
|
|
69
|
-
}, {
|
|
70
|
-
key: "hasWhiteSpace",
|
|
71
|
-
value: function hasWhiteSpace(s) {
|
|
72
|
-
return /\s/g.test(s);
|
|
73
|
-
}
|
|
74
|
-
}]);
|
|
75
|
-
|
|
76
|
-
return Exporter;
|
|
77
|
-
}();
|
|
78
|
-
|
|
79
|
-
var _default = Exporter;
|
|
80
|
-
exports["default"] = _default;
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
|
|
8
|
-
var _DbmlExporter = _interopRequireDefault(require("./DbmlExporter"));
|
|
9
|
-
|
|
10
|
-
var _MysqlExporter = _interopRequireDefault(require("./MysqlExporter"));
|
|
11
|
-
|
|
12
|
-
var _PostgresExporter = _interopRequireDefault(require("./PostgresExporter"));
|
|
13
|
-
|
|
14
|
-
var _JsonExporter = _interopRequireDefault(require("./JsonExporter"));
|
|
15
|
-
|
|
16
|
-
var _SqlServerExporter = _interopRequireDefault(require("./SqlServerExporter"));
|
|
17
|
-
|
|
18
|
-
var _Exporter2 = _interopRequireDefault(require("./Exporter"));
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
21
|
-
|
|
22
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
23
|
-
|
|
24
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
25
|
-
|
|
26
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
27
|
-
|
|
28
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
29
|
-
|
|
30
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
31
|
-
|
|
32
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
33
|
-
|
|
34
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
35
|
-
|
|
36
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
37
|
-
|
|
38
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
39
|
-
|
|
40
|
-
var SchemaExporter =
|
|
41
|
-
/*#__PURE__*/
|
|
42
|
-
function (_Exporter) {
|
|
43
|
-
_inherits(SchemaExporter, _Exporter);
|
|
44
|
-
|
|
45
|
-
function SchemaExporter() {
|
|
46
|
-
var _this;
|
|
47
|
-
|
|
48
|
-
var schema = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
49
|
-
|
|
50
|
-
_classCallCheck(this, SchemaExporter);
|
|
51
|
-
|
|
52
|
-
_this = _possibleConstructorReturn(this, _getPrototypeOf(SchemaExporter).call(this, schema));
|
|
53
|
-
_this.dbmlExporter = new _DbmlExporter["default"](schema);
|
|
54
|
-
_this.mysqlExporter = new _MysqlExporter["default"](schema);
|
|
55
|
-
_this.postgresExporter = new _PostgresExporter["default"](schema);
|
|
56
|
-
_this.jsonExporter = new _JsonExporter["default"](schema);
|
|
57
|
-
_this.sqlServerExporter = new _SqlServerExporter["default"](schema);
|
|
58
|
-
return _this;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
_createClass(SchemaExporter, [{
|
|
62
|
-
key: "export",
|
|
63
|
-
value: function _export(format) {
|
|
64
|
-
var res = '';
|
|
65
|
-
|
|
66
|
-
switch (format) {
|
|
67
|
-
case 'dbml':
|
|
68
|
-
res = this.dbmlExporter["export"]();
|
|
69
|
-
break;
|
|
70
|
-
|
|
71
|
-
case 'mysql':
|
|
72
|
-
res = this.mysqlExporter["export"]();
|
|
73
|
-
break;
|
|
74
|
-
|
|
75
|
-
case 'postgres':
|
|
76
|
-
res = this.postgresExporter["export"]();
|
|
77
|
-
break;
|
|
78
|
-
|
|
79
|
-
case 'json':
|
|
80
|
-
res = this.jsonExporter["export"]();
|
|
81
|
-
break;
|
|
82
|
-
|
|
83
|
-
case 'mssql':
|
|
84
|
-
res = this.sqlServerExporter["export"]();
|
|
85
|
-
break;
|
|
86
|
-
|
|
87
|
-
default:
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
return res;
|
|
92
|
-
}
|
|
93
|
-
}]);
|
|
94
|
-
|
|
95
|
-
return SchemaExporter;
|
|
96
|
-
}(_Exporter2["default"]);
|
|
97
|
-
|
|
98
|
-
var _default = SchemaExporter;
|
|
99
|
-
exports["default"] = _default;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
StringLiteral "string"
|
|
2
|
-
= '"' chars:DoubleStringCharacter* '"' {
|
|
3
|
-
return chars.join('');
|
|
4
|
-
}
|
|
5
|
-
/ "'" chars:SingleStringCharacter* "'" {
|
|
6
|
-
return chars.join('');
|
|
7
|
-
}
|
|
8
|
-
DoubleStringCharacter
|
|
9
|
-
= '\\' '"' { return '"'; }
|
|
10
|
-
/ !'"' SourceCharacter { return text(); }
|
|
11
|
-
|
|
12
|
-
SingleStringCharacter
|
|
13
|
-
= "''" { return "'"; }
|
|
14
|
-
/ !"'" SourceCharacter { return text(); }
|
|
15
|
-
|
|
16
|
-
SourceCharacter
|
|
17
|
-
= .
|
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemas": [],
|
|
3
|
-
"tables": [
|
|
4
|
-
{
|
|
5
|
-
"name": "users",
|
|
6
|
-
"alias": null,
|
|
7
|
-
"fields": [
|
|
8
|
-
{
|
|
9
|
-
"name": "id",
|
|
10
|
-
"type": {
|
|
11
|
-
"type_name": "int",
|
|
12
|
-
"args": null
|
|
13
|
-
},
|
|
14
|
-
"token": {
|
|
15
|
-
"start": {
|
|
16
|
-
"offset": 49,
|
|
17
|
-
"line": 2,
|
|
18
|
-
"column": 3
|
|
19
|
-
},
|
|
20
|
-
"end": {
|
|
21
|
-
"offset": 61,
|
|
22
|
-
"line": 3,
|
|
23
|
-
"column": 1
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
"inline_refs": []
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"name": "name",
|
|
30
|
-
"type": {
|
|
31
|
-
"type_name": "varchar",
|
|
32
|
-
"args": null
|
|
33
|
-
},
|
|
34
|
-
"token": {
|
|
35
|
-
"start": {
|
|
36
|
-
"offset": 61,
|
|
37
|
-
"line": 3,
|
|
38
|
-
"column": 1
|
|
39
|
-
},
|
|
40
|
-
"end": {
|
|
41
|
-
"offset": 81,
|
|
42
|
-
"line": 4,
|
|
43
|
-
"column": 1
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
"inline_refs": []
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
"name": "gender",
|
|
50
|
-
"type": {
|
|
51
|
-
"type_name": "varchar",
|
|
52
|
-
"args": null
|
|
53
|
-
},
|
|
54
|
-
"token": {
|
|
55
|
-
"start": {
|
|
56
|
-
"offset": 81,
|
|
57
|
-
"line": 4,
|
|
58
|
-
"column": 1
|
|
59
|
-
},
|
|
60
|
-
"end": {
|
|
61
|
-
"offset": 98,
|
|
62
|
-
"line": 5,
|
|
63
|
-
"column": 1
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
"inline_refs": []
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
"name": "created_at",
|
|
70
|
-
"type": {
|
|
71
|
-
"type_name": "datetime",
|
|
72
|
-
"args": null
|
|
73
|
-
},
|
|
74
|
-
"token": {
|
|
75
|
-
"start": {
|
|
76
|
-
"offset": 98,
|
|
77
|
-
"line": 5,
|
|
78
|
-
"column": 1
|
|
79
|
-
},
|
|
80
|
-
"end": {
|
|
81
|
-
"offset": 120,
|
|
82
|
-
"line": 6,
|
|
83
|
-
"column": 1
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
"inline_refs": []
|
|
87
|
-
}
|
|
88
|
-
],
|
|
89
|
-
"token": {
|
|
90
|
-
"start": {
|
|
91
|
-
"offset": 0,
|
|
92
|
-
"line": 1,
|
|
93
|
-
"column": 1
|
|
94
|
-
},
|
|
95
|
-
"end": {
|
|
96
|
-
"offset": 410,
|
|
97
|
-
"line": 29,
|
|
98
|
-
"column": 2
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
"indexes": [
|
|
102
|
-
{
|
|
103
|
-
"columns": [
|
|
104
|
-
{
|
|
105
|
-
"value": "id",
|
|
106
|
-
"type": "column"
|
|
107
|
-
}
|
|
108
|
-
],
|
|
109
|
-
"token": {
|
|
110
|
-
"start": {
|
|
111
|
-
"offset": 159,
|
|
112
|
-
"line": 10,
|
|
113
|
-
"column": 5
|
|
114
|
-
},
|
|
115
|
-
"end": {
|
|
116
|
-
"offset": 161,
|
|
117
|
-
"line": 10,
|
|
118
|
-
"column": 7
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"columns": [
|
|
124
|
-
{
|
|
125
|
-
"value": "id",
|
|
126
|
-
"type": "column"
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"value": "name",
|
|
130
|
-
"type": "column"
|
|
131
|
-
}
|
|
132
|
-
],
|
|
133
|
-
"token": {
|
|
134
|
-
"start": {
|
|
135
|
-
"offset": 166,
|
|
136
|
-
"line": 11,
|
|
137
|
-
"column": 5
|
|
138
|
-
},
|
|
139
|
-
"end": {
|
|
140
|
-
"offset": 176,
|
|
141
|
-
"line": 11,
|
|
142
|
-
"column": 15
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
"columns": [
|
|
148
|
-
{
|
|
149
|
-
"value": "gender",
|
|
150
|
-
"type": "column"
|
|
151
|
-
}
|
|
152
|
-
],
|
|
153
|
-
"token": {
|
|
154
|
-
"start": {
|
|
155
|
-
"offset": 198,
|
|
156
|
-
"line": 15,
|
|
157
|
-
"column": 5
|
|
158
|
-
},
|
|
159
|
-
"end": {
|
|
160
|
-
"offset": 204,
|
|
161
|
-
"line": 15,
|
|
162
|
-
"column": 11
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
},
|
|
166
|
-
{
|
|
167
|
-
"columns": [
|
|
168
|
-
{
|
|
169
|
-
"value": "created_at",
|
|
170
|
-
"type": "column"
|
|
171
|
-
}
|
|
172
|
-
],
|
|
173
|
-
"token": {
|
|
174
|
-
"start": {
|
|
175
|
-
"offset": 209,
|
|
176
|
-
"line": 16,
|
|
177
|
-
"column": 5
|
|
178
|
-
},
|
|
179
|
-
"end": {
|
|
180
|
-
"offset": 219,
|
|
181
|
-
"line": 16,
|
|
182
|
-
"column": 15
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
"columns": [
|
|
188
|
-
{
|
|
189
|
-
"value": "id",
|
|
190
|
-
"type": "column"
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
"value": "name",
|
|
194
|
-
"type": "column"
|
|
195
|
-
}
|
|
196
|
-
],
|
|
197
|
-
"token": {
|
|
198
|
-
"start": {
|
|
199
|
-
"offset": 49,
|
|
200
|
-
"line": 2,
|
|
201
|
-
"column": 3
|
|
202
|
-
},
|
|
203
|
-
"end": {
|
|
204
|
-
"offset": 61,
|
|
205
|
-
"line": 3,
|
|
206
|
-
"column": 1
|
|
207
|
-
}
|
|
208
|
-
},
|
|
209
|
-
"pk": true
|
|
210
|
-
}
|
|
211
|
-
],
|
|
212
|
-
"note": "# Note\n\n## Objective\n * Support define element's note inside element body\n * Make writing long note easier with the new syntax /"
|
|
213
|
-
}
|
|
214
|
-
],
|
|
215
|
-
"refs": [],
|
|
216
|
-
"enums": [],
|
|
217
|
-
"tableGroups": [],
|
|
218
|
-
"project": {}
|
|
219
|
-
}
|