@dbml/parse 8.3.0 → 9.0.0-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 (170) hide show
  1. package/LICENSE +0 -0
  2. package/dist/__benchmarks__/compiler.benchmark.d.ts +0 -0
  3. package/dist/__benchmarks__/compiler.profile.d.ts +0 -0
  4. package/dist/dbml-parse.js +15 -15
  5. package/dist/dbml-parse.mjs +3083 -2642
  6. package/dist/index.d.ts +0 -0
  7. package/dist/src/compiler/index.d.ts +0 -0
  8. package/dist/src/compiler/projectLayout/index.d.ts +0 -0
  9. package/dist/src/compiler/projectLayout/layout.d.ts +0 -0
  10. package/dist/src/compiler/queries/canonicalName.d.ts +0 -0
  11. package/dist/src/compiler/queries/container/element.d.ts +0 -0
  12. package/dist/src/compiler/queries/container/index.d.ts +0 -0
  13. package/dist/src/compiler/queries/container/scope.d.ts +0 -0
  14. package/dist/src/compiler/queries/container/scopeKind.d.ts +0 -0
  15. package/dist/src/compiler/queries/container/stack.d.ts +0 -0
  16. package/dist/src/compiler/queries/container/token.d.ts +0 -0
  17. package/dist/src/compiler/queries/files/fileDependencies.d.ts +0 -0
  18. package/dist/src/compiler/queries/files/reachableFiles.d.ts +0 -0
  19. package/dist/src/compiler/queries/files/usableMembers.d.ts +0 -0
  20. package/dist/src/compiler/queries/legacy/parse.d.ts +0 -0
  21. package/dist/src/compiler/queries/legacy/symbol.d.ts +0 -0
  22. package/dist/src/compiler/queries/legacy/token.d.ts +0 -0
  23. package/dist/src/compiler/queries/nodeAtPosition.d.ts +0 -0
  24. package/dist/src/compiler/queries/pipeline/bind.d.ts +0 -0
  25. package/dist/src/compiler/queries/pipeline/index.d.ts +0 -0
  26. package/dist/src/compiler/queries/pipeline/interpret.d.ts +0 -0
  27. package/dist/src/compiler/queries/pipeline/parse.d.ts +0 -0
  28. package/dist/src/compiler/queries/pipeline/validate.d.ts +0 -0
  29. package/dist/src/compiler/queries/resolutionIndex.d.ts +0 -0
  30. package/dist/src/compiler/queries/symbol/lookupMembers.d.ts +0 -0
  31. package/dist/src/compiler/queries/symbol/symbolAliases.d.ts +0 -0
  32. package/dist/src/compiler/queries/symbol/symbolUses.d.ts +0 -0
  33. package/dist/src/compiler/queries/transform/applyTextEdits.d.ts +0 -0
  34. package/dist/src/compiler/queries/transform/index.d.ts +0 -0
  35. package/dist/src/compiler/queries/transform/renameTable.d.ts +0 -0
  36. package/dist/src/compiler/queries/transform/syncDiagramView.d.ts +0 -0
  37. package/dist/src/compiler/queries/transform/utils.d.ts +0 -0
  38. package/dist/src/compiler/queries/utils.d.ts +0 -0
  39. package/dist/src/compiler/types.d.ts +0 -0
  40. package/dist/src/constants.d.ts +0 -0
  41. package/dist/src/core/global_modules/checks/bind.d.ts +0 -0
  42. package/dist/src/core/global_modules/checks/index.d.ts +0 -0
  43. package/dist/src/core/global_modules/checks/interpret.d.ts +0 -0
  44. package/dist/src/core/global_modules/dep/bind.d.ts +15 -0
  45. package/dist/src/core/global_modules/dep/index.d.ts +2 -0
  46. package/dist/src/core/global_modules/dep/interpret.d.ts +34 -0
  47. package/dist/src/core/global_modules/diagramView/bind.d.ts +0 -0
  48. package/dist/src/core/global_modules/diagramView/index.d.ts +0 -0
  49. package/dist/src/core/global_modules/diagramView/interpret.d.ts +0 -0
  50. package/dist/src/core/global_modules/enum/bind.d.ts +0 -0
  51. package/dist/src/core/global_modules/enum/index.d.ts +0 -0
  52. package/dist/src/core/global_modules/enum/interpret.d.ts +0 -0
  53. package/dist/src/core/global_modules/index.d.ts +0 -0
  54. package/dist/src/core/global_modules/indexes/bind.d.ts +0 -0
  55. package/dist/src/core/global_modules/indexes/index.d.ts +0 -0
  56. package/dist/src/core/global_modules/indexes/interpret.d.ts +0 -0
  57. package/dist/src/core/global_modules/note/bind.d.ts +0 -0
  58. package/dist/src/core/global_modules/note/index.d.ts +0 -0
  59. package/dist/src/core/global_modules/note/interpret.d.ts +0 -0
  60. package/dist/src/core/global_modules/program/bind.d.ts +0 -0
  61. package/dist/src/core/global_modules/program/index.d.ts +0 -0
  62. package/dist/src/core/global_modules/program/interpret.d.ts +0 -0
  63. package/dist/src/core/global_modules/program/utils.d.ts +0 -0
  64. package/dist/src/core/global_modules/project/bind.d.ts +0 -0
  65. package/dist/src/core/global_modules/project/index.d.ts +0 -0
  66. package/dist/src/core/global_modules/project/interpret.d.ts +0 -0
  67. package/dist/src/core/global_modules/records/bind.d.ts +0 -0
  68. package/dist/src/core/global_modules/records/index.d.ts +0 -0
  69. package/dist/src/core/global_modules/records/interpret.d.ts +0 -0
  70. package/dist/src/core/global_modules/records/utils/constraints/fk.d.ts +0 -0
  71. package/dist/src/core/global_modules/records/utils/constraints/helper.d.ts +0 -0
  72. package/dist/src/core/global_modules/records/utils/constraints/index.d.ts +0 -0
  73. package/dist/src/core/global_modules/records/utils/constraints/pk.d.ts +0 -0
  74. package/dist/src/core/global_modules/records/utils/constraints/unique.d.ts +0 -0
  75. package/dist/src/core/global_modules/records/utils/data/index.d.ts +0 -0
  76. package/dist/src/core/global_modules/records/utils/data/sqlTypes.d.ts +0 -0
  77. package/dist/src/core/global_modules/records/utils/data/values.d.ts +0 -0
  78. package/dist/src/core/global_modules/records/utils/index.d.ts +0 -0
  79. package/dist/src/core/global_modules/ref/bind.d.ts +0 -0
  80. package/dist/src/core/global_modules/ref/index.d.ts +1 -0
  81. package/dist/src/core/global_modules/ref/interpret.d.ts +0 -0
  82. package/dist/src/core/global_modules/schema/index.d.ts +0 -0
  83. package/dist/src/core/global_modules/table/bind.d.ts +2 -0
  84. package/dist/src/core/global_modules/table/index.d.ts +0 -0
  85. package/dist/src/core/global_modules/table/interpret.d.ts +0 -0
  86. package/dist/src/core/global_modules/table/utils.d.ts +0 -0
  87. package/dist/src/core/global_modules/tableGroup/bind.d.ts +0 -0
  88. package/dist/src/core/global_modules/tableGroup/index.d.ts +0 -0
  89. package/dist/src/core/global_modules/tableGroup/interpret.d.ts +0 -0
  90. package/dist/src/core/global_modules/tablePartial/bind.d.ts +0 -0
  91. package/dist/src/core/global_modules/tablePartial/index.d.ts +0 -0
  92. package/dist/src/core/global_modules/tablePartial/interpret.d.ts +0 -0
  93. package/dist/src/core/global_modules/types.d.ts +0 -0
  94. package/dist/src/core/global_modules/use/index.d.ts +0 -0
  95. package/dist/src/core/global_modules/utils.d.ts +0 -0
  96. package/dist/src/core/lexer/lexer.d.ts +0 -0
  97. package/dist/src/core/lexer/utils.d.ts +0 -0
  98. package/dist/src/core/local_modules/checks/index.d.ts +0 -0
  99. package/dist/src/core/local_modules/checks/validate.d.ts +0 -0
  100. package/dist/src/core/local_modules/custom/index.d.ts +0 -0
  101. package/dist/src/core/local_modules/custom/validate.d.ts +0 -0
  102. package/dist/src/core/local_modules/dep/index.d.ts +2 -0
  103. package/dist/src/core/local_modules/dep/validate.d.ts +18 -0
  104. package/dist/src/core/local_modules/diagramView/index.d.ts +0 -0
  105. package/dist/src/core/local_modules/diagramView/validate.d.ts +0 -0
  106. package/dist/src/core/local_modules/enum/index.d.ts +0 -0
  107. package/dist/src/core/local_modules/enum/validate.d.ts +0 -0
  108. package/dist/src/core/local_modules/index.d.ts +0 -0
  109. package/dist/src/core/local_modules/indexes/index.d.ts +0 -0
  110. package/dist/src/core/local_modules/indexes/validate.d.ts +0 -0
  111. package/dist/src/core/local_modules/note/index.d.ts +0 -0
  112. package/dist/src/core/local_modules/note/validate.d.ts +0 -0
  113. package/dist/src/core/local_modules/program/index.d.ts +0 -0
  114. package/dist/src/core/local_modules/program/validate.d.ts +0 -0
  115. package/dist/src/core/local_modules/project/index.d.ts +0 -0
  116. package/dist/src/core/local_modules/project/validate.d.ts +0 -0
  117. package/dist/src/core/local_modules/records/index.d.ts +0 -0
  118. package/dist/src/core/local_modules/records/validate.d.ts +0 -0
  119. package/dist/src/core/local_modules/ref/index.d.ts +0 -0
  120. package/dist/src/core/local_modules/ref/validate.d.ts +0 -0
  121. package/dist/src/core/local_modules/table/index.d.ts +0 -0
  122. package/dist/src/core/local_modules/table/validate.d.ts +0 -0
  123. package/dist/src/core/local_modules/tableGroup/index.d.ts +0 -0
  124. package/dist/src/core/local_modules/tableGroup/validate.d.ts +0 -0
  125. package/dist/src/core/local_modules/tablePartial/index.d.ts +0 -0
  126. package/dist/src/core/local_modules/tablePartial/validate.d.ts +0 -0
  127. package/dist/src/core/local_modules/types.d.ts +0 -0
  128. package/dist/src/core/local_modules/use/index.d.ts +0 -0
  129. package/dist/src/core/local_modules/use/validate.d.ts +0 -0
  130. package/dist/src/core/parser/contextStack.d.ts +0 -0
  131. package/dist/src/core/parser/factory.d.ts +0 -0
  132. package/dist/src/core/parser/parser.d.ts +0 -0
  133. package/dist/src/core/parser/utils.d.ts +0 -0
  134. package/dist/src/core/types/errors.d.ts +52 -50
  135. package/dist/src/core/types/filepath.d.ts +0 -0
  136. package/dist/src/core/types/index.d.ts +0 -0
  137. package/dist/src/core/types/internable.d.ts +0 -0
  138. package/dist/src/core/types/keywords.d.ts +2 -0
  139. package/dist/src/core/types/module.d.ts +0 -0
  140. package/dist/src/core/types/nodes.d.ts +0 -0
  141. package/dist/src/core/types/position.d.ts +0 -0
  142. package/dist/src/core/types/report.d.ts +0 -0
  143. package/dist/src/core/types/schemaJson.d.ts +32 -1
  144. package/dist/src/core/types/symbol/factory.d.ts +0 -0
  145. package/dist/src/core/types/symbol/index.d.ts +0 -0
  146. package/dist/src/core/types/symbol/metadata.d.ts +15 -1
  147. package/dist/src/core/types/symbol/symbols.d.ts +0 -0
  148. package/dist/src/core/types/tokens.d.ts +0 -0
  149. package/dist/src/core/utils/chars.d.ts +0 -0
  150. package/dist/src/core/utils/expression.d.ts +0 -0
  151. package/dist/src/core/utils/interpret.d.ts +0 -0
  152. package/dist/src/core/utils/numbers.d.ts +0 -0
  153. package/dist/src/core/utils/span.d.ts +0 -0
  154. package/dist/src/core/utils/tokens.d.ts +0 -0
  155. package/dist/src/core/utils/validate.d.ts +0 -0
  156. package/dist/src/index.d.ts +0 -0
  157. package/dist/src/services/definition/provider.d.ts +0 -0
  158. package/dist/src/services/diagnostics/provider.d.ts +0 -0
  159. package/dist/src/services/index.d.ts +0 -0
  160. package/dist/src/services/monarch.d.ts +0 -0
  161. package/dist/src/services/references/provider.d.ts +0 -0
  162. package/dist/src/services/suggestions/crossFile.d.ts +0 -0
  163. package/dist/src/services/suggestions/provider.d.ts +0 -0
  164. package/dist/src/services/suggestions/recordRowSnippet.d.ts +0 -0
  165. package/dist/src/services/suggestions/use.d.ts +0 -0
  166. package/dist/src/services/suggestions/utils/index.d.ts +0 -0
  167. package/dist/src/services/suggestions/utils/useMerger.d.ts +0 -0
  168. package/dist/src/services/types.d.ts +0 -0
  169. package/dist/src/services/utils.d.ts +0 -0
  170. package/package.json +2 -2
package/dist/index.d.ts CHANGED
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
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,15 @@
1
+ import { default as Compiler } from '../../../compiler';
2
+ import { CompileError } from '../../types/errors';
3
+ import { ElementDeclarationNode } from '../../types/nodes';
4
+ import { SyntaxToken } from '../../types/tokens';
5
+ export default class DepBinder {
6
+ private compiler;
7
+ private declarationNode;
8
+ constructor(compiler: Compiler, declarationNode: ElementDeclarationNode & {
9
+ type: SyntaxToken;
10
+ });
11
+ bind(): CompileError[];
12
+ private bindBody;
13
+ private bindFields;
14
+ private bindSubElements;
15
+ }
@@ -0,0 +1,2 @@
1
+ import { GlobalModule } from '../types';
2
+ export declare const depModule: GlobalModule;
@@ -0,0 +1,34 @@
1
+ import { Dep } from '../../types/schemaJson';
2
+ import { DepMetadata, Filepath } from '../../types';
3
+ import { default as Compiler } from '../../../compiler';
4
+ import { default as Report } from '../../types/report';
5
+ export declare class DepInterpreter {
6
+ private compiler;
7
+ private metadata;
8
+ private declarationNode;
9
+ private filepath;
10
+ private dep;
11
+ constructor(compiler: Compiler, metadata: DepMetadata, filepath: Filepath);
12
+ interpret(): Report<Dep>;
13
+ private interpretName;
14
+ private interpretEdges;
15
+ /**
16
+ * Read settings into `dep.note` and `dep.custom`.
17
+ *
18
+ * Settings come from THREE sources, in this order:
19
+ * 1. The top-level attribute list on the Dep header
20
+ * (e.g. `Dep my_block [color: 'blue'] { ... }`).
21
+ * 2. Per-field setting lists inside the body
22
+ * (e.g. `Dep { a -> b [note: 'x'] }`).
23
+ * 3. Sub-element declarations inside the body
24
+ * (e.g. `Dep { a -> b; note: 'x'; materialized: 'view' }`).
25
+ *
26
+ * All three sources write into the same `custom` object (with `note`
27
+ * routed to the typed slot instead). Precedence is last-write-wins by
28
+ * virtue of plain object assignment — settings later in the source
29
+ * file overwrite earlier ones with the same key.
30
+ */
31
+ private interpretSettings;
32
+ private consumeSettings;
33
+ private extractAttrValue;
34
+ }
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
@@ -4,4 +4,5 @@ import { default as Report } from '../../types/report';
4
4
  import { NodeSymbol } from '../../types/symbol';
5
5
  import { GlobalModule } from '../types';
6
6
  export declare const refModule: GlobalModule;
7
+ export declare function getDefaultSchemaSymbol(compiler: Compiler, globalSymbol: NodeSymbol): NodeSymbol | undefined;
7
8
  export declare function nodeRefereeOfRefEndpoint(compiler: Compiler, globalSymbol: NodeSymbol, node: SyntaxNode): Report<NodeSymbol | undefined>;
File without changes
File without changes
@@ -9,6 +9,8 @@ export default class TableBinder {
9
9
  type: SyntaxToken;
10
10
  });
11
11
  bind(): CompileError[];
12
+ private bindHeaderSettings;
13
+ private bindInlineDepValue;
12
14
  private bindBody;
13
15
  private bindFields;
14
16
  private tryToBindColumnType;
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
@@ -0,0 +1,2 @@
1
+ import { LocalModule } from '../types';
2
+ export declare const depModule: LocalModule;
@@ -0,0 +1,18 @@
1
+ import { default as Compiler } from '../../../compiler';
2
+ import { CompileError } from '../../types/errors';
3
+ import { BlockExpressionNode, ElementDeclarationNode, FunctionApplicationNode, ListExpressionNode } from '../../types/nodes';
4
+ import { default as Report } from '../../types/report';
5
+ import { Settings } from '../../utils/validate';
6
+ export default class DepValidator {
7
+ private declarationNode;
8
+ private compiler;
9
+ constructor(compiler: Compiler, declarationNode: ElementDeclarationNode);
10
+ validate(): CompileError[];
11
+ private validateContext;
12
+ private validateName;
13
+ private validateAlias;
14
+ validateBody(body?: FunctionApplicationNode | BlockExpressionNode): CompileError[];
15
+ validateFields(fields: FunctionApplicationNode[]): CompileError[];
16
+ private validateSubElements;
17
+ }
18
+ export declare function validateDepSettings(settings: ListExpressionNode): Report<Settings>;
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
File without changes
@@ -56,56 +56,58 @@ export declare enum CompileErrorCode {
56
56
  INVALID_REF_FIELD = 3039,
57
57
  EMPTY_REF = 3040,
58
58
  REF_REDEFINED = 3041,
59
- INVALID_NOTE_CONTEXT = 3042,
60
- INVALID_NOTE = 3043,
61
- NOTE_REDEFINED = 3044,
62
- NOTE_CONTENT_REDEFINED = 3045,
63
- EMPTY_NOTE = 3046,
64
- UNKNOWN_NOTE_SETTING = 3047,
65
- DUPLICATE_NOTE_SETTING = 3048,
66
- INVALID_NOTE_SETTING_VALUE = 3049,
67
- INVALID_INDEXES_CONTEXT = 3050,
68
- INVALID_INDEXES_FIELD = 3051,
69
- INVALID_INDEX = 3052,
70
- UNKNOWN_INDEX_SETTING = 3053,
71
- DUPLICATE_INDEX_SETTING = 3054,
72
- UNEXPECTED_INDEX_SETTING_VALUE = 3055,
73
- INVALID_INDEX_SETTING_VALUE = 3056,
74
- INVALID_PROJECT_CONTEXT = 3057,
75
- PROJECT_REDEFINED = 3058,
76
- INVALID_PROJECT_FIELD = 3059,
77
- INVALID_CUSTOM_CONTEXT = 3060,
78
- INVALID_CUSTOM_ELEMENT_VALUE = 3061,
79
- INVALID_ELEMENT_IN_SIMPLE_BODY = 3062,
80
- INVALID_TABLE_PARTIAL_CONTEXT = 3063,
81
- INVALID_TABLE_PARTIAL_ELEMENT_NAME = 3064,
82
- INVALID_TABLE_PARTIAL_SETTING_VALUE = 3065,
83
- DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME = 3066,
84
- DUPLICATE_TABLE_PARTIAL_SETTING = 3067,
85
- INVALID_TABLE_PARTIAL_INJECTION = 3068,
86
- INVALID_TABLE_PARTIAL_INJECTION_OP = 3069,
87
- INVALID_TABLE_PARTIAL_INJECTION_NAME = 3070,
88
- DUPLICATE_TABLE_PARTIAL_INJECTION_NAME = 3071,
89
- UNKNOWN_TABLE_PARTIAL_SETTING = 3072,
90
- INVALID_TABLE_SETTING_VALUE = 3073,
91
- INVALID_CHECKS_CONTEXT = 3074,
92
- INVALID_CHECKS_FIELD = 3075,
93
- INVALID_CHECK = 3076,
94
- UNKNOWN_CHECK_SETTING = 3077,
95
- DUPLICATE_CHECK_SETTING = 3078,
96
- INVALID_CHECK_SETTING_VALUE = 3079,
97
- INVALID_RECORDS_CONTEXT = 3080,
98
- INVALID_RECORDS_NAME = 3081,
99
- INVALID_RECORDS_FIELD = 3082,
100
- DUPLICATE_COLUMN_REFERENCES_IN_RECORDS = 3083,
101
- DUPLICATE_RECORDS_FOR_TABLE = 3084,
102
- INVALID_USE_CONTEXT = 3085,
103
- INVALID_USE_SPECIFIER_KIND = 3086,
104
- INVALID_USE_SPECIFIER_NAME = 3087,
105
- INVALID_DIAGRAMVIEW_CONTEXT = 3088,
106
- DUPLICATE_DIAGRAMVIEW_NAME = 3089,
107
- INVALID_DIAGRAMVIEW_FIELD = 3090,
108
- DUPLICATE_DIAGRAMVIEW_FIELD = 3091,
59
+ INVALID_DEP_CONTEXT = 3042,
60
+ INVALID_DEP_FIELD = 3043,
61
+ INVALID_NOTE_CONTEXT = 3044,
62
+ INVALID_NOTE = 3045,
63
+ NOTE_REDEFINED = 3046,
64
+ NOTE_CONTENT_REDEFINED = 3047,
65
+ EMPTY_NOTE = 3048,
66
+ UNKNOWN_NOTE_SETTING = 3049,
67
+ DUPLICATE_NOTE_SETTING = 3050,
68
+ INVALID_NOTE_SETTING_VALUE = 3051,
69
+ INVALID_INDEXES_CONTEXT = 3052,
70
+ INVALID_INDEXES_FIELD = 3053,
71
+ INVALID_INDEX = 3054,
72
+ UNKNOWN_INDEX_SETTING = 3055,
73
+ DUPLICATE_INDEX_SETTING = 3056,
74
+ UNEXPECTED_INDEX_SETTING_VALUE = 3057,
75
+ INVALID_INDEX_SETTING_VALUE = 3058,
76
+ INVALID_PROJECT_CONTEXT = 3059,
77
+ PROJECT_REDEFINED = 3060,
78
+ INVALID_PROJECT_FIELD = 3061,
79
+ INVALID_CUSTOM_CONTEXT = 3062,
80
+ INVALID_CUSTOM_ELEMENT_VALUE = 3063,
81
+ INVALID_ELEMENT_IN_SIMPLE_BODY = 3064,
82
+ INVALID_TABLE_PARTIAL_CONTEXT = 3065,
83
+ INVALID_TABLE_PARTIAL_ELEMENT_NAME = 3066,
84
+ INVALID_TABLE_PARTIAL_SETTING_VALUE = 3067,
85
+ DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME = 3068,
86
+ DUPLICATE_TABLE_PARTIAL_SETTING = 3069,
87
+ INVALID_TABLE_PARTIAL_INJECTION = 3070,
88
+ INVALID_TABLE_PARTIAL_INJECTION_OP = 3071,
89
+ INVALID_TABLE_PARTIAL_INJECTION_NAME = 3072,
90
+ DUPLICATE_TABLE_PARTIAL_INJECTION_NAME = 3073,
91
+ UNKNOWN_TABLE_PARTIAL_SETTING = 3074,
92
+ INVALID_TABLE_SETTING_VALUE = 3075,
93
+ INVALID_CHECKS_CONTEXT = 3076,
94
+ INVALID_CHECKS_FIELD = 3077,
95
+ INVALID_CHECK = 3078,
96
+ UNKNOWN_CHECK_SETTING = 3079,
97
+ DUPLICATE_CHECK_SETTING = 3080,
98
+ INVALID_CHECK_SETTING_VALUE = 3081,
99
+ INVALID_RECORDS_CONTEXT = 3082,
100
+ INVALID_RECORDS_NAME = 3083,
101
+ INVALID_RECORDS_FIELD = 3084,
102
+ DUPLICATE_COLUMN_REFERENCES_IN_RECORDS = 3085,
103
+ DUPLICATE_RECORDS_FOR_TABLE = 3086,
104
+ INVALID_USE_CONTEXT = 3087,
105
+ INVALID_USE_SPECIFIER_KIND = 3088,
106
+ INVALID_USE_SPECIFIER_NAME = 3089,
107
+ INVALID_DIAGRAMVIEW_CONTEXT = 3090,
108
+ DUPLICATE_DIAGRAMVIEW_NAME = 3091,
109
+ INVALID_DIAGRAMVIEW_FIELD = 3092,
110
+ DUPLICATE_DIAGRAMVIEW_FIELD = 3093,
109
111
  BINDING_ERROR = 4000,
110
112
  NONEXISTENT_MODULE = 4001,
111
113
  UNSUPPORTED = 5000,
File without changes
File without changes
File without changes
@@ -2,6 +2,7 @@ export declare enum ElementKind {
2
2
  Table = "table",
3
3
  Enum = "enum",
4
4
  Ref = "ref",
5
+ Dep = "dep",
5
6
  Note = "note",
6
7
  Project = "project",
7
8
  Indexes = "indexes",
@@ -23,6 +24,7 @@ export declare enum SettingName {
23
24
  PrimaryKey = "primary key",
24
25
  Unique = "unique",
25
26
  Ref = "ref",
27
+ Dep = "dep",
26
28
  NotNull = "not null",
27
29
  Null = "null",
28
30
  Increment = "increment",
File without changes
File without changes
File without changes
File without changes
@@ -58,6 +58,7 @@ export interface Database {
58
58
  tables: Table[];
59
59
  notes: Note[];
60
60
  refs: Ref[];
61
+ deps: Dep[];
61
62
  enums: Enum[];
62
63
  tableGroups: TableGroup[];
63
64
  aliases: Alias[];
@@ -110,6 +111,7 @@ export interface Column {
110
111
  type: ColumnType;
111
112
  token: TokenPosition;
112
113
  inline_refs: InlineRef[];
114
+ inline_deps: InlineDep[];
113
115
  checks: Check[];
114
116
  pk?: boolean;
115
117
  dbdefault?: {
@@ -171,6 +173,35 @@ export interface RefEndpoint {
171
173
  token: TokenPosition;
172
174
  }
173
175
  export type RelationCardinality = '1' | '*';
176
+ export interface Dep {
177
+ schemaName: string | null;
178
+ name: string | null;
179
+ edges: DepEdge[];
180
+ note?: {
181
+ value: string;
182
+ token: TokenPosition;
183
+ };
184
+ custom?: Record<string, string | number | boolean | null>;
185
+ token: TokenPosition;
186
+ }
187
+ export interface DepEdge {
188
+ upstream: DepEndpoint;
189
+ downstream: DepEndpoint;
190
+ token: TokenPosition;
191
+ }
192
+ export interface DepEndpoint {
193
+ schemaName: string | null;
194
+ tableName: string;
195
+ fieldNames: string[];
196
+ token: TokenPosition;
197
+ }
198
+ export interface InlineDep {
199
+ schemaName: string | null;
200
+ tableName: string;
201
+ fieldNames: string[];
202
+ direction: '->' | '<-';
203
+ token: TokenPosition;
204
+ }
174
205
  export interface Enum {
175
206
  name: string;
176
207
  schemaName: string | null;
@@ -252,4 +283,4 @@ export type Project = Record<string, never> | {
252
283
  token: TokenPosition;
253
284
  [index: string & Omit<any, 'name' | 'tables' | 'refs' | 'enums' | 'tableGroups' | 'note' | 'tablePartials' | 'records'>]: string;
254
285
  };
255
- export type SchemaElement = Database | Project | Table | Note | Column | ColumnType | Index | Check | InlineRef | Ref | RefEndpoint | Enum | EnumField | TableGroup | TableGroupField | Alias | TablePartial | TablePartialInjection | TableRecord | RecordValue;
286
+ export type SchemaElement = Database | Project | Table | Note | Column | ColumnType | Index | Check | InlineRef | InlineDep | Ref | RefEndpoint | Dep | DepEdge | DepEndpoint | Enum | EnumField | TableGroup | TableGroupField | Alias | TablePartial | TablePartialInjection | TableRecord | RecordValue;
File without changes
File without changes