@dbml/parse 3.13.0-alpha.0 → 3.13.0-alpha.2

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/dist/dbml-parse.js +6 -6
  2. package/dist/dbml-parse.mjs +904 -891
  3. package/dist/{compiler.d.ts → src/compiler.d.ts} +2 -1
  4. package/dist/{lib → src/lib}/analyzer/binder/elementBinder/elementBinder.d.ts +2 -2
  5. package/dist/{lib → src/lib}/analyzer/binder/elementBinder/table.d.ts +6 -8
  6. package/dist/{lib → src/lib}/analyzer/binder/types.d.ts +0 -3
  7. package/dist/{lib → src/lib}/analyzer/symbol/symbols.d.ts +6 -4
  8. package/dist/src/lib/analyzer/symbol/utils.d.ts +4 -0
  9. package/dist/{lib → src/lib}/analyzer/utils.d.ts +2 -1
  10. package/dist/{lib → src/lib}/analyzer/validator/elementValidators/table.d.ts +3 -4
  11. package/dist/{lib → src/lib}/parser/nodes.d.ts +2 -1
  12. package/dist/tests/NaN_errors/interpreter_NaN.test.d.ts +1 -0
  13. package/dist/tests/binder/binder.test.d.ts +1 -0
  14. package/dist/tests/interpreter/interpreter.test.d.ts +1 -0
  15. package/dist/tests/jestHelpers.d.ts +1 -0
  16. package/dist/tests/lexer/lexer.test.d.ts +1 -0
  17. package/dist/tests/parser/parser.test.d.ts +1 -0
  18. package/dist/tests/validator/validator.test.d.ts +1 -0
  19. package/package.json +4 -2
  20. package/dist/lib/analyzer/symbol/utils.d.ts +0 -2
  21. /package/dist/{constants.d.ts → src/constants.d.ts} +0 -0
  22. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  23. /package/dist/{lib → src/lib}/analyzer/analyzer.d.ts +0 -0
  24. /package/dist/{lib → src/lib}/analyzer/binder/binder.d.ts +0 -0
  25. /package/dist/{lib → src/lib}/analyzer/binder/elementBinder/custom.d.ts +0 -0
  26. /package/dist/{lib → src/lib}/analyzer/binder/elementBinder/enum.d.ts +0 -0
  27. /package/dist/{lib → src/lib}/analyzer/binder/elementBinder/indexes.d.ts +0 -0
  28. /package/dist/{lib → src/lib}/analyzer/binder/elementBinder/note.d.ts +0 -0
  29. /package/dist/{lib → src/lib}/analyzer/binder/elementBinder/project.d.ts +0 -0
  30. /package/dist/{lib → src/lib}/analyzer/binder/elementBinder/ref.d.ts +0 -0
  31. /package/dist/{lib → src/lib}/analyzer/binder/elementBinder/tableGroup.d.ts +0 -0
  32. /package/dist/{lib → src/lib}/analyzer/binder/elementBinder/tablePartial.d.ts +0 -0
  33. /package/dist/{lib → src/lib}/analyzer/binder/utils.d.ts +0 -0
  34. /package/dist/{lib → src/lib}/analyzer/symbol/factory.d.ts +0 -0
  35. /package/dist/{lib → src/lib}/analyzer/symbol/symbolIndex.d.ts +0 -0
  36. /package/dist/{lib → src/lib}/analyzer/symbol/symbolTable.d.ts +0 -0
  37. /package/dist/{lib → src/lib}/analyzer/types.d.ts +0 -0
  38. /package/dist/{lib → src/lib}/analyzer/validator/elementValidators/custom.d.ts +0 -0
  39. /package/dist/{lib → src/lib}/analyzer/validator/elementValidators/enum.d.ts +0 -0
  40. /package/dist/{lib → src/lib}/analyzer/validator/elementValidators/indexes.d.ts +0 -0
  41. /package/dist/{lib → src/lib}/analyzer/validator/elementValidators/note.d.ts +0 -0
  42. /package/dist/{lib → src/lib}/analyzer/validator/elementValidators/project.d.ts +0 -0
  43. /package/dist/{lib → src/lib}/analyzer/validator/elementValidators/ref.d.ts +0 -0
  44. /package/dist/{lib → src/lib}/analyzer/validator/elementValidators/tableGroup.d.ts +0 -0
  45. /package/dist/{lib → src/lib}/analyzer/validator/elementValidators/tablePartial.d.ts +0 -0
  46. /package/dist/{lib → src/lib}/analyzer/validator/types.d.ts +0 -0
  47. /package/dist/{lib → src/lib}/analyzer/validator/utils.d.ts +0 -0
  48. /package/dist/{lib → src/lib}/analyzer/validator/validator.d.ts +0 -0
  49. /package/dist/{lib → src/lib}/errors.d.ts +0 -0
  50. /package/dist/{lib → src/lib}/interpreter/elementInterpreter/enum.d.ts +0 -0
  51. /package/dist/{lib → src/lib}/interpreter/elementInterpreter/project.d.ts +0 -0
  52. /package/dist/{lib → src/lib}/interpreter/elementInterpreter/ref.d.ts +0 -0
  53. /package/dist/{lib → src/lib}/interpreter/elementInterpreter/sticky_note.d.ts +0 -0
  54. /package/dist/{lib → src/lib}/interpreter/elementInterpreter/table.d.ts +0 -0
  55. /package/dist/{lib → src/lib}/interpreter/elementInterpreter/tableGroup.d.ts +0 -0
  56. /package/dist/{lib → src/lib}/interpreter/elementInterpreter/tablePartial.d.ts +0 -0
  57. /package/dist/{lib → src/lib}/interpreter/interpreter.d.ts +0 -0
  58. /package/dist/{lib → src/lib}/interpreter/types.d.ts +0 -0
  59. /package/dist/{lib → src/lib}/interpreter/utils.d.ts +0 -0
  60. /package/dist/{lib → src/lib}/lexer/lexer.d.ts +0 -0
  61. /package/dist/{lib → src/lib}/lexer/tokens.d.ts +0 -0
  62. /package/dist/{lib → src/lib}/lexer/utils.d.ts +0 -0
  63. /package/dist/{lib → src/lib}/option.d.ts +0 -0
  64. /package/dist/{lib → src/lib}/parser/contextStack.d.ts +0 -0
  65. /package/dist/{lib → src/lib}/parser/factory.d.ts +0 -0
  66. /package/dist/{lib → src/lib}/parser/parser.d.ts +0 -0
  67. /package/dist/{lib → src/lib}/parser/utils.d.ts +0 -0
  68. /package/dist/{lib → src/lib}/report.d.ts +0 -0
  69. /package/dist/{lib → src/lib}/serialization/serialize.d.ts +0 -0
  70. /package/dist/{lib → src/lib}/types.d.ts +0 -0
  71. /package/dist/{lib → src/lib}/utils.d.ts +0 -0
  72. /package/dist/{services → src/services}/definition/provider.d.ts +0 -0
  73. /package/dist/{services → src/services}/index.d.ts +0 -0
  74. /package/dist/{services → src/services}/references/provider.d.ts +0 -0
  75. /package/dist/{services → src/services}/suggestions/provider.d.ts +0 -0
  76. /package/dist/{services → src/services}/suggestions/utils.d.ts +0 -0
  77. /package/dist/{services → src/services}/types.d.ts +0 -0
  78. /package/dist/{services → src/services}/utils.d.ts +0 -0
@@ -16,7 +16,8 @@ export declare const enum ScopeKind {
16
16
  REF = 5,
17
17
  PROJECT = 6,
18
18
  CUSTOM = 7,
19
- TOPLEVEL = 8
19
+ TOPLEVEL = 8,
20
+ TABLEPARTIAL = 9
20
21
  }
21
22
  export default class Compiler {
22
23
  private source;
@@ -1,14 +1,14 @@
1
1
  import { ElementDeclarationNode, SyntaxNode } from '../../../parser/nodes';
2
- import { ArgumentBinderRule, InjectionBinderRule, SettingListBinderRule } from '../types';
2
+ import { ArgumentBinderRule, BinderRule, SettingListBinderRule } from '../types';
3
3
  import { CompileError } from '../../../errors';
4
4
  import { default as SymbolFactory } from '../../symbol/factory';
5
5
  export default abstract class ElementBinder {
6
6
  protected abstract subfield: {
7
7
  arg: ArgumentBinderRule;
8
- injection?: InjectionBinderRule;
9
8
  settingList: SettingListBinderRule;
10
9
  };
11
10
  protected abstract settingList: SettingListBinderRule;
11
+ protected injectionBinderRule?: BinderRule;
12
12
  private errors;
13
13
  private declarationNode;
14
14
  constructor(declarationNode: ElementDeclarationNode, errors: CompileError[]);
@@ -15,14 +15,6 @@ export default class TableBinder extends ElementBinder {
15
15
  ignoreNameNotFound: boolean;
16
16
  })[];
17
17
  };
18
- injection: {
19
- injectionBinderRule: {
20
- shouldBind: true;
21
- topSubnamesSymbolKind: never[];
22
- remainingSubnamesSymbolKind: SymbolKind;
23
- ignoreNameNotFound: boolean;
24
- };
25
- };
26
18
  settingList: {
27
19
  ref: {
28
20
  shouldBind: true;
@@ -36,4 +28,10 @@ export default class TableBinder extends ElementBinder {
36
28
  };
37
29
  };
38
30
  protected settingList: {};
31
+ protected injectionBinderRule: {
32
+ shouldBind: true;
33
+ topSubnamesSymbolKind: never[];
34
+ remainingSubnamesSymbolKind: SymbolKind;
35
+ ignoreNameNotFound: boolean;
36
+ };
39
37
  }
@@ -14,6 +14,3 @@ export interface ArgumentBinderRule {
14
14
  export interface SettingListBinderRule {
15
15
  [index: string]: BinderRule;
16
16
  }
17
- export interface InjectionBinderRule {
18
- injectionBinderRule: BinderRule;
19
- }
@@ -11,7 +11,7 @@ export interface NodeSymbol {
11
11
  symbolTable?: SymbolTable;
12
12
  declaration?: SyntaxNode;
13
13
  references: SyntaxNode[];
14
- injectorId?: NodeSymbolId;
14
+ injectorDeclaration?: SyntaxNode;
15
15
  }
16
16
  export declare class SchemaSymbol implements NodeSymbol {
17
17
  id: NodeSymbolId;
@@ -95,9 +95,11 @@ export declare class TablePartialInjectionSymbol implements NodeSymbol {
95
95
  }
96
96
  export declare class TablePartialInjectedColumnSymbol implements NodeSymbol {
97
97
  id: NodeSymbolId;
98
- injectorId: NodeSymbolId;
98
+ injectorDeclaration: SyntaxNode;
99
+ injectorFieldSymbol: NodeSymbol;
99
100
  references: SyntaxNode[];
100
- constructor({ injectorId }: {
101
- injectorId: NodeSymbolId;
101
+ constructor({ injectorFieldSymbol, injectorDeclaration }: {
102
+ injectorFieldSymbol: NodeSymbol;
103
+ injectorDeclaration: SyntaxNode;
102
104
  }, id: NodeSymbolId);
103
105
  }
@@ -0,0 +1,4 @@
1
+ import { NodeSymbolIndex } from './symbolIndex';
2
+ import { NodeSymbol, TablePartialInjectedColumnSymbol } from './symbols';
3
+ export declare function generatePossibleIndexes(name: string): NodeSymbolIndex[];
4
+ export declare function getInjectedFieldSymbolFromInjectorFieldSymbol(injectorSymbol: NodeSymbol): typeof TablePartialInjectedColumnSymbol | null;
@@ -1,5 +1,5 @@
1
1
  import { Option } from '../option';
2
- import { ElementDeclarationNode, FunctionExpressionNode, InfixExpressionNode, PrimaryExpressionNode, SyntaxNode, VariableNode } from '../parser/nodes';
2
+ import { ElementDeclarationNode, FunctionExpressionNode, InfixExpressionNode, PartialInjectionNode, PrimaryExpressionNode, SyntaxNode, VariableNode } from '../parser/nodes';
3
3
  import { NodeSymbolIndex } from './symbol/symbolIndex';
4
4
  import { NodeSymbol } from './symbol/symbols';
5
5
  import { SyntaxToken } from '../lexer/tokens';
@@ -21,6 +21,7 @@ export declare function destructureIndexNode(node: SyntaxNode): Option<{
21
21
  export declare function extractVarNameFromPrimaryVariable(node?: PrimaryExpressionNode & {
22
22
  expression: VariableNode;
23
23
  }): Option<string>;
24
+ export declare function extractVarNameFromPartialInjection(node?: PartialInjectionNode): Option<string>;
24
25
  export declare function extractQuotedStringToken(value?: SyntaxNode): Option<string>;
25
26
  export declare function isBinaryRelationship(value?: SyntaxNode): value is InfixExpressionNode;
26
27
  export declare function isEqualTupleOperands(value: InfixExpressionNode): value is InfixExpressionNode;
@@ -18,11 +18,10 @@ export default class TableValidator implements ElementValidator {
18
18
  private validateSettingList;
19
19
  registerElement(): CompileError[];
20
20
  validateBody(body?: FunctionApplicationNode | BlockExpressionNode): CompileError[];
21
- validateFields(fields: FunctionApplicationNode[]): CompileError[];
22
21
  validateInjections(injections: PartialInjectionNode[]): CompileError[];
23
22
  registerInjection(injection: PartialInjectionNode): CompileError[];
24
- validateColumns(columns: FunctionApplicationNode[]): CompileError[];
25
- registerColumn(field: FunctionApplicationNode): CompileError[];
26
- validateColumnSetting(parts: ExpressionNode[]): CompileError[];
23
+ validateFields(fields: FunctionApplicationNode[]): CompileError[];
24
+ registerField(field: FunctionApplicationNode): CompileError[];
25
+ validateFieldSetting(parts: ExpressionNode[]): CompileError[];
27
26
  private validateSubElements;
28
27
  }
@@ -139,7 +139,8 @@ export declare class BlockExpressionNode extends SyntaxNode {
139
139
  }
140
140
  export declare class PartialInjectionNode extends SyntaxNode {
141
141
  partial?: VariableNode;
142
- constructor({ partial }: {
142
+ constructor({ op, partial }: {
143
+ op?: SyntaxToken;
143
144
  partial?: VariableNode;
144
145
  }, id: SyntaxNodeId);
145
146
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export declare function scanTestNames(_path: any): string[];
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbml/parse",
3
- "version": "3.13.0-alpha.0",
3
+ "version": "3.13.0-alpha.2",
4
4
  "description": "> TODO: description",
5
5
  "author": "Holistics <dev@holistics.io>",
6
6
  "license": "Apache-2.0",
@@ -34,6 +34,8 @@
34
34
  "devDependencies": {
35
35
  "@types/lodash": "^4.14.200",
36
36
  "@types/node": "^20.8.8",
37
+ "@typescript-eslint/eslint-plugin": "^8.30.1",
38
+ "@typescript-eslint/parser": "^8.30.1",
37
39
  "monaco-editor-core": "^0.44.0",
38
40
  "typescript": "^5.2.2",
39
41
  "vite": "^4.5.0",
@@ -46,5 +48,5 @@
46
48
  "peerDependencies": {
47
49
  "lodash": "^4.17.21"
48
50
  },
49
- "gitHead": "6b6edb8bc9804cd65849451820f1d43072d8c01c"
51
+ "gitHead": "2a00c9bde5b128f5463344b6567248c3a1d7f7a1"
50
52
  }
@@ -1,2 +0,0 @@
1
- import { NodeSymbolIndex } from './symbolIndex';
2
- export declare function generatePossibleIndexes(name: string): NodeSymbolIndex[];
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