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

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,21 +8211,13 @@ 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 = uh(n[0].downstream.schemaName, n[0].downstream.tableName);
8218
+ for (let e = 1; e < n.length; e++) {
8219
+ let i = uh(n[e].downstream.schemaName, n[e].downstream.tableName);
8220
+ if (i !== r) return [new T(w.DEP_MIXED_DOWNSTREAM_TABLES, `All edges in a Dep block must target the same downstream table, but found '${r}' and '${i}'`, t.declaration)];
8201
8221
  }
8202
8222
  return [];
8203
8223
  }
@@ -8279,25 +8299,25 @@ var Lh = class {
8279
8299
  ch(this.db, e, o);
8280
8300
  }
8281
8301
  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();
8302
+ let e = this.compiler.symbolMetadata(this.programSymbol) ?? [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Map();
8283
8303
  for (let t of e) {
8284
8304
  if (!(t instanceof fm)) continue;
8285
8305
  let e = t.table(this.compiler);
8286
8306
  if (!e) continue;
8287
- let n = e.originalSymbol.intern(), r = a.get(n);
8288
- r ? r.count++ : a.set(n, {
8307
+ let n = e.originalSymbol.intern(), r = i.get(n);
8308
+ r ? r.count++ : i.set(n, {
8289
8309
  count: 1,
8290
8310
  tableName: e.name ?? ""
8291
8311
  });
8292
8312
  }
8293
- for (let o of e) {
8294
- let e = this.compiler.interpretMetadata(o, this.filepath);
8313
+ for (let a of e) {
8314
+ let e = this.compiler.interpretMetadata(a, this.filepath);
8295
8315
  if (e.hasValue(t)) continue;
8296
8316
  this.errors.push(...e.getErrors()), this.warnings.push(...e.getWarnings());
8297
- let s = e.getValue();
8298
- if (s !== void 0) switch (o.kind) {
8317
+ let o = e.getValue();
8318
+ if (o !== void 0) switch (a.kind) {
8299
8319
  case am.Ref: {
8300
- let e = s, [t, r] = e.endpoints ?? [];
8320
+ let e = o, [t, r] = e.endpoints ?? [];
8301
8321
  if (t && r) {
8302
8322
  let e = [
8303
8323
  t.schemaName,
@@ -8315,7 +8335,7 @@ var Lh = class {
8315
8335
  t.fieldNames.join(",")
8316
8336
  ].join("|");
8317
8337
  if (n.has(e) || n.has(i)) {
8318
- this.errors.push(new T(w.SAME_ENDPOINT, "Ref with same endpoints already exists", o.declaration));
8338
+ this.errors.push(new T(w.SAME_ENDPOINT, "Ref with same endpoints already exists", a.declaration));
8319
8339
  break;
8320
8340
  }
8321
8341
  n.add(e);
@@ -8324,7 +8344,7 @@ var Lh = class {
8324
8344
  break;
8325
8345
  }
8326
8346
  case am.Dep: {
8327
- let e = s, t = o instanceof cm ? o.edgeExpressions() : [], n = -1;
8347
+ let e = o, t = a instanceof cm ? a.edgeExpressions() : [], n = -1;
8328
8348
  if ((e.edges ?? []).some((e, t) => {
8329
8349
  let { upstream: i, downstream: a } = e, o = [
8330
8350
  i.schemaName,
@@ -8336,30 +8356,30 @@ var Lh = class {
8336
8356
  ].join("|");
8337
8357
  return r.has(o) ? (n = t, !0) : (r.add(o), !1);
8338
8358
  }), n >= 0) {
8339
- let e = t[n] ?? o.declaration;
8359
+ let e = t[n] ?? a.declaration;
8340
8360
  this.errors.push(new T(w.SAME_ENDPOINT, "Dep with same endpoints already exists", e));
8341
8361
  break;
8342
8362
  }
8343
- let a = Ih(e, o, i);
8344
- if (a.length > 0) {
8345
- this.errors.push(...a);
8363
+ let i = Ih(e, a);
8364
+ if (i.length > 0) {
8365
+ this.errors.push(...i);
8346
8366
  break;
8347
8367
  }
8348
8368
  this.db.deps.push(e);
8349
8369
  break;
8350
8370
  }
8351
8371
  case am.Records:
8352
- if (o instanceof fm) {
8353
- let e = o.table(this.compiler)?.originalSymbol.intern() ?? "", t = e ? a.get(e) : void 0;
8372
+ if (a instanceof fm) {
8373
+ let e = a.table(this.compiler)?.originalSymbol.intern() ?? "", t = e ? i.get(e) : void 0;
8354
8374
  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));
8375
+ 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
8376
  break;
8357
8377
  }
8358
8378
  }
8359
- this.db.records.push(s);
8379
+ this.db.records.push(o);
8360
8380
  break;
8361
8381
  case am.Project:
8362
- this.db.project = s;
8382
+ this.db.project = o;
8363
8383
  break;
8364
8384
  default: break;
8365
8385
  }
@@ -11399,7 +11419,11 @@ var P_ = {
11399
11419
  D(e.value) || n.push(new T(w.INVALID_TABLE_SETTING_VALUE, "'note' must be a string literal", e.value || e.name));
11400
11420
  });
11401
11421
  break;
11402
- case i.Dep: break;
11422
+ case i.Dep:
11423
+ e.forEach((e) => {
11424
+ vf(e.value) || n.push(new T(w.INVALID_TABLE_SETTING_VALUE, "'dep' must be `-> target` or `<- source`", e.value || e.name));
11425
+ });
11426
+ break;
11403
11427
  default: n.push(...e.map((e) => new T(w.UNKNOWN_TABLE_SETTING, `Unknown '${t}' setting`, e)));
11404
11428
  }
11405
11429
  }), n;
@@ -11521,6 +11545,11 @@ function I_(e) {
11521
11545
  D(e.value) || r.push(new T(w.INVALID_TABLE_SETTING_VALUE, "'note' must be a string literal", e.value || e.name));
11522
11546
  });
11523
11547
  break;
11548
+ case i.Dep:
11549
+ e.forEach((e) => {
11550
+ vf(e.value) || r.push(new T(w.INVALID_TABLE_SETTING_VALUE, "'dep' must be `-> target` or `<- source`", e.value || e.name));
11551
+ });
11552
+ break;
11524
11553
  default: r.push(...e.map((e) => new T(w.UNKNOWN_TABLE_SETTING, `Unknown '${t}' setting`, e)));
11525
11554
  }
11526
11555
  }), 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.18",
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": "5493de9a94839386e613644abbc062ef94728dbe"
54
54
  }