@dbml/parse 6.5.0 → 7.0.0-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 (156) hide show
  1. package/LICENSE +0 -0
  2. package/dist/__tests__/examples/binder/binder.test.d.ts +0 -0
  3. package/dist/__tests__/examples/binder/records.test.d.ts +0 -0
  4. package/dist/__tests__/examples/compiler/applyTextEdits.test.d.ts +0 -0
  5. package/dist/__tests__/examples/compiler/identifierUtils.test.d.ts +0 -0
  6. package/dist/__tests__/examples/compiler/renameTable.test.d.ts +0 -0
  7. package/dist/__tests__/examples/compiler/splitQualifiedIdentifier.test.d.ts +0 -0
  8. package/dist/__tests__/examples/compiler/stringUtils.test.d.ts +0 -0
  9. package/dist/__tests__/examples/compiler/syncDiagramView.test.d.ts +1 -0
  10. package/dist/__tests__/examples/interpreter/interpreter.test.d.ts +0 -0
  11. package/dist/__tests__/examples/interpreter/record/data.test.d.ts +0 -0
  12. package/dist/__tests__/examples/interpreter/record/fk.test.d.ts +0 -0
  13. package/dist/__tests__/examples/interpreter/record/increment.test.d.ts +0 -0
  14. package/dist/__tests__/examples/interpreter/record/multi_records.test.d.ts +0 -0
  15. package/dist/__tests__/examples/interpreter/record/pk.test.d.ts +0 -0
  16. package/dist/__tests__/examples/interpreter/record/table_partial.test.d.ts +0 -0
  17. package/dist/__tests__/examples/interpreter/record/type_compatibility.test.d.ts +0 -0
  18. package/dist/__tests__/examples/interpreter/record/unique.test.d.ts +0 -0
  19. package/dist/__tests__/examples/lexer/lexer.test.d.ts +0 -0
  20. package/dist/__tests__/examples/lexer/scientific-notation.test.d.ts +0 -0
  21. package/dist/__tests__/examples/parser/parser.test.d.ts +0 -0
  22. package/dist/__tests__/examples/services/definition/general.test.d.ts +0 -0
  23. package/dist/__tests__/examples/services/definition/records.test.d.ts +0 -0
  24. package/dist/__tests__/examples/services/references/general.test.d.ts +0 -0
  25. package/dist/__tests__/examples/services/references/records.test.d.ts +0 -0
  26. package/dist/__tests__/examples/services/service_utils.test.d.ts +0 -0
  27. package/dist/__tests__/examples/services/suggestions/general.test.d.ts +0 -0
  28. package/dist/__tests__/examples/services/suggestions/suggestions_diagramview.test.d.ts +1 -0
  29. package/dist/__tests__/examples/services/suggestions/suggestions_records.test.d.ts +0 -0
  30. package/dist/__tests__/examples/validator/records.test.d.ts +0 -0
  31. package/dist/__tests__/examples/validator/validator.test.d.ts +0 -0
  32. package/dist/__tests__/examples/wildcard/wildcard.test.d.ts +1 -0
  33. package/dist/__tests__/fuzz/interpreter.test.d.ts +0 -0
  34. package/dist/__tests__/fuzz/parser.test.d.ts +0 -0
  35. package/dist/__tests__/fuzz/services.test.d.ts +0 -0
  36. package/dist/__tests__/properties/lexer.test.d.ts +0 -0
  37. package/dist/__tests__/properties/parser.test.d.ts +0 -0
  38. package/dist/__tests__/snapshots/binder/binder.test.d.ts +0 -0
  39. package/dist/__tests__/snapshots/interpreter/interpreter.test.d.ts +0 -0
  40. package/dist/__tests__/snapshots/lexer/lexer.test.d.ts +0 -0
  41. package/dist/__tests__/snapshots/nan/nan.test.d.ts +0 -0
  42. package/dist/__tests__/snapshots/parser/parser.test.d.ts +0 -0
  43. package/dist/__tests__/snapshots/validator/validator.test.d.ts +0 -0
  44. package/dist/__tests__/utils/arbitraries/grammars.d.ts +1 -1
  45. package/dist/__tests__/utils/arbitraries/index.d.ts +0 -0
  46. package/dist/__tests__/utils/arbitraries/tokens.d.ts +0 -0
  47. package/dist/__tests__/utils/arbitraries/utils.d.ts +0 -0
  48. package/dist/__tests__/utils/compiler.d.ts +0 -0
  49. package/dist/__tests__/utils/index.d.ts +0 -0
  50. package/dist/__tests__/utils/mocks.d.ts +0 -0
  51. package/dist/__tests__/utils/testHelpers.d.ts +0 -0
  52. package/dist/dbml-parse.js +19 -11
  53. package/dist/dbml-parse.mjs +868 -133
  54. package/dist/index.d.ts +0 -0
  55. package/dist/src/compiler/index.d.ts +7 -2
  56. package/dist/src/compiler/queries/container/element.d.ts +0 -0
  57. package/dist/src/compiler/queries/container/index.d.ts +0 -0
  58. package/dist/src/compiler/queries/container/scope.d.ts +0 -0
  59. package/dist/src/compiler/queries/container/scopeKind.d.ts +0 -0
  60. package/dist/src/compiler/queries/container/stack.d.ts +0 -0
  61. package/dist/src/compiler/queries/container/token.d.ts +0 -0
  62. package/dist/src/compiler/queries/parse.d.ts +0 -0
  63. package/dist/src/compiler/queries/symbol.d.ts +0 -0
  64. package/dist/src/compiler/queries/token.d.ts +0 -0
  65. package/dist/src/compiler/queries/transform/applyTextEdits.d.ts +1 -1
  66. package/dist/src/compiler/queries/transform/index.d.ts +1 -0
  67. package/dist/src/compiler/queries/transform/renameTable.d.ts +0 -0
  68. package/dist/src/compiler/queries/transform/syncDiagramView.d.ts +39 -0
  69. package/dist/src/compiler/queries/transform/utils.d.ts +0 -0
  70. package/dist/src/compiler/queries/utils.d.ts +0 -0
  71. package/dist/src/compiler/types.d.ts +2 -1
  72. package/dist/src/constants.d.ts +0 -0
  73. package/dist/src/core/analyzer/analyzer.d.ts +0 -0
  74. package/dist/src/core/analyzer/binder/binder.d.ts +0 -0
  75. package/dist/src/core/analyzer/binder/elementBinder/checks.d.ts +0 -0
  76. package/dist/src/core/analyzer/binder/elementBinder/custom.d.ts +0 -0
  77. package/dist/src/core/analyzer/binder/elementBinder/diagramView.d.ts +20 -0
  78. package/dist/src/core/analyzer/binder/elementBinder/enum.d.ts +0 -0
  79. package/dist/src/core/analyzer/binder/elementBinder/indexes.d.ts +0 -0
  80. package/dist/src/core/analyzer/binder/elementBinder/note.d.ts +0 -0
  81. package/dist/src/core/analyzer/binder/elementBinder/project.d.ts +0 -0
  82. package/dist/src/core/analyzer/binder/elementBinder/records.d.ts +0 -0
  83. package/dist/src/core/analyzer/binder/elementBinder/ref.d.ts +0 -0
  84. package/dist/src/core/analyzer/binder/elementBinder/table.d.ts +0 -0
  85. package/dist/src/core/analyzer/binder/elementBinder/tableGroup.d.ts +0 -0
  86. package/dist/src/core/analyzer/binder/elementBinder/tablePartial.d.ts +0 -0
  87. package/dist/src/core/analyzer/binder/types.d.ts +0 -0
  88. package/dist/src/core/analyzer/binder/utils.d.ts +2 -1
  89. package/dist/src/core/analyzer/symbol/factory.d.ts +0 -0
  90. package/dist/src/core/analyzer/symbol/symbolIndex.d.ts +5 -1
  91. package/dist/src/core/analyzer/symbol/symbolTable.d.ts +0 -0
  92. package/dist/src/core/analyzer/symbol/symbols.d.ts +26 -0
  93. package/dist/src/core/analyzer/symbol/utils.d.ts +0 -0
  94. package/dist/src/core/analyzer/types.d.ts +2 -1
  95. package/dist/src/core/analyzer/utils.d.ts +0 -0
  96. package/dist/src/core/analyzer/validator/elementValidators/checks.d.ts +5 -2
  97. package/dist/src/core/analyzer/validator/elementValidators/custom.d.ts +5 -2
  98. package/dist/src/core/analyzer/validator/elementValidators/diagramView.d.ts +31 -0
  99. package/dist/src/core/analyzer/validator/elementValidators/enum.d.ts +5 -2
  100. package/dist/src/core/analyzer/validator/elementValidators/indexes.d.ts +5 -2
  101. package/dist/src/core/analyzer/validator/elementValidators/note.d.ts +5 -2
  102. package/dist/src/core/analyzer/validator/elementValidators/project.d.ts +5 -2
  103. package/dist/src/core/analyzer/validator/elementValidators/records.d.ts +5 -2
  104. package/dist/src/core/analyzer/validator/elementValidators/ref.d.ts +5 -2
  105. package/dist/src/core/analyzer/validator/elementValidators/table.d.ts +5 -2
  106. package/dist/src/core/analyzer/validator/elementValidators/tableGroup.d.ts +5 -2
  107. package/dist/src/core/analyzer/validator/elementValidators/tablePartial.d.ts +5 -2
  108. package/dist/src/core/analyzer/validator/types.d.ts +5 -2
  109. package/dist/src/core/analyzer/validator/utils.d.ts +2 -1
  110. package/dist/src/core/analyzer/validator/validator.d.ts +0 -0
  111. package/dist/src/core/errors.d.ts +4 -0
  112. package/dist/src/core/interpreter/elementInterpreter/diagramView.d.ts +13 -0
  113. package/dist/src/core/interpreter/elementInterpreter/enum.d.ts +0 -0
  114. package/dist/src/core/interpreter/elementInterpreter/project.d.ts +0 -0
  115. package/dist/src/core/interpreter/elementInterpreter/ref.d.ts +0 -0
  116. package/dist/src/core/interpreter/elementInterpreter/sticky_note.d.ts +0 -0
  117. package/dist/src/core/interpreter/elementInterpreter/table.d.ts +0 -0
  118. package/dist/src/core/interpreter/elementInterpreter/tableGroup.d.ts +0 -0
  119. package/dist/src/core/interpreter/elementInterpreter/tablePartial.d.ts +0 -0
  120. package/dist/src/core/interpreter/interpreter.d.ts +0 -0
  121. package/dist/src/core/interpreter/records/index.d.ts +0 -0
  122. package/dist/src/core/interpreter/records/utils/constraints/fk.d.ts +0 -0
  123. package/dist/src/core/interpreter/records/utils/constraints/helper.d.ts +0 -0
  124. package/dist/src/core/interpreter/records/utils/constraints/index.d.ts +0 -0
  125. package/dist/src/core/interpreter/records/utils/constraints/pk.d.ts +0 -0
  126. package/dist/src/core/interpreter/records/utils/constraints/unique.d.ts +0 -0
  127. package/dist/src/core/interpreter/records/utils/data/index.d.ts +0 -0
  128. package/dist/src/core/interpreter/records/utils/data/sqlTypes.d.ts +0 -0
  129. package/dist/src/core/interpreter/records/utils/data/values.d.ts +0 -0
  130. package/dist/src/core/interpreter/records/utils/index.d.ts +0 -0
  131. package/dist/src/core/interpreter/types.d.ts +31 -0
  132. package/dist/src/core/interpreter/utils.d.ts +0 -0
  133. package/dist/src/core/lexer/lexer.d.ts +0 -0
  134. package/dist/src/core/lexer/tokens.d.ts +2 -1
  135. package/dist/src/core/lexer/utils.d.ts +0 -0
  136. package/dist/src/core/option.d.ts +0 -0
  137. package/dist/src/core/parser/contextStack.d.ts +0 -0
  138. package/dist/src/core/parser/factory.d.ts +0 -0
  139. package/dist/src/core/parser/nodes.d.ts +7 -0
  140. package/dist/src/core/parser/parser.d.ts +0 -0
  141. package/dist/src/core/parser/utils.d.ts +1 -0
  142. package/dist/src/core/report.d.ts +0 -0
  143. package/dist/src/core/types.d.ts +0 -0
  144. package/dist/src/core/utils.d.ts +0 -0
  145. package/dist/src/index.d.ts +4 -1
  146. package/dist/src/services/definition/provider.d.ts +0 -0
  147. package/dist/src/services/diagnostics/provider.d.ts +0 -0
  148. package/dist/src/services/index.d.ts +1 -0
  149. package/dist/src/services/monarch.d.ts +3 -0
  150. package/dist/src/services/references/provider.d.ts +0 -0
  151. package/dist/src/services/suggestions/provider.d.ts +0 -0
  152. package/dist/src/services/suggestions/recordRowSnippet.d.ts +0 -0
  153. package/dist/src/services/suggestions/utils.d.ts +0 -0
  154. package/dist/src/services/types.d.ts +0 -0
  155. package/dist/src/services/utils.d.ts +0 -0
  156. package/package.json +2 -3
@@ -8,6 +8,33 @@ export interface TokenPosition {
8
8
  export interface ElementInterpreter {
9
9
  interpret(): CompileError[];
10
10
  }
11
+ /**
12
+ * FilterConfig is a tri-state filter:
13
+ * - [] (empty array) = show all
14
+ * - [...] (array with items) = show only these specific items
15
+ * - null = hide all
16
+ */
17
+ export interface FilterConfig {
18
+ tables: Array<{
19
+ name: string;
20
+ schemaName: string;
21
+ }> | null;
22
+ stickyNotes: Array<{
23
+ name: string;
24
+ }> | null;
25
+ tableGroups: Array<{
26
+ name: string;
27
+ }> | null;
28
+ schemas: Array<{
29
+ name: string;
30
+ }> | null;
31
+ }
32
+ export interface DiagramView {
33
+ name: string;
34
+ schemaName: string | null;
35
+ visibleEntities: FilterConfig;
36
+ token: TokenPosition;
37
+ }
11
38
  export interface InterpreterDatabase {
12
39
  schema: [];
13
40
  tables: Map<ElementDeclarationNode, Table>;
@@ -28,6 +55,9 @@ export interface InterpreterDatabase {
28
55
  recordsElements: ElementDeclarationNode[];
29
56
  cachedMergedTables: Map<Table, Table>;
30
57
  source: string;
58
+ diagramViews: Map<ElementDeclarationNode, DiagramView>;
59
+ diagramViewWildcards: Map<DiagramView, Set<string>>;
60
+ diagramViewExplicitlySet: Map<DiagramView, Set<string>>;
31
61
  }
32
62
  export type RecordValueType = 'string' | 'bool' | 'integer' | 'real' | 'date' | 'time' | 'datetime' | string;
33
63
  export interface RecordValue {
@@ -64,6 +94,7 @@ export interface Database {
64
94
  project: Project;
65
95
  tablePartials: TablePartial[];
66
96
  records: TableRecord[];
97
+ diagramViews: DiagramView[];
67
98
  }
68
99
  export interface Table {
69
100
  name: string;
File without changes
File without changes
@@ -23,7 +23,8 @@ export declare enum SyntaxTokenKind {
23
23
  SEMICOLON = "<semicolon>",
24
24
  COLON = "<colon>",
25
25
  SINGLE_LINE_COMMENT = "<single-line-comment>",
26
- MULTILINE_COMMENT = "<multiline-comment>"
26
+ MULTILINE_COMMENT = "<multiline-comment>",
27
+ WILDCARD = "<wildcard>"
27
28
  }
28
29
  export declare function isTriviaToken(token: SyntaxToken): boolean;
29
30
  export declare function isOp(c?: string): boolean;
File without changes
File without changes
File without changes
File without changes
@@ -39,6 +39,7 @@ export declare enum SyntaxNodeKind {
39
39
  PRIMARY_EXPRESSION = "<primary-expression>",
40
40
  GROUP_EXPRESSION = "<group-expression>",
41
41
  COMMA_EXPRESSION = "<comma-expression>",
42
+ WILDCARD = "<wildcard>",
42
43
  EMPTY = "<dummy>",
43
44
  ARRAY = "<array>"
44
45
  }
@@ -192,6 +193,12 @@ export declare class LiteralNode extends SyntaxNode {
192
193
  literal?: SyntaxToken;
193
194
  }, id: SyntaxNodeId);
194
195
  }
196
+ export declare class WildcardNode extends SyntaxNode {
197
+ token?: SyntaxToken;
198
+ constructor({ token }: {
199
+ token?: SyntaxToken;
200
+ }, id: SyntaxNodeId);
201
+ }
195
202
  export declare class VariableNode extends SyntaxNode {
196
203
  variable?: SyntaxToken;
197
204
  constructor({ variable }: {
File without changes
@@ -29,6 +29,7 @@ export declare function isExpressionAVariableNode(value?: unknown): value is Pri
29
29
  variable: SyntaxToken;
30
30
  };
31
31
  };
32
+ export declare function isWildcardExpression(node: SyntaxNode | undefined): boolean;
32
33
  export declare function isExpressionAnIdentifierNode(value?: unknown): value is PrimaryExpressionNode & {
33
34
  expression: VariableNode & {
34
35
  variable: {
File without changes
File without changes
File without changes
@@ -7,5 +7,8 @@ export { SyntaxToken, SyntaxTokenKind, } from './core/lexer/tokens';
7
7
  export { CompileError, CompileErrorCode, } from './core/errors';
8
8
  export { type Position, } from './core/types';
9
9
  export { ScopeKind, splitQualifiedIdentifier, unescapeString, escapeString, formatRecordValue, isValidIdentifier, addDoubleQuoteIfNeeded, } from './compiler/index';
10
- export { type Database, type Table, type Column, type Enum, type Ref, type Project, type TableGroup, type TablePartial, } from './core/interpreter/types';
10
+ export { type Database, type Table, type Column, type Enum, type Ref, type Project, type TableGroup, type TablePartial, type DiagramView, type FilterConfig, } from './core/interpreter/types';
11
+ export type { DiagramViewSyncOperation, DiagramViewBlock } from './compiler/queries/transform/syncDiagramView';
12
+ export type { TextEdit } from './compiler/queries/transform/applyTextEdits';
13
+ export { dbmlMonarchTokensProvider } from './services/monarch';
11
14
  export { Compiler, services };
File without changes
File without changes
@@ -4,3 +4,4 @@ import { default as DBMLReferencesProvider } from './references/provider';
4
4
  import { default as DBMLDiagnosticsProvider } from './diagnostics/provider';
5
5
  export * from './types';
6
6
  export { DBMLCompletionItemProvider, DBMLDefinitionProvider, DBMLReferencesProvider, DBMLDiagnosticsProvider, };
7
+ export { dbmlMonarchTokensProvider } from './monarch';
@@ -0,0 +1,3 @@
1
+ import { languages } from 'monaco-editor-core';
2
+ declare const dbmlMonarchTokensProvider: languages.IMonarchLanguage;
3
+ export { dbmlMonarchTokensProvider };
File without changes
File without changes
File without changes
File without changes
File without changes
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": "6.5.0",
4
+ "version": "7.0.0-alpha.1",
5
5
  "description": "DBML parser v2",
6
6
  "author": "Holistics <dev@holistics.io>",
7
7
  "license": "Apache-2.0",
@@ -30,7 +30,6 @@
30
30
  "test": "vitest run",
31
31
  "test:watch": "vitest watch",
32
32
  "coverage": "vitest run --coverage",
33
- "prepublish": "npm run build",
34
33
  "prepare": "npm run build",
35
34
  "lint": "eslint .",
36
35
  "lint:fix": "eslint --fix ."
@@ -46,5 +45,5 @@
46
45
  "engines": {
47
46
  "node": ">=18"
48
47
  },
49
- "gitHead": "9ed15e01a00d4f58564ccdfb75f2f85bf5de5199"
48
+ "gitHead": "283f3bcf7373ecab1e808e8a8035ce906ee6a52e"
50
49
  }