@dbml/parse 6.5.0 → 7.0.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/LICENSE +0 -0
- package/dist/__tests__/examples/binder/binder.test.d.ts +0 -0
- package/dist/__tests__/examples/binder/records.test.d.ts +0 -0
- package/dist/__tests__/examples/compiler/applyTextEdits.test.d.ts +0 -0
- package/dist/__tests__/examples/compiler/identifierUtils.test.d.ts +0 -0
- package/dist/__tests__/examples/compiler/renameTable.test.d.ts +0 -0
- package/dist/__tests__/examples/compiler/splitQualifiedIdentifier.test.d.ts +0 -0
- package/dist/__tests__/examples/compiler/stringUtils.test.d.ts +0 -0
- package/dist/__tests__/examples/compiler/syncDiagramView.test.d.ts +1 -0
- package/dist/__tests__/examples/interpreter/interpreter.test.d.ts +0 -0
- package/dist/__tests__/examples/interpreter/record/data.test.d.ts +0 -0
- package/dist/__tests__/examples/interpreter/record/fk.test.d.ts +0 -0
- package/dist/__tests__/examples/interpreter/record/increment.test.d.ts +0 -0
- package/dist/__tests__/examples/interpreter/record/multi_records.test.d.ts +0 -0
- package/dist/__tests__/examples/interpreter/record/pk.test.d.ts +0 -0
- package/dist/__tests__/examples/interpreter/record/table_partial.test.d.ts +0 -0
- package/dist/__tests__/examples/interpreter/record/type_compatibility.test.d.ts +0 -0
- package/dist/__tests__/examples/interpreter/record/unique.test.d.ts +0 -0
- package/dist/__tests__/examples/lexer/lexer.test.d.ts +0 -0
- package/dist/__tests__/examples/lexer/scientific-notation.test.d.ts +0 -0
- package/dist/__tests__/examples/parser/parser.test.d.ts +0 -0
- package/dist/__tests__/examples/services/definition/general.test.d.ts +0 -0
- package/dist/__tests__/examples/services/definition/records.test.d.ts +0 -0
- package/dist/__tests__/examples/services/references/general.test.d.ts +0 -0
- package/dist/__tests__/examples/services/references/records.test.d.ts +0 -0
- package/dist/__tests__/examples/services/service_utils.test.d.ts +0 -0
- package/dist/__tests__/examples/services/suggestions/general.test.d.ts +0 -0
- package/dist/__tests__/examples/services/suggestions/suggestions_diagramview.test.d.ts +1 -0
- package/dist/__tests__/examples/services/suggestions/suggestions_records.test.d.ts +0 -0
- package/dist/__tests__/examples/validator/records.test.d.ts +0 -0
- package/dist/__tests__/examples/validator/validator.test.d.ts +0 -0
- package/dist/__tests__/fuzz/interpreter.test.d.ts +0 -0
- package/dist/__tests__/fuzz/parser.test.d.ts +0 -0
- package/dist/__tests__/fuzz/services.test.d.ts +0 -0
- package/dist/__tests__/properties/lexer.test.d.ts +0 -0
- package/dist/__tests__/properties/parser.test.d.ts +0 -0
- package/dist/__tests__/snapshots/binder/binder.test.d.ts +0 -0
- package/dist/__tests__/snapshots/interpreter/interpreter.test.d.ts +0 -0
- package/dist/__tests__/snapshots/lexer/lexer.test.d.ts +0 -0
- package/dist/__tests__/snapshots/nan/nan.test.d.ts +0 -0
- package/dist/__tests__/snapshots/parser/parser.test.d.ts +0 -0
- package/dist/__tests__/snapshots/validator/validator.test.d.ts +0 -0
- package/dist/__tests__/utils/arbitraries/grammars.d.ts +1 -1
- package/dist/__tests__/utils/arbitraries/index.d.ts +0 -0
- package/dist/__tests__/utils/arbitraries/tokens.d.ts +0 -0
- package/dist/__tests__/utils/arbitraries/utils.d.ts +0 -0
- package/dist/__tests__/utils/compiler.d.ts +0 -0
- package/dist/__tests__/utils/index.d.ts +0 -0
- package/dist/__tests__/utils/mocks.d.ts +0 -0
- package/dist/__tests__/utils/testHelpers.d.ts +0 -0
- package/dist/dbml-parse.js +17 -11
- package/dist/dbml-parse.mjs +706 -13
- package/dist/index.d.ts +0 -0
- package/dist/src/compiler/index.d.ts +0 -0
- package/dist/src/compiler/queries/container/element.d.ts +0 -0
- package/dist/src/compiler/queries/container/index.d.ts +0 -0
- package/dist/src/compiler/queries/container/scope.d.ts +0 -0
- package/dist/src/compiler/queries/container/scopeKind.d.ts +0 -0
- package/dist/src/compiler/queries/container/stack.d.ts +0 -0
- package/dist/src/compiler/queries/container/token.d.ts +0 -0
- package/dist/src/compiler/queries/parse.d.ts +0 -0
- package/dist/src/compiler/queries/symbol.d.ts +0 -0
- package/dist/src/compiler/queries/token.d.ts +0 -0
- package/dist/src/compiler/queries/transform/applyTextEdits.d.ts +0 -0
- package/dist/src/compiler/queries/transform/index.d.ts +0 -0
- package/dist/src/compiler/queries/transform/renameTable.d.ts +0 -0
- package/dist/src/compiler/queries/transform/syncDiagramView.d.ts +30 -0
- package/dist/src/compiler/queries/transform/utils.d.ts +0 -0
- package/dist/src/compiler/queries/utils.d.ts +0 -0
- package/dist/src/compiler/types.d.ts +2 -1
- package/dist/src/constants.d.ts +0 -0
- package/dist/src/core/analyzer/analyzer.d.ts +0 -0
- package/dist/src/core/analyzer/binder/binder.d.ts +0 -0
- package/dist/src/core/analyzer/binder/elementBinder/checks.d.ts +0 -0
- package/dist/src/core/analyzer/binder/elementBinder/custom.d.ts +0 -0
- package/dist/src/core/analyzer/binder/elementBinder/diagramView.d.ts +20 -0
- package/dist/src/core/analyzer/binder/elementBinder/enum.d.ts +0 -0
- package/dist/src/core/analyzer/binder/elementBinder/indexes.d.ts +0 -0
- package/dist/src/core/analyzer/binder/elementBinder/note.d.ts +0 -0
- package/dist/src/core/analyzer/binder/elementBinder/project.d.ts +0 -0
- package/dist/src/core/analyzer/binder/elementBinder/records.d.ts +0 -0
- package/dist/src/core/analyzer/binder/elementBinder/ref.d.ts +0 -0
- package/dist/src/core/analyzer/binder/elementBinder/table.d.ts +0 -0
- package/dist/src/core/analyzer/binder/elementBinder/tableGroup.d.ts +0 -0
- package/dist/src/core/analyzer/binder/elementBinder/tablePartial.d.ts +0 -0
- package/dist/src/core/analyzer/binder/types.d.ts +0 -0
- package/dist/src/core/analyzer/binder/utils.d.ts +2 -1
- package/dist/src/core/analyzer/symbol/factory.d.ts +0 -0
- package/dist/src/core/analyzer/symbol/symbolIndex.d.ts +5 -1
- package/dist/src/core/analyzer/symbol/symbolTable.d.ts +0 -0
- package/dist/src/core/analyzer/symbol/symbols.d.ts +26 -0
- package/dist/src/core/analyzer/symbol/utils.d.ts +0 -0
- package/dist/src/core/analyzer/types.d.ts +2 -1
- package/dist/src/core/analyzer/utils.d.ts +0 -0
- package/dist/src/core/analyzer/validator/elementValidators/checks.d.ts +0 -0
- package/dist/src/core/analyzer/validator/elementValidators/custom.d.ts +0 -0
- package/dist/src/core/analyzer/validator/elementValidators/diagramView.d.ts +25 -0
- package/dist/src/core/analyzer/validator/elementValidators/enum.d.ts +0 -0
- package/dist/src/core/analyzer/validator/elementValidators/indexes.d.ts +0 -0
- package/dist/src/core/analyzer/validator/elementValidators/note.d.ts +0 -0
- package/dist/src/core/analyzer/validator/elementValidators/project.d.ts +0 -0
- package/dist/src/core/analyzer/validator/elementValidators/records.d.ts +0 -0
- package/dist/src/core/analyzer/validator/elementValidators/ref.d.ts +0 -0
- package/dist/src/core/analyzer/validator/elementValidators/table.d.ts +0 -0
- package/dist/src/core/analyzer/validator/elementValidators/tableGroup.d.ts +0 -0
- package/dist/src/core/analyzer/validator/elementValidators/tablePartial.d.ts +0 -0
- package/dist/src/core/analyzer/validator/types.d.ts +0 -0
- package/dist/src/core/analyzer/validator/utils.d.ts +2 -1
- package/dist/src/core/analyzer/validator/validator.d.ts +0 -0
- package/dist/src/core/errors.d.ts +4 -0
- package/dist/src/core/interpreter/elementInterpreter/diagramView.d.ts +13 -0
- package/dist/src/core/interpreter/elementInterpreter/enum.d.ts +0 -0
- package/dist/src/core/interpreter/elementInterpreter/project.d.ts +0 -0
- package/dist/src/core/interpreter/elementInterpreter/ref.d.ts +0 -0
- package/dist/src/core/interpreter/elementInterpreter/sticky_note.d.ts +0 -0
- package/dist/src/core/interpreter/elementInterpreter/table.d.ts +0 -0
- package/dist/src/core/interpreter/elementInterpreter/tableGroup.d.ts +0 -0
- package/dist/src/core/interpreter/elementInterpreter/tablePartial.d.ts +0 -0
- package/dist/src/core/interpreter/interpreter.d.ts +0 -0
- package/dist/src/core/interpreter/records/index.d.ts +0 -0
- package/dist/src/core/interpreter/records/utils/constraints/fk.d.ts +0 -0
- package/dist/src/core/interpreter/records/utils/constraints/helper.d.ts +0 -0
- package/dist/src/core/interpreter/records/utils/constraints/index.d.ts +0 -0
- package/dist/src/core/interpreter/records/utils/constraints/pk.d.ts +0 -0
- package/dist/src/core/interpreter/records/utils/constraints/unique.d.ts +0 -0
- package/dist/src/core/interpreter/records/utils/data/index.d.ts +0 -0
- package/dist/src/core/interpreter/records/utils/data/sqlTypes.d.ts +0 -0
- package/dist/src/core/interpreter/records/utils/data/values.d.ts +0 -0
- package/dist/src/core/interpreter/records/utils/index.d.ts +0 -0
- package/dist/src/core/interpreter/types.d.ts +33 -0
- package/dist/src/core/interpreter/utils.d.ts +0 -0
- package/dist/src/core/lexer/lexer.d.ts +0 -0
- package/dist/src/core/lexer/tokens.d.ts +0 -0
- package/dist/src/core/lexer/utils.d.ts +0 -0
- package/dist/src/core/option.d.ts +0 -0
- package/dist/src/core/parser/contextStack.d.ts +0 -0
- package/dist/src/core/parser/factory.d.ts +0 -0
- package/dist/src/core/parser/nodes.d.ts +0 -0
- package/dist/src/core/parser/parser.d.ts +0 -0
- package/dist/src/core/parser/utils.d.ts +0 -0
- package/dist/src/core/report.d.ts +0 -0
- package/dist/src/core/types.d.ts +0 -0
- package/dist/src/core/utils.d.ts +0 -0
- package/dist/src/index.d.ts +4 -1
- package/dist/src/services/definition/provider.d.ts +0 -0
- package/dist/src/services/diagnostics/provider.d.ts +0 -0
- package/dist/src/services/index.d.ts +1 -0
- package/dist/src/services/monarch.d.ts +3 -0
- package/dist/src/services/references/provider.d.ts +0 -0
- package/dist/src/services/suggestions/provider.d.ts +0 -0
- package/dist/src/services/suggestions/recordRowSnippet.d.ts +0 -0
- package/dist/src/services/suggestions/utils.d.ts +0 -0
- package/dist/src/services/types.d.ts +0 -0
- package/dist/src/services/utils.d.ts +0 -0
- package/package.json +2 -3
package/dist/dbml-parse.mjs
CHANGED
|
@@ -1235,6 +1235,18 @@ var NodeSymbolIdGenerator = class {
|
|
|
1235
1235
|
constructor({ declaration: r }, j) {
|
|
1236
1236
|
this.references = [], this.id = j, this.declaration = r;
|
|
1237
1237
|
}
|
|
1238
|
+
}, DiagramViewSymbol = class {
|
|
1239
|
+
constructor({ symbolTable: r, declaration: j }, M) {
|
|
1240
|
+
this.references = [], this.id = M, this.symbolTable = r, this.declaration = j;
|
|
1241
|
+
}
|
|
1242
|
+
}, DiagramViewFieldSymbol = class {
|
|
1243
|
+
constructor({ declaration: r }, j) {
|
|
1244
|
+
this.references = [], this.id = j, this.declaration = r;
|
|
1245
|
+
}
|
|
1246
|
+
}, StickyNoteSymbol = class {
|
|
1247
|
+
constructor({ declaration: r }, j) {
|
|
1248
|
+
this.references = [], this.id = j, this.declaration = r;
|
|
1249
|
+
}
|
|
1238
1250
|
}, TablePartialSymbol = class {
|
|
1239
1251
|
constructor({ symbolTable: r, declaration: j }, M) {
|
|
1240
1252
|
this.references = [], this.id = M, this.symbolTable = r, this.declaration = j;
|
|
@@ -1249,7 +1261,7 @@ var NodeSymbolIdGenerator = class {
|
|
|
1249
1261
|
}
|
|
1250
1262
|
};
|
|
1251
1263
|
let CompileErrorCode = /* @__PURE__ */ function(r) {
|
|
1252
|
-
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.INVALID_INDEXES_CONTEXT = 3047] = "INVALID_INDEXES_CONTEXT", r[r.INVALID_INDEXES_FIELD = 3048] = "INVALID_INDEXES_FIELD", r[r.INVALID_INDEX = 3049] = "INVALID_INDEX", r[r.UNKNOWN_INDEX_SETTING = 3050] = "UNKNOWN_INDEX_SETTING", r[r.DUPLICATE_INDEX_SETTING = 3051] = "DUPLICATE_INDEX_SETTING", r[r.UNEXPECTED_INDEX_SETTING_VALUE = 3052] = "UNEXPECTED_INDEX_SETTING_VALUE", r[r.INVALID_INDEX_SETTING_VALUE = 3053] = "INVALID_INDEX_SETTING_VALUE", r[r.INVALID_PROJECT_CONTEXT = 3054] = "INVALID_PROJECT_CONTEXT", r[r.PROJECT_REDEFINED = 3055] = "PROJECT_REDEFINED", r[r.INVALID_PROJECT_FIELD = 3056] = "INVALID_PROJECT_FIELD", r[r.INVALID_CUSTOM_CONTEXT = 3057] = "INVALID_CUSTOM_CONTEXT", r[r.INVALID_CUSTOM_ELEMENT_VALUE = 3058] = "INVALID_CUSTOM_ELEMENT_VALUE", r[r.INVALID_ELEMENT_IN_SIMPLE_BODY = 3059] = "INVALID_ELEMENT_IN_SIMPLE_BODY", r[r.INVALID_TABLE_PARTIAL_CONTEXT = 3060] = "INVALID_TABLE_PARTIAL_CONTEXT", r[r.INVALID_TABLE_PARTIAL_ELEMENT_NAME = 3061] = "INVALID_TABLE_PARTIAL_ELEMENT_NAME", r[r.INVALID_TABLE_PARTIAL_SETTING_VALUE = 3062] = "INVALID_TABLE_PARTIAL_SETTING_VALUE", r[r.DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME = 3063] = "DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME", r[r.DUPLICATE_TABLE_PARTIAL_SETTING = 3064] = "DUPLICATE_TABLE_PARTIAL_SETTING", r[r.INVALID_TABLE_PARTIAL_INJECTION = 3065] = "INVALID_TABLE_PARTIAL_INJECTION", r[r.INVALID_TABLE_PARTIAL_INJECTION_OP = 3066] = "INVALID_TABLE_PARTIAL_INJECTION_OP", r[r.INVALID_TABLE_PARTIAL_INJECTION_NAME = 3067] = "INVALID_TABLE_PARTIAL_INJECTION_NAME", r[r.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME = 3068] = "DUPLICATE_TABLE_PARTIAL_INJECTION_NAME", r[r.UNKNOWN_TABLE_PARTIAL_SETTING = 3069] = "UNKNOWN_TABLE_PARTIAL_SETTING", r[r.INVALID_TABLE_SETTING_VALUE = 3070] = "INVALID_TABLE_SETTING_VALUE", r[r.INVALID_CHECKS_CONTEXT = 3071] = "INVALID_CHECKS_CONTEXT", r[r.INVALID_CHECKS_FIELD = 3072] = "INVALID_CHECKS_FIELD", r[r.INVALID_CHECK = 3073] = "INVALID_CHECK", r[r.UNKNOWN_CHECK_SETTING = 3074] = "UNKNOWN_CHECK_SETTING", r[r.DUPLICATE_CHECK_SETTING = 3075] = "DUPLICATE_CHECK_SETTING", r[r.INVALID_CHECK_SETTING_VALUE = 3076] = "INVALID_CHECK_SETTING_VALUE", r[r.INVALID_RECORDS_CONTEXT = 3077] = "INVALID_RECORDS_CONTEXT", r[r.INVALID_RECORDS_NAME = 3078] = "INVALID_RECORDS_NAME", r[r.INVALID_RECORDS_FIELD = 3079] = "INVALID_RECORDS_FIELD", r[r.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS = 3080] = "DUPLICATE_COLUMN_REFERENCES_IN_RECORDS", r[r.DUPLICATE_RECORDS_FOR_TABLE = 3081] = "DUPLICATE_RECORDS_FOR_TABLE", r[r.BINDING_ERROR = 4e3] = "BINDING_ERROR", 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;
|
|
1264
|
+
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.INVALID_INDEXES_CONTEXT = 3047] = "INVALID_INDEXES_CONTEXT", r[r.INVALID_INDEXES_FIELD = 3048] = "INVALID_INDEXES_FIELD", r[r.INVALID_INDEX = 3049] = "INVALID_INDEX", r[r.UNKNOWN_INDEX_SETTING = 3050] = "UNKNOWN_INDEX_SETTING", r[r.DUPLICATE_INDEX_SETTING = 3051] = "DUPLICATE_INDEX_SETTING", r[r.UNEXPECTED_INDEX_SETTING_VALUE = 3052] = "UNEXPECTED_INDEX_SETTING_VALUE", r[r.INVALID_INDEX_SETTING_VALUE = 3053] = "INVALID_INDEX_SETTING_VALUE", r[r.INVALID_PROJECT_CONTEXT = 3054] = "INVALID_PROJECT_CONTEXT", r[r.PROJECT_REDEFINED = 3055] = "PROJECT_REDEFINED", r[r.INVALID_PROJECT_FIELD = 3056] = "INVALID_PROJECT_FIELD", r[r.INVALID_CUSTOM_CONTEXT = 3057] = "INVALID_CUSTOM_CONTEXT", r[r.INVALID_CUSTOM_ELEMENT_VALUE = 3058] = "INVALID_CUSTOM_ELEMENT_VALUE", r[r.INVALID_ELEMENT_IN_SIMPLE_BODY = 3059] = "INVALID_ELEMENT_IN_SIMPLE_BODY", r[r.INVALID_TABLE_PARTIAL_CONTEXT = 3060] = "INVALID_TABLE_PARTIAL_CONTEXT", r[r.INVALID_TABLE_PARTIAL_ELEMENT_NAME = 3061] = "INVALID_TABLE_PARTIAL_ELEMENT_NAME", r[r.INVALID_TABLE_PARTIAL_SETTING_VALUE = 3062] = "INVALID_TABLE_PARTIAL_SETTING_VALUE", r[r.DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME = 3063] = "DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME", r[r.DUPLICATE_TABLE_PARTIAL_SETTING = 3064] = "DUPLICATE_TABLE_PARTIAL_SETTING", r[r.INVALID_TABLE_PARTIAL_INJECTION = 3065] = "INVALID_TABLE_PARTIAL_INJECTION", r[r.INVALID_TABLE_PARTIAL_INJECTION_OP = 3066] = "INVALID_TABLE_PARTIAL_INJECTION_OP", r[r.INVALID_TABLE_PARTIAL_INJECTION_NAME = 3067] = "INVALID_TABLE_PARTIAL_INJECTION_NAME", r[r.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME = 3068] = "DUPLICATE_TABLE_PARTIAL_INJECTION_NAME", r[r.UNKNOWN_TABLE_PARTIAL_SETTING = 3069] = "UNKNOWN_TABLE_PARTIAL_SETTING", r[r.INVALID_TABLE_SETTING_VALUE = 3070] = "INVALID_TABLE_SETTING_VALUE", r[r.INVALID_CHECKS_CONTEXT = 3071] = "INVALID_CHECKS_CONTEXT", r[r.INVALID_CHECKS_FIELD = 3072] = "INVALID_CHECKS_FIELD", r[r.INVALID_CHECK = 3073] = "INVALID_CHECK", r[r.UNKNOWN_CHECK_SETTING = 3074] = "UNKNOWN_CHECK_SETTING", r[r.DUPLICATE_CHECK_SETTING = 3075] = "DUPLICATE_CHECK_SETTING", r[r.INVALID_CHECK_SETTING_VALUE = 3076] = "INVALID_CHECK_SETTING_VALUE", r[r.INVALID_RECORDS_CONTEXT = 3077] = "INVALID_RECORDS_CONTEXT", r[r.INVALID_RECORDS_NAME = 3078] = "INVALID_RECORDS_NAME", r[r.INVALID_RECORDS_FIELD = 3079] = "INVALID_RECORDS_FIELD", r[r.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS = 3080] = "DUPLICATE_COLUMN_REFERENCES_IN_RECORDS", r[r.DUPLICATE_RECORDS_FOR_TABLE = 3081] = "DUPLICATE_RECORDS_FOR_TABLE", r[r.INVALID_DIAGRAMVIEW_CONTEXT = 3082] = "INVALID_DIAGRAMVIEW_CONTEXT", r[r.DUPLICATE_DIAGRAMVIEW_NAME = 3083] = "DUPLICATE_DIAGRAMVIEW_NAME", r[r.INVALID_DIAGRAMVIEW_FIELD = 3084] = "INVALID_DIAGRAMVIEW_FIELD", r[r.DUPLICATE_DIAGRAMVIEW_FIELD = 3085] = "DUPLICATE_DIAGRAMVIEW_FIELD", r[r.BINDING_ERROR = 4e3] = "BINDING_ERROR", 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;
|
|
1253
1265
|
}({});
|
|
1254
1266
|
var CompileError = class r extends Error {
|
|
1255
1267
|
constructor(j, M, N) {
|
|
@@ -1357,7 +1369,7 @@ const KEYWORDS_OF_DEFAULT_SETTING = [
|
|
|
1357
1369
|
"false"
|
|
1358
1370
|
], NUMERIC_LITERAL_PREFIX = ["-", "+"], DEFAULT_SCHEMA_NAME = "public";
|
|
1359
1371
|
let ElementKind = /* @__PURE__ */ function(r) {
|
|
1360
|
-
return r.Table = "table", r.Enum = "enum", r.Ref = "ref", r.Note = "note", r.Project = "project", r.Indexes = "indexes", r.TableGroup = "tablegroup", r.TablePartial = "tablepartial", r.Check = "checks", r.Records = "records", r;
|
|
1372
|
+
return r.Table = "table", r.Enum = "enum", r.Ref = "ref", r.Note = "note", r.Project = "project", r.Indexes = "indexes", r.TableGroup = "tablegroup", r.TablePartial = "tablepartial", r.Check = "checks", r.Records = "records", r.DiagramView = "diagramview", r;
|
|
1361
1373
|
}({}), SettingName = /* @__PURE__ */ function(r) {
|
|
1362
1374
|
return r.Color = "color", r.HeaderColor = "headercolor", r.Note = "note", r.PK = "pk", r.PrimaryKey = "primary key", r.Unique = "unique", r.Ref = "ref", r.NotNull = "not null", r.Null = "null", r.Increment = "increment", r.Default = "default", r.Name = "name", r.Type = "type", r.Check = "check", r.Update = "update", r.Delete = "delete", r;
|
|
1363
1375
|
}({});
|
|
@@ -1394,7 +1406,7 @@ var CustomValidator = class {
|
|
|
1394
1406
|
}
|
|
1395
1407
|
};
|
|
1396
1408
|
let SymbolKind = /* @__PURE__ */ function(r) {
|
|
1397
|
-
return r.Schema = "Schema", r.Table = "Table", r.Column = "Column", r.TableGroup = "TableGroup", r.TableGroupField = "TableGroup field", r.Enum = "Enum", r.EnumField = "Enum field", r.Note = "Note", r.TablePartial = "TablePartial", r.PartialInjection = "PartialInjection", r;
|
|
1409
|
+
return r.Schema = "Schema", r.Table = "Table", r.Column = "Column", r.TableGroup = "TableGroup", r.TableGroupField = "TableGroup field", r.Enum = "Enum", r.EnumField = "Enum field", r.Note = "Note", r.TablePartial = "TablePartial", r.PartialInjection = "PartialInjection", r.DiagramView = "DiagramView", r.DiagramViewField = "DiagramView field", r;
|
|
1398
1410
|
}({});
|
|
1399
1411
|
function createSchemaSymbolIndex(r) {
|
|
1400
1412
|
return `${SymbolKind.Schema}:${r}`;
|
|
@@ -1426,6 +1438,12 @@ function createTablePartialSymbolIndex(r) {
|
|
|
1426
1438
|
function createPartialInjectionSymbolIndex(r) {
|
|
1427
1439
|
return `${SymbolKind.PartialInjection}:${r}`;
|
|
1428
1440
|
}
|
|
1441
|
+
function createDiagramViewSymbolIndex(r) {
|
|
1442
|
+
return `${SymbolKind.DiagramView}:${r}`;
|
|
1443
|
+
}
|
|
1444
|
+
function createDiagramViewFieldSymbolIndex(r) {
|
|
1445
|
+
return `${SymbolKind.DiagramViewField}:${r}`;
|
|
1446
|
+
}
|
|
1429
1447
|
function createNodeSymbolIndex(r, j) {
|
|
1430
1448
|
switch (j) {
|
|
1431
1449
|
case SymbolKind.Column: return createColumnSymbolIndex(r);
|
|
@@ -1435,8 +1453,11 @@ function createNodeSymbolIndex(r, j) {
|
|
|
1435
1453
|
case SymbolKind.Table: return createTableSymbolIndex(r);
|
|
1436
1454
|
case SymbolKind.TableGroup: return createTableGroupSymbolIndex(r);
|
|
1437
1455
|
case SymbolKind.TableGroupField: return createTableGroupFieldSymbolIndex(r);
|
|
1456
|
+
case SymbolKind.Note: return createStickyNoteSymbolIndex(r);
|
|
1438
1457
|
case SymbolKind.TablePartial: return createTablePartialSymbolIndex(r);
|
|
1439
1458
|
case SymbolKind.PartialInjection: return createPartialInjectionSymbolIndex(r);
|
|
1459
|
+
case SymbolKind.DiagramView: return createDiagramViewSymbolIndex(r);
|
|
1460
|
+
case SymbolKind.DiagramViewField: return createDiagramViewFieldSymbolIndex(r);
|
|
1440
1461
|
default: throw Error("Unreachable");
|
|
1441
1462
|
}
|
|
1442
1463
|
}
|
|
@@ -1651,7 +1672,7 @@ var SymbolTable = class {
|
|
|
1651
1672
|
let j = destructureComplexVariable(r);
|
|
1652
1673
|
if (!j.isOk()) return [new CompileError(CompileErrorCode.INVALID_NAME, "Invalid name for sticky note ", this.declarationNode)];
|
|
1653
1674
|
let M = j.unwrap().join("."), N = createStickyNoteSymbolIndex(M);
|
|
1654
|
-
return this.publicSymbolTable.has(N) ? [new CompileError(CompileErrorCode.DUPLICATE_NAME, `Sticky note "${M}" has already been defined`, r)] : (this.publicSymbolTable.set(N, this.declarationNode.symbol), []);
|
|
1675
|
+
return this.publicSymbolTable.has(N) ? [new CompileError(CompileErrorCode.DUPLICATE_NAME, `Sticky note "${M}" has already been defined`, r)] : (this.declarationNode.symbol = this.symbolFactory.create(StickyNoteSymbol, { declaration: this.declarationNode }), this.publicSymbolTable.set(N, this.declarationNode.symbol), []);
|
|
1655
1676
|
}
|
|
1656
1677
|
validateAlias(r) {
|
|
1657
1678
|
return r ? [new CompileError(CompileErrorCode.UNEXPECTED_ALIAS, "A Ref shouldn't have an alias", r)] : [];
|
|
@@ -2351,6 +2372,108 @@ var TableGroupValidator = class {
|
|
|
2351
2372
|
return r.flatMap((r) => (r.parent = this.declarationNode, r.type ? new (pickValidator(r))(r, this.publicSymbolTable, this.symbolFactory).validate() : []));
|
|
2352
2373
|
}
|
|
2353
2374
|
};
|
|
2375
|
+
function isWildcardExpression$2(r) {
|
|
2376
|
+
return r && r instanceof PrimaryExpressionNode && r.expression instanceof VariableNode ? r.expression.variable?.value === "*" : !1;
|
|
2377
|
+
}
|
|
2378
|
+
var DiagramViewValidator = class {
|
|
2379
|
+
constructor(r, j, M) {
|
|
2380
|
+
this.declarationNode = r, this.publicSymbolTable = j, this.symbolFactory = M;
|
|
2381
|
+
}
|
|
2382
|
+
validate() {
|
|
2383
|
+
return [
|
|
2384
|
+
...this.validateContext(),
|
|
2385
|
+
...this.validateName(this.declarationNode.name),
|
|
2386
|
+
...this.validateAlias(this.declarationNode.alias),
|
|
2387
|
+
...this.validateSettingList(this.declarationNode.attributeList),
|
|
2388
|
+
...this.registerElement(),
|
|
2389
|
+
...this.validateBody(this.declarationNode.body)
|
|
2390
|
+
];
|
|
2391
|
+
}
|
|
2392
|
+
validateContext() {
|
|
2393
|
+
return this.declarationNode.parent instanceof ElementDeclarationNode ? [new CompileError(CompileErrorCode.INVALID_DIAGRAMVIEW_CONTEXT, "DiagramView must appear top-level", this.declarationNode)] : [];
|
|
2394
|
+
}
|
|
2395
|
+
validateName(r) {
|
|
2396
|
+
return r ? isSimpleName(r) ? [] : [new CompileError(CompileErrorCode.INVALID_NAME, "A DiagramView name must be a single identifier", r)] : [new CompileError(CompileErrorCode.NAME_NOT_FOUND, "A DiagramView must have a name", this.declarationNode)];
|
|
2397
|
+
}
|
|
2398
|
+
validateAlias(r) {
|
|
2399
|
+
return r ? [new CompileError(CompileErrorCode.UNEXPECTED_ALIAS, "A DiagramView shouldn't have an alias", r)] : [];
|
|
2400
|
+
}
|
|
2401
|
+
registerElement() {
|
|
2402
|
+
let { name: r } = this.declarationNode;
|
|
2403
|
+
this.declarationNode.symbol = this.symbolFactory.create(DiagramViewSymbol, {
|
|
2404
|
+
declaration: this.declarationNode,
|
|
2405
|
+
symbolTable: new SymbolTable()
|
|
2406
|
+
});
|
|
2407
|
+
let j = destructureComplexVariable(r);
|
|
2408
|
+
if (j.isOk()) {
|
|
2409
|
+
let M = j.unwrap(), N = M.pop(), P = registerSchemaStack(M, this.publicSymbolTable, this.symbolFactory), F = createDiagramViewSymbolIndex(N);
|
|
2410
|
+
if (P.has(F)) return [new CompileError(CompileErrorCode.DUPLICATE_DIAGRAMVIEW_NAME, `DiagramView name '${N}' already exists`, r)];
|
|
2411
|
+
P.set(F, this.declarationNode.symbol);
|
|
2412
|
+
}
|
|
2413
|
+
return [];
|
|
2414
|
+
}
|
|
2415
|
+
validateSettingList(r) {
|
|
2416
|
+
let j = aggregateSettingList(r), M = j.getErrors(), N = j.getValue();
|
|
2417
|
+
for (let r of Object.keys(N)) M.push(...N[r].map((j) => new CompileError(CompileErrorCode.UNEXPECTED_SETTINGS, `Unknown '${r}' setting for DiagramView`, j)));
|
|
2418
|
+
return M;
|
|
2419
|
+
}
|
|
2420
|
+
validateBody(r) {
|
|
2421
|
+
if (!r) return [];
|
|
2422
|
+
if (r instanceof FunctionApplicationNode) return [new CompileError(CompileErrorCode.UNEXPECTED_SIMPLE_BODY, "A DiagramView's body must be a block", r)];
|
|
2423
|
+
let [j, M] = partition_default(r.body, (r) => r instanceof FunctionApplicationNode);
|
|
2424
|
+
return [...this.validateFields(j), ...this.validateSubElements(M)];
|
|
2425
|
+
}
|
|
2426
|
+
validateFields(r) {
|
|
2427
|
+
return r.flatMap((r) => {
|
|
2428
|
+
if (isWildcardExpression$2(r.callee)) return [];
|
|
2429
|
+
let j = [];
|
|
2430
|
+
return j.push(new CompileError(CompileErrorCode.INVALID_DIAGRAMVIEW_FIELD, "Fields are not allowed at DiagramView level. Use Tables, Notes, TableGroups, or Schemas blocks instead.", r)), j;
|
|
2431
|
+
});
|
|
2432
|
+
}
|
|
2433
|
+
validateSubElements(r) {
|
|
2434
|
+
let j = [], M = [
|
|
2435
|
+
"tables",
|
|
2436
|
+
"notes",
|
|
2437
|
+
"tablegroups",
|
|
2438
|
+
"schemas"
|
|
2439
|
+
];
|
|
2440
|
+
for (let N of r) {
|
|
2441
|
+
if (N.parent = this.declarationNode, !N.type) continue;
|
|
2442
|
+
let r = N.type.value.toLowerCase();
|
|
2443
|
+
if (!M.includes(r)) {
|
|
2444
|
+
j.push(new CompileError(CompileErrorCode.INVALID_DIAGRAMVIEW_FIELD, `Unknown block type "${N.type.value}" in DiagramView. Allowed: Tables, Notes, TableGroups, Schemas`, N));
|
|
2445
|
+
continue;
|
|
2446
|
+
}
|
|
2447
|
+
j.push(...this.validateSubBlock(N)), j.push(...this.registerSubBlockFields(N));
|
|
2448
|
+
}
|
|
2449
|
+
return j;
|
|
2450
|
+
}
|
|
2451
|
+
validateSubBlock(r) {
|
|
2452
|
+
let j = [];
|
|
2453
|
+
if (!r.body || !(r.body instanceof BlockExpressionNode)) return j;
|
|
2454
|
+
let M = r.body, N = M.body.some((r) => r instanceof FunctionApplicationNode && isWildcardExpression$2(r.callee)), P = M.body.some((r) => r instanceof FunctionApplicationNode && !isWildcardExpression$2(r.callee));
|
|
2455
|
+
return N && P && j.push(new CompileWarning(CompileErrorCode.INVALID_DIAGRAMVIEW_FIELD, `Wildcard (*) combined with specific items in ${r.type?.value} block. Specific items will be ignored.`, r)), j;
|
|
2456
|
+
}
|
|
2457
|
+
registerSubBlockFields(r) {
|
|
2458
|
+
let j = [];
|
|
2459
|
+
if (!r.body || !(r.body instanceof BlockExpressionNode)) return j;
|
|
2460
|
+
let M = r.body.body.filter((r) => r instanceof FunctionApplicationNode);
|
|
2461
|
+
for (let r of M) {
|
|
2462
|
+
if (r.callee && isExpressionAVariableNode(r.callee)) {
|
|
2463
|
+
if (isWildcardExpression$2(r.callee)) continue;
|
|
2464
|
+
let M = extractVarNameFromPrimaryVariable(r.callee).unwrap(), N = createDiagramViewFieldSymbolIndex(M), P = this.symbolFactory.create(DiagramViewFieldSymbol, { declaration: r });
|
|
2465
|
+
r.symbol = P;
|
|
2466
|
+
let F = this.declarationNode.symbol.symbolTable;
|
|
2467
|
+
if (F.has(N)) {
|
|
2468
|
+
let P = F.get(N);
|
|
2469
|
+
j.push(new CompileError(CompileErrorCode.DUPLICATE_DIAGRAMVIEW_FIELD, `${M} already exists in DiagramView`, r), new CompileError(CompileErrorCode.DUPLICATE_DIAGRAMVIEW_FIELD, `${M} already exists in DiagramView`, P.declaration));
|
|
2470
|
+
} else F.set(N, P);
|
|
2471
|
+
}
|
|
2472
|
+
r.args.length > 0 && j.push(...r.args.map((r) => new CompileError(CompileErrorCode.INVALID_DIAGRAMVIEW_FIELD, "DiagramView field should only have a single name", r)));
|
|
2473
|
+
}
|
|
2474
|
+
return j;
|
|
2475
|
+
}
|
|
2476
|
+
};
|
|
2354
2477
|
function pickValidator(r) {
|
|
2355
2478
|
switch (r.type.value.toLowerCase()) {
|
|
2356
2479
|
case ElementKind.Enum: return EnumValidator;
|
|
@@ -2363,6 +2486,7 @@ function pickValidator(r) {
|
|
|
2363
2486
|
case ElementKind.TablePartial: return TablePartialValidator;
|
|
2364
2487
|
case ElementKind.Check: return ChecksValidator;
|
|
2365
2488
|
case ElementKind.Records: return RecordsValidator;
|
|
2489
|
+
case ElementKind.DiagramView: return DiagramViewValidator;
|
|
2366
2490
|
default: return CustomValidator;
|
|
2367
2491
|
}
|
|
2368
2492
|
}
|
|
@@ -2464,7 +2588,8 @@ function getElementKind(r) {
|
|
|
2464
2588
|
case ElementKind.TableGroup:
|
|
2465
2589
|
case ElementKind.TablePartial:
|
|
2466
2590
|
case ElementKind.Check:
|
|
2467
|
-
case ElementKind.Records:
|
|
2591
|
+
case ElementKind.Records:
|
|
2592
|
+
case ElementKind.DiagramView: return new Some(j);
|
|
2468
2593
|
default: return new None();
|
|
2469
2594
|
}
|
|
2470
2595
|
}
|
|
@@ -3406,7 +3531,8 @@ var ParsingContextStack = class {
|
|
|
3406
3531
|
}
|
|
3407
3532
|
leftExpression_bp() {
|
|
3408
3533
|
let r;
|
|
3409
|
-
if (
|
|
3534
|
+
if (this.check(SyntaxTokenKind.OP) && this.peek().value === "*") this.advance(), r = this.nodeFactory.create(PrimaryExpressionNode, { expression: this.nodeFactory.create(VariableNode, { variable: this.previous() }) });
|
|
3535
|
+
else if (isOpToken(this.peek())) {
|
|
3410
3536
|
let j = {};
|
|
3411
3537
|
j.op = this.peek();
|
|
3412
3538
|
let M = prefixBindingPower(j.op);
|
|
@@ -3624,6 +3750,95 @@ var Validator = class {
|
|
|
3624
3750
|
bindSubElements(r) {
|
|
3625
3751
|
return r.flatMap((r) => r.type ? new (pickBinder(r))(r, this.ast, this.symbolFactory).bind() : []);
|
|
3626
3752
|
}
|
|
3753
|
+
};
|
|
3754
|
+
function isWildcardExpression$1(r) {
|
|
3755
|
+
return r && r instanceof PrimaryExpressionNode && r.expression instanceof VariableNode ? r.expression.variable?.value === "*" : !1;
|
|
3756
|
+
}
|
|
3757
|
+
var DiagramViewBinder = class {
|
|
3758
|
+
constructor(r, j, M) {
|
|
3759
|
+
this.declarationNode = r, this.ast = j, this.symbolFactory = M;
|
|
3760
|
+
}
|
|
3761
|
+
bind() {
|
|
3762
|
+
return this.declarationNode.body instanceof BlockExpressionNode ? this.bindBody(this.declarationNode.body) : [];
|
|
3763
|
+
}
|
|
3764
|
+
bindBody(r) {
|
|
3765
|
+
let [, j] = partition_default(r.body, (r) => r instanceof FunctionApplicationNode);
|
|
3766
|
+
return this.bindSubElements(j);
|
|
3767
|
+
}
|
|
3768
|
+
bindSubElements(r) {
|
|
3769
|
+
return r.flatMap((r) => {
|
|
3770
|
+
if (!r.type) return [];
|
|
3771
|
+
let j = r.type.value.toLowerCase();
|
|
3772
|
+
if (!(r.body instanceof BlockExpressionNode)) return [];
|
|
3773
|
+
let M = [];
|
|
3774
|
+
switch (j) {
|
|
3775
|
+
case "tables":
|
|
3776
|
+
M.push(...this.bindTableReferences(r.body));
|
|
3777
|
+
break;
|
|
3778
|
+
case "notes":
|
|
3779
|
+
M.push(...this.bindNoteReferences(r.body));
|
|
3780
|
+
break;
|
|
3781
|
+
case "tablegroups":
|
|
3782
|
+
M.push(...this.bindTableGroupReferences(r.body));
|
|
3783
|
+
break;
|
|
3784
|
+
case "schemas":
|
|
3785
|
+
M.push(...this.bindSchemaReferences(r.body));
|
|
3786
|
+
break;
|
|
3787
|
+
default: break;
|
|
3788
|
+
}
|
|
3789
|
+
return M;
|
|
3790
|
+
});
|
|
3791
|
+
}
|
|
3792
|
+
bindTableReferences(r) {
|
|
3793
|
+
let [j] = partition_default(r.body, (r) => r instanceof FunctionApplicationNode);
|
|
3794
|
+
return j.flatMap((r) => !r.callee || isWildcardExpression$1(r.callee) ? [] : [r.callee, ...r.args].flatMap(scanNonListNodeForBinding).flatMap((r) => {
|
|
3795
|
+
let j = r.variables.pop();
|
|
3796
|
+
if (!j) return [];
|
|
3797
|
+
let M = r.variables;
|
|
3798
|
+
return lookupAndBindInScope(this.ast, [...M.map((r) => ({
|
|
3799
|
+
node: r,
|
|
3800
|
+
kind: SymbolKind.Schema
|
|
3801
|
+
})), {
|
|
3802
|
+
node: j,
|
|
3803
|
+
kind: SymbolKind.Table
|
|
3804
|
+
}]);
|
|
3805
|
+
}));
|
|
3806
|
+
}
|
|
3807
|
+
bindNoteReferences(r) {
|
|
3808
|
+
let [j] = partition_default(r.body, (r) => r instanceof FunctionApplicationNode);
|
|
3809
|
+
return j.flatMap((r) => !r.callee || isWildcardExpression$1(r.callee) ? [] : scanNonListNodeForBinding(r.callee).flatMap((r) => {
|
|
3810
|
+
let j = r.variables.pop();
|
|
3811
|
+
return j ? lookupAndBindInScope(this.ast, [{
|
|
3812
|
+
node: j,
|
|
3813
|
+
kind: SymbolKind.Note
|
|
3814
|
+
}]) : [];
|
|
3815
|
+
}));
|
|
3816
|
+
}
|
|
3817
|
+
bindTableGroupReferences(r) {
|
|
3818
|
+
let [j] = partition_default(r.body, (r) => r instanceof FunctionApplicationNode);
|
|
3819
|
+
return j.flatMap((r) => !r.callee || isWildcardExpression$1(r.callee) ? [] : scanNonListNodeForBinding(r.callee).flatMap((r) => {
|
|
3820
|
+
let j = r.variables.pop();
|
|
3821
|
+
if (!j) return [];
|
|
3822
|
+
let M = r.variables;
|
|
3823
|
+
return lookupAndBindInScope(this.ast, [...M.map((r) => ({
|
|
3824
|
+
node: r,
|
|
3825
|
+
kind: SymbolKind.Schema
|
|
3826
|
+
})), {
|
|
3827
|
+
node: j,
|
|
3828
|
+
kind: SymbolKind.TableGroup
|
|
3829
|
+
}]);
|
|
3830
|
+
}));
|
|
3831
|
+
}
|
|
3832
|
+
bindSchemaReferences(r) {
|
|
3833
|
+
let [j] = partition_default(r.body, (r) => r instanceof FunctionApplicationNode);
|
|
3834
|
+
return j.flatMap((r) => !r.callee || isWildcardExpression$1(r.callee) ? [] : scanNonListNodeForBinding(r.callee).flatMap((r) => {
|
|
3835
|
+
let j = r.variables.pop();
|
|
3836
|
+
return j ? lookupAndBindInScope(this.ast, [{
|
|
3837
|
+
node: j,
|
|
3838
|
+
kind: SymbolKind.Schema
|
|
3839
|
+
}]) : [];
|
|
3840
|
+
}));
|
|
3841
|
+
}
|
|
3627
3842
|
}, EnumBinder = class {
|
|
3628
3843
|
constructor(r, j, M) {
|
|
3629
3844
|
this.declarationNode = r, this.ast = j, this.symbolFactory = M;
|
|
@@ -3967,6 +4182,7 @@ function getSymbolKind(r) {
|
|
|
3967
4182
|
if (r instanceof TablePartialSymbol) return SymbolKind.TablePartial;
|
|
3968
4183
|
if (r instanceof TablePartialInjectedColumnSymbol) return SymbolKind.Column;
|
|
3969
4184
|
if (r instanceof PartialInjectionSymbol) return SymbolKind.PartialInjection;
|
|
4185
|
+
if (r instanceof StickyNoteSymbol) return SymbolKind.Note;
|
|
3970
4186
|
throw Error("No other possible symbol kind in getSymbolKind");
|
|
3971
4187
|
}
|
|
3972
4188
|
var RecordsBinder = class {
|
|
@@ -4070,6 +4286,7 @@ function pickBinder(r) {
|
|
|
4070
4286
|
case ElementKind.TablePartial: return TablePartialBinder;
|
|
4071
4287
|
case ElementKind.Check: return ChecksBinder;
|
|
4072
4288
|
case ElementKind.Records: return RecordsBinder;
|
|
4289
|
+
case ElementKind.DiagramView: return DiagramViewBinder;
|
|
4073
4290
|
default: return CustomBinder;
|
|
4074
4291
|
}
|
|
4075
4292
|
}
|
|
@@ -4910,6 +5127,117 @@ var TableInterpreter = class {
|
|
|
4910
5127
|
}
|
|
4911
5128
|
});
|
|
4912
5129
|
}
|
|
5130
|
+
};
|
|
5131
|
+
function isWildcardExpression(r) {
|
|
5132
|
+
return r && r instanceof PrimaryExpressionNode && r.expression instanceof VariableNode ? r.expression.variable?.value === "*" : !1;
|
|
5133
|
+
}
|
|
5134
|
+
var DiagramViewInterpreter = class {
|
|
5135
|
+
constructor(r, j) {
|
|
5136
|
+
this.declarationNode = r, this.env = j, this.diagramView = {
|
|
5137
|
+
visibleEntities: {
|
|
5138
|
+
tables: null,
|
|
5139
|
+
stickyNotes: null,
|
|
5140
|
+
tableGroups: null,
|
|
5141
|
+
schemas: null
|
|
5142
|
+
},
|
|
5143
|
+
_explicitWildcards: /* @__PURE__ */ new Set(),
|
|
5144
|
+
_explicitlySet: /* @__PURE__ */ new Set()
|
|
5145
|
+
};
|
|
5146
|
+
}
|
|
5147
|
+
interpret() {
|
|
5148
|
+
let r = [];
|
|
5149
|
+
return this.diagramView.token = getTokenPosition(this.declarationNode), this.env.diagramViews || (this.env.diagramViews = /* @__PURE__ */ new Map()), this.env.diagramViews.set(this.declarationNode, this.diagramView), this.declarationNode.name && r.push(...this.interpretName(this.declarationNode.name)), this.declarationNode.body instanceof BlockExpressionNode && r.push(...this.interpretBody(this.declarationNode.body)), r;
|
|
5150
|
+
}
|
|
5151
|
+
interpretName(r) {
|
|
5152
|
+
let j = destructureComplexVariable(r).unwrap_or([]);
|
|
5153
|
+
return j.length > 0 && (this.diagramView.name = j[j.length - 1], j.length > 1 && (this.diagramView.schemaName = j.slice(0, -1).join("."))), [];
|
|
5154
|
+
}
|
|
5155
|
+
interpretBody(r) {
|
|
5156
|
+
if (r.body.length === 1) {
|
|
5157
|
+
let j = r.body[0];
|
|
5158
|
+
if (j instanceof FunctionApplicationNode && isWildcardExpression(j.callee)) return this.diagramView.visibleEntities = {
|
|
5159
|
+
tables: [],
|
|
5160
|
+
stickyNotes: [],
|
|
5161
|
+
tableGroups: [],
|
|
5162
|
+
schemas: []
|
|
5163
|
+
}, this.diagramView._explicitWildcards = new Set([
|
|
5164
|
+
"tables",
|
|
5165
|
+
"stickyNotes",
|
|
5166
|
+
"tableGroups",
|
|
5167
|
+
"schemas"
|
|
5168
|
+
]), this.diagramView._explicitlySet = new Set([
|
|
5169
|
+
"tables",
|
|
5170
|
+
"stickyNotes",
|
|
5171
|
+
"tableGroups",
|
|
5172
|
+
"schemas"
|
|
5173
|
+
]), [];
|
|
5174
|
+
}
|
|
5175
|
+
let [j] = partition_default(r.body, (r) => r instanceof ElementDeclarationNode), M = /* @__PURE__ */ new Set();
|
|
5176
|
+
for (let r of j) {
|
|
5177
|
+
let j = r.type?.value.toLowerCase();
|
|
5178
|
+
j && M.add(j), r.body instanceof BlockExpressionNode && this.interpretSubBlock(r.body, j);
|
|
5179
|
+
}
|
|
5180
|
+
let N = this.diagramView.visibleEntities;
|
|
5181
|
+
return (M.has("tables") && N.tables !== null || M.has("tablegroups") && N.tableGroups !== null || M.has("schemas") && N.schemas !== null) && (M.has("tables") || (N.tables = []), M.has("tablegroups") || (N.tableGroups = []), M.has("schemas") || (N.schemas = [])), M.has("tables") && this.diagramView._explicitlySet.add("tables"), M.has("tablegroups") && this.diagramView._explicitlySet.add("tableGroups"), M.has("schemas") && this.diagramView._explicitlySet.add("schemas"), M.has("notes") && this.diagramView._explicitlySet.add("stickyNotes"), [];
|
|
5182
|
+
}
|
|
5183
|
+
interpretSubBlock(r, j) {
|
|
5184
|
+
if (!j) return;
|
|
5185
|
+
if (r.body.some((r) => r instanceof FunctionApplicationNode && isWildcardExpression(r.callee))) {
|
|
5186
|
+
switch (j) {
|
|
5187
|
+
case "tables":
|
|
5188
|
+
this.diagramView.visibleEntities.tables = [], this.diagramView._explicitWildcards.add("tables");
|
|
5189
|
+
break;
|
|
5190
|
+
case "notes":
|
|
5191
|
+
this.diagramView.visibleEntities.stickyNotes = [], this.diagramView._explicitWildcards.add("stickyNotes");
|
|
5192
|
+
break;
|
|
5193
|
+
case "tablegroups":
|
|
5194
|
+
this.diagramView.visibleEntities.tableGroups = [], this.diagramView._explicitWildcards.add("tableGroups");
|
|
5195
|
+
break;
|
|
5196
|
+
case "schemas":
|
|
5197
|
+
this.diagramView.visibleEntities.schemas = [], this.diagramView._explicitWildcards.add("schemas");
|
|
5198
|
+
break;
|
|
5199
|
+
}
|
|
5200
|
+
return;
|
|
5201
|
+
}
|
|
5202
|
+
if (r.body.length === 0) return;
|
|
5203
|
+
let M = [];
|
|
5204
|
+
for (let j of r.body) {
|
|
5205
|
+
if (!(j instanceof FunctionApplicationNode)) continue;
|
|
5206
|
+
let r = extractReferee(j.callee);
|
|
5207
|
+
if (r?.declaration instanceof ElementDeclarationNode) {
|
|
5208
|
+
let j = destructureComplexVariable(r.declaration.name).unwrap_or([]);
|
|
5209
|
+
if (j.length > 0) {
|
|
5210
|
+
let r = j[j.length - 1], N = j.length > 1 ? j.slice(0, -1).join(".") : DEFAULT_SCHEMA_NAME;
|
|
5211
|
+
M.push({
|
|
5212
|
+
name: r,
|
|
5213
|
+
schemaName: N
|
|
5214
|
+
});
|
|
5215
|
+
continue;
|
|
5216
|
+
}
|
|
5217
|
+
}
|
|
5218
|
+
let N = destructureComplexVariable(j.callee).unwrap_or([]);
|
|
5219
|
+
if (N.length === 0) continue;
|
|
5220
|
+
let P = N[N.length - 1], F = N.length > 1 ? N[0] : DEFAULT_SCHEMA_NAME;
|
|
5221
|
+
M.push({
|
|
5222
|
+
name: P,
|
|
5223
|
+
schemaName: F
|
|
5224
|
+
});
|
|
5225
|
+
}
|
|
5226
|
+
switch (j) {
|
|
5227
|
+
case "tables":
|
|
5228
|
+
this.diagramView.visibleEntities.tables = M.length > 0 ? M : null;
|
|
5229
|
+
break;
|
|
5230
|
+
case "notes":
|
|
5231
|
+
this.diagramView.visibleEntities.stickyNotes = M.length > 0 ? M.map((r) => ({ name: r.name })) : null;
|
|
5232
|
+
break;
|
|
5233
|
+
case "tablegroups":
|
|
5234
|
+
this.diagramView.visibleEntities.tableGroups = M.length > 0 ? M.map((r) => ({ name: r.name })) : null;
|
|
5235
|
+
break;
|
|
5236
|
+
case "schemas":
|
|
5237
|
+
this.diagramView.visibleEntities.schemas = M.length > 0 ? M.map((r) => ({ name: r.name })) : null;
|
|
5238
|
+
break;
|
|
5239
|
+
}
|
|
5240
|
+
}
|
|
4913
5241
|
}, DIALECT_INTEGER_TYPES = {
|
|
4914
5242
|
mysql: new Set([
|
|
4915
5243
|
"int",
|
|
@@ -9014,6 +9342,16 @@ function processColumnInDb(r) {
|
|
|
9014
9342
|
}))
|
|
9015
9343
|
};
|
|
9016
9344
|
}
|
|
9345
|
+
var WILDCARD_EXPAND_ENTITIES = new Set(["tableGroups"]);
|
|
9346
|
+
function expandDiagramViewWildcards(r) {
|
|
9347
|
+
if (r.diagramViews) for (let j of r.diagramViews.values()) {
|
|
9348
|
+
let M = j.visibleEntities, N = j._explicitWildcards, P = j._explicitlySet;
|
|
9349
|
+
!N || !P || (WILDCARD_EXPAND_ENTITIES.has("tables") && N.has("tables") && M.tables && M.tables.length === 0 && (P.has("tableGroups") || P.has("schemas") || (M.tables = Array.from(r.tables.values()).map((r) => ({
|
|
9350
|
+
name: r.name,
|
|
9351
|
+
schemaName: r.schemaName || "public"
|
|
9352
|
+
})))), WILDCARD_EXPAND_ENTITIES.has("tableGroups") && N.has("tableGroups") && M.tableGroups && M.tableGroups.length === 0 && (P.has("tables") || P.has("schemas") || (M.tableGroups = Array.from(r.tableGroups.values()).map((r) => ({ name: r.name })))), WILDCARD_EXPAND_ENTITIES.has("stickyNotes") && N.has("stickyNotes") && M.stickyNotes && M.stickyNotes.length === 0 && (M.stickyNotes = Array.from(r.notes.values()).map((r) => ({ name: r.name }))), WILDCARD_EXPAND_ENTITIES.has("schemas") && N.has("schemas") && M.schemas && M.schemas.length === 0 && (P.has("tables") || P.has("tableGroups") || (M.schemas = [...new Set(Array.from(r.tables.values()).map((r) => r.schemaName || "public"))].map((r) => ({ name: r })))), delete j._explicitWildcards, delete j._explicitlySet);
|
|
9353
|
+
}
|
|
9354
|
+
}
|
|
9017
9355
|
function convertEnvToDb(r) {
|
|
9018
9356
|
let j = [];
|
|
9019
9357
|
for (let [M, N] of r.records) {
|
|
@@ -9045,7 +9383,8 @@ function convertEnvToDb(r) {
|
|
|
9045
9383
|
aliases: r.aliases,
|
|
9046
9384
|
project: Array.from(r.project.values())[0] || {},
|
|
9047
9385
|
tablePartials: Array.from(r.tablePartials.values()).map(processColumnInDb),
|
|
9048
|
-
records: j
|
|
9386
|
+
records: j,
|
|
9387
|
+
diagramViews: r.diagramViews ? Array.from(r.diagramViews.values()) : []
|
|
9049
9388
|
};
|
|
9050
9389
|
}
|
|
9051
9390
|
var Interpreter = class {
|
|
@@ -9065,7 +9404,8 @@ var Interpreter = class {
|
|
|
9065
9404
|
records: /* @__PURE__ */ new Map(),
|
|
9066
9405
|
recordsElements: [],
|
|
9067
9406
|
cachedMergedTables: /* @__PURE__ */ new Map(),
|
|
9068
|
-
source: r.source
|
|
9407
|
+
source: r.source,
|
|
9408
|
+
diagramViews: /* @__PURE__ */ new Map()
|
|
9069
9409
|
};
|
|
9070
9410
|
}
|
|
9071
9411
|
interpret() {
|
|
@@ -9078,6 +9418,7 @@ var Interpreter = class {
|
|
|
9078
9418
|
case ElementKind.TablePartial: return new TablePartialInterpreter(r, this.env).interpret();
|
|
9079
9419
|
case ElementKind.Enum: return new EnumInterpreter(r, this.env).interpret();
|
|
9080
9420
|
case ElementKind.Project: return new ProjectInterpreter(r, this.env).interpret();
|
|
9421
|
+
case ElementKind.DiagramView: return new DiagramViewInterpreter(r, this.env).interpret();
|
|
9081
9422
|
case ElementKind.Records: return this.env.recordsElements.push(r), [];
|
|
9082
9423
|
default: return [];
|
|
9083
9424
|
}
|
|
@@ -9086,7 +9427,7 @@ var Interpreter = class {
|
|
|
9086
9427
|
let M = new RecordsInterpreter(this.env).interpret(this.env.recordsElements);
|
|
9087
9428
|
r.push(...M.getErrors()), j.push(...M.getWarnings());
|
|
9088
9429
|
}
|
|
9089
|
-
return new Report(convertEnvToDb(this.env), r, j);
|
|
9430
|
+
return expandDiagramViewWildcards(this.env), new Report(convertEnvToDb(this.env), r, j);
|
|
9090
9431
|
}
|
|
9091
9432
|
};
|
|
9092
9433
|
let CompletionItemKind = /* @__PURE__ */ function(r) {
|
|
@@ -9606,6 +9947,11 @@ function suggestInSubField(r, j, M) {
|
|
|
9606
9947
|
return r.container.token(j).token?.kind === SyntaxTokenKind.COLON && shouldPrependSpace(r.container.token(j).token, j) ? prependSpace(M) : M;
|
|
9607
9948
|
}
|
|
9608
9949
|
case ScopeKind.TABLEGROUP: return suggestInTableGroupField(r);
|
|
9950
|
+
case ScopeKind.DIAGRAMVIEW: return suggestInDiagramViewField();
|
|
9951
|
+
case ScopeKind.CUSTOM: {
|
|
9952
|
+
let M = r.container.element(j);
|
|
9953
|
+
return M instanceof ElementDeclarationNode && M.parent instanceof ElementDeclarationNode && M.parent.type?.value.toLowerCase() === "diagramview" ? suggestInDiagramViewSubBlock(r, j) : noSuggestions();
|
|
9954
|
+
}
|
|
9609
9955
|
default: return noSuggestions();
|
|
9610
9956
|
}
|
|
9611
9957
|
}
|
|
@@ -9617,7 +9963,8 @@ function suggestTopLevelElementType() {
|
|
|
9617
9963
|
"Project",
|
|
9618
9964
|
"Ref",
|
|
9619
9965
|
"TablePartial",
|
|
9620
|
-
"Records"
|
|
9966
|
+
"Records",
|
|
9967
|
+
"DiagramView"
|
|
9621
9968
|
].map((r) => ({
|
|
9622
9969
|
label: r,
|
|
9623
9970
|
insertText: r,
|
|
@@ -9724,6 +10071,82 @@ function suggestInTableGroupField(r) {
|
|
|
9724
10071
|
range: void 0
|
|
9725
10072
|
}))] };
|
|
9726
10073
|
}
|
|
10074
|
+
function suggestInDiagramViewField() {
|
|
10075
|
+
return { suggestions: [...[
|
|
10076
|
+
"Tables",
|
|
10077
|
+
"TableGroups",
|
|
10078
|
+
"Notes",
|
|
10079
|
+
"Schemas"
|
|
10080
|
+
].map((r) => ({
|
|
10081
|
+
label: r,
|
|
10082
|
+
insertText: r,
|
|
10083
|
+
insertTextRules: CompletionItemInsertTextRule.KeepWhitespace,
|
|
10084
|
+
kind: CompletionItemKind.Keyword,
|
|
10085
|
+
range: void 0
|
|
10086
|
+
})), {
|
|
10087
|
+
label: "*",
|
|
10088
|
+
insertText: "*",
|
|
10089
|
+
insertTextRules: CompletionItemInsertTextRule.KeepWhitespace,
|
|
10090
|
+
kind: CompletionItemKind.Keyword,
|
|
10091
|
+
range: void 0
|
|
10092
|
+
}] };
|
|
10093
|
+
}
|
|
10094
|
+
function suggestInDiagramViewSubBlock(r, j) {
|
|
10095
|
+
let M = r.container.element(j);
|
|
10096
|
+
if (!(M instanceof ElementDeclarationNode)) return noSuggestions();
|
|
10097
|
+
let N = M.type?.value.toLowerCase(), P = {
|
|
10098
|
+
label: "*",
|
|
10099
|
+
insertText: "*",
|
|
10100
|
+
insertTextRules: CompletionItemInsertTextRule.KeepWhitespace,
|
|
10101
|
+
kind: CompletionItemKind.Keyword,
|
|
10102
|
+
range: void 0
|
|
10103
|
+
};
|
|
10104
|
+
switch (N) {
|
|
10105
|
+
case "tables": return { suggestions: [P, ...addQuoteToSuggestionIfNeeded({ suggestions: [...r.parse.publicSymbolTable().entries()].flatMap(([r]) => {
|
|
10106
|
+
let j = destructureIndex(r).unwrap_or(void 0);
|
|
10107
|
+
if (j === void 0) return [];
|
|
10108
|
+
let { kind: M, name: N } = j;
|
|
10109
|
+
return M !== SymbolKind.Table && M !== SymbolKind.Schema ? [] : {
|
|
10110
|
+
label: N,
|
|
10111
|
+
insertText: N,
|
|
10112
|
+
insertTextRules: CompletionItemInsertTextRule.KeepWhitespace,
|
|
10113
|
+
kind: pickCompletionItemKind(M),
|
|
10114
|
+
range: void 0
|
|
10115
|
+
};
|
|
10116
|
+
}) }).suggestions] };
|
|
10117
|
+
case "tablegroups": return { suggestions: [P, ...addQuoteToSuggestionIfNeeded({ suggestions: [...r.parse.publicSymbolTable().entries()].flatMap(([r]) => {
|
|
10118
|
+
let j = destructureIndex(r).unwrap_or(void 0);
|
|
10119
|
+
if (j === void 0) return [];
|
|
10120
|
+
let { kind: M, name: N } = j;
|
|
10121
|
+
return M === SymbolKind.TableGroup ? {
|
|
10122
|
+
label: N,
|
|
10123
|
+
insertText: N,
|
|
10124
|
+
insertTextRules: CompletionItemInsertTextRule.KeepWhitespace,
|
|
10125
|
+
kind: pickCompletionItemKind(M),
|
|
10126
|
+
range: void 0
|
|
10127
|
+
} : [];
|
|
10128
|
+
}) }).suggestions] };
|
|
10129
|
+
case "schemas": {
|
|
10130
|
+
let j = /* @__PURE__ */ new Set(), M = r.parse.ast();
|
|
10131
|
+
for (let r of M?.body || []) if (r instanceof ElementDeclarationNode && r.name instanceof InfixExpressionNode && r.name.op?.value === ".") {
|
|
10132
|
+
let M = destructureMemberAccessExpression(r.name).unwrap_or([]);
|
|
10133
|
+
if (M.length >= 2) {
|
|
10134
|
+
let r = extractVariableFromExpression(M[0]).unwrap_or("");
|
|
10135
|
+
r && j.add(r);
|
|
10136
|
+
}
|
|
10137
|
+
}
|
|
10138
|
+
return { suggestions: [P, ...[...j].map((r) => ({
|
|
10139
|
+
label: r,
|
|
10140
|
+
insertText: r,
|
|
10141
|
+
insertTextRules: CompletionItemInsertTextRule.KeepWhitespace,
|
|
10142
|
+
kind: CompletionItemKind.Module,
|
|
10143
|
+
range: void 0
|
|
10144
|
+
}))] };
|
|
10145
|
+
}
|
|
10146
|
+
case "notes": return { suggestions: [P] };
|
|
10147
|
+
default: return noSuggestions();
|
|
10148
|
+
}
|
|
10149
|
+
}
|
|
9727
10150
|
function suggestInIndex(r, j) {
|
|
9728
10151
|
return suggestColumnNameInIndexes(r, j);
|
|
9729
10152
|
}
|
|
@@ -9854,6 +10277,200 @@ var DBMLDefinitionProvider = class {
|
|
|
9854
10277
|
getSeverityValue(r) {
|
|
9855
10278
|
return r === "error" ? MarkerSeverity.Error : MarkerSeverity.Warning;
|
|
9856
10279
|
}
|
|
10280
|
+
}, dbmlMonarchTokensProvider = {
|
|
10281
|
+
tokenPostfix: ".dbml",
|
|
10282
|
+
brackets: [
|
|
10283
|
+
{
|
|
10284
|
+
open: "[",
|
|
10285
|
+
close: "]",
|
|
10286
|
+
token: "delimiter.square"
|
|
10287
|
+
},
|
|
10288
|
+
{
|
|
10289
|
+
open: "(",
|
|
10290
|
+
close: ")",
|
|
10291
|
+
token: "delimiter.parenthesis"
|
|
10292
|
+
},
|
|
10293
|
+
{
|
|
10294
|
+
open: "{",
|
|
10295
|
+
close: "}",
|
|
10296
|
+
token: "delimiter.curly"
|
|
10297
|
+
}
|
|
10298
|
+
],
|
|
10299
|
+
decls: [
|
|
10300
|
+
"project",
|
|
10301
|
+
"tablegroup",
|
|
10302
|
+
"table",
|
|
10303
|
+
"enum",
|
|
10304
|
+
"ref",
|
|
10305
|
+
"note",
|
|
10306
|
+
"tablepartial",
|
|
10307
|
+
"records",
|
|
10308
|
+
"checks",
|
|
10309
|
+
"diagramview"
|
|
10310
|
+
],
|
|
10311
|
+
dataTypes: /* @__PURE__ */ "TINYINT.SMALLINT.MEDIUMINT.INT.INTEGER.BIGINT.FLOAT.DOUBLE.DECIMAL.DEC.BIT.BOOL.REAL.MONEY.BINARY_FLOAT.BINARY_DOUBLE.smallmoney.ENUM.CHAR.BINARY.VARCHAR.VARBINARY.TINYBLOB.TINYTEXT.BLOB.TEXT.MEDIUMBLOB.MEDIUMTEXT.LONGBLOB.LONGTEXT.SET.INET6.UUID.NVARCHAR.NCHAR.NTEXT.IMAGE.VARCHAR2.NVARCHAR2.DATE.TIME.DATETIME.DATETIME2.TIMESTAMP.YEAR.smalldatetime.datetimeoffset.XML.sql_variant.uniqueidentifier.CURSOR.BFILE.CLOB.NCLOB.RAW".split("."),
|
|
10312
|
+
settings: [
|
|
10313
|
+
"indexes",
|
|
10314
|
+
"ref",
|
|
10315
|
+
"note",
|
|
10316
|
+
"headercolor",
|
|
10317
|
+
"pk",
|
|
10318
|
+
"null",
|
|
10319
|
+
"increment",
|
|
10320
|
+
"unique",
|
|
10321
|
+
"default",
|
|
10322
|
+
"note",
|
|
10323
|
+
"primary",
|
|
10324
|
+
"key",
|
|
10325
|
+
"name",
|
|
10326
|
+
"as",
|
|
10327
|
+
"color",
|
|
10328
|
+
"check",
|
|
10329
|
+
"tables",
|
|
10330
|
+
"tablegroups",
|
|
10331
|
+
"notes",
|
|
10332
|
+
"schemas"
|
|
10333
|
+
],
|
|
10334
|
+
symbols: /[=><!~?:&|+\-\/\^%]+/,
|
|
10335
|
+
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
|
|
10336
|
+
newline: /[\r\n]/,
|
|
10337
|
+
digits: /\d+(_+\d+)*/,
|
|
10338
|
+
idtf: /[\p{L}0-9_]+/u,
|
|
10339
|
+
ignoreCase: !0,
|
|
10340
|
+
unicode: !0,
|
|
10341
|
+
tokenizer: {
|
|
10342
|
+
root: [
|
|
10343
|
+
[/[{}\[\]\(\)]/, "@bracket"],
|
|
10344
|
+
[/[,.:]/, "delimiter"],
|
|
10345
|
+
{ include: "@numbers" },
|
|
10346
|
+
{ include: "common" }
|
|
10347
|
+
],
|
|
10348
|
+
common: [
|
|
10349
|
+
{ include: "@whitespace" },
|
|
10350
|
+
[/[<>-]/, "operators"],
|
|
10351
|
+
[/\*/, "keyword.wildcard"],
|
|
10352
|
+
[/("[^"\\]*(?:\\.[^"\\]*)*")(\s+)(@idtf(?:\.@idtf*)*)/, [
|
|
10353
|
+
"string",
|
|
10354
|
+
"",
|
|
10355
|
+
"keyword"
|
|
10356
|
+
]],
|
|
10357
|
+
[/"([^"\\]|\\.)*$/, ""],
|
|
10358
|
+
[/'([^'\\]|\\.)*$/, ""],
|
|
10359
|
+
[
|
|
10360
|
+
/"/,
|
|
10361
|
+
"string",
|
|
10362
|
+
"@string_double"
|
|
10363
|
+
],
|
|
10364
|
+
[
|
|
10365
|
+
/'/,
|
|
10366
|
+
"string",
|
|
10367
|
+
"@string_single"
|
|
10368
|
+
],
|
|
10369
|
+
[
|
|
10370
|
+
/`/,
|
|
10371
|
+
"string",
|
|
10372
|
+
"@string_backtick"
|
|
10373
|
+
],
|
|
10374
|
+
[/(@idtf)(\s+)(@idtf(?:\.@idtf)*)/, { cases: {
|
|
10375
|
+
"$1@decls": [
|
|
10376
|
+
"keyword",
|
|
10377
|
+
"",
|
|
10378
|
+
"identifier"
|
|
10379
|
+
],
|
|
10380
|
+
"$1==not": { cases: {
|
|
10381
|
+
"$3==null": [
|
|
10382
|
+
"keyword",
|
|
10383
|
+
"",
|
|
10384
|
+
"keyword"
|
|
10385
|
+
],
|
|
10386
|
+
"@default": [
|
|
10387
|
+
"identifier",
|
|
10388
|
+
"",
|
|
10389
|
+
"identifier"
|
|
10390
|
+
]
|
|
10391
|
+
} },
|
|
10392
|
+
"@default": [
|
|
10393
|
+
"identifier",
|
|
10394
|
+
"",
|
|
10395
|
+
"keyword"
|
|
10396
|
+
]
|
|
10397
|
+
} }],
|
|
10398
|
+
[/@idtf/, { cases: {
|
|
10399
|
+
"@dataTypes": "keyword",
|
|
10400
|
+
"@decls": "keyword",
|
|
10401
|
+
"@settings": "keyword",
|
|
10402
|
+
"@default": "identifier"
|
|
10403
|
+
} }]
|
|
10404
|
+
],
|
|
10405
|
+
numbers: [
|
|
10406
|
+
[/0[xX][0-9a-fA-F]*/, "number"],
|
|
10407
|
+
[/[$][+-]*\d*(\.\d*)?/, "number"],
|
|
10408
|
+
[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"],
|
|
10409
|
+
[/#([0-9A-F]{3}){1,2}/, "number.hex"]
|
|
10410
|
+
],
|
|
10411
|
+
string_double: [
|
|
10412
|
+
[/[^\\"]+/, "string"],
|
|
10413
|
+
[/@escapes/, "string.escape"],
|
|
10414
|
+
[/\\./, "string.escape.invalid"],
|
|
10415
|
+
[
|
|
10416
|
+
/"/,
|
|
10417
|
+
"string",
|
|
10418
|
+
"@pop"
|
|
10419
|
+
]
|
|
10420
|
+
],
|
|
10421
|
+
string_single: [
|
|
10422
|
+
[/[^\\']+/, "string"],
|
|
10423
|
+
[/@escapes/, "string.escape"],
|
|
10424
|
+
[/\\./, "string.escape.invalid"],
|
|
10425
|
+
[
|
|
10426
|
+
/'/,
|
|
10427
|
+
"string",
|
|
10428
|
+
"@pop"
|
|
10429
|
+
]
|
|
10430
|
+
],
|
|
10431
|
+
string_backtick: [
|
|
10432
|
+
[/[^\\`$]+/, "string"],
|
|
10433
|
+
[/@escapes/, "string.escape"],
|
|
10434
|
+
[
|
|
10435
|
+
/`/,
|
|
10436
|
+
"string",
|
|
10437
|
+
"@pop"
|
|
10438
|
+
]
|
|
10439
|
+
],
|
|
10440
|
+
endTripleQuotesString: [
|
|
10441
|
+
[/\\'/, "string"],
|
|
10442
|
+
[
|
|
10443
|
+
/(.*[^\\])?(\\\\)*'''/,
|
|
10444
|
+
"string",
|
|
10445
|
+
"@popall"
|
|
10446
|
+
],
|
|
10447
|
+
[/.*$/, "string"]
|
|
10448
|
+
],
|
|
10449
|
+
whitespace: [
|
|
10450
|
+
[/[ \t\r\n]+/, ""],
|
|
10451
|
+
[
|
|
10452
|
+
/\/\*/,
|
|
10453
|
+
"comment",
|
|
10454
|
+
"@comment"
|
|
10455
|
+
],
|
|
10456
|
+
[/\/\/.*$/, "comment"],
|
|
10457
|
+
[/'''(.*[^\\])?(\\\\)*'''/, "string"],
|
|
10458
|
+
[
|
|
10459
|
+
/'''.*$/,
|
|
10460
|
+
"string",
|
|
10461
|
+
"@endTripleQuotesString"
|
|
10462
|
+
]
|
|
10463
|
+
],
|
|
10464
|
+
comment: [
|
|
10465
|
+
[/[^\/*]+/, "comment"],
|
|
10466
|
+
[
|
|
10467
|
+
/\*\//,
|
|
10468
|
+
"comment",
|
|
10469
|
+
"@pop"
|
|
10470
|
+
],
|
|
10471
|
+
[/[\/*]/, "comment"]
|
|
10472
|
+
]
|
|
10473
|
+
}
|
|
9857
10474
|
}, services_exports = /* @__PURE__ */ __export({
|
|
9858
10475
|
CompletionItemInsertTextRule: () => CompletionItemInsertTextRule,
|
|
9859
10476
|
CompletionItemKind: () => CompletionItemKind,
|
|
@@ -9861,7 +10478,8 @@ var DBMLDefinitionProvider = class {
|
|
|
9861
10478
|
DBMLDefinitionProvider: () => DBMLDefinitionProvider,
|
|
9862
10479
|
DBMLDiagnosticsProvider: () => DBMLDiagnosticsProvider,
|
|
9863
10480
|
DBMLReferencesProvider: () => DBMLReferencesProvider,
|
|
9864
|
-
MarkerSeverity: () => MarkerSeverity
|
|
10481
|
+
MarkerSeverity: () => MarkerSeverity,
|
|
10482
|
+
dbmlMonarchTokensProvider: () => dbmlMonarchTokensProvider
|
|
9865
10483
|
}, 1);
|
|
9866
10484
|
function ast() {
|
|
9867
10485
|
return this.parse._().getValue().ast;
|
|
@@ -9960,7 +10578,7 @@ function containerScope(r) {
|
|
|
9960
10578
|
return this.container.element(r)?.symbol?.symbolTable;
|
|
9961
10579
|
}
|
|
9962
10580
|
let ScopeKind = /* @__PURE__ */ function(r) {
|
|
9963
|
-
return r[r.TABLE = 0] = "TABLE", r[r.ENUM = 1] = "ENUM", r[r.TABLEGROUP = 2] = "TABLEGROUP", r[r.INDEXES = 3] = "INDEXES", r[r.NOTE = 4] = "NOTE", r[r.REF = 5] = "REF", r[r.PROJECT = 6] = "PROJECT", r[r.CUSTOM = 7] = "CUSTOM", r[r.TOPLEVEL = 8] = "TOPLEVEL", r[r.TABLEPARTIAL = 9] = "TABLEPARTIAL", r[r.CHECKS = 10] = "CHECKS", r[r.RECORDS = 11] = "RECORDS", r;
|
|
10581
|
+
return r[r.TABLE = 0] = "TABLE", r[r.ENUM = 1] = "ENUM", r[r.TABLEGROUP = 2] = "TABLEGROUP", r[r.INDEXES = 3] = "INDEXES", r[r.NOTE = 4] = "NOTE", r[r.REF = 5] = "REF", r[r.PROJECT = 6] = "PROJECT", r[r.CUSTOM = 7] = "CUSTOM", r[r.TOPLEVEL = 8] = "TOPLEVEL", r[r.TABLEPARTIAL = 9] = "TABLEPARTIAL", r[r.CHECKS = 10] = "CHECKS", r[r.RECORDS = 11] = "RECORDS", r[r.DIAGRAMVIEW = 12] = "DIAGRAMVIEW", r;
|
|
9964
10582
|
}({});
|
|
9965
10583
|
function containerScopeKind(r) {
|
|
9966
10584
|
let j = this.container.element(r);
|
|
@@ -9976,6 +10594,7 @@ function containerScopeKind(r) {
|
|
|
9976
10594
|
case "tablepartial": return ScopeKind.TABLEPARTIAL;
|
|
9977
10595
|
case "checks": return ScopeKind.CHECKS;
|
|
9978
10596
|
case "records": return ScopeKind.RECORDS;
|
|
10597
|
+
case "diagramview": return ScopeKind.DIAGRAMVIEW;
|
|
9979
10598
|
default: return ScopeKind.CUSTOM;
|
|
9980
10599
|
}
|
|
9981
10600
|
}
|
|
@@ -10170,4 +10789,78 @@ var Compiler = class {
|
|
|
10170
10789
|
};
|
|
10171
10790
|
}
|
|
10172
10791
|
};
|
|
10173
|
-
|
|
10792
|
+
function findDiagramViewBlocks(r) {
|
|
10793
|
+
let j = [], M = new Lexer(r).lex();
|
|
10794
|
+
if (M.getErrors().length > 0) return j;
|
|
10795
|
+
let N = new Parser(r, M.getValue(), new SyntaxNodeIdGenerator()).parse();
|
|
10796
|
+
if (N.getErrors().length > 0) return j;
|
|
10797
|
+
let P = N.getValue().ast;
|
|
10798
|
+
for (let r of P.body) if (r.type?.value === "DiagramView") {
|
|
10799
|
+
let M = r.name ? destructureComplexVariable(r.name).unwrap_or([]) : [], N = M.length > 0 ? M[M.length - 1] : "";
|
|
10800
|
+
j.push({
|
|
10801
|
+
name: N,
|
|
10802
|
+
startIndex: r.start,
|
|
10803
|
+
endIndex: r.end
|
|
10804
|
+
});
|
|
10805
|
+
}
|
|
10806
|
+
return j;
|
|
10807
|
+
}
|
|
10808
|
+
function needsQuoting(r) {
|
|
10809
|
+
return !/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r);
|
|
10810
|
+
}
|
|
10811
|
+
function quoteName(r) {
|
|
10812
|
+
return needsQuoting(r) ? `"${r.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")}"` : r;
|
|
10813
|
+
}
|
|
10814
|
+
function generateDiagramViewBlock(r, j) {
|
|
10815
|
+
let M = [`DiagramView ${quoteName(r)} {`];
|
|
10816
|
+
if (j?.tables !== void 0 && j.tables !== null) if (j.tables.length === 0) M.push(" Tables { * }");
|
|
10817
|
+
else {
|
|
10818
|
+
let r = j.tables.map((r) => r.schemaName === "public" ? r.name : `${r.schemaName}.${r.name}`);
|
|
10819
|
+
M.push(" Tables {"), r.forEach((r) => M.push(` ${r}`)), M.push(" }");
|
|
10820
|
+
}
|
|
10821
|
+
return j?.stickyNotes !== void 0 && (j.stickyNotes === null || (j.stickyNotes.length === 0 ? M.push(" Notes { * }") : (M.push(" Notes {"), j.stickyNotes.forEach((r) => M.push(` ${r.name}`)), M.push(" }")))), j?.tableGroups !== void 0 && (j.tableGroups === null || (j.tableGroups.length === 0 ? M.push(" TableGroups { * }") : (M.push(" TableGroups {"), j.tableGroups.forEach((r) => M.push(` ${r.name}`)), M.push(" }")))), j?.schemas !== void 0 && (j.schemas === null || (j.schemas.length === 0 ? M.push(" Schemas { * }") : (M.push(" Schemas {"), j.schemas.forEach((r) => M.push(` ${r.name}`)), M.push(" }")))), M.push("}"), M.join("\n");
|
|
10822
|
+
}
|
|
10823
|
+
function syncDiagramView(r, j) {
|
|
10824
|
+
let M = r;
|
|
10825
|
+
for (let r of j) M = applyOperation(M, r);
|
|
10826
|
+
return { newDbml: M };
|
|
10827
|
+
}
|
|
10828
|
+
function applyOperation(r, j) {
|
|
10829
|
+
switch (j.operation) {
|
|
10830
|
+
case "create": return applyCreate(r, j);
|
|
10831
|
+
case "update": return applyUpdate(r, j, findDiagramViewBlocks(r));
|
|
10832
|
+
case "delete": return applyDelete(r, j, findDiagramViewBlocks(r));
|
|
10833
|
+
default: return r;
|
|
10834
|
+
}
|
|
10835
|
+
}
|
|
10836
|
+
function applyCreate(r, j) {
|
|
10837
|
+
let M = findDiagramViewBlocks(r);
|
|
10838
|
+
if (M.find((r) => r.name === j.name)) return applyUpdate(r, j, M);
|
|
10839
|
+
let N = generateDiagramViewBlock(j.name, j.visibleEntities);
|
|
10840
|
+
return r.trimEnd() + "\n\n" + N + "\n";
|
|
10841
|
+
}
|
|
10842
|
+
function applyUpdate(r, j, M) {
|
|
10843
|
+
let N = M.find((r) => r.name === j.name);
|
|
10844
|
+
if (!N) return r;
|
|
10845
|
+
let P = [];
|
|
10846
|
+
if (j.newName || j.visibleEntities) {
|
|
10847
|
+
let r = generateDiagramViewBlock(j.newName || j.name, j.visibleEntities);
|
|
10848
|
+
P.push({
|
|
10849
|
+
start: N.startIndex,
|
|
10850
|
+
end: N.endIndex,
|
|
10851
|
+
newText: r
|
|
10852
|
+
});
|
|
10853
|
+
}
|
|
10854
|
+
return applyTextEdits(r, P);
|
|
10855
|
+
}
|
|
10856
|
+
function applyDelete(r, j, M) {
|
|
10857
|
+
let N = M.find((r) => r.name === j.name);
|
|
10858
|
+
if (!N) return r;
|
|
10859
|
+
let P = r.split("\n"), F = 0, I = P.length - 1, L = 0;
|
|
10860
|
+
for (let r = 0; r < P.length; r++) {
|
|
10861
|
+
let j = L, M = L + P[r].length;
|
|
10862
|
+
j <= N.startIndex && N.startIndex <= M && (F = r), j <= N.endIndex && N.endIndex <= M && (I = r), L = M + 1;
|
|
10863
|
+
}
|
|
10864
|
+
return [...P.slice(0, F), ...P.slice(I + 1)].join("\n");
|
|
10865
|
+
}
|
|
10866
|
+
export { CompileError, CompileErrorCode, Compiler, ElementDeclarationNode, ElementKind, FALSY_VALUES, ProgramNode, ScopeKind, SyntaxNode, SyntaxNodeKind, SyntaxToken, SyntaxTokenKind, TRUTHY_VALUES, addDoubleQuoteIfNeeded, dbmlMonarchTokensProvider, escapeString, extractNumericLiteral, extractSignedNumber, formatRecordValue, getLengthTypeParam, getNumericTypeParams, getRecordValueType, isBinaryType, isBooleanType, isDateTimeType, isEmptyStringLiteral, isFloatType, isFunctionExpression, isIntegerType, isNullish, isNumericType, isSerialType, isStringType, isValidIdentifier, normalizeTypeName, services_exports as services, splitQualifiedIdentifier, syncDiagramView, tryExtractBoolean, tryExtractDateTime, tryExtractEnum, tryExtractInteger, tryExtractNumeric, tryExtractString, unescapeString, validateForeignKeys, validatePrimaryKey, validateUnique };
|