@dbml/parse 8.2.5 → 8.3.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.
- package/dist/dbml-parse.js +19 -19
- package/dist/dbml-parse.mjs +37 -6
- package/dist/src/constants.d.ts +1 -0
- package/dist/src/core/local_modules/note/validate.d.ts +1 -0
- package/dist/src/core/types/errors.d.ts +45 -42
- package/dist/src/core/types/schemaJson.d.ts +7 -5
- package/dist/src/core/utils/interpret.d.ts +2 -2
- package/package.json +2 -2
package/dist/dbml-parse.mjs
CHANGED
|
@@ -1267,9 +1267,9 @@ const KEYWORDS_OF_DEFAULT_SETTING = [
|
|
|
1267
1267
|
"null",
|
|
1268
1268
|
"true",
|
|
1269
1269
|
"false"
|
|
1270
|
-
], NUMERIC_LITERAL_PREFIX = ["-", "+"], DEFAULT_SCHEMA_NAME = "public", DEFAULT_ENTRY = Filepath.from("/main.dbml");
|
|
1270
|
+
], NONE_COLOR = "none", NUMERIC_LITERAL_PREFIX = ["-", "+"], DEFAULT_SCHEMA_NAME = "public", DEFAULT_ENTRY = Filepath.from("/main.dbml");
|
|
1271
1271
|
let CompileErrorCode = /* @__PURE__ */ function(r) {
|
|
1272
|
-
return r[r.UNKNOWN_SYMBOL = 1e3] = "UNKNOWN_SYMBOL", r[r.UNEXPECTED_SYMBOL = 1001] = "UNEXPECTED_SYMBOL", r[r.UNEXPECTED_EOF = 1002] = "UNEXPECTED_EOF", r[r.UNEXPECTED_NEWLINE = 1003] = "UNEXPECTED_NEWLINE", r[r.UNKNOWN_TOKEN = 1004] = "UNKNOWN_TOKEN", r[r.UNEXPECTED_TOKEN = 1005] = "UNEXPECTED_TOKEN", r[r.UNEXPECTED_ELEMENT_DECLARATION = 1006] = "UNEXPECTED_ELEMENT_DECLARATION", r[r.MISSING_SPACES = 1007] = "MISSING_SPACES", r[r.UNKNOWN_PREFIX_OP = 1008] = "UNKNOWN_PREFIX_OP", r[r.INVALID_OPERAND = 1009] = "INVALID_OPERAND", r[r.EMPTY_ATTRIBUTE_NAME = 1010] = "EMPTY_ATTRIBUTE_NAME", r[r.INVALID_ESCAPE_SEQUENCE = 1011] = "INVALID_ESCAPE_SEQUENCE", r[r.INVALID_NAME = 3e3] = "INVALID_NAME", r[r.UNEXPECTED_NAME = 3001] = "UNEXPECTED_NAME", r[r.NAME_NOT_FOUND = 3002] = "NAME_NOT_FOUND", r[r.DUPLICATE_NAME = 3003] = "DUPLICATE_NAME", r[r.INVALID_ALIAS = 3004] = "INVALID_ALIAS", r[r.UNEXPECTED_ALIAS = 3005] = "UNEXPECTED_ALIAS", r[r.UNEXPECTED_SETTINGS = 3006] = "UNEXPECTED_SETTINGS", r[r.INVALID_SETTINGS = 3007] = "INVALID_SETTINGS", r[r.UNEXPECTED_SIMPLE_BODY = 3008] = "UNEXPECTED_SIMPLE_BODY", r[r.UNEXPECTED_COMPLEX_BODY = 3009] = "UNEXPECTED_COMPLEX_BODY", r[r.INVALID_TABLE_CONTEXT = 3010] = "INVALID_TABLE_CONTEXT", r[r.UNKNOWN_TABLE_SETTING = 3011] = "UNKNOWN_TABLE_SETTING", r[r.DUPLICATE_TABLE_SETTING = 3012] = "DUPLICATE_TABLE_SETTING", r[r.INVALID_TABLEGROUP_CONTEXT = 3013] = "INVALID_TABLEGROUP_CONTEXT", r[r.INVALID_TABLEGROUP_ELEMENT_NAME = 3014] = "INVALID_TABLEGROUP_ELEMENT_NAME", r[r.DUPLICATE_TABLEGROUP_ELEMENT_NAME = 3015] = "DUPLICATE_TABLEGROUP_ELEMENT_NAME", r[r.DUPLICATE_TABLEGROUP_FIELD_NAME = 3016] = "DUPLICATE_TABLEGROUP_FIELD_NAME", r[r.INVALID_TABLEGROUP_FIELD = 3017] = "INVALID_TABLEGROUP_FIELD", r[r.EMPTY_TABLE = 3018] = "EMPTY_TABLE", r[r.INVALID_COLUMN = 3019] = "INVALID_COLUMN", r[r.INVALID_COLUMN_NAME = 3020] = "INVALID_COLUMN_NAME", r[r.UNKNOWN_COLUMN_SETTING = 3021] = "UNKNOWN_COLUMN_SETTING", r[r.INVALID_COLUMN_TYPE = 3022] = "INVALID_COLUMN_TYPE", r[r.DUPLICATE_COLUMN_NAME = 3023] = "DUPLICATE_COLUMN_NAME", r[r.DUPLICATE_COLUMN_SETTING = 3024] = "DUPLICATE_COLUMN_SETTING", r[r.INVALID_COLUMN_SETTING_VALUE = 3025] = "INVALID_COLUMN_SETTING_VALUE", r[r.INVALID_ENUM_CONTEXT = 3026] = "INVALID_ENUM_CONTEXT", r[r.INVALID_ENUM_ELEMENT_NAME = 3027] = "INVALID_ENUM_ELEMENT_NAME", r[r.INVALID_ENUM_ELEMENT = 3028] = "INVALID_ENUM_ELEMENT", r[r.DUPLICATE_ENUM_ELEMENT_NAME = 3029] = "DUPLICATE_ENUM_ELEMENT_NAME", r[r.UNKNOWN_ENUM_ELEMENT_SETTING = 3030] = "UNKNOWN_ENUM_ELEMENT_SETTING", r[r.DUPLICATE_ENUM_ELEMENT_SETTING = 3031] = "DUPLICATE_ENUM_ELEMENT_SETTING", r[r.INVALID_ENUM_ELEMENT_SETTING = 3032] = "INVALID_ENUM_ELEMENT_SETTING", r[r.EMPTY_ENUM = 3033] = "EMPTY_ENUM", r[r.INVALID_REF_CONTEXT = 3034] = "INVALID_REF_CONTEXT", r[r.UNKNOWN_REF_SETTING = 3035] = "UNKNOWN_REF_SETTING", r[r.DUPLICATE_REF_SETTING = 3036] = "DUPLICATE_REF_SETTING", r[r.INVALID_REF_SETTING_VALUE = 3037] = "INVALID_REF_SETTING_VALUE", r[r.INVALID_REF_RELATIONSHIP = 3038] = "INVALID_REF_RELATIONSHIP", r[r.INVALID_REF_FIELD = 3039] = "INVALID_REF_FIELD", r[r.EMPTY_REF = 3040] = "EMPTY_REF", r[r.REF_REDEFINED = 3041] = "REF_REDEFINED", r[r.INVALID_NOTE_CONTEXT = 3042] = "INVALID_NOTE_CONTEXT", r[r.INVALID_NOTE = 3043] = "INVALID_NOTE", r[r.NOTE_REDEFINED = 3044] = "NOTE_REDEFINED", r[r.NOTE_CONTENT_REDEFINED = 3045] = "NOTE_CONTENT_REDEFINED", r[r.EMPTY_NOTE = 3046] = "EMPTY_NOTE", r[r.
|
|
1272
|
+
return r[r.UNKNOWN_SYMBOL = 1e3] = "UNKNOWN_SYMBOL", r[r.UNEXPECTED_SYMBOL = 1001] = "UNEXPECTED_SYMBOL", r[r.UNEXPECTED_EOF = 1002] = "UNEXPECTED_EOF", r[r.UNEXPECTED_NEWLINE = 1003] = "UNEXPECTED_NEWLINE", r[r.UNKNOWN_TOKEN = 1004] = "UNKNOWN_TOKEN", r[r.UNEXPECTED_TOKEN = 1005] = "UNEXPECTED_TOKEN", r[r.UNEXPECTED_ELEMENT_DECLARATION = 1006] = "UNEXPECTED_ELEMENT_DECLARATION", r[r.MISSING_SPACES = 1007] = "MISSING_SPACES", r[r.UNKNOWN_PREFIX_OP = 1008] = "UNKNOWN_PREFIX_OP", r[r.INVALID_OPERAND = 1009] = "INVALID_OPERAND", r[r.EMPTY_ATTRIBUTE_NAME = 1010] = "EMPTY_ATTRIBUTE_NAME", r[r.INVALID_ESCAPE_SEQUENCE = 1011] = "INVALID_ESCAPE_SEQUENCE", r[r.INVALID_NAME = 3e3] = "INVALID_NAME", r[r.UNEXPECTED_NAME = 3001] = "UNEXPECTED_NAME", r[r.NAME_NOT_FOUND = 3002] = "NAME_NOT_FOUND", r[r.DUPLICATE_NAME = 3003] = "DUPLICATE_NAME", r[r.INVALID_ALIAS = 3004] = "INVALID_ALIAS", r[r.UNEXPECTED_ALIAS = 3005] = "UNEXPECTED_ALIAS", r[r.UNEXPECTED_SETTINGS = 3006] = "UNEXPECTED_SETTINGS", r[r.INVALID_SETTINGS = 3007] = "INVALID_SETTINGS", r[r.UNEXPECTED_SIMPLE_BODY = 3008] = "UNEXPECTED_SIMPLE_BODY", r[r.UNEXPECTED_COMPLEX_BODY = 3009] = "UNEXPECTED_COMPLEX_BODY", r[r.INVALID_TABLE_CONTEXT = 3010] = "INVALID_TABLE_CONTEXT", r[r.UNKNOWN_TABLE_SETTING = 3011] = "UNKNOWN_TABLE_SETTING", r[r.DUPLICATE_TABLE_SETTING = 3012] = "DUPLICATE_TABLE_SETTING", r[r.INVALID_TABLEGROUP_CONTEXT = 3013] = "INVALID_TABLEGROUP_CONTEXT", r[r.INVALID_TABLEGROUP_ELEMENT_NAME = 3014] = "INVALID_TABLEGROUP_ELEMENT_NAME", r[r.DUPLICATE_TABLEGROUP_ELEMENT_NAME = 3015] = "DUPLICATE_TABLEGROUP_ELEMENT_NAME", r[r.DUPLICATE_TABLEGROUP_FIELD_NAME = 3016] = "DUPLICATE_TABLEGROUP_FIELD_NAME", r[r.INVALID_TABLEGROUP_FIELD = 3017] = "INVALID_TABLEGROUP_FIELD", r[r.EMPTY_TABLE = 3018] = "EMPTY_TABLE", r[r.INVALID_COLUMN = 3019] = "INVALID_COLUMN", r[r.INVALID_COLUMN_NAME = 3020] = "INVALID_COLUMN_NAME", r[r.UNKNOWN_COLUMN_SETTING = 3021] = "UNKNOWN_COLUMN_SETTING", r[r.INVALID_COLUMN_TYPE = 3022] = "INVALID_COLUMN_TYPE", r[r.DUPLICATE_COLUMN_NAME = 3023] = "DUPLICATE_COLUMN_NAME", r[r.DUPLICATE_COLUMN_SETTING = 3024] = "DUPLICATE_COLUMN_SETTING", r[r.INVALID_COLUMN_SETTING_VALUE = 3025] = "INVALID_COLUMN_SETTING_VALUE", r[r.INVALID_ENUM_CONTEXT = 3026] = "INVALID_ENUM_CONTEXT", r[r.INVALID_ENUM_ELEMENT_NAME = 3027] = "INVALID_ENUM_ELEMENT_NAME", r[r.INVALID_ENUM_ELEMENT = 3028] = "INVALID_ENUM_ELEMENT", r[r.DUPLICATE_ENUM_ELEMENT_NAME = 3029] = "DUPLICATE_ENUM_ELEMENT_NAME", r[r.UNKNOWN_ENUM_ELEMENT_SETTING = 3030] = "UNKNOWN_ENUM_ELEMENT_SETTING", r[r.DUPLICATE_ENUM_ELEMENT_SETTING = 3031] = "DUPLICATE_ENUM_ELEMENT_SETTING", r[r.INVALID_ENUM_ELEMENT_SETTING = 3032] = "INVALID_ENUM_ELEMENT_SETTING", r[r.EMPTY_ENUM = 3033] = "EMPTY_ENUM", r[r.INVALID_REF_CONTEXT = 3034] = "INVALID_REF_CONTEXT", r[r.UNKNOWN_REF_SETTING = 3035] = "UNKNOWN_REF_SETTING", r[r.DUPLICATE_REF_SETTING = 3036] = "DUPLICATE_REF_SETTING", r[r.INVALID_REF_SETTING_VALUE = 3037] = "INVALID_REF_SETTING_VALUE", r[r.INVALID_REF_RELATIONSHIP = 3038] = "INVALID_REF_RELATIONSHIP", r[r.INVALID_REF_FIELD = 3039] = "INVALID_REF_FIELD", r[r.EMPTY_REF = 3040] = "EMPTY_REF", r[r.REF_REDEFINED = 3041] = "REF_REDEFINED", r[r.INVALID_NOTE_CONTEXT = 3042] = "INVALID_NOTE_CONTEXT", r[r.INVALID_NOTE = 3043] = "INVALID_NOTE", r[r.NOTE_REDEFINED = 3044] = "NOTE_REDEFINED", r[r.NOTE_CONTENT_REDEFINED = 3045] = "NOTE_CONTENT_REDEFINED", r[r.EMPTY_NOTE = 3046] = "EMPTY_NOTE", r[r.UNKNOWN_NOTE_SETTING = 3047] = "UNKNOWN_NOTE_SETTING", r[r.DUPLICATE_NOTE_SETTING = 3048] = "DUPLICATE_NOTE_SETTING", r[r.INVALID_NOTE_SETTING_VALUE = 3049] = "INVALID_NOTE_SETTING_VALUE", r[r.INVALID_INDEXES_CONTEXT = 3050] = "INVALID_INDEXES_CONTEXT", r[r.INVALID_INDEXES_FIELD = 3051] = "INVALID_INDEXES_FIELD", r[r.INVALID_INDEX = 3052] = "INVALID_INDEX", r[r.UNKNOWN_INDEX_SETTING = 3053] = "UNKNOWN_INDEX_SETTING", r[r.DUPLICATE_INDEX_SETTING = 3054] = "DUPLICATE_INDEX_SETTING", r[r.UNEXPECTED_INDEX_SETTING_VALUE = 3055] = "UNEXPECTED_INDEX_SETTING_VALUE", r[r.INVALID_INDEX_SETTING_VALUE = 3056] = "INVALID_INDEX_SETTING_VALUE", r[r.INVALID_PROJECT_CONTEXT = 3057] = "INVALID_PROJECT_CONTEXT", r[r.PROJECT_REDEFINED = 3058] = "PROJECT_REDEFINED", r[r.INVALID_PROJECT_FIELD = 3059] = "INVALID_PROJECT_FIELD", r[r.INVALID_CUSTOM_CONTEXT = 3060] = "INVALID_CUSTOM_CONTEXT", r[r.INVALID_CUSTOM_ELEMENT_VALUE = 3061] = "INVALID_CUSTOM_ELEMENT_VALUE", r[r.INVALID_ELEMENT_IN_SIMPLE_BODY = 3062] = "INVALID_ELEMENT_IN_SIMPLE_BODY", r[r.INVALID_TABLE_PARTIAL_CONTEXT = 3063] = "INVALID_TABLE_PARTIAL_CONTEXT", r[r.INVALID_TABLE_PARTIAL_ELEMENT_NAME = 3064] = "INVALID_TABLE_PARTIAL_ELEMENT_NAME", r[r.INVALID_TABLE_PARTIAL_SETTING_VALUE = 3065] = "INVALID_TABLE_PARTIAL_SETTING_VALUE", r[r.DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME = 3066] = "DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME", r[r.DUPLICATE_TABLE_PARTIAL_SETTING = 3067] = "DUPLICATE_TABLE_PARTIAL_SETTING", r[r.INVALID_TABLE_PARTIAL_INJECTION = 3068] = "INVALID_TABLE_PARTIAL_INJECTION", r[r.INVALID_TABLE_PARTIAL_INJECTION_OP = 3069] = "INVALID_TABLE_PARTIAL_INJECTION_OP", r[r.INVALID_TABLE_PARTIAL_INJECTION_NAME = 3070] = "INVALID_TABLE_PARTIAL_INJECTION_NAME", r[r.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME = 3071] = "DUPLICATE_TABLE_PARTIAL_INJECTION_NAME", r[r.UNKNOWN_TABLE_PARTIAL_SETTING = 3072] = "UNKNOWN_TABLE_PARTIAL_SETTING", r[r.INVALID_TABLE_SETTING_VALUE = 3073] = "INVALID_TABLE_SETTING_VALUE", r[r.INVALID_CHECKS_CONTEXT = 3074] = "INVALID_CHECKS_CONTEXT", r[r.INVALID_CHECKS_FIELD = 3075] = "INVALID_CHECKS_FIELD", r[r.INVALID_CHECK = 3076] = "INVALID_CHECK", r[r.UNKNOWN_CHECK_SETTING = 3077] = "UNKNOWN_CHECK_SETTING", r[r.DUPLICATE_CHECK_SETTING = 3078] = "DUPLICATE_CHECK_SETTING", r[r.INVALID_CHECK_SETTING_VALUE = 3079] = "INVALID_CHECK_SETTING_VALUE", r[r.INVALID_RECORDS_CONTEXT = 3080] = "INVALID_RECORDS_CONTEXT", r[r.INVALID_RECORDS_NAME = 3081] = "INVALID_RECORDS_NAME", r[r.INVALID_RECORDS_FIELD = 3082] = "INVALID_RECORDS_FIELD", r[r.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS = 3083] = "DUPLICATE_COLUMN_REFERENCES_IN_RECORDS", r[r.DUPLICATE_RECORDS_FOR_TABLE = 3084] = "DUPLICATE_RECORDS_FOR_TABLE", r[r.INVALID_USE_CONTEXT = 3085] = "INVALID_USE_CONTEXT", r[r.INVALID_USE_SPECIFIER_KIND = 3086] = "INVALID_USE_SPECIFIER_KIND", r[r.INVALID_USE_SPECIFIER_NAME = 3087] = "INVALID_USE_SPECIFIER_NAME", r[r.INVALID_DIAGRAMVIEW_CONTEXT = 3088] = "INVALID_DIAGRAMVIEW_CONTEXT", r[r.DUPLICATE_DIAGRAMVIEW_NAME = 3089] = "DUPLICATE_DIAGRAMVIEW_NAME", r[r.INVALID_DIAGRAMVIEW_FIELD = 3090] = "INVALID_DIAGRAMVIEW_FIELD", r[r.DUPLICATE_DIAGRAMVIEW_FIELD = 3091] = "DUPLICATE_DIAGRAMVIEW_FIELD", r[r.BINDING_ERROR = 4e3] = "BINDING_ERROR", r[r.NONEXISTENT_MODULE = 4001] = "NONEXISTENT_MODULE", r[r.UNSUPPORTED = 5e3] = "UNSUPPORTED", r[r.CIRCULAR_REF = 5001] = "CIRCULAR_REF", r[r.SAME_ENDPOINT = 5002] = "SAME_ENDPOINT", r[r.UNEQUAL_FIELDS_BINARY_REF = 5003] = "UNEQUAL_FIELDS_BINARY_REF", r[r.CONFLICTING_SETTING = 5004] = "CONFLICTING_SETTING", r[r.TABLE_REAPPEAR_IN_TABLEGROUP = 5005] = "TABLE_REAPPEAR_IN_TABLEGROUP", r;
|
|
1273
1273
|
}({});
|
|
1274
1274
|
var CompileError = class r extends Error {
|
|
1275
1275
|
constructor(j, M, N) {
|
|
@@ -1579,6 +1579,7 @@ function extractElementName(r) {
|
|
|
1579
1579
|
}
|
|
1580
1580
|
function extractColor(r) {
|
|
1581
1581
|
if (r instanceof PrimaryExpressionNode && r.expression instanceof LiteralNode && r.expression.literal?.kind === SyntaxTokenKind.COLOR_LITERAL) return r.expression.literal.value;
|
|
1582
|
+
if (isExpressionAnIdentifierNode(r) && extractVariableFromExpression(r)?.toLowerCase() === "none") return NONE_COLOR;
|
|
1582
1583
|
}
|
|
1583
1584
|
function processDefaultValue(r) {
|
|
1584
1585
|
if (r) {
|
|
@@ -9665,14 +9666,14 @@ var NoteBinder = class {
|
|
|
9665
9666
|
}
|
|
9666
9667
|
interpretSettingList(r) {
|
|
9667
9668
|
let j = aggregateSettingList(r).getValue();
|
|
9668
|
-
return this.note.
|
|
9669
|
+
return j.color?.length && (this.note.color = extractColor(j.color.at(0)?.value)), [];
|
|
9669
9670
|
}
|
|
9670
9671
|
interpretBody(r) {
|
|
9671
9672
|
let [j, M] = partition_default(r.body, (r) => r instanceof FunctionApplicationNode);
|
|
9672
9673
|
return j.length !== 1 || M.length > 0 ? [new CompileError(CompileErrorCode.INVALID_NOTE, "Invalid note syntax", r)] : [...this.interpretNote(j[0])];
|
|
9673
9674
|
}
|
|
9674
9675
|
interpretNote(r) {
|
|
9675
|
-
let j =
|
|
9676
|
+
let j = extractQuotedStringToken(r.callee) ?? "";
|
|
9676
9677
|
return this.note.content = normalizeNote(j), [];
|
|
9677
9678
|
}
|
|
9678
9679
|
};
|
|
@@ -10216,8 +10217,24 @@ var NoteValidator = class {
|
|
|
10216
10217
|
validateAlias(r) {
|
|
10217
10218
|
return r ? [new CompileError(CompileErrorCode.UNEXPECTED_ALIAS, "A Note shouldn't have an alias", r)] : [];
|
|
10218
10219
|
}
|
|
10220
|
+
isStickyNote() {
|
|
10221
|
+
return this.declarationNode.parent instanceof ProgramNode;
|
|
10222
|
+
}
|
|
10219
10223
|
validateSettingList(r) {
|
|
10220
|
-
|
|
10224
|
+
if (!r) return [];
|
|
10225
|
+
if (!this.isStickyNote()) return [new CompileError(CompileErrorCode.UNEXPECTED_SETTINGS, "A Note shouldn't have a setting list", r)];
|
|
10226
|
+
let j = aggregateSettingList(r), M = j.getErrors();
|
|
10227
|
+
return forIn_default(j.getValue(), (r, j) => {
|
|
10228
|
+
switch (j) {
|
|
10229
|
+
case SettingName.Color:
|
|
10230
|
+
r.length > 1 && M.push(...r.map((r) => new CompileError(CompileErrorCode.DUPLICATE_NOTE_SETTING, "'color' can only appear once", r))), r.forEach((r) => {
|
|
10231
|
+
let j = isExpressionAnIdentifierNode(r.value) && r.value.expression.variable.value.toLowerCase() === "none";
|
|
10232
|
+
!isValidColor(r.value) && !j && M.push(new CompileError(CompileErrorCode.INVALID_NOTE_SETTING_VALUE, "'color' must be a color literal or 'none'", r.value || r.name));
|
|
10233
|
+
});
|
|
10234
|
+
break;
|
|
10235
|
+
default: M.push(...r.map((r) => new CompileError(CompileErrorCode.UNKNOWN_NOTE_SETTING, `Unknown '${j}' setting`, r)));
|
|
10236
|
+
}
|
|
10237
|
+
}), M;
|
|
10221
10238
|
}
|
|
10222
10239
|
validateBody(r) {
|
|
10223
10240
|
if (!r) return [];
|
|
@@ -12578,6 +12595,9 @@ function suggestAttributeName(r, j, M) {
|
|
|
12578
12595
|
case ScopeKind.TABLEGROUP:
|
|
12579
12596
|
r = [SettingName.Color, SettingName.Note];
|
|
12580
12597
|
break;
|
|
12598
|
+
case ScopeKind.NOTE:
|
|
12599
|
+
r = [SettingName.Color];
|
|
12600
|
+
break;
|
|
12581
12601
|
default: r = [];
|
|
12582
12602
|
}
|
|
12583
12603
|
return { suggestions: r.map((r) => ({
|
|
@@ -12689,6 +12709,15 @@ function suggestAttributeValue(r, j, M, N) {
|
|
|
12689
12709
|
insertTextRules: CompletionItemInsertTextRule.KeepWhitespace,
|
|
12690
12710
|
range: void 0
|
|
12691
12711
|
})) };
|
|
12712
|
+
case "color":
|
|
12713
|
+
if (r.container.scopeKind(j, M) === ScopeKind.NOTE) return { suggestions: [NONE_COLOR].map((r) => ({
|
|
12714
|
+
label: r,
|
|
12715
|
+
insertText: r,
|
|
12716
|
+
kind: CompletionItemKind.Value,
|
|
12717
|
+
insertTextRules: CompletionItemInsertTextRule.KeepWhitespace,
|
|
12718
|
+
range: void 0
|
|
12719
|
+
})) };
|
|
12720
|
+
break;
|
|
12692
12721
|
case "default": return suggestNamesInScope(r, j, M, r.container.element(j, M), [SymbolKind.Schema, SymbolKind.Enum]);
|
|
12693
12722
|
default: break;
|
|
12694
12723
|
}
|
|
@@ -12757,7 +12786,8 @@ function suggestTopLevelElementType() {
|
|
|
12757
12786
|
"Ref",
|
|
12758
12787
|
"TablePartial",
|
|
12759
12788
|
"Records",
|
|
12760
|
-
"DiagramView"
|
|
12789
|
+
"DiagramView",
|
|
12790
|
+
"Note"
|
|
12761
12791
|
].map((r) => ({
|
|
12762
12792
|
label: r,
|
|
12763
12793
|
insertText: r,
|
|
@@ -13054,6 +13084,7 @@ var dbmlMonarchTokensProvider = {
|
|
|
13054
13084
|
"name",
|
|
13055
13085
|
"as",
|
|
13056
13086
|
"color",
|
|
13087
|
+
"none",
|
|
13057
13088
|
"check",
|
|
13058
13089
|
"tables",
|
|
13059
13090
|
"tablegroups",
|
package/dist/src/constants.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Filepath } from './core/types/filepath';
|
|
2
2
|
export declare const KEYWORDS_OF_DEFAULT_SETTING: readonly string[];
|
|
3
|
+
export declare const NONE_COLOR: "none";
|
|
3
4
|
export declare const DBML_EXT = ".dbml";
|
|
4
5
|
export declare const NUMERIC_LITERAL_PREFIX: readonly string[];
|
|
5
6
|
export declare const DEFAULT_SCHEMA_NAME: "public";
|
|
@@ -9,6 +9,7 @@ export default class NoteValidator {
|
|
|
9
9
|
private validateContext;
|
|
10
10
|
private validateName;
|
|
11
11
|
private validateAlias;
|
|
12
|
+
private isStickyNote;
|
|
12
13
|
private validateSettingList;
|
|
13
14
|
validateBody(body?: FunctionApplicationNode | BlockExpressionNode): CompileError[];
|
|
14
15
|
validateFields(fields: FunctionApplicationNode[]): CompileError[];
|
|
@@ -61,48 +61,51 @@ export declare enum CompileErrorCode {
|
|
|
61
61
|
NOTE_REDEFINED = 3044,
|
|
62
62
|
NOTE_CONTENT_REDEFINED = 3045,
|
|
63
63
|
EMPTY_NOTE = 3046,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
64
|
+
UNKNOWN_NOTE_SETTING = 3047,
|
|
65
|
+
DUPLICATE_NOTE_SETTING = 3048,
|
|
66
|
+
INVALID_NOTE_SETTING_VALUE = 3049,
|
|
67
|
+
INVALID_INDEXES_CONTEXT = 3050,
|
|
68
|
+
INVALID_INDEXES_FIELD = 3051,
|
|
69
|
+
INVALID_INDEX = 3052,
|
|
70
|
+
UNKNOWN_INDEX_SETTING = 3053,
|
|
71
|
+
DUPLICATE_INDEX_SETTING = 3054,
|
|
72
|
+
UNEXPECTED_INDEX_SETTING_VALUE = 3055,
|
|
73
|
+
INVALID_INDEX_SETTING_VALUE = 3056,
|
|
74
|
+
INVALID_PROJECT_CONTEXT = 3057,
|
|
75
|
+
PROJECT_REDEFINED = 3058,
|
|
76
|
+
INVALID_PROJECT_FIELD = 3059,
|
|
77
|
+
INVALID_CUSTOM_CONTEXT = 3060,
|
|
78
|
+
INVALID_CUSTOM_ELEMENT_VALUE = 3061,
|
|
79
|
+
INVALID_ELEMENT_IN_SIMPLE_BODY = 3062,
|
|
80
|
+
INVALID_TABLE_PARTIAL_CONTEXT = 3063,
|
|
81
|
+
INVALID_TABLE_PARTIAL_ELEMENT_NAME = 3064,
|
|
82
|
+
INVALID_TABLE_PARTIAL_SETTING_VALUE = 3065,
|
|
83
|
+
DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME = 3066,
|
|
84
|
+
DUPLICATE_TABLE_PARTIAL_SETTING = 3067,
|
|
85
|
+
INVALID_TABLE_PARTIAL_INJECTION = 3068,
|
|
86
|
+
INVALID_TABLE_PARTIAL_INJECTION_OP = 3069,
|
|
87
|
+
INVALID_TABLE_PARTIAL_INJECTION_NAME = 3070,
|
|
88
|
+
DUPLICATE_TABLE_PARTIAL_INJECTION_NAME = 3071,
|
|
89
|
+
UNKNOWN_TABLE_PARTIAL_SETTING = 3072,
|
|
90
|
+
INVALID_TABLE_SETTING_VALUE = 3073,
|
|
91
|
+
INVALID_CHECKS_CONTEXT = 3074,
|
|
92
|
+
INVALID_CHECKS_FIELD = 3075,
|
|
93
|
+
INVALID_CHECK = 3076,
|
|
94
|
+
UNKNOWN_CHECK_SETTING = 3077,
|
|
95
|
+
DUPLICATE_CHECK_SETTING = 3078,
|
|
96
|
+
INVALID_CHECK_SETTING_VALUE = 3079,
|
|
97
|
+
INVALID_RECORDS_CONTEXT = 3080,
|
|
98
|
+
INVALID_RECORDS_NAME = 3081,
|
|
99
|
+
INVALID_RECORDS_FIELD = 3082,
|
|
100
|
+
DUPLICATE_COLUMN_REFERENCES_IN_RECORDS = 3083,
|
|
101
|
+
DUPLICATE_RECORDS_FOR_TABLE = 3084,
|
|
102
|
+
INVALID_USE_CONTEXT = 3085,
|
|
103
|
+
INVALID_USE_SPECIFIER_KIND = 3086,
|
|
104
|
+
INVALID_USE_SPECIFIER_NAME = 3087,
|
|
105
|
+
INVALID_DIAGRAMVIEW_CONTEXT = 3088,
|
|
106
|
+
DUPLICATE_DIAGRAMVIEW_NAME = 3089,
|
|
107
|
+
INVALID_DIAGRAMVIEW_FIELD = 3090,
|
|
108
|
+
DUPLICATE_DIAGRAMVIEW_FIELD = 3091,
|
|
106
109
|
BINDING_ERROR = 4000,
|
|
107
110
|
NONEXISTENT_MODULE = 4001,
|
|
108
111
|
UNSUPPORTED = 5000,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { NONE_COLOR } from '../../constants';
|
|
1
2
|
import { Filepath } from './filepath';
|
|
2
3
|
import { Position } from './position';
|
|
4
|
+
export type Color = `#${string}` | typeof NONE_COLOR;
|
|
3
5
|
export declare enum AliasKind {
|
|
4
6
|
Table = "table"
|
|
5
7
|
}
|
|
@@ -78,7 +80,7 @@ export interface Table {
|
|
|
78
80
|
partials: TablePartialInjection[];
|
|
79
81
|
token: TokenPosition;
|
|
80
82
|
indexes: Index[];
|
|
81
|
-
headerColor?:
|
|
83
|
+
headerColor?: Color;
|
|
82
84
|
note?: {
|
|
83
85
|
value: string;
|
|
84
86
|
token: TokenPosition;
|
|
@@ -88,7 +90,7 @@ export interface Note {
|
|
|
88
90
|
name: string;
|
|
89
91
|
content: string;
|
|
90
92
|
token: TokenPosition;
|
|
91
|
-
|
|
93
|
+
color?: Color;
|
|
92
94
|
}
|
|
93
95
|
export interface ColumnType {
|
|
94
96
|
schemaName: string | null;
|
|
@@ -154,7 +156,7 @@ export interface Ref {
|
|
|
154
156
|
schemaName: string | null;
|
|
155
157
|
name: string | null;
|
|
156
158
|
endpoints: RefEndpointPair;
|
|
157
|
-
color?:
|
|
159
|
+
color?: Color;
|
|
158
160
|
onDelete?: string;
|
|
159
161
|
onUpdate?: string;
|
|
160
162
|
inactive?: boolean;
|
|
@@ -188,7 +190,7 @@ export interface TableGroup {
|
|
|
188
190
|
schemaName: string | null;
|
|
189
191
|
tables: TableGroupField[];
|
|
190
192
|
token: TokenPosition;
|
|
191
|
-
color?:
|
|
193
|
+
color?: Color;
|
|
192
194
|
note?: {
|
|
193
195
|
value: string;
|
|
194
196
|
token: TokenPosition;
|
|
@@ -212,7 +214,7 @@ export interface TablePartial {
|
|
|
212
214
|
token: TokenPosition;
|
|
213
215
|
indexes: Index[];
|
|
214
216
|
checks: Check[];
|
|
215
|
-
headerColor?:
|
|
217
|
+
headerColor?: Color;
|
|
216
218
|
note?: {
|
|
217
219
|
value: string;
|
|
218
220
|
token: TokenPosition;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as Compiler } from '../../compiler';
|
|
2
|
-
import { ColumnType, TokenPosition } from '../types/schemaJson';
|
|
2
|
+
import { Color, ColumnType, TokenPosition } from '../types/schemaJson';
|
|
3
3
|
import { SyntaxNode } from '../types/nodes';
|
|
4
4
|
import { default as Report } from '../types/report';
|
|
5
5
|
export declare function getTokenPosition(node: SyntaxNode): TokenPosition;
|
|
@@ -8,7 +8,7 @@ export declare function extractElementName(nameNode: SyntaxNode): {
|
|
|
8
8
|
schemaName: string[];
|
|
9
9
|
name: string;
|
|
10
10
|
};
|
|
11
|
-
export declare function extractColor(node: unknown):
|
|
11
|
+
export declare function extractColor(node: unknown): Color | undefined;
|
|
12
12
|
export declare function processDefaultValue(valueNode?: SyntaxNode): {
|
|
13
13
|
type: 'number' | 'string' | 'boolean' | 'expression';
|
|
14
14
|
value: string | number;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package",
|
|
3
3
|
"name": "@dbml/parse",
|
|
4
|
-
"version": "8.
|
|
4
|
+
"version": "8.3.0-alpha.0",
|
|
5
5
|
"description": "DBML parser v2",
|
|
6
6
|
"author": "Holistics <dev@holistics.io>",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"engines": {
|
|
47
47
|
"node": ">=18"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "75cec6fdf26767726449c7c7b370797b8379c4bc"
|
|
50
50
|
}
|