@dbml/parse 9.0.0-alpha.17 → 9.0.0-alpha.19

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.
@@ -5116,7 +5116,7 @@ function ef(e) {
5116
5116
  //#endregion
5117
5117
  //#region src/core/types/errors.ts
5118
5118
  var w = /* @__PURE__ */ function(e) {
5119
- return e[e.UNKNOWN_SYMBOL = 1e3] = "UNKNOWN_SYMBOL", e[e.UNEXPECTED_SYMBOL = 1001] = "UNEXPECTED_SYMBOL", e[e.UNEXPECTED_EOF = 1002] = "UNEXPECTED_EOF", e[e.UNEXPECTED_NEWLINE = 1003] = "UNEXPECTED_NEWLINE", e[e.UNKNOWN_TOKEN = 1004] = "UNKNOWN_TOKEN", e[e.UNEXPECTED_TOKEN = 1005] = "UNEXPECTED_TOKEN", e[e.UNEXPECTED_ELEMENT_DECLARATION = 1006] = "UNEXPECTED_ELEMENT_DECLARATION", e[e.MISSING_SPACES = 1007] = "MISSING_SPACES", e[e.UNKNOWN_PREFIX_OP = 1008] = "UNKNOWN_PREFIX_OP", e[e.INVALID_OPERAND = 1009] = "INVALID_OPERAND", e[e.EMPTY_ATTRIBUTE_NAME = 1010] = "EMPTY_ATTRIBUTE_NAME", e[e.INVALID_ESCAPE_SEQUENCE = 1011] = "INVALID_ESCAPE_SEQUENCE", e[e.INVALID_NAME = 3e3] = "INVALID_NAME", e[e.UNEXPECTED_NAME = 3001] = "UNEXPECTED_NAME", e[e.NAME_NOT_FOUND = 3002] = "NAME_NOT_FOUND", e[e.DUPLICATE_NAME = 3003] = "DUPLICATE_NAME", e[e.INVALID_ALIAS = 3004] = "INVALID_ALIAS", e[e.UNEXPECTED_ALIAS = 3005] = "UNEXPECTED_ALIAS", e[e.UNEXPECTED_SETTINGS = 3006] = "UNEXPECTED_SETTINGS", e[e.INVALID_SETTINGS = 3007] = "INVALID_SETTINGS", e[e.UNEXPECTED_SIMPLE_BODY = 3008] = "UNEXPECTED_SIMPLE_BODY", e[e.UNEXPECTED_COMPLEX_BODY = 3009] = "UNEXPECTED_COMPLEX_BODY", e[e.INVALID_TABLE_CONTEXT = 3010] = "INVALID_TABLE_CONTEXT", e[e.UNKNOWN_TABLE_SETTING = 3011] = "UNKNOWN_TABLE_SETTING", e[e.DUPLICATE_TABLE_SETTING = 3012] = "DUPLICATE_TABLE_SETTING", e[e.INVALID_TABLEGROUP_CONTEXT = 3013] = "INVALID_TABLEGROUP_CONTEXT", e[e.INVALID_TABLEGROUP_ELEMENT_NAME = 3014] = "INVALID_TABLEGROUP_ELEMENT_NAME", e[e.DUPLICATE_TABLEGROUP_ELEMENT_NAME = 3015] = "DUPLICATE_TABLEGROUP_ELEMENT_NAME", e[e.DUPLICATE_TABLEGROUP_FIELD_NAME = 3016] = "DUPLICATE_TABLEGROUP_FIELD_NAME", e[e.INVALID_TABLEGROUP_FIELD = 3017] = "INVALID_TABLEGROUP_FIELD", e[e.EMPTY_TABLE = 3018] = "EMPTY_TABLE", e[e.INVALID_COLUMN = 3019] = "INVALID_COLUMN", e[e.INVALID_COLUMN_NAME = 3020] = "INVALID_COLUMN_NAME", e[e.UNKNOWN_COLUMN_SETTING = 3021] = "UNKNOWN_COLUMN_SETTING", e[e.INVALID_COLUMN_TYPE = 3022] = "INVALID_COLUMN_TYPE", e[e.DUPLICATE_COLUMN_NAME = 3023] = "DUPLICATE_COLUMN_NAME", e[e.DUPLICATE_COLUMN_SETTING = 3024] = "DUPLICATE_COLUMN_SETTING", e[e.INVALID_COLUMN_SETTING_VALUE = 3025] = "INVALID_COLUMN_SETTING_VALUE", e[e.INVALID_ENUM_CONTEXT = 3026] = "INVALID_ENUM_CONTEXT", e[e.INVALID_ENUM_ELEMENT_NAME = 3027] = "INVALID_ENUM_ELEMENT_NAME", e[e.INVALID_ENUM_ELEMENT = 3028] = "INVALID_ENUM_ELEMENT", e[e.DUPLICATE_ENUM_ELEMENT_NAME = 3029] = "DUPLICATE_ENUM_ELEMENT_NAME", e[e.UNKNOWN_ENUM_ELEMENT_SETTING = 3030] = "UNKNOWN_ENUM_ELEMENT_SETTING", e[e.DUPLICATE_ENUM_ELEMENT_SETTING = 3031] = "DUPLICATE_ENUM_ELEMENT_SETTING", e[e.INVALID_ENUM_ELEMENT_SETTING = 3032] = "INVALID_ENUM_ELEMENT_SETTING", e[e.EMPTY_ENUM = 3033] = "EMPTY_ENUM", e[e.INVALID_REF_CONTEXT = 3034] = "INVALID_REF_CONTEXT", e[e.UNKNOWN_REF_SETTING = 3035] = "UNKNOWN_REF_SETTING", e[e.DUPLICATE_REF_SETTING = 3036] = "DUPLICATE_REF_SETTING", e[e.INVALID_REF_SETTING_VALUE = 3037] = "INVALID_REF_SETTING_VALUE", e[e.INVALID_REF_RELATIONSHIP = 3038] = "INVALID_REF_RELATIONSHIP", e[e.INVALID_REF_FIELD = 3039] = "INVALID_REF_FIELD", e[e.EMPTY_REF = 3040] = "EMPTY_REF", e[e.REF_REDEFINED = 3041] = "REF_REDEFINED", e[e.INVALID_DEP_CONTEXT = 3042] = "INVALID_DEP_CONTEXT", e[e.INVALID_DEP_FIELD = 3043] = "INVALID_DEP_FIELD", e[e.INVALID_NOTE_CONTEXT = 3044] = "INVALID_NOTE_CONTEXT", e[e.INVALID_NOTE = 3045] = "INVALID_NOTE", e[e.NOTE_REDEFINED = 3046] = "NOTE_REDEFINED", e[e.NOTE_CONTENT_REDEFINED = 3047] = "NOTE_CONTENT_REDEFINED", e[e.EMPTY_NOTE = 3048] = "EMPTY_NOTE", e[e.UNKNOWN_NOTE_SETTING = 3049] = "UNKNOWN_NOTE_SETTING", e[e.DUPLICATE_NOTE_SETTING = 3050] = "DUPLICATE_NOTE_SETTING", e[e.INVALID_NOTE_SETTING_VALUE = 3051] = "INVALID_NOTE_SETTING_VALUE", e[e.INVALID_INDEXES_CONTEXT = 3052] = "INVALID_INDEXES_CONTEXT", e[e.INVALID_INDEXES_FIELD = 3053] = "INVALID_INDEXES_FIELD", e[e.INVALID_INDEX = 3054] = "INVALID_INDEX", e[e.UNKNOWN_INDEX_SETTING = 3055] = "UNKNOWN_INDEX_SETTING", e[e.DUPLICATE_INDEX_SETTING = 3056] = "DUPLICATE_INDEX_SETTING", e[e.UNEXPECTED_INDEX_SETTING_VALUE = 3057] = "UNEXPECTED_INDEX_SETTING_VALUE", e[e.INVALID_INDEX_SETTING_VALUE = 3058] = "INVALID_INDEX_SETTING_VALUE", e[e.INVALID_PROJECT_CONTEXT = 3059] = "INVALID_PROJECT_CONTEXT", e[e.PROJECT_REDEFINED = 3060] = "PROJECT_REDEFINED", e[e.INVALID_PROJECT_FIELD = 3061] = "INVALID_PROJECT_FIELD", e[e.INVALID_CUSTOM_CONTEXT = 3062] = "INVALID_CUSTOM_CONTEXT", e[e.INVALID_CUSTOM_ELEMENT_VALUE = 3063] = "INVALID_CUSTOM_ELEMENT_VALUE", e[e.INVALID_ELEMENT_IN_SIMPLE_BODY = 3064] = "INVALID_ELEMENT_IN_SIMPLE_BODY", e[e.INVALID_TABLE_PARTIAL_CONTEXT = 3065] = "INVALID_TABLE_PARTIAL_CONTEXT", e[e.INVALID_TABLE_PARTIAL_ELEMENT_NAME = 3066] = "INVALID_TABLE_PARTIAL_ELEMENT_NAME", e[e.INVALID_TABLE_PARTIAL_SETTING_VALUE = 3067] = "INVALID_TABLE_PARTIAL_SETTING_VALUE", e[e.DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME = 3068] = "DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME", e[e.DUPLICATE_TABLE_PARTIAL_SETTING = 3069] = "DUPLICATE_TABLE_PARTIAL_SETTING", e[e.INVALID_TABLE_PARTIAL_INJECTION = 3070] = "INVALID_TABLE_PARTIAL_INJECTION", e[e.INVALID_TABLE_PARTIAL_INJECTION_OP = 3071] = "INVALID_TABLE_PARTIAL_INJECTION_OP", e[e.INVALID_TABLE_PARTIAL_INJECTION_NAME = 3072] = "INVALID_TABLE_PARTIAL_INJECTION_NAME", e[e.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME = 3073] = "DUPLICATE_TABLE_PARTIAL_INJECTION_NAME", e[e.UNKNOWN_TABLE_PARTIAL_SETTING = 3074] = "UNKNOWN_TABLE_PARTIAL_SETTING", e[e.INVALID_TABLE_SETTING_VALUE = 3075] = "INVALID_TABLE_SETTING_VALUE", e[e.INVALID_CHECKS_CONTEXT = 3076] = "INVALID_CHECKS_CONTEXT", e[e.INVALID_CHECKS_FIELD = 3077] = "INVALID_CHECKS_FIELD", e[e.INVALID_CHECK = 3078] = "INVALID_CHECK", e[e.UNKNOWN_CHECK_SETTING = 3079] = "UNKNOWN_CHECK_SETTING", e[e.DUPLICATE_CHECK_SETTING = 3080] = "DUPLICATE_CHECK_SETTING", e[e.INVALID_CHECK_SETTING_VALUE = 3081] = "INVALID_CHECK_SETTING_VALUE", e[e.INVALID_RECORDS_CONTEXT = 3082] = "INVALID_RECORDS_CONTEXT", e[e.INVALID_RECORDS_NAME = 3083] = "INVALID_RECORDS_NAME", e[e.INVALID_RECORDS_FIELD = 3084] = "INVALID_RECORDS_FIELD", e[e.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS = 3085] = "DUPLICATE_COLUMN_REFERENCES_IN_RECORDS", e[e.DUPLICATE_RECORDS_FOR_TABLE = 3086] = "DUPLICATE_RECORDS_FOR_TABLE", e[e.INVALID_USE_CONTEXT = 3087] = "INVALID_USE_CONTEXT", e[e.INVALID_USE_SPECIFIER_KIND = 3088] = "INVALID_USE_SPECIFIER_KIND", e[e.INVALID_USE_SPECIFIER_NAME = 3089] = "INVALID_USE_SPECIFIER_NAME", e[e.INVALID_DIAGRAMVIEW_CONTEXT = 3090] = "INVALID_DIAGRAMVIEW_CONTEXT", e[e.DUPLICATE_DIAGRAMVIEW_NAME = 3091] = "DUPLICATE_DIAGRAMVIEW_NAME", e[e.INVALID_DIAGRAMVIEW_FIELD = 3092] = "INVALID_DIAGRAMVIEW_FIELD", e[e.DUPLICATE_DIAGRAMVIEW_FIELD = 3093] = "DUPLICATE_DIAGRAMVIEW_FIELD", e[e.BINDING_ERROR = 4e3] = "BINDING_ERROR", e[e.NONEXISTENT_MODULE = 4001] = "NONEXISTENT_MODULE", e[e.UNSUPPORTED = 5e3] = "UNSUPPORTED", e[e.CIRCULAR_REF = 5001] = "CIRCULAR_REF", e[e.SAME_ENDPOINT = 5002] = "SAME_ENDPOINT", e[e.DEP_SELF_LOOP = 5003] = "DEP_SELF_LOOP", e[e.DEP_MIXED_DOWNSTREAM_TABLES = 5004] = "DEP_MIXED_DOWNSTREAM_TABLES", e[e.DEP_DUPLICATE_DOWNSTREAM_TABLE = 5005] = "DEP_DUPLICATE_DOWNSTREAM_TABLE", e[e.UNEQUAL_FIELDS_BINARY_REF = 5006] = "UNEQUAL_FIELDS_BINARY_REF", e[e.CONFLICTING_SETTING = 5007] = "CONFLICTING_SETTING", e[e.TABLE_REAPPEAR_IN_TABLEGROUP = 5008] = "TABLE_REAPPEAR_IN_TABLEGROUP", e;
5119
+ return e[e.UNKNOWN_SYMBOL = 1e3] = "UNKNOWN_SYMBOL", e[e.UNEXPECTED_SYMBOL = 1001] = "UNEXPECTED_SYMBOL", e[e.UNEXPECTED_EOF = 1002] = "UNEXPECTED_EOF", e[e.UNEXPECTED_NEWLINE = 1003] = "UNEXPECTED_NEWLINE", e[e.UNKNOWN_TOKEN = 1004] = "UNKNOWN_TOKEN", e[e.UNEXPECTED_TOKEN = 1005] = "UNEXPECTED_TOKEN", e[e.UNEXPECTED_ELEMENT_DECLARATION = 1006] = "UNEXPECTED_ELEMENT_DECLARATION", e[e.MISSING_SPACES = 1007] = "MISSING_SPACES", e[e.UNKNOWN_PREFIX_OP = 1008] = "UNKNOWN_PREFIX_OP", e[e.INVALID_OPERAND = 1009] = "INVALID_OPERAND", e[e.EMPTY_ATTRIBUTE_NAME = 1010] = "EMPTY_ATTRIBUTE_NAME", e[e.INVALID_ESCAPE_SEQUENCE = 1011] = "INVALID_ESCAPE_SEQUENCE", e[e.INVALID_NAME = 3e3] = "INVALID_NAME", e[e.UNEXPECTED_NAME = 3001] = "UNEXPECTED_NAME", e[e.NAME_NOT_FOUND = 3002] = "NAME_NOT_FOUND", e[e.DUPLICATE_NAME = 3003] = "DUPLICATE_NAME", e[e.INVALID_ALIAS = 3004] = "INVALID_ALIAS", e[e.UNEXPECTED_ALIAS = 3005] = "UNEXPECTED_ALIAS", e[e.UNEXPECTED_SETTINGS = 3006] = "UNEXPECTED_SETTINGS", e[e.INVALID_SETTINGS = 3007] = "INVALID_SETTINGS", e[e.UNEXPECTED_SIMPLE_BODY = 3008] = "UNEXPECTED_SIMPLE_BODY", e[e.UNEXPECTED_COMPLEX_BODY = 3009] = "UNEXPECTED_COMPLEX_BODY", e[e.INVALID_TABLE_CONTEXT = 3010] = "INVALID_TABLE_CONTEXT", e[e.UNKNOWN_TABLE_SETTING = 3011] = "UNKNOWN_TABLE_SETTING", e[e.DUPLICATE_TABLE_SETTING = 3012] = "DUPLICATE_TABLE_SETTING", e[e.INVALID_TABLEGROUP_CONTEXT = 3013] = "INVALID_TABLEGROUP_CONTEXT", e[e.INVALID_TABLEGROUP_ELEMENT_NAME = 3014] = "INVALID_TABLEGROUP_ELEMENT_NAME", e[e.DUPLICATE_TABLEGROUP_ELEMENT_NAME = 3015] = "DUPLICATE_TABLEGROUP_ELEMENT_NAME", e[e.DUPLICATE_TABLEGROUP_FIELD_NAME = 3016] = "DUPLICATE_TABLEGROUP_FIELD_NAME", e[e.INVALID_TABLEGROUP_FIELD = 3017] = "INVALID_TABLEGROUP_FIELD", e[e.EMPTY_TABLE = 3018] = "EMPTY_TABLE", e[e.INVALID_COLUMN = 3019] = "INVALID_COLUMN", e[e.INVALID_COLUMN_NAME = 3020] = "INVALID_COLUMN_NAME", e[e.UNKNOWN_COLUMN_SETTING = 3021] = "UNKNOWN_COLUMN_SETTING", e[e.INVALID_COLUMN_TYPE = 3022] = "INVALID_COLUMN_TYPE", e[e.DUPLICATE_COLUMN_NAME = 3023] = "DUPLICATE_COLUMN_NAME", e[e.DUPLICATE_COLUMN_SETTING = 3024] = "DUPLICATE_COLUMN_SETTING", e[e.INVALID_COLUMN_SETTING_VALUE = 3025] = "INVALID_COLUMN_SETTING_VALUE", e[e.INVALID_ENUM_CONTEXT = 3026] = "INVALID_ENUM_CONTEXT", e[e.INVALID_ENUM_ELEMENT_NAME = 3027] = "INVALID_ENUM_ELEMENT_NAME", e[e.INVALID_ENUM_ELEMENT = 3028] = "INVALID_ENUM_ELEMENT", e[e.DUPLICATE_ENUM_ELEMENT_NAME = 3029] = "DUPLICATE_ENUM_ELEMENT_NAME", e[e.UNKNOWN_ENUM_ELEMENT_SETTING = 3030] = "UNKNOWN_ENUM_ELEMENT_SETTING", e[e.DUPLICATE_ENUM_ELEMENT_SETTING = 3031] = "DUPLICATE_ENUM_ELEMENT_SETTING", e[e.INVALID_ENUM_ELEMENT_SETTING = 3032] = "INVALID_ENUM_ELEMENT_SETTING", e[e.EMPTY_ENUM = 3033] = "EMPTY_ENUM", e[e.INVALID_REF_CONTEXT = 3034] = "INVALID_REF_CONTEXT", e[e.UNKNOWN_REF_SETTING = 3035] = "UNKNOWN_REF_SETTING", e[e.DUPLICATE_REF_SETTING = 3036] = "DUPLICATE_REF_SETTING", e[e.INVALID_REF_SETTING_VALUE = 3037] = "INVALID_REF_SETTING_VALUE", e[e.INVALID_REF_RELATIONSHIP = 3038] = "INVALID_REF_RELATIONSHIP", e[e.INVALID_REF_FIELD = 3039] = "INVALID_REF_FIELD", e[e.EMPTY_REF = 3040] = "EMPTY_REF", e[e.REF_REDEFINED = 3041] = "REF_REDEFINED", e[e.INVALID_DEP_CONTEXT = 3042] = "INVALID_DEP_CONTEXT", e[e.INVALID_DEP_FIELD = 3043] = "INVALID_DEP_FIELD", e[e.INVALID_NOTE_CONTEXT = 3044] = "INVALID_NOTE_CONTEXT", e[e.INVALID_NOTE = 3045] = "INVALID_NOTE", e[e.NOTE_REDEFINED = 3046] = "NOTE_REDEFINED", e[e.NOTE_CONTENT_REDEFINED = 3047] = "NOTE_CONTENT_REDEFINED", e[e.EMPTY_NOTE = 3048] = "EMPTY_NOTE", e[e.UNKNOWN_NOTE_SETTING = 3049] = "UNKNOWN_NOTE_SETTING", e[e.DUPLICATE_NOTE_SETTING = 3050] = "DUPLICATE_NOTE_SETTING", e[e.INVALID_NOTE_SETTING_VALUE = 3051] = "INVALID_NOTE_SETTING_VALUE", e[e.INVALID_INDEXES_CONTEXT = 3052] = "INVALID_INDEXES_CONTEXT", e[e.INVALID_INDEXES_FIELD = 3053] = "INVALID_INDEXES_FIELD", e[e.INVALID_INDEX = 3054] = "INVALID_INDEX", e[e.UNKNOWN_INDEX_SETTING = 3055] = "UNKNOWN_INDEX_SETTING", e[e.DUPLICATE_INDEX_SETTING = 3056] = "DUPLICATE_INDEX_SETTING", e[e.UNEXPECTED_INDEX_SETTING_VALUE = 3057] = "UNEXPECTED_INDEX_SETTING_VALUE", e[e.INVALID_INDEX_SETTING_VALUE = 3058] = "INVALID_INDEX_SETTING_VALUE", e[e.INVALID_PROJECT_CONTEXT = 3059] = "INVALID_PROJECT_CONTEXT", e[e.PROJECT_REDEFINED = 3060] = "PROJECT_REDEFINED", e[e.INVALID_PROJECT_FIELD = 3061] = "INVALID_PROJECT_FIELD", e[e.INVALID_CUSTOM_CONTEXT = 3062] = "INVALID_CUSTOM_CONTEXT", e[e.INVALID_CUSTOM_ELEMENT_VALUE = 3063] = "INVALID_CUSTOM_ELEMENT_VALUE", e[e.INVALID_ELEMENT_IN_SIMPLE_BODY = 3064] = "INVALID_ELEMENT_IN_SIMPLE_BODY", e[e.INVALID_TABLE_PARTIAL_CONTEXT = 3065] = "INVALID_TABLE_PARTIAL_CONTEXT", e[e.INVALID_TABLE_PARTIAL_ELEMENT_NAME = 3066] = "INVALID_TABLE_PARTIAL_ELEMENT_NAME", e[e.INVALID_TABLE_PARTIAL_SETTING_VALUE = 3067] = "INVALID_TABLE_PARTIAL_SETTING_VALUE", e[e.DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME = 3068] = "DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME", e[e.DUPLICATE_TABLE_PARTIAL_SETTING = 3069] = "DUPLICATE_TABLE_PARTIAL_SETTING", e[e.INVALID_TABLE_PARTIAL_INJECTION = 3070] = "INVALID_TABLE_PARTIAL_INJECTION", e[e.INVALID_TABLE_PARTIAL_INJECTION_OP = 3071] = "INVALID_TABLE_PARTIAL_INJECTION_OP", e[e.INVALID_TABLE_PARTIAL_INJECTION_NAME = 3072] = "INVALID_TABLE_PARTIAL_INJECTION_NAME", e[e.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME = 3073] = "DUPLICATE_TABLE_PARTIAL_INJECTION_NAME", e[e.UNKNOWN_TABLE_PARTIAL_SETTING = 3074] = "UNKNOWN_TABLE_PARTIAL_SETTING", e[e.INVALID_TABLE_SETTING_VALUE = 3075] = "INVALID_TABLE_SETTING_VALUE", e[e.INVALID_CHECKS_CONTEXT = 3076] = "INVALID_CHECKS_CONTEXT", e[e.INVALID_CHECKS_FIELD = 3077] = "INVALID_CHECKS_FIELD", e[e.INVALID_CHECK = 3078] = "INVALID_CHECK", e[e.UNKNOWN_CHECK_SETTING = 3079] = "UNKNOWN_CHECK_SETTING", e[e.DUPLICATE_CHECK_SETTING = 3080] = "DUPLICATE_CHECK_SETTING", e[e.INVALID_CHECK_SETTING_VALUE = 3081] = "INVALID_CHECK_SETTING_VALUE", e[e.INVALID_RECORDS_CONTEXT = 3082] = "INVALID_RECORDS_CONTEXT", e[e.INVALID_RECORDS_NAME = 3083] = "INVALID_RECORDS_NAME", e[e.INVALID_RECORDS_FIELD = 3084] = "INVALID_RECORDS_FIELD", e[e.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS = 3085] = "DUPLICATE_COLUMN_REFERENCES_IN_RECORDS", e[e.DUPLICATE_RECORDS_FOR_TABLE = 3086] = "DUPLICATE_RECORDS_FOR_TABLE", e[e.INVALID_USE_CONTEXT = 3087] = "INVALID_USE_CONTEXT", e[e.INVALID_USE_SPECIFIER_KIND = 3088] = "INVALID_USE_SPECIFIER_KIND", e[e.INVALID_USE_SPECIFIER_NAME = 3089] = "INVALID_USE_SPECIFIER_NAME", e[e.INVALID_DIAGRAMVIEW_CONTEXT = 3090] = "INVALID_DIAGRAMVIEW_CONTEXT", e[e.DUPLICATE_DIAGRAMVIEW_NAME = 3091] = "DUPLICATE_DIAGRAMVIEW_NAME", e[e.INVALID_DIAGRAMVIEW_FIELD = 3092] = "INVALID_DIAGRAMVIEW_FIELD", e[e.DUPLICATE_DIAGRAMVIEW_FIELD = 3093] = "DUPLICATE_DIAGRAMVIEW_FIELD", e[e.BINDING_ERROR = 4e3] = "BINDING_ERROR", e[e.NONEXISTENT_MODULE = 4001] = "NONEXISTENT_MODULE", e[e.UNSUPPORTED = 5e3] = "UNSUPPORTED", e[e.CIRCULAR_REF = 5001] = "CIRCULAR_REF", e[e.SAME_ENDPOINT = 5002] = "SAME_ENDPOINT", e[e.DEP_SELF_LOOP = 5003] = "DEP_SELF_LOOP", e[e.DEP_MIXED_DOWNSTREAM_TABLES = 5004] = "DEP_MIXED_DOWNSTREAM_TABLES", e[e.DEP_DUPLICATE_DOWNSTREAM_TABLE = 5005] = "DEP_DUPLICATE_DOWNSTREAM_TABLE", e[e.DEP_MIXED_LEVEL = 5006] = "DEP_MIXED_LEVEL", e[e.UNEQUAL_FIELDS_BINARY_REF = 5007] = "UNEQUAL_FIELDS_BINARY_REF", e[e.CONFLICTING_SETTING = 5008] = "CONFLICTING_SETTING", e[e.TABLE_REAPPEAR_IN_TABLEGROUP = 5009] = "TABLE_REAPPEAR_IN_TABLEGROUP", e;
5120
5120
  }({}), T = class e extends Error {
5121
5121
  constructor(t, n, r) {
5122
5122
  super(n), this.code = t, this.diagnostic = n, this.nodeOrToken = r, this.start = r.start, this.end = r.end, this.name = this.constructor.name, Object.setPrototypeOf(this, e.prototype);
@@ -7140,7 +7140,39 @@ var Rm = class {
7140
7140
  return [...this.bindFields(t), ...this.bindSubElements(n)];
7141
7141
  }
7142
7142
  bindFields(e) {
7143
- return e.flatMap((e) => e.callee ? [e.callee, ...e.args].flatMap(Om).flatMap((e) => [...e.variables, ...e.tupleElements].flatMap((e) => this.compiler.nodeReferee(e).getErrors())) : []);
7143
+ return e.flatMap((e) => {
7144
+ if (!e.callee) return [];
7145
+ let t = [e.callee, ...e.args].flatMap(Om).flatMap((e) => [...e.variables, ...e.tupleElements].flatMap((e) => this.compiler.nodeReferee(e).getErrors())), n = this.checkEdgeLevelConsistency(e.callee);
7146
+ return t.concat(n);
7147
+ });
7148
+ }
7149
+ checkEdgeLevelConsistency(e) {
7150
+ if (!(e instanceof H)) return [];
7151
+ let t = this.endpointLevel(e.leftExpression), n = this.endpointLevel(e.rightExpression);
7152
+ if (t && n && t !== n) return [new T(w.DEP_MIXED_LEVEL, "Both sides of a Dep edge must be at the same level (both table-level or both column-level)", e)];
7153
+ if (t === "column" && n === "column") {
7154
+ let t = this.endpointSymbol(e.leftExpression), n = this.endpointSymbol(e.rightExpression);
7155
+ if (t && n && t === n) return [new T(w.DEP_SELF_LOOP, "A column cannot depend on itself", e)];
7156
+ }
7157
+ return [];
7158
+ }
7159
+ endpointSymbol(e) {
7160
+ if (!e) return;
7161
+ let n = Hf(e);
7162
+ if (!n) return;
7163
+ let r = n.variables.at(-1);
7164
+ if (r) return this.compiler.nodeReferee(r).getFiltered(t);
7165
+ }
7166
+ endpointLevel(e) {
7167
+ if (!e) return;
7168
+ let n = Hf(e);
7169
+ if (!n) return;
7170
+ if (n.tupleElements.length > 0) return "column";
7171
+ let r = n.variables.at(-1);
7172
+ if (!r) return;
7173
+ let i = this.compiler.nodeReferee(r).getFiltered(t);
7174
+ if (i?.isKind(I.Column)) return "column";
7175
+ if (i?.isKind(I.Table)) return "table";
7144
7176
  }
7145
7177
  bindSubElements(e) {
7146
7178
  return e.flatMap((e) => e.type ? this.compiler.bindNode(e).getErrors() : []);
@@ -7165,23 +7197,19 @@ var Rm = class {
7165
7197
  }
7166
7198
  interpretEdges() {
7167
7199
  let e = this.metadata.upstreamColumns(this.compiler), t = this.metadata.downstreamColumns(this.compiler), n = this.metadata.upstreamTables(this.compiler), r = this.metadata.downstreamTables(this.compiler), i = [], a = [], o = Math.max(n.length, r.length);
7168
- for (let s = 0; s < o; s++) {
7169
- let o = n[s], c = r[s], l = e[s] ?? [], u = t[s] ?? [], d = o?.interpretedName(this.compiler, this.filepath), f = c?.interpretedName(this.compiler, this.filepath), p = d?.schema ?? null, m = f?.schema ?? null;
7170
- if (d?.name && f?.name && d.name === f.name && p === m) {
7171
- a.push(new T(w.DEP_SELF_LOOP, `Self-loop Dep edge not allowed: "${p ?? "public"}"."${d.name}" cannot depend on itself`, this.declarationNode));
7172
- continue;
7173
- }
7174
- i.push({
7200
+ for (let a = 0; a < o; a++) {
7201
+ let o = n[a], s = r[a], c = e[a] ?? [], l = t[a] ?? [], u = o?.interpretedName(this.compiler, this.filepath), d = s?.interpretedName(this.compiler, this.filepath);
7202
+ u?.schema, d?.schema, i.push({
7175
7203
  upstream: {
7176
- schemaName: d?.schema ?? null,
7177
- tableName: d?.name ?? "",
7178
- fieldNames: l.map((e) => e.name ?? ""),
7204
+ schemaName: u?.schema ?? null,
7205
+ tableName: u?.name ?? "",
7206
+ fieldNames: c.map((e) => e.name ?? ""),
7179
7207
  token: this.dep.token
7180
7208
  },
7181
7209
  downstream: {
7182
- schemaName: f?.schema ?? null,
7183
- tableName: f?.name ?? "",
7184
- fieldNames: u.map((e) => e.name ?? ""),
7210
+ schemaName: d?.schema ?? null,
7211
+ tableName: d?.name ?? "",
7212
+ fieldNames: l.map((e) => e.name ?? ""),
7185
7213
  token: this.dep.token
7186
7214
  },
7187
7215
  token: this.dep.token
@@ -7305,8 +7333,8 @@ function Hm(e, r, i) {
7305
7333
  if (o.rightExpression === i) {
7306
7334
  let r = km(e, i);
7307
7335
  if (r?.isKind(I.Schema)) {
7308
- let t = e.lookupMembers(r, [I.Table, I.Schema], a);
7309
- return t ? n.create(t) : new n(void 0, [new T(w.BINDING_ERROR, `Table or schema '${a}' does not exist`, i)]);
7336
+ let t = e.lookupMembers(r, I.Table, a);
7337
+ return t ? n.create(t) : new n(void 0, [new T(w.BINDING_ERROR, `Table '${a}' does not exist in Schema '${r.name}'`, i)]);
7310
7338
  }
7311
7339
  if (r?.isKind(I.Table)) {
7312
7340
  let o = e.lookupMembers(r, I.Column, a);
@@ -8183,23 +8211,23 @@ function Ph(e, t, n, r) {
8183
8211
  function Fh(e) {
8184
8212
  return e instanceof cm && e.declaration instanceof z && e.declaration.body instanceof W;
8185
8213
  }
8186
- function Ih(e, t, n) {
8187
- let r = e.edges ?? [];
8188
- if (r.length === 0) return [];
8189
- if (Fh(t)) {
8190
- let e = uh(r[0].downstream.schemaName, r[0].downstream.tableName);
8191
- for (let n = 1; n < r.length; n++) {
8192
- let i = uh(r[n].downstream.schemaName, r[n].downstream.tableName);
8193
- if (i !== e) return [new T(w.DEP_MIXED_DOWNSTREAM_TABLES, `All edges in a Dep block must target the same downstream table, but found '${e}' and '${i}'`, t.declaration)];
8194
- }
8195
- if (n.has(e)) return [new T(w.DEP_DUPLICATE_DOWNSTREAM_TABLE, `Downstream table '${e}' is already targeted by another Dep block`, t.declaration)];
8196
- n.set(e, !0);
8197
- } else for (let e of r) {
8198
- let r = uh(e.downstream.schemaName, e.downstream.tableName);
8199
- if (n.get(r) === !0) return [new T(w.DEP_DUPLICATE_DOWNSTREAM_TABLE, `Downstream table '${r}' is already targeted by a Dep block`, t.declaration)];
8200
- n.has(r) || n.set(r, !1);
8214
+ function Ih(e, t) {
8215
+ let n = e.edges ?? [];
8216
+ if (n.length === 0 || !Fh(t)) return [];
8217
+ let r = [], i = uh(n[0].downstream.schemaName, n[0].downstream.tableName);
8218
+ for (let e = 1; e < n.length; e++) {
8219
+ let a = uh(n[e].downstream.schemaName, n[e].downstream.tableName);
8220
+ if (a !== i) {
8221
+ r.push(new T(w.DEP_MIXED_DOWNSTREAM_TABLES, `All edges in a Dep block must target the same downstream table, but found '${i}' and '${a}'`, t.declaration));
8222
+ break;
8223
+ }
8201
8224
  }
8202
- return [];
8225
+ let a = (e) => e.upstream.fieldNames.length > 0 || e.downstream.fieldNames.length > 0, o = a(n[0]);
8226
+ for (let e = 1; e < n.length; e++) if (a(n[e]) !== o) {
8227
+ r.push(new T(w.DEP_MIXED_LEVEL, "All edges in a Dep block must be at the same level (all table-level or all column-level)", t.declaration));
8228
+ break;
8229
+ }
8230
+ return r;
8203
8231
  }
8204
8232
  //#endregion
8205
8233
  //#region src/core/global_modules/program/interpret.ts
@@ -8279,25 +8307,25 @@ var Lh = class {
8279
8307
  ch(this.db, e, o);
8280
8308
  }
8281
8309
  interpretAllMetadata() {
8282
- let e = this.compiler.symbolMetadata(this.programSymbol) ?? [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map();
8310
+ let e = this.compiler.symbolMetadata(this.programSymbol) ?? [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Map();
8283
8311
  for (let t of e) {
8284
8312
  if (!(t instanceof fm)) continue;
8285
8313
  let e = t.table(this.compiler);
8286
8314
  if (!e) continue;
8287
- let n = e.originalSymbol.intern(), r = a.get(n);
8288
- r ? r.count++ : a.set(n, {
8315
+ let n = e.originalSymbol.intern(), r = i.get(n);
8316
+ r ? r.count++ : i.set(n, {
8289
8317
  count: 1,
8290
8318
  tableName: e.name ?? ""
8291
8319
  });
8292
8320
  }
8293
- for (let o of e) {
8294
- let e = this.compiler.interpretMetadata(o, this.filepath);
8321
+ for (let a of e) {
8322
+ let e = this.compiler.interpretMetadata(a, this.filepath);
8295
8323
  if (e.hasValue(t)) continue;
8296
8324
  this.errors.push(...e.getErrors()), this.warnings.push(...e.getWarnings());
8297
- let s = e.getValue();
8298
- if (s !== void 0) switch (o.kind) {
8325
+ let o = e.getValue();
8326
+ if (o !== void 0) switch (a.kind) {
8299
8327
  case am.Ref: {
8300
- let e = s, [t, r] = e.endpoints ?? [];
8328
+ let e = o, [t, r] = e.endpoints ?? [];
8301
8329
  if (t && r) {
8302
8330
  let e = [
8303
8331
  t.schemaName,
@@ -8315,7 +8343,7 @@ var Lh = class {
8315
8343
  t.fieldNames.join(",")
8316
8344
  ].join("|");
8317
8345
  if (n.has(e) || n.has(i)) {
8318
- this.errors.push(new T(w.SAME_ENDPOINT, "Ref with same endpoints already exists", o.declaration));
8346
+ this.errors.push(new T(w.SAME_ENDPOINT, "Ref with same endpoints already exists", a.declaration));
8319
8347
  break;
8320
8348
  }
8321
8349
  n.add(e);
@@ -8324,7 +8352,7 @@ var Lh = class {
8324
8352
  break;
8325
8353
  }
8326
8354
  case am.Dep: {
8327
- let e = s, t = o instanceof cm ? o.edgeExpressions() : [], n = -1;
8355
+ let e = o, t = a instanceof cm ? a.edgeExpressions() : [], n = -1;
8328
8356
  if ((e.edges ?? []).some((e, t) => {
8329
8357
  let { upstream: i, downstream: a } = e, o = [
8330
8358
  i.schemaName,
@@ -8336,30 +8364,30 @@ var Lh = class {
8336
8364
  ].join("|");
8337
8365
  return r.has(o) ? (n = t, !0) : (r.add(o), !1);
8338
8366
  }), n >= 0) {
8339
- let e = t[n] ?? o.declaration;
8367
+ let e = t[n] ?? a.declaration;
8340
8368
  this.errors.push(new T(w.SAME_ENDPOINT, "Dep with same endpoints already exists", e));
8341
8369
  break;
8342
8370
  }
8343
- let a = Ih(e, o, i);
8344
- if (a.length > 0) {
8345
- this.errors.push(...a);
8371
+ let i = Ih(e, a);
8372
+ if (i.length > 0) {
8373
+ this.errors.push(...i);
8346
8374
  break;
8347
8375
  }
8348
8376
  this.db.deps.push(e);
8349
8377
  break;
8350
8378
  }
8351
8379
  case am.Records:
8352
- if (o instanceof fm) {
8353
- let e = o.table(this.compiler)?.originalSymbol.intern() ?? "", t = e ? a.get(e) : void 0;
8380
+ if (a instanceof fm) {
8381
+ let e = a.table(this.compiler)?.originalSymbol.intern() ?? "", t = e ? i.get(e) : void 0;
8354
8382
  if (t && t.count > 1) {
8355
- this.errors.push(new T(w.DUPLICATE_RECORDS_FOR_TABLE, `Duplicate Records blocks for the same Table '${t.tableName}' - A Table can only have one Records block`, o.declaration));
8383
+ this.errors.push(new T(w.DUPLICATE_RECORDS_FOR_TABLE, `Duplicate Records blocks for the same Table '${t.tableName}' - A Table can only have one Records block`, a.declaration));
8356
8384
  break;
8357
8385
  }
8358
8386
  }
8359
- this.db.records.push(s);
8387
+ this.db.records.push(o);
8360
8388
  break;
8361
8389
  case am.Project:
8362
- this.db.project = s;
8390
+ this.db.project = o;
8363
8391
  break;
8364
8392
  default: break;
8365
8393
  }
@@ -11399,7 +11427,11 @@ var P_ = {
11399
11427
  D(e.value) || n.push(new T(w.INVALID_TABLE_SETTING_VALUE, "'note' must be a string literal", e.value || e.name));
11400
11428
  });
11401
11429
  break;
11402
- case i.Dep: break;
11430
+ case i.Dep:
11431
+ e.forEach((e) => {
11432
+ vf(e.value) || n.push(new T(w.INVALID_TABLE_SETTING_VALUE, "'dep' must be `-> target` or `<- source`", e.value || e.name));
11433
+ });
11434
+ break;
11403
11435
  default: n.push(...e.map((e) => new T(w.UNKNOWN_TABLE_SETTING, `Unknown '${t}' setting`, e)));
11404
11436
  }
11405
11437
  }), n;
@@ -11521,6 +11553,11 @@ function I_(e) {
11521
11553
  D(e.value) || r.push(new T(w.INVALID_TABLE_SETTING_VALUE, "'note' must be a string literal", e.value || e.name));
11522
11554
  });
11523
11555
  break;
11556
+ case i.Dep:
11557
+ e.forEach((e) => {
11558
+ vf(e.value) || r.push(new T(w.INVALID_TABLE_SETTING_VALUE, "'dep' must be `-> target` or `<- source`", e.value || e.name));
11559
+ });
11560
+ break;
11524
11561
  default: r.push(...e.map((e) => new T(w.UNKNOWN_TABLE_SETTING, `Unknown '${t}' setting`, e)));
11525
11562
  }
11526
11563
  }), new n(a, r);
@@ -11,5 +11,8 @@ export default class DepBinder {
11
11
  bind(): CompileError[];
12
12
  private bindBody;
13
13
  private bindFields;
14
+ private checkEdgeLevelConsistency;
15
+ private endpointSymbol;
16
+ private endpointLevel;
14
17
  private bindSubElements;
15
18
  }
@@ -1,4 +1,4 @@
1
1
  import { CompileError } from '../../../types/errors';
2
2
  import { Dep } from '../../../types/schemaJson';
3
3
  import { NodeMetadata } from '../../../types/symbol/metadata';
4
- export declare function validateDepBlocks(dep: Dep, meta: NodeMetadata, seenDownstream: Map<string, boolean>): CompileError[];
4
+ export declare function validateDepBlocks(dep: Dep, meta: NodeMetadata): CompileError[];
@@ -116,9 +116,10 @@ export declare enum CompileErrorCode {
116
116
  DEP_SELF_LOOP = 5003,
117
117
  DEP_MIXED_DOWNSTREAM_TABLES = 5004,
118
118
  DEP_DUPLICATE_DOWNSTREAM_TABLE = 5005,
119
- UNEQUAL_FIELDS_BINARY_REF = 5006,
120
- CONFLICTING_SETTING = 5007,
121
- TABLE_REAPPEAR_IN_TABLEGROUP = 5008
119
+ DEP_MIXED_LEVEL = 5006,
120
+ UNEQUAL_FIELDS_BINARY_REF = 5007,
121
+ CONFLICTING_SETTING = 5008,
122
+ TABLE_REAPPEAR_IN_TABLEGROUP = 5009
122
123
  }
123
124
  export declare class CompileError extends Error {
124
125
  code: Readonly<CompileErrorCode>;
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": "9.0.0-alpha.17",
4
+ "version": "9.0.0-alpha.19",
5
5
  "description": "DBML parser v2",
6
6
  "author": "Holistics <dev@holistics.io>",
7
7
  "license": "Apache-2.0",
@@ -50,5 +50,5 @@
50
50
  "engines": {
51
51
  "node": ">=18"
52
52
  },
53
- "gitHead": "d9762494870c7453e5ecb58415e3468b9e2ab850"
53
+ "gitHead": "01691d698a6bd2d9c191bc98f5fe2628f34a86b8"
54
54
  }