@dbml/parse 3.13.4 → 3.13.5-alpha.1

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.
Files changed (78) hide show
  1. package/LICENSE +0 -0
  2. package/dist/dbml-parse.js +3 -3
  3. package/dist/dbml-parse.mjs +83 -75
  4. package/dist/src/compiler.d.ts +0 -0
  5. package/dist/src/constants.d.ts +0 -0
  6. package/dist/src/index.d.ts +0 -0
  7. package/dist/src/lib/analyzer/analyzer.d.ts +0 -0
  8. package/dist/src/lib/analyzer/binder/binder.d.ts +0 -0
  9. package/dist/src/lib/analyzer/binder/elementBinder/custom.d.ts +0 -0
  10. package/dist/src/lib/analyzer/binder/elementBinder/elementBinder.d.ts +0 -0
  11. package/dist/src/lib/analyzer/binder/elementBinder/enum.d.ts +0 -0
  12. package/dist/src/lib/analyzer/binder/elementBinder/indexes.d.ts +0 -0
  13. package/dist/src/lib/analyzer/binder/elementBinder/note.d.ts +0 -0
  14. package/dist/src/lib/analyzer/binder/elementBinder/project.d.ts +0 -0
  15. package/dist/src/lib/analyzer/binder/elementBinder/ref.d.ts +0 -0
  16. package/dist/src/lib/analyzer/binder/elementBinder/table.d.ts +0 -0
  17. package/dist/src/lib/analyzer/binder/elementBinder/tableGroup.d.ts +0 -0
  18. package/dist/src/lib/analyzer/binder/elementBinder/tablePartial.d.ts +0 -0
  19. package/dist/src/lib/analyzer/binder/types.d.ts +0 -0
  20. package/dist/src/lib/analyzer/binder/utils.d.ts +0 -0
  21. package/dist/src/lib/analyzer/symbol/factory.d.ts +0 -0
  22. package/dist/src/lib/analyzer/symbol/symbolIndex.d.ts +0 -0
  23. package/dist/src/lib/analyzer/symbol/symbolTable.d.ts +0 -0
  24. package/dist/src/lib/analyzer/symbol/symbols.d.ts +0 -0
  25. package/dist/src/lib/analyzer/symbol/utils.d.ts +0 -0
  26. package/dist/src/lib/analyzer/types.d.ts +0 -0
  27. package/dist/src/lib/analyzer/utils.d.ts +0 -0
  28. package/dist/src/lib/analyzer/validator/elementValidators/custom.d.ts +0 -0
  29. package/dist/src/lib/analyzer/validator/elementValidators/enum.d.ts +0 -0
  30. package/dist/src/lib/analyzer/validator/elementValidators/indexes.d.ts +0 -0
  31. package/dist/src/lib/analyzer/validator/elementValidators/note.d.ts +0 -0
  32. package/dist/src/lib/analyzer/validator/elementValidators/project.d.ts +0 -0
  33. package/dist/src/lib/analyzer/validator/elementValidators/ref.d.ts +0 -0
  34. package/dist/src/lib/analyzer/validator/elementValidators/table.d.ts +0 -0
  35. package/dist/src/lib/analyzer/validator/elementValidators/tableGroup.d.ts +0 -0
  36. package/dist/src/lib/analyzer/validator/elementValidators/tablePartial.d.ts +0 -0
  37. package/dist/src/lib/analyzer/validator/types.d.ts +0 -0
  38. package/dist/src/lib/analyzer/validator/utils.d.ts +0 -0
  39. package/dist/src/lib/analyzer/validator/validator.d.ts +0 -0
  40. package/dist/src/lib/errors.d.ts +0 -0
  41. package/dist/src/lib/interpreter/elementInterpreter/enum.d.ts +0 -0
  42. package/dist/src/lib/interpreter/elementInterpreter/project.d.ts +0 -0
  43. package/dist/src/lib/interpreter/elementInterpreter/ref.d.ts +0 -0
  44. package/dist/src/lib/interpreter/elementInterpreter/sticky_note.d.ts +0 -0
  45. package/dist/src/lib/interpreter/elementInterpreter/table.d.ts +0 -0
  46. package/dist/src/lib/interpreter/elementInterpreter/tableGroup.d.ts +0 -0
  47. package/dist/src/lib/interpreter/elementInterpreter/tablePartial.d.ts +0 -0
  48. package/dist/src/lib/interpreter/interpreter.d.ts +0 -0
  49. package/dist/src/lib/interpreter/types.d.ts +0 -0
  50. package/dist/src/lib/interpreter/utils.d.ts +0 -0
  51. package/dist/src/lib/lexer/lexer.d.ts +0 -0
  52. package/dist/src/lib/lexer/tokens.d.ts +0 -0
  53. package/dist/src/lib/lexer/utils.d.ts +0 -0
  54. package/dist/src/lib/option.d.ts +1 -0
  55. package/dist/src/lib/parser/contextStack.d.ts +0 -0
  56. package/dist/src/lib/parser/factory.d.ts +0 -0
  57. package/dist/src/lib/parser/nodes.d.ts +0 -0
  58. package/dist/src/lib/parser/parser.d.ts +0 -0
  59. package/dist/src/lib/parser/utils.d.ts +0 -0
  60. package/dist/src/lib/report.d.ts +0 -0
  61. package/dist/src/lib/serialization/serialize.d.ts +0 -0
  62. package/dist/src/lib/types.d.ts +0 -0
  63. package/dist/src/lib/utils.d.ts +0 -0
  64. package/dist/src/services/definition/provider.d.ts +0 -0
  65. package/dist/src/services/index.d.ts +0 -0
  66. package/dist/src/services/references/provider.d.ts +0 -0
  67. package/dist/src/services/suggestions/provider.d.ts +0 -0
  68. package/dist/src/services/suggestions/utils.d.ts +0 -0
  69. package/dist/src/services/types.d.ts +0 -0
  70. package/dist/src/services/utils.d.ts +0 -0
  71. package/dist/tests/NaN_errors/interpreter_NaN.test.d.ts +0 -0
  72. package/dist/tests/binder/binder.test.d.ts +0 -0
  73. package/dist/tests/interpreter/interpreter.test.d.ts +0 -0
  74. package/dist/tests/jestHelpers.d.ts +0 -0
  75. package/dist/tests/lexer/lexer.test.d.ts +0 -0
  76. package/dist/tests/parser/parser.test.d.ts +0 -0
  77. package/dist/tests/validator/validator.test.d.ts +0 -0
  78. package/package.json +2 -2
@@ -50,7 +50,7 @@ function St(t) {
50
50
  function Nt(t, e) {
51
51
  return e.leadingTrivia.find(({ kind: s }) => s === u.NEWLINE) !== void 0 || St(t);
52
52
  }
53
- function et(t) {
53
+ function Ze(t) {
54
54
  return t.trailingTrivia.find(({ kind: e }) => [u.SPACE, u.TAB].includes(e)) !== void 0;
55
55
  }
56
56
  function Dt(t) {
@@ -312,27 +312,27 @@ class U {
312
312
  map(e) {
313
313
  return new U(e(this.value));
314
314
  }
315
- // eslint-disable-next-line class-methods-use-this
316
315
  isOk() {
317
316
  return !0;
318
317
  }
319
318
  }
320
- class S {
321
- // eslint-disable-next-line class-methods-use-this
319
+ class P {
320
+ constructor() {
321
+ this.value = void 0;
322
+ }
322
323
  unwrap() {
323
324
  throw new Error("Trying to unwrap a None value");
324
325
  }
325
- // eslint-disable-next-line class-methods-use-this
326
326
  unwrap_or(e) {
327
327
  return e;
328
328
  }
329
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, class-methods-use-this
329
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
330
330
  and_then(e) {
331
- return new S();
331
+ return new P();
332
332
  }
333
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, class-methods-use-this
333
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
334
334
  map(e) {
335
- return new S();
335
+ return new P();
336
336
  }
337
337
  // eslint-disable-next-line class-methods-use-this
338
338
  isOk() {
@@ -397,7 +397,7 @@ function ie(t) {
397
397
  return Object.values(m).includes(e) ? new U({
398
398
  name: n,
399
399
  kind: e
400
- }) : new S();
400
+ }) : new P();
401
401
  }
402
402
  function En(t) {
403
403
  const e = ie(t).unwrap_or(void 0);
@@ -528,9 +528,9 @@ function Ft(t) {
528
528
  var e;
529
529
  return t instanceof Z ? `${(e = t.op) == null ? void 0 : e.value}${Ft(t.expression)}` : t.expression.literal.value;
530
530
  }
531
- function tt(t) {
531
+ function et(t) {
532
532
  var e;
533
- return t instanceof Z ? ((e = t.op) == null ? void 0 : e.value) === "-" ? -tt(t.expression) : tt(t.expression) : Number.parseFloat(t.expression.literal.value);
533
+ return t instanceof Z ? ((e = t.op) == null ? void 0 : e.value) === "-" ? -et(t.expression) : et(t.expression) : Number.parseFloat(t.expression.literal.value);
534
534
  }
535
535
  var o = /* @__PURE__ */ ((t) => (t[t.UNKNOWN_SYMBOL = 1e3] = "UNKNOWN_SYMBOL", t[t.UNEXPECTED_SYMBOL = 1001] = "UNEXPECTED_SYMBOL", t[t.UNEXPECTED_EOF = 1002] = "UNEXPECTED_EOF", t[t.UNEXPECTED_NEWLINE = 1003] = "UNEXPECTED_NEWLINE", t[t.UNKNOWN_TOKEN = 1004] = "UNKNOWN_TOKEN", t[t.UNEXPECTED_TOKEN = 1005] = "UNEXPECTED_TOKEN", t[t.UNEXPECTED_ELEMENT_DECLARATION = 1006] = "UNEXPECTED_ELEMENT_DECLARATION", t[t.MISSING_SPACES = 1007] = "MISSING_SPACES", t[t.UNKNOWN_PREFIX_OP = 1008] = "UNKNOWN_PREFIX_OP", t[t.INVALID_OPERAND = 1009] = "INVALID_OPERAND", t[t.EMPTY_ATTRIBUTE_NAME = 1010] = "EMPTY_ATTRIBUTE_NAME", t[t.INVALID_ESCAPE_SEQUENCE = 1011] = "INVALID_ESCAPE_SEQUENCE", t[t.INVALID_NAME = 3e3] = "INVALID_NAME", t[t.UNEXPECTED_NAME = 3001] = "UNEXPECTED_NAME", t[t.NAME_NOT_FOUND = 3002] = "NAME_NOT_FOUND", t[t.DUPLICATE_NAME = 3003] = "DUPLICATE_NAME", t[t.INVALID_ALIAS = 3004] = "INVALID_ALIAS", t[t.UNEXPECTED_ALIAS = 3005] = "UNEXPECTED_ALIAS", t[t.UNEXPECTED_SETTINGS = 3006] = "UNEXPECTED_SETTINGS", t[t.INVALID_SETTINGS = 3007] = "INVALID_SETTINGS", t[t.UNEXPECTED_SIMPLE_BODY = 3008] = "UNEXPECTED_SIMPLE_BODY", t[t.UNEXPECTED_COMPLEX_BODY = 3009] = "UNEXPECTED_COMPLEX_BODY", t[t.INVALID_TABLE_CONTEXT = 3010] = "INVALID_TABLE_CONTEXT", t[t.INVALID_TABLE_SETTING = 3011] = "INVALID_TABLE_SETTING", t[t.DUPLICATE_TABLE_SETTING = 3012] = "DUPLICATE_TABLE_SETTING", t[t.INVALID_TABLEGROUP_CONTEXT = 3013] = "INVALID_TABLEGROUP_CONTEXT", t[t.INVALID_TABLEGROUP_ELEMENT_NAME = 3014] = "INVALID_TABLEGROUP_ELEMENT_NAME", t[t.DUPLICATE_TABLEGROUP_ELEMENT_NAME = 3015] = "DUPLICATE_TABLEGROUP_ELEMENT_NAME", t[t.DUPLICATE_TABLEGROUP_FIELD_NAME = 3016] = "DUPLICATE_TABLEGROUP_FIELD_NAME", t[t.INVALID_TABLEGROUP_FIELD = 3017] = "INVALID_TABLEGROUP_FIELD", t[t.EMPTY_TABLE = 3018] = "EMPTY_TABLE", t[t.INVALID_COLUMN = 3019] = "INVALID_COLUMN", t[t.INVALID_COLUMN_NAME = 3020] = "INVALID_COLUMN_NAME", t[t.UNKNOWN_COLUMN_SETTING = 3021] = "UNKNOWN_COLUMN_SETTING", t[t.INVALID_COLUMN_TYPE = 3022] = "INVALID_COLUMN_TYPE", t[t.DUPLICATE_COLUMN_NAME = 3023] = "DUPLICATE_COLUMN_NAME", t[t.DUPLICATE_COLUMN_SETTING = 3024] = "DUPLICATE_COLUMN_SETTING", t[t.INVALID_COLUMN_SETTING_VALUE = 3025] = "INVALID_COLUMN_SETTING_VALUE", t[t.INVALID_ENUM_CONTEXT = 3026] = "INVALID_ENUM_CONTEXT", t[t.INVALID_ENUM_ELEMENT_NAME = 3027] = "INVALID_ENUM_ELEMENT_NAME", t[t.INVALID_ENUM_ELEMENT = 3028] = "INVALID_ENUM_ELEMENT", t[t.DUPLICATE_ENUM_ELEMENT_NAME = 3029] = "DUPLICATE_ENUM_ELEMENT_NAME", t[t.UNKNOWN_ENUM_ELEMENT_SETTING = 3030] = "UNKNOWN_ENUM_ELEMENT_SETTING", t[t.DUPLICATE_ENUM_ELEMENT_SETTING = 3031] = "DUPLICATE_ENUM_ELEMENT_SETTING", t[t.INVALID_ENUM_ELEMENT_SETTING = 3032] = "INVALID_ENUM_ELEMENT_SETTING", t[t.EMPTY_ENUM = 3033] = "EMPTY_ENUM", t[t.INVALID_REF_CONTEXT = 3034] = "INVALID_REF_CONTEXT", t[t.UNKNOWN_REF_SETTING = 3035] = "UNKNOWN_REF_SETTING", t[t.DUPLICATE_REF_SETTING = 3036] = "DUPLICATE_REF_SETTING", t[t.INVALID_REF_SETTING_VALUE = 3037] = "INVALID_REF_SETTING_VALUE", t[t.INVALID_REF_RELATIONSHIP = 3038] = "INVALID_REF_RELATIONSHIP", t[t.INVALID_REF_FIELD = 3039] = "INVALID_REF_FIELD", t[t.EMPTY_REF = 3040] = "EMPTY_REF", t[t.REF_REDEFINED = 3041] = "REF_REDEFINED", t[t.INVALID_NOTE_CONTEXT = 3042] = "INVALID_NOTE_CONTEXT", t[t.INVALID_NOTE = 3043] = "INVALID_NOTE", t[t.NOTE_REDEFINED = 3044] = "NOTE_REDEFINED", t[t.NOTE_CONTENT_REDEFINED = 3045] = "NOTE_CONTENT_REDEFINED", t[t.EMPTY_NOTE = 3046] = "EMPTY_NOTE", t[t.INVALID_INDEXES_CONTEXT = 3047] = "INVALID_INDEXES_CONTEXT", t[t.INVALID_INDEXES_FIELD = 3048] = "INVALID_INDEXES_FIELD", t[t.INVALID_INDEX = 3049] = "INVALID_INDEX", t[t.UNKNOWN_INDEX_SETTING = 3050] = "UNKNOWN_INDEX_SETTING", t[t.DUPLICATE_INDEX_SETTING = 3051] = "DUPLICATE_INDEX_SETTING", t[t.UNEXPECTED_INDEX_SETTING_VALUE = 3052] = "UNEXPECTED_INDEX_SETTING_VALUE", t[t.INVALID_INDEX_SETTING_VALUE = 3053] = "INVALID_INDEX_SETTING_VALUE", t[t.INVALID_PROJECT_CONTEXT = 3054] = "INVALID_PROJECT_CONTEXT", t[t.PROJECT_REDEFINED = 3055] = "PROJECT_REDEFINED", t[t.INVALID_PROJECT_FIELD = 3056] = "INVALID_PROJECT_FIELD", t[t.INVALID_CUSTOM_CONTEXT = 3057] = "INVALID_CUSTOM_CONTEXT", t[t.INVALID_CUSTOM_ELEMENT_VALUE = 3058] = "INVALID_CUSTOM_ELEMENT_VALUE", t[t.INVALID_ELEMENT_IN_SIMPLE_BODY = 3059] = "INVALID_ELEMENT_IN_SIMPLE_BODY", t[t.INVALID_TABLE_PARTIAL_CONTEXT = 3060] = "INVALID_TABLE_PARTIAL_CONTEXT", t[t.INVALID_TABLE_PARTIAL_ELEMENT_NAME = 3061] = "INVALID_TABLE_PARTIAL_ELEMENT_NAME", t[t.INVALID_TABLE_PARTIAL_SETTING = 3062] = "INVALID_TABLE_PARTIAL_SETTING", t[t.DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME = 3063] = "DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME", t[t.DUPLICATE_TABLE_PARTIAL_SETTING = 3064] = "DUPLICATE_TABLE_PARTIAL_SETTING", t[t.INVALID_TABLE_PARTIAL_INJECTION = 3065] = "INVALID_TABLE_PARTIAL_INJECTION", t[t.INVALID_TABLE_PARTIAL_INJECTION_OP = 3066] = "INVALID_TABLE_PARTIAL_INJECTION_OP", t[t.INVALID_TABLE_PARTIAL_INJECTION_NAME = 3067] = "INVALID_TABLE_PARTIAL_INJECTION_NAME", t[t.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME = 3068] = "DUPLICATE_TABLE_PARTIAL_INJECTION_NAME", t[t.BINDING_ERROR = 4e3] = "BINDING_ERROR", t[t.UNSUPPORTED = 5e3] = "UNSUPPORTED", t[t.CIRCULAR_REF = 5001] = "CIRCULAR_REF", t[t.SAME_ENDPOINT = 5002] = "SAME_ENDPOINT", t[t.UNEQUAL_FIELDS_BINARY_REF = 5003] = "UNEQUAL_FIELDS_BINARY_REF", t[t.CONFLICTING_SETTING = 5004] = "CONFLICTING_SETTING", t[t.TABLE_REAPPEAR_IN_TABLEGROUP = 5005] = "TABLE_REAPPEAR_IN_TABLEGROUP", t))(o || {});
536
536
  class l extends Error {
@@ -558,21 +558,25 @@ class J {
558
558
  }
559
559
  function Pn(t, e, n) {
560
560
  if (!t || !Ne(t) || e.length === 0)
561
- return new S();
562
- const s = [...e], i = Ze(t).unwrap(), a = s.pop();
561
+ return new P();
562
+ const s = [...e], i = mt(t).unwrap(), a = s.pop();
563
563
  if (!(a instanceof oe))
564
- return new S();
564
+ return new P();
565
565
  const r = g.last(s) instanceof M ? s.pop() : void 0;
566
- return s.length === 3 && Ze(s[1]).unwrap().value === "as" ? new U(
567
- n.create(y, {
568
- type: i,
569
- name: s[0],
570
- as: Ze(s[1]).unwrap(),
571
- alias: s[2],
572
- attributeList: r,
573
- body: a
574
- })
575
- ) : s.length === 1 ? new U(
566
+ if (s.length === 3) {
567
+ const c = mt(s[1]).value;
568
+ return !c || !tt(c) ? new P() : new U(
569
+ n.create(y, {
570
+ type: i,
571
+ name: s[0],
572
+ as: c,
573
+ alias: s[2],
574
+ attributeList: r,
575
+ body: a
576
+ })
577
+ );
578
+ }
579
+ return s.length === 1 ? new U(
576
580
  n.create(y, {
577
581
  type: i,
578
582
  name: s[0],
@@ -585,9 +589,9 @@ function Pn(t, e, n) {
585
589
  attributeList: r,
586
590
  body: a
587
591
  })
588
- ) : new S();
592
+ ) : new P();
589
593
  }
590
- function mt(t) {
594
+ function tt(t) {
591
595
  return t.kind === u.IDENTIFIER && t.value === "as";
592
596
  }
593
597
  function b(t) {
@@ -694,8 +698,8 @@ function xn(t) {
694
698
  return C(t.partial);
695
699
  throw t instanceof nt ? new Error("This case is already handled by TupleExpressionNode") : new Error("Unreachable - no other possible cases");
696
700
  }
697
- function Ze(t) {
698
- return $(t) ? new U(t.expression.variable) : new S();
701
+ function mt(t) {
702
+ return $(t) ? new U(t.expression.variable) : new P();
699
703
  }
700
704
  function Y(t) {
701
705
  var e;
@@ -714,9 +718,9 @@ function ut(t) {
714
718
  }
715
719
  function we(t) {
716
720
  if (t === void 0)
717
- return new S();
721
+ return new P();
718
722
  const e = t.identifiers.map((n) => n.value).join(" ");
719
- return e === "" ? new S() : new U(e);
723
+ return e === "" ? new P() : new U(e);
720
724
  }
721
725
  class On {
722
726
  // list of errors during lexing
@@ -1145,7 +1149,7 @@ class Mn {
1145
1149
  }, this.synchronizeElementDeclarationName = () => {
1146
1150
  for (; !this.isAtEnd(); ) {
1147
1151
  const s = this.peek();
1148
- if (mt(s) || this.check(u.COLON, u.LBRACE, u.LBRACKET))
1152
+ if (tt(s) || this.check(u.COLON, u.LBRACE, u.LBRACKET))
1149
1153
  break;
1150
1154
  b(s), this.advance();
1151
1155
  }
@@ -1404,7 +1408,7 @@ class Mn {
1404
1408
  throw new T(s.token, n(), s.handlerContext);
1405
1409
  this.synchronizeElementDeclarationName();
1406
1410
  }
1407
- if (mt(this.peek()))
1411
+ if (tt(this.peek()))
1408
1412
  if (e.as = this.advance(), this.check(u.COLON, u.LBRACE, u.LBRACKET))
1409
1413
  this.logError(this.peek(), o.UNEXPECTED_TOKEN, "Expect an alias");
1410
1414
  else
@@ -1480,7 +1484,7 @@ class Mn {
1480
1484
  return n();
1481
1485
  let s = e.callee;
1482
1486
  for (; !this.shouldStopExpression(); ) {
1483
- et(this.previous()) || this.logError(s, o.MISSING_SPACES, "Expect a following space");
1487
+ Ze(this.previous()) || this.logError(s, o.MISSING_SPACES, "Expect a following space");
1484
1488
  try {
1485
1489
  s = this.normalExpression(), e.args.push(s);
1486
1490
  } catch (i) {
@@ -1523,7 +1527,7 @@ class Mn {
1523
1527
  }), new T(a.token, n, a.handlerContext)) : a;
1524
1528
  }
1525
1529
  } else if (s.kind === u.LBRACKET) {
1526
- if (et(this.previous()))
1530
+ if (Ze(this.previous()))
1527
1531
  break;
1528
1532
  try {
1529
1533
  n = this.nodeFactory.create(Ie, {
@@ -1774,36 +1778,36 @@ function Le(t) {
1774
1778
  case I.TablePartial:
1775
1779
  return new U(e);
1776
1780
  default:
1777
- return new S();
1781
+ return new P();
1778
1782
  }
1779
1783
  }
1780
1784
  function _e(t) {
1781
1785
  if (!ut(t))
1782
1786
  return new U([t]);
1783
1787
  const e = _e(t.leftExpression).unwrap_or(void 0);
1784
- return e ? (e.push(t.rightExpression), new U(e)) : new S();
1788
+ return e ? (e.push(t.rightExpression), new U(e)) : new P();
1785
1789
  }
1786
1790
  function q(t) {
1787
1791
  if (t === void 0)
1788
- return new S();
1792
+ return new P();
1789
1793
  const e = _e(t).unwrap_or(void 0);
1790
1794
  if (!e)
1791
- return new S();
1795
+ return new P();
1792
1796
  const n = [];
1793
1797
  for (const s of e) {
1794
1798
  const i = W(s).unwrap_or(void 0);
1795
1799
  if (!i)
1796
- return new S();
1800
+ return new P();
1797
1801
  n.push(i);
1798
1802
  }
1799
1803
  return new U(n);
1800
1804
  }
1801
1805
  function De(t) {
1802
1806
  if (t === void 0)
1803
- return new S();
1807
+ return new P();
1804
1808
  const e = _e(t).unwrap_or(void 0);
1805
1809
  if (!e || e.length === 0)
1806
- return new S();
1810
+ return new P();
1807
1811
  const n = [];
1808
1812
  let s;
1809
1813
  if (!$(g.last(e))) {
@@ -1813,12 +1817,12 @@ function De(t) {
1813
1817
  (a) => X(a).unwrap()
1814
1818
  );
1815
1819
  else
1816
- return new S();
1820
+ return new P();
1817
1821
  }
1818
1822
  for (const i of e) {
1819
1823
  const a = W(i).unwrap_or(void 0);
1820
1824
  if (!a)
1821
- return new S();
1825
+ return new P();
1822
1826
  n.push(a);
1823
1827
  }
1824
1828
  return new U({
@@ -1827,7 +1831,7 @@ function De(t) {
1827
1831
  });
1828
1832
  }
1829
1833
  function W(t) {
1830
- return $(t) ? new U(t.expression.variable.value) : new S();
1834
+ return $(t) ? new U(t.expression.variable.value) : new P();
1831
1835
  }
1832
1836
  function $e(t) {
1833
1837
  if (It(t))
@@ -1838,20 +1842,20 @@ function $e(t) {
1838
1842
  ), n = t.elementList.filter($);
1839
1843
  return new U({ functional: e, nonFunctional: n });
1840
1844
  }
1841
- return new S();
1845
+ return new P();
1842
1846
  }
1843
1847
  function X(t) {
1844
1848
  var n;
1845
1849
  const e = (n = t == null ? void 0 : t.expression.variable) == null ? void 0 : n.value;
1846
- return e === void 0 ? new S() : new U(e);
1850
+ return e === void 0 ? new P() : new U(e);
1847
1851
  }
1848
1852
  function Xn(t) {
1849
1853
  var n, s;
1850
1854
  const e = (s = (n = t == null ? void 0 : t.partial) == null ? void 0 : n.variable) == null ? void 0 : s.value;
1851
- return e === void 0 ? new S() : new U(e);
1855
+ return e === void 0 ? new P() : new U(e);
1852
1856
  }
1853
1857
  function V(t) {
1854
- return Y(t) ? t.expression instanceof re ? new U(t.expression.variable.value) : new U(t.expression.literal.value) : new S();
1858
+ return Y(t) ? t.expression instanceof re ? new U(t.expression.variable.value) : new U(t.expression.literal.value) : new P();
1855
1859
  }
1856
1860
  function $n(t) {
1857
1861
  var e;
@@ -3463,7 +3467,7 @@ function Ht(t) {
3463
3467
  if (Ae(t))
3464
3468
  return {
3465
3469
  type: "number",
3466
- value: tt(t)
3470
+ value: et(t)
3467
3471
  };
3468
3472
  if (Ne(t))
3469
3473
  return {
@@ -3608,10 +3612,10 @@ class Qt {
3608
3612
  if (g.last(a) instanceof M) {
3609
3613
  const A = F(a.pop()).getValue();
3610
3614
  s.pk = !!((r = A[E.PK]) != null && r.length) || !!((c = A[E.PKey]) != null && c.length), s.increment = !!((f = A[E.Increment]) != null && f.length), s.unique = !!((p = A[E.Unique]) != null && p.length), s.not_null = (h = A[E.NotNull]) != null && h.length ? !0 : (d = A[E.Null]) != null && d.length ? !1 : void 0, s.dbdefault = Ht((L = (N = A[E.Default]) == null ? void 0 : N.at(0)) == null ? void 0 : L.value);
3611
- const P = (v = A[E.Note]) == null ? void 0 : v.at(0);
3612
- s.note = P && {
3613
- value: V(P.value).map(ae).unwrap(),
3614
- token: _(P)
3615
+ const S = (v = A[E.Note]) == null ? void 0 : v.at(0);
3616
+ s.note = S && {
3617
+ value: V(S.value).map(ae).unwrap(),
3618
+ token: _(S)
3615
3619
  };
3616
3620
  const Te = A[E.Ref] || [];
3617
3621
  s.inline_refs = Te.flatMap((D) => {
@@ -3689,15 +3693,15 @@ class Qt {
3689
3693
  }).forEach((L) => {
3690
3694
  const { functional: v, nonFunctional: A } = $e(L).unwrap();
3691
3695
  s.columns.push(
3692
- ...v.map((P) => ({
3693
- value: P.value.value,
3696
+ ...v.map((S) => ({
3697
+ value: S.value.value,
3694
3698
  type: "expression",
3695
- token: _(P)
3699
+ token: _(S)
3696
3700
  })),
3697
- ...A.map((P) => ({
3698
- value: X(P).unwrap(),
3701
+ ...A.map((S) => ({
3702
+ value: X(S).unwrap(),
3699
3703
  type: "column",
3700
- token: _(P)
3704
+ token: _(S)
3701
3705
  }))
3702
3706
  );
3703
3707
  }), s;
@@ -3791,10 +3795,10 @@ class Jt {
3791
3795
  new l(o.CIRCULAR_REF, "References with same endpoints exist", this.env.refIds[c])
3792
3796
  ];
3793
3797
  if (e.args[0]) {
3794
- const P = F(e.args[0]).getValue(), Te = (h = (p = P.delete) == null ? void 0 : p.at(0)) == null ? void 0 : h.value;
3798
+ const S = F(e.args[0]).getValue(), Te = (h = (p = S.delete) == null ? void 0 : p.at(0)) == null ? void 0 : h.value;
3795
3799
  this.ref.onDelete = Te instanceof ne ? we(Te).unwrap_or(void 0) : W(Te).unwrap_or(void 0);
3796
- const D = (N = (d = P.update) == null ? void 0 : d.at(0)) == null ? void 0 : N.value;
3797
- this.ref.onUpdate = D instanceof ne ? we(D).unwrap_or(void 0) : W(D).unwrap_or(void 0), this.ref.color = (L = P.color) != null && L.length ? Oe((A = (v = P.color) == null ? void 0 : v.at(0)) == null ? void 0 : A.value) : void 0;
3800
+ const D = (N = (d = S.update) == null ? void 0 : d.at(0)) == null ? void 0 : N.value;
3801
+ this.ref.onUpdate = D instanceof ne ? we(D).unwrap_or(void 0) : W(D).unwrap_or(void 0), this.ref.color = (L = S.color) != null && L.length ? Oe((A = (v = S.color) == null ? void 0 : v.at(0)) == null ? void 0 : A.value) : void 0;
3798
3802
  }
3799
3803
  const f = Yt(n);
3800
3804
  return this.ref.endpoints = [
@@ -3982,10 +3986,10 @@ class en {
3982
3986
  if (g.last(a) instanceof M) {
3983
3987
  const A = F(a.pop()).getValue();
3984
3988
  s.pk = !!((r = A[E.PK]) != null && r.length) || !!((c = A[E.PKey]) != null && c.length), s.increment = !!((f = A[E.Increment]) != null && f.length), s.unique = !!((p = A[E.Unique]) != null && p.length), s.not_null = (h = A[E.NotNull]) != null && h.length ? !0 : (d = A[E.Null]) != null && d.length ? !1 : void 0, s.dbdefault = Ht((L = (N = A[E.Default]) == null ? void 0 : N.at(0)) == null ? void 0 : L.value);
3985
- const P = (v = A[E.Note]) == null ? void 0 : v.at(0);
3986
- s.note = P && {
3987
- value: V(P.value).map(ae).unwrap(),
3988
- token: _(P)
3989
+ const S = (v = A[E.Note]) == null ? void 0 : v.at(0);
3990
+ s.note = S && {
3991
+ value: V(S.value).map(ae).unwrap(),
3992
+ token: _(S)
3989
3993
  };
3990
3994
  const Te = A[E.Ref] || [];
3991
3995
  s.inline_refs = Te.flatMap((D) => {
@@ -4054,15 +4058,15 @@ class en {
4054
4058
  }).forEach((L) => {
4055
4059
  const { functional: v, nonFunctional: A } = $e(L).unwrap();
4056
4060
  s.columns.push(
4057
- ...v.map((P) => ({
4058
- value: P.value.value,
4061
+ ...v.map((S) => ({
4062
+ value: S.value.value,
4059
4063
  type: "expression",
4060
- token: _(P)
4064
+ token: _(S)
4061
4065
  })),
4062
- ...A.map((P) => ({
4063
- value: X(P).unwrap(),
4066
+ ...A.map((S) => ({
4067
+ value: X(S).unwrap(),
4064
4068
  type: "column",
4065
- token: _(P)
4069
+ token: _(S)
4066
4070
  }))
4067
4071
  );
4068
4072
  }), s;
@@ -4193,7 +4197,7 @@ function xe(t) {
4193
4197
  }
4194
4198
  }
4195
4199
  function We(t, e) {
4196
- if (!t || et(t))
4200
+ if (!t || Ze(t))
4197
4201
  return !1;
4198
4202
  for (const n of t.trailingTrivia) {
4199
4203
  if (n.start > e)
@@ -4471,7 +4475,11 @@ function wt(t, e) {
4471
4475
  };
4472
4476
  case O.REF:
4473
4477
  return {
4474
- suggestions: [E.Update, E.Delete].map((i) => ({
4478
+ suggestions: [
4479
+ E.Update,
4480
+ E.Delete,
4481
+ E.Color
4482
+ ].map((i) => ({
4475
4483
  label: i,
4476
4484
  insertText: `${i}: `,
4477
4485
  kind: k.Property,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -9,6 +9,7 @@ export declare class Some<T> {
9
9
  isOk(): boolean;
10
10
  }
11
11
  export declare class None<T> {
12
+ value: undefined;
12
13
  unwrap(): T;
13
14
  unwrap_or<S>(orValue: S): S | T;
14
15
  and_then<S>(callback: (_: T) => Option<S>): Option<S>;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbml/parse",
3
- "version": "3.13.4",
3
+ "version": "3.13.5-alpha.1",
4
4
  "description": "> TODO: description",
5
5
  "author": "Holistics <dev@holistics.io>",
6
6
  "license": "Apache-2.0",
@@ -48,5 +48,5 @@
48
48
  "peerDependencies": {
49
49
  "lodash": "^4.17.21"
50
50
  },
51
- "gitHead": "4b4afb1b4c41af45d5a7d19ef83a525f78a27a54"
51
+ "gitHead": "3855f841b1cc5510ae080521f5ab3cd5da8fe3ae"
52
52
  }