@dbml/parse 7.0.0-alpha.1 → 7.0.1-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.
Files changed (156) hide show
  1. package/dist/dbml-parse.js +19 -16
  2. package/dist/dbml-parse.mjs +5313 -5092
  3. package/dist/src/compiler/index.d.ts +21 -21
  4. package/dist/src/compiler/queries/container/element.d.ts +1 -1
  5. package/dist/src/compiler/queries/container/index.d.ts +5 -5
  6. package/dist/src/compiler/queries/container/scope.d.ts +1 -1
  7. package/dist/src/compiler/queries/container/stack.d.ts +1 -1
  8. package/dist/src/compiler/queries/container/token.d.ts +1 -1
  9. package/dist/src/compiler/queries/{parse.d.ts → legacy/parse.d.ts} +6 -6
  10. package/dist/src/compiler/queries/{symbol.d.ts → legacy/symbol.d.ts} +4 -4
  11. package/dist/src/compiler/queries/{token.d.ts → legacy/token.d.ts} +2 -2
  12. package/dist/src/compiler/queries/transform/index.d.ts +4 -4
  13. package/dist/src/compiler/queries/transform/utils.d.ts +2 -2
  14. package/dist/src/constants.d.ts +4 -0
  15. package/dist/src/core/analyzer/analyzer.d.ts +3 -3
  16. package/dist/src/core/analyzer/binder/binder.d.ts +3 -3
  17. package/dist/src/core/analyzer/binder/elementBinder/checks.d.ts +2 -2
  18. package/dist/src/core/analyzer/binder/elementBinder/custom.d.ts +4 -4
  19. package/dist/src/core/analyzer/binder/elementBinder/diagramView.d.ts +4 -4
  20. package/dist/src/core/analyzer/binder/elementBinder/enum.d.ts +4 -4
  21. package/dist/src/core/analyzer/binder/elementBinder/indexes.d.ts +4 -4
  22. package/dist/src/core/analyzer/binder/elementBinder/note.d.ts +4 -4
  23. package/dist/src/core/analyzer/binder/elementBinder/project.d.ts +4 -4
  24. package/dist/src/core/analyzer/binder/elementBinder/records.d.ts +4 -4
  25. package/dist/src/core/analyzer/binder/elementBinder/ref.d.ts +4 -4
  26. package/dist/src/core/analyzer/binder/elementBinder/table.d.ts +4 -4
  27. package/dist/src/core/analyzer/binder/elementBinder/tableGroup.d.ts +4 -4
  28. package/dist/src/core/analyzer/binder/elementBinder/tablePartial.d.ts +4 -4
  29. package/dist/src/core/analyzer/binder/types.d.ts +1 -1
  30. package/dist/src/core/analyzer/binder/utils.d.ts +5 -5
  31. package/dist/src/core/analyzer/utils.d.ts +15 -18
  32. package/dist/src/core/analyzer/validator/elementValidators/checks.d.ts +5 -5
  33. package/dist/src/core/analyzer/validator/elementValidators/custom.d.ts +5 -5
  34. package/dist/src/core/analyzer/validator/elementValidators/diagramView.d.ts +5 -5
  35. package/dist/src/core/analyzer/validator/elementValidators/enum.d.ts +5 -5
  36. package/dist/src/core/analyzer/validator/elementValidators/indexes.d.ts +5 -5
  37. package/dist/src/core/analyzer/validator/elementValidators/note.d.ts +5 -5
  38. package/dist/src/core/analyzer/validator/elementValidators/project.d.ts +5 -5
  39. package/dist/src/core/analyzer/validator/elementValidators/records.d.ts +5 -5
  40. package/dist/src/core/analyzer/validator/elementValidators/ref.d.ts +5 -5
  41. package/dist/src/core/analyzer/validator/elementValidators/table.d.ts +5 -5
  42. package/dist/src/core/analyzer/validator/elementValidators/tableGroup.d.ts +5 -5
  43. package/dist/src/core/analyzer/validator/elementValidators/tablePartial.d.ts +5 -5
  44. package/dist/src/core/analyzer/validator/types.d.ts +1 -1
  45. package/dist/src/core/analyzer/validator/utils.d.ts +9 -10
  46. package/dist/src/core/analyzer/validator/validator.d.ts +3 -3
  47. package/dist/src/core/interpreter/elementInterpreter/diagramView.d.ts +2 -2
  48. package/dist/src/core/interpreter/elementInterpreter/enum.d.ts +2 -2
  49. package/dist/src/core/interpreter/elementInterpreter/project.d.ts +2 -2
  50. package/dist/src/core/interpreter/elementInterpreter/ref.d.ts +2 -2
  51. package/dist/src/core/interpreter/elementInterpreter/sticky_note.d.ts +2 -2
  52. package/dist/src/core/interpreter/elementInterpreter/table.d.ts +2 -2
  53. package/dist/src/core/interpreter/elementInterpreter/tableGroup.d.ts +2 -2
  54. package/dist/src/core/interpreter/elementInterpreter/tablePartial.d.ts +2 -2
  55. package/dist/src/core/interpreter/interpreter.d.ts +4 -3
  56. package/dist/src/core/interpreter/records/index.d.ts +2 -2
  57. package/dist/src/core/interpreter/records/utils/constraints/fk.d.ts +1 -1
  58. package/dist/src/core/interpreter/records/utils/constraints/helper.d.ts +3 -2
  59. package/dist/src/core/interpreter/records/utils/constraints/pk.d.ts +1 -1
  60. package/dist/src/core/interpreter/records/utils/constraints/unique.d.ts +1 -1
  61. package/dist/src/core/interpreter/records/utils/data/sqlTypes.d.ts +1 -1
  62. package/dist/src/core/interpreter/records/utils/data/values.d.ts +2 -2
  63. package/dist/src/core/interpreter/types.d.ts +10 -228
  64. package/dist/src/core/interpreter/utils.d.ts +6 -5
  65. package/dist/src/core/lexer/lexer.d.ts +5 -3
  66. package/dist/src/core/lexer/utils.d.ts +1 -1
  67. package/dist/src/core/parser/contextStack.d.ts +1 -1
  68. package/dist/src/core/parser/factory.d.ts +5 -3
  69. package/dist/src/core/parser/parser.d.ts +5 -4
  70. package/dist/src/core/parser/utils.d.ts +6 -7
  71. package/dist/src/core/{errors.d.ts → types/errors.d.ts} +5 -2
  72. package/dist/src/core/types/filepath.d.ts +26 -0
  73. package/dist/src/core/types/index.d.ts +7 -0
  74. package/dist/src/core/types/internable.d.ts +20 -0
  75. package/dist/src/core/types/module.d.ts +9 -0
  76. package/dist/src/core/{parser → types}/nodes.d.ts +49 -38
  77. package/dist/src/core/types/report.d.ts +18 -0
  78. package/dist/src/core/types/schemaJson.d.ts +243 -0
  79. package/dist/src/core/{analyzer → types}/symbol/factory.d.ts +1 -1
  80. package/dist/src/core/types/symbol/index.d.ts +5 -0
  81. package/dist/src/core/{analyzer → types}/symbol/symbolIndex.d.ts +3 -4
  82. package/dist/src/core/types/symbol/symbols.d.ts +122 -0
  83. package/dist/src/core/{analyzer → types}/symbol/utils.d.ts +1 -1
  84. package/dist/src/core/{lexer → types}/tokens.d.ts +5 -3
  85. package/dist/src/core/utils/array.d.ts +1 -0
  86. package/dist/src/core/utils/chars.d.ts +4 -0
  87. package/dist/src/core/utils/enum.d.ts +1 -0
  88. package/dist/src/core/utils/numbers.d.ts +3 -0
  89. package/dist/src/core/utils/span.d.ts +6 -0
  90. package/dist/src/index.d.ts +9 -9
  91. package/dist/src/services/definition/provider.d.ts +1 -1
  92. package/dist/src/services/index.d.ts +3 -3
  93. package/dist/src/services/monarch.d.ts +1 -1
  94. package/dist/src/services/references/provider.d.ts +1 -1
  95. package/dist/src/services/suggestions/provider.d.ts +1 -1
  96. package/dist/src/services/suggestions/recordRowSnippet.d.ts +1 -1
  97. package/dist/src/services/suggestions/utils.d.ts +5 -5
  98. package/dist/src/services/types.d.ts +1 -1
  99. package/dist/src/services/utils.d.ts +1 -1
  100. package/package.json +2 -2
  101. package/dist/__tests__/examples/binder/binder.test.d.ts +0 -1
  102. package/dist/__tests__/examples/binder/records.test.d.ts +0 -1
  103. package/dist/__tests__/examples/compiler/applyTextEdits.test.d.ts +0 -1
  104. package/dist/__tests__/examples/compiler/identifierUtils.test.d.ts +0 -1
  105. package/dist/__tests__/examples/compiler/renameTable.test.d.ts +0 -1
  106. package/dist/__tests__/examples/compiler/splitQualifiedIdentifier.test.d.ts +0 -1
  107. package/dist/__tests__/examples/compiler/stringUtils.test.d.ts +0 -1
  108. package/dist/__tests__/examples/compiler/syncDiagramView.test.d.ts +0 -1
  109. package/dist/__tests__/examples/interpreter/interpreter.test.d.ts +0 -1
  110. package/dist/__tests__/examples/interpreter/record/data.test.d.ts +0 -1
  111. package/dist/__tests__/examples/interpreter/record/fk.test.d.ts +0 -1
  112. package/dist/__tests__/examples/interpreter/record/increment.test.d.ts +0 -1
  113. package/dist/__tests__/examples/interpreter/record/multi_records.test.d.ts +0 -1
  114. package/dist/__tests__/examples/interpreter/record/pk.test.d.ts +0 -1
  115. package/dist/__tests__/examples/interpreter/record/table_partial.test.d.ts +0 -1
  116. package/dist/__tests__/examples/interpreter/record/type_compatibility.test.d.ts +0 -1
  117. package/dist/__tests__/examples/interpreter/record/unique.test.d.ts +0 -1
  118. package/dist/__tests__/examples/lexer/lexer.test.d.ts +0 -1
  119. package/dist/__tests__/examples/lexer/scientific-notation.test.d.ts +0 -1
  120. package/dist/__tests__/examples/parser/parser.test.d.ts +0 -1
  121. package/dist/__tests__/examples/services/definition/general.test.d.ts +0 -1
  122. package/dist/__tests__/examples/services/definition/records.test.d.ts +0 -1
  123. package/dist/__tests__/examples/services/references/general.test.d.ts +0 -1
  124. package/dist/__tests__/examples/services/references/records.test.d.ts +0 -1
  125. package/dist/__tests__/examples/services/service_utils.test.d.ts +0 -1
  126. package/dist/__tests__/examples/services/suggestions/general.test.d.ts +0 -1
  127. package/dist/__tests__/examples/services/suggestions/suggestions_diagramview.test.d.ts +0 -1
  128. package/dist/__tests__/examples/services/suggestions/suggestions_records.test.d.ts +0 -1
  129. package/dist/__tests__/examples/validator/records.test.d.ts +0 -1
  130. package/dist/__tests__/examples/validator/validator.test.d.ts +0 -1
  131. package/dist/__tests__/examples/wildcard/wildcard.test.d.ts +0 -1
  132. package/dist/__tests__/fuzz/interpreter.test.d.ts +0 -1
  133. package/dist/__tests__/fuzz/parser.test.d.ts +0 -1
  134. package/dist/__tests__/fuzz/services.test.d.ts +0 -1
  135. package/dist/__tests__/properties/lexer.test.d.ts +0 -1
  136. package/dist/__tests__/properties/parser.test.d.ts +0 -1
  137. package/dist/__tests__/snapshots/binder/binder.test.d.ts +0 -1
  138. package/dist/__tests__/snapshots/interpreter/interpreter.test.d.ts +0 -1
  139. package/dist/__tests__/snapshots/lexer/lexer.test.d.ts +0 -1
  140. package/dist/__tests__/snapshots/nan/nan.test.d.ts +0 -1
  141. package/dist/__tests__/snapshots/parser/parser.test.d.ts +0 -1
  142. package/dist/__tests__/snapshots/validator/validator.test.d.ts +0 -1
  143. package/dist/__tests__/utils/arbitraries/grammars.d.ts +0 -100
  144. package/dist/__tests__/utils/arbitraries/index.d.ts +0 -3
  145. package/dist/__tests__/utils/arbitraries/tokens.d.ts +0 -20
  146. package/dist/__tests__/utils/arbitraries/utils.d.ts +0 -59
  147. package/dist/__tests__/utils/compiler.d.ts +0 -13
  148. package/dist/__tests__/utils/index.d.ts +0 -3
  149. package/dist/__tests__/utils/mocks.d.ts +0 -17
  150. package/dist/__tests__/utils/testHelpers.d.ts +0 -16
  151. package/dist/src/core/analyzer/symbol/symbols.d.ts +0 -132
  152. package/dist/src/core/option.d.ts +0 -18
  153. package/dist/src/core/report.d.ts +0 -12
  154. package/dist/src/core/utils.d.ts +0 -13
  155. /package/dist/src/core/{types.d.ts → types/position.d.ts} +0 -0
  156. /package/dist/src/core/{analyzer → types}/symbol/symbolTable.d.ts +0 -0
@@ -1,13 +0,0 @@
1
- import { ProgramNode, SyntaxNode } from '../../src/core/parser/nodes';
2
- import { default as Report } from '../../src/core/report';
3
- import { SyntaxToken } from '../../src/index';
4
- import { Database } from '../../src/core/interpreter/types';
5
- export declare function lex(source: string): Report<SyntaxToken[]>;
6
- export declare function parse(source: string): Report<{
7
- ast: ProgramNode;
8
- tokens: SyntaxToken[];
9
- }>;
10
- export declare function analyze(source: string): Report<ProgramNode>;
11
- export declare function interpret(source: string): Report<Database | undefined>;
12
- export declare function flattenTokens(token: SyntaxToken): SyntaxToken[];
13
- export declare function print(source: string, ast: SyntaxNode): string;
@@ -1,3 +0,0 @@
1
- export { createPosition, MockTextModel, createMockTextModel, extractTextFromRange, } from './mocks';
2
- export { scanTestNames, serialize, } from './testHelpers';
3
- export { lex, parse, analyze, interpret, flattenTokens, print, } from './compiler';
@@ -1,17 +0,0 @@
1
- import { Position, TextModel } from '../../src/services';
2
- export declare function createPosition(lineNumber: number, column: number): Position;
3
- export declare class MockTextModel {
4
- private content;
5
- uri: any;
6
- constructor(content: string, uri?: string);
7
- getOffsetAt(position: Position): number;
8
- getValue(): string;
9
- getLineContent(lineNumber: number): string;
10
- }
11
- export declare function createMockTextModel(content: string, uri?: string): TextModel;
12
- export declare function extractTextFromRange(program: string, range: {
13
- startLineNumber: number;
14
- startColumn: number;
15
- endLineNumber: number;
16
- endColumn: number;
17
- }): string;
@@ -1,16 +0,0 @@
1
- import { default as Report } from '../../src/core/report';
2
- import { ProgramNode } from '../../src/index';
3
- export declare function scanTestNames(_path: any): string[];
4
- /**
5
- * Serializes a compiler report to JSON, handling circular references and
6
- * reducing verbosity by outputting IDs instead of full objects where appropriate.
7
- *
8
- * The serializer handles special keys:
9
- * - 'symbol': For non-root nodes, outputs only the symbol ID. For root nodes,
10
- * outputs the full symbol table with references as IDs.
11
- * - 'referee': Outputs only the referenced symbol's ID
12
- * - 'parent': Outputs only the parent node's ID
13
- * - 'declaration': Outputs only the declaration node's ID
14
- * - 'symbolTable': Converts Map to Object for JSON compatibility
15
- */
16
- export declare function serialize(report: Readonly<Report<ProgramNode>>, pretty?: boolean): string;
@@ -1,132 +0,0 @@
1
- import { default as SymbolTable } from './symbolTable';
2
- import { SyntaxNode } from '../../parser/nodes';
3
- export type NodeSymbolId = number;
4
- export declare class NodeSymbolIdGenerator {
5
- private id;
6
- reset(): void;
7
- nextId(): NodeSymbolId;
8
- }
9
- export interface NodeSymbol {
10
- id: NodeSymbolId;
11
- symbolTable?: SymbolTable;
12
- declaration?: SyntaxNode;
13
- references: SyntaxNode[];
14
- }
15
- export declare class SchemaSymbol implements NodeSymbol {
16
- id: NodeSymbolId;
17
- symbolTable: SymbolTable;
18
- references: SyntaxNode[];
19
- constructor({ symbolTable }: {
20
- symbolTable: SymbolTable;
21
- }, id: NodeSymbolId);
22
- }
23
- export declare class EnumSymbol implements NodeSymbol {
24
- id: NodeSymbolId;
25
- symbolTable: SymbolTable;
26
- declaration: SyntaxNode;
27
- references: SyntaxNode[];
28
- constructor({ symbolTable, declaration }: {
29
- symbolTable: SymbolTable;
30
- declaration: SyntaxNode;
31
- }, id: NodeSymbolId);
32
- }
33
- export declare class EnumFieldSymbol implements NodeSymbol {
34
- id: NodeSymbolId;
35
- declaration: SyntaxNode;
36
- references: SyntaxNode[];
37
- constructor({ declaration }: {
38
- declaration: SyntaxNode;
39
- }, id: NodeSymbolId);
40
- }
41
- export declare class TableSymbol implements NodeSymbol {
42
- id: NodeSymbolId;
43
- symbolTable: SymbolTable;
44
- declaration: SyntaxNode;
45
- references: SyntaxNode[];
46
- constructor({ symbolTable, declaration }: {
47
- symbolTable: SymbolTable;
48
- declaration: SyntaxNode;
49
- }, id: NodeSymbolId);
50
- }
51
- export declare class ColumnSymbol implements NodeSymbol {
52
- id: NodeSymbolId;
53
- declaration: SyntaxNode;
54
- references: SyntaxNode[];
55
- constructor({ declaration }: {
56
- declaration: SyntaxNode;
57
- }, id: NodeSymbolId);
58
- }
59
- export declare class TableGroupSymbol implements NodeSymbol {
60
- id: NodeSymbolId;
61
- symbolTable: SymbolTable;
62
- declaration: SyntaxNode;
63
- references: SyntaxNode[];
64
- constructor({ symbolTable, declaration }: {
65
- symbolTable: SymbolTable;
66
- declaration: SyntaxNode;
67
- }, id: NodeSymbolId);
68
- }
69
- export declare class TableGroupFieldSymbol implements NodeSymbol {
70
- id: NodeSymbolId;
71
- declaration: SyntaxNode;
72
- references: SyntaxNode[];
73
- constructor({ declaration }: {
74
- declaration: SyntaxNode;
75
- }, id: NodeSymbolId);
76
- }
77
- export declare class DiagramViewSymbol implements NodeSymbol {
78
- id: NodeSymbolId;
79
- symbolTable: SymbolTable;
80
- declaration: SyntaxNode;
81
- references: SyntaxNode[];
82
- constructor({ symbolTable, declaration }: {
83
- symbolTable: SymbolTable;
84
- declaration: SyntaxNode;
85
- }, id: NodeSymbolId);
86
- }
87
- export declare class DiagramViewFieldSymbol implements NodeSymbol {
88
- id: NodeSymbolId;
89
- declaration: SyntaxNode;
90
- references: SyntaxNode[];
91
- constructor({ declaration }: {
92
- declaration: SyntaxNode;
93
- }, id: NodeSymbolId);
94
- }
95
- export declare class StickyNoteSymbol implements NodeSymbol {
96
- id: NodeSymbolId;
97
- declaration: SyntaxNode;
98
- references: SyntaxNode[];
99
- constructor({ declaration }: {
100
- declaration: SyntaxNode;
101
- }, id: NodeSymbolId);
102
- }
103
- export declare class TablePartialSymbol implements NodeSymbol {
104
- id: NodeSymbolId;
105
- symbolTable: SymbolTable;
106
- declaration: SyntaxNode;
107
- references: SyntaxNode[];
108
- constructor({ symbolTable, declaration }: {
109
- symbolTable: SymbolTable;
110
- declaration: SyntaxNode;
111
- }, id: NodeSymbolId);
112
- }
113
- export declare class PartialInjectionSymbol implements NodeSymbol {
114
- id: NodeSymbolId;
115
- symbolTable: SymbolTable;
116
- declaration: SyntaxNode;
117
- references: SyntaxNode[];
118
- constructor({ symbolTable, declaration }: {
119
- symbolTable: SymbolTable;
120
- declaration: SyntaxNode;
121
- }, id: NodeSymbolId);
122
- }
123
- export declare class TablePartialInjectedColumnSymbol implements NodeSymbol {
124
- id: NodeSymbolId;
125
- declaration: SyntaxNode;
126
- tablePartialSymbol: TablePartialSymbol;
127
- references: SyntaxNode[];
128
- constructor({ declaration, tablePartialSymbol }: {
129
- declaration: SyntaxNode;
130
- tablePartialSymbol: TablePartialSymbol;
131
- }, id: NodeSymbolId);
132
- }
@@ -1,18 +0,0 @@
1
- export type Option<T> = Some<T> | None<T>;
2
- export declare class Some<T> {
3
- value: T;
4
- constructor(value: T);
5
- unwrap(): T;
6
- unwrap_or<S>(orValue: S): S | T;
7
- and_then<S>(callback: (_: T) => Option<S>): Option<S>;
8
- map<S>(callback: (_: T) => S): Option<S>;
9
- isOk(): boolean;
10
- }
11
- export declare class None<T> {
12
- value: undefined;
13
- unwrap(): T;
14
- unwrap_or<S>(orValue: S): S | T;
15
- and_then<S>(callback: (_: T) => Option<S>): Option<S>;
16
- map<S>(callback: (_: T) => S): Option<S>;
17
- isOk(): boolean;
18
- }
@@ -1,12 +0,0 @@
1
- import { CompileError, CompileWarning } from './errors';
2
- export default class Report<T> {
3
- private value;
4
- private errors;
5
- private warnings?;
6
- constructor(value: T, errors?: CompileError[], warnings?: CompileWarning[]);
7
- getValue(): T;
8
- getErrors(): CompileError[];
9
- getWarnings(): CompileWarning[];
10
- chain<U>(fn: (_: T) => Report<U>): Report<U>;
11
- map<U>(fn: (_: T) => U): Report<U>;
12
- }
@@ -1,13 +0,0 @@
1
- import { SyntaxToken } from './lexer/tokens';
2
- import { PrefixExpressionNode, PrimaryExpressionNode, SyntaxNode } from './parser/nodes';
3
- export declare function isAlphaOrUnderscore(char: string): boolean;
4
- export declare function isDigit(char: string): boolean;
5
- export declare function isHexChar(char: string): boolean;
6
- export declare function isAlphaNumeric(char: string): boolean;
7
- export declare function alternateLists<T, S>(firstList: T[], secondList: S[]): (T | S)[];
8
- export declare function isOffsetWithinFullSpan(offset: number, nodeOrToken: SyntaxNode | SyntaxToken): boolean;
9
- export declare function isOffsetWithinSpan(offset: number, nodeOrToken: SyntaxNode | SyntaxToken): boolean;
10
- export declare function returnIfIsOffsetWithinFullSpan(offset: number, node?: SyntaxNode): SyntaxNode | undefined;
11
- export declare function returnIfIsOffsetWithinFullSpan(offset: number, token?: SyntaxToken): SyntaxToken | undefined;
12
- export declare function getNumberTextFromExpression(node: PrimaryExpressionNode | PrefixExpressionNode): string;
13
- export declare function parseNumber(node: PrefixExpressionNode | PrimaryExpressionNode): number;