dot-language-support 1.6.1 → 2.0.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 (119) hide show
  1. package/.github/workflows/CD.yml +3 -3
  2. package/.github/workflows/CI.yml +2 -2
  3. package/README.md +5 -4
  4. package/jest.config.mjs +19 -0
  5. package/lib/{binder.d.ts → cjs/binder.d.ts} +1 -1
  6. package/lib/{binder.js → cjs/binder.js} +34 -34
  7. package/lib/{checker.d.ts → cjs/checker.d.ts} +1 -1
  8. package/lib/{checker.js → cjs/checker.js} +28 -28
  9. package/lib/{core.d.ts → cjs/core.d.ts} +0 -0
  10. package/lib/{core.js → cjs/core.js} +0 -0
  11. package/lib/{error.d.ts → cjs/error.d.ts} +1 -1
  12. package/lib/{error.js → cjs/error.js} +0 -0
  13. package/lib/cjs/index.d.ts +5 -0
  14. package/lib/{index.js → cjs/index.js} +5 -6
  15. package/lib/{parser.d.ts → cjs/parser.d.ts} +2 -2
  16. package/lib/{parser.js → cjs/parser.js} +14 -12
  17. package/lib/{scanner.d.ts → cjs/scanner.d.ts} +1 -1
  18. package/lib/{scanner.js → cjs/scanner.js} +67 -67
  19. package/lib/{service → cjs/service}/codeAction.d.ts +4 -4
  20. package/lib/cjs/service/codeAction.js +237 -0
  21. package/lib/cjs/service/colorProvider.d.ts +6 -0
  22. package/lib/cjs/service/colorProvider.js +97 -0
  23. package/lib/{service → cjs/service}/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.d.ts +4 -4
  24. package/lib/{service → cjs/service}/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.js +7 -7
  25. package/lib/{service → cjs/service}/command/ChangeEdgeOpCommand.d.ts +4 -4
  26. package/lib/cjs/service/command/ChangeEdgeOpCommand.js +60 -0
  27. package/lib/{service → cjs/service}/command/ConsolidateDescendantsCommand.d.ts +3 -3
  28. package/lib/{service → cjs/service}/command/ConsolidateDescendantsCommand.js +7 -25
  29. package/lib/{service → cjs/service}/command/RemoveSemicolons.d.ts +3 -3
  30. package/lib/{service → cjs/service}/command/RemoveSemicolons.js +4 -4
  31. package/lib/{service → cjs/service}/command/common.d.ts +4 -4
  32. package/lib/cjs/service/command/common.js +31 -0
  33. package/lib/{service → cjs/service}/completion.d.ts +2 -2
  34. package/lib/{service → cjs/service}/completion.js +49 -26
  35. package/lib/cjs/service/hover.d.ts +4 -0
  36. package/lib/{service → cjs/service}/hover.js +38 -38
  37. package/lib/{service → cjs/service}/languageFacts.d.ts +0 -0
  38. package/lib/{service → cjs/service}/languageFacts.js +0 -0
  39. package/lib/{service → cjs/service}/polyfill.d.ts +4 -4
  40. package/lib/{service → cjs/service}/polyfill.js +0 -0
  41. package/lib/cjs/service/reference.d.ts +5 -0
  42. package/lib/{service → cjs/service}/reference.js +9 -11
  43. package/lib/cjs/service/rename.d.ts +4 -0
  44. package/lib/{service → cjs/service}/rename.js +13 -13
  45. package/lib/{service → cjs/service}/service.d.ts +5 -4
  46. package/lib/cjs/service/service.js +39 -0
  47. package/lib/cjs/service/util.d.ts +11 -0
  48. package/lib/{service → cjs/service}/util.js +7 -7
  49. package/lib/{service → cjs/service}/validation.d.ts +2 -2
  50. package/lib/{service → cjs/service}/validation.js +3 -3
  51. package/lib/cjs/tester.d.ts +1 -0
  52. package/lib/cjs/tester.js +23 -0
  53. package/lib/{types.d.ts → cjs/types.d.ts} +0 -0
  54. package/lib/{types.js → cjs/types.js} +0 -0
  55. package/lib/{visitor.d.ts → cjs/visitor.d.ts} +1 -1
  56. package/lib/{visitor.js → cjs/visitor.js} +17 -17
  57. package/lib/esm/binder.d.ts +2 -0
  58. package/lib/esm/binder.js +296 -0
  59. package/lib/esm/checker.d.ts +14 -0
  60. package/lib/esm/checker.js +169 -0
  61. package/lib/esm/core.d.ts +1 -0
  62. package/lib/esm/core.js +10 -0
  63. package/lib/esm/error.d.ts +3 -0
  64. package/lib/esm/error.js +10 -0
  65. package/lib/esm/index.d.ts +5 -0
  66. package/lib/esm/index.js +6 -0
  67. package/lib/esm/parser.d.ts +84 -0
  68. package/lib/esm/parser.js +700 -0
  69. package/lib/esm/scanner.d.ts +52 -0
  70. package/lib/esm/scanner.js +581 -0
  71. package/lib/esm/service/codeAction.d.ts +12 -0
  72. package/lib/{service → esm/service}/codeAction.js +40 -46
  73. package/lib/esm/service/colorProvider.d.ts +6 -0
  74. package/lib/{service → esm/service}/colorProvider.js +5 -10
  75. package/lib/esm/service/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.d.ts +10 -0
  76. package/lib/esm/service/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.js +38 -0
  77. package/lib/esm/service/command/ChangeEdgeOpCommand.d.ts +10 -0
  78. package/lib/{service → esm/service}/command/ChangeEdgeOpCommand.js +6 -11
  79. package/lib/esm/service/command/ConsolidateDescendantsCommand.d.ts +10 -0
  80. package/lib/esm/service/command/ConsolidateDescendantsCommand.js +83 -0
  81. package/lib/esm/service/command/RemoveSemicolons.d.ts +10 -0
  82. package/lib/esm/service/command/RemoveSemicolons.js +37 -0
  83. package/lib/esm/service/command/common.d.ts +31 -0
  84. package/lib/esm/service/command/common.js +22 -0
  85. package/lib/esm/service/completion.d.ts +4 -0
  86. package/lib/esm/service/completion.js +137 -0
  87. package/lib/esm/service/hover.d.ts +4 -0
  88. package/lib/esm/service/hover.js +119 -0
  89. package/lib/esm/service/languageFacts.d.ts +683 -0
  90. package/lib/esm/service/languageFacts.js +997 -0
  91. package/lib/esm/service/polyfill.d.ts +16 -0
  92. package/lib/esm/service/polyfill.js +2 -0
  93. package/lib/esm/service/reference.d.ts +5 -0
  94. package/lib/esm/service/reference.js +66 -0
  95. package/lib/esm/service/rename.d.ts +4 -0
  96. package/lib/esm/service/rename.js +45 -0
  97. package/lib/esm/service/service.d.ts +28 -0
  98. package/lib/esm/service/service.js +35 -0
  99. package/lib/esm/service/util.d.ts +11 -0
  100. package/lib/esm/service/util.js +44 -0
  101. package/lib/esm/service/validation.d.ts +4 -0
  102. package/lib/esm/service/validation.js +20 -0
  103. package/lib/esm/tester.d.ts +1 -0
  104. package/lib/esm/tester.js +21 -0
  105. package/lib/esm/types.d.ts +396 -0
  106. package/lib/esm/types.js +71 -0
  107. package/lib/esm/visitor.d.ts +2 -0
  108. package/lib/esm/visitor.js +74 -0
  109. package/package.json +14 -10
  110. package/lib/index.d.ts +0 -6
  111. package/lib/service/colorProvider.d.ts +0 -6
  112. package/lib/service/command/common.js +0 -31
  113. package/lib/service/hover.d.ts +0 -4
  114. package/lib/service/interop.d.ts +0 -15
  115. package/lib/service/interop.js +0 -56
  116. package/lib/service/reference.d.ts +0 -5
  117. package/lib/service/rename.d.ts +0 -4
  118. package/lib/service/service.js +0 -39
  119. package/lib/service/util.d.ts +0 -11
@@ -1,4 +1,4 @@
1
- name: Node.js CD
1
+ name: CD
2
2
 
3
3
  on:
4
4
  push:
@@ -15,10 +15,10 @@ jobs:
15
15
  steps:
16
16
  - uses: actions/checkout@v2
17
17
 
18
- - name: Use Node.js 16.x
18
+ - name: Use Node.js 18.x
19
19
  uses: actions/setup-node@v1
20
20
  with:
21
- node-version: 16.x
21
+ node-version: 18.x
22
22
 
23
23
  - uses: actions/cache@v2
24
24
  with:
@@ -1,4 +1,4 @@
1
- name: Node.js CI
1
+ name: CI
2
2
 
3
3
  on: [push]
4
4
 
@@ -9,7 +9,7 @@ jobs:
9
9
 
10
10
  strategy:
11
11
  matrix:
12
- node-version: [14.x, 16.x]
12
+ node-version: [14.x, 16.x, 18.x]
13
13
 
14
14
  steps:
15
15
  - uses: actions/checkout@v2
package/README.md CHANGED
@@ -1,10 +1,11 @@
1
- # dot-language-support
2
- > [![Build Status](https://travis-ci.com/nikeee/dot-language-support.svg?branch=master)](https://travis-ci.com/nikeee/dot-language-support) ![Dependency Status](https://david-dm.org/nikeee/dot-language-support.svg) [![npm version](https://badge.fury.io/js/dot-language-support.svg)](https://www.npmjs.com/package/dot-language-support)
1
+ # dot-language-support [![CD](https://github.com/nikeee/dot-language-support/actions/workflows/CD.yml/badge.svg)](https://github.com/nikeee/dot-language-support/actions/workflows/CD.yml) [![CI](https://github.com/nikeee/dot-language-support/actions/workflows/CI.yml/badge.svg)](https://github.com/nikeee/dot-language-support/actions/workflows/CI.yml) ![Dependencies](https://img.shields.io/librariesio/release/npm/dot-language-support) [![npm version](https://img.shields.io/npm/v/dot-language-support)](https://www.npmjs.com/package/dot-language-support)
2
+
3
+
3
4
 
4
5
  A language service library, written in TypeScript. Used by [dot-language-server](https://github.com/nikeee/dot-language-server) and [edotor.net](https://edotor.net).
5
6
 
6
7
  ## Features
7
- - Hightlight semantic and syntactic errors
8
+ - Highlight semantic and syntactic errors
8
9
  - Auto completion for colors and shapes
9
10
  - Code Actions:
10
11
  - Refactoring Graphs to Digraphs and vice-versa
@@ -12,6 +13,6 @@ A language service library, written in TypeScript. Used by [dot-language-server]
12
13
  - Refactor edges to sub graphs
13
14
 
14
15
  ## Installation
15
- ```Shell
16
+ ```sh
16
17
  npm -S i dot-language-support
17
18
  ```
@@ -0,0 +1,19 @@
1
+ /** @type {import("@jest/types").Config.ProjectConfig} */
2
+ const config = {
3
+ preset: "ts-jest",
4
+ testEnvironment: "node",
5
+ transform: {
6
+ "\\.[jt]sx?$": "ts-jest",
7
+ },
8
+ globals: {
9
+ "ts-jest": {
10
+ "useESM": true,
11
+ },
12
+ },
13
+ moduleNameMapper: {
14
+ "(.+)\\.js": "$1",
15
+ },
16
+ extensionsToTreatAsEsm: [".ts"],
17
+ };
18
+
19
+ export default config;
@@ -1,2 +1,2 @@
1
- import { SourceFile } from "./types";
1
+ import { SourceFile } from "./types.js";
2
2
  export declare function bindSourceFile(file: SourceFile): void;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.bindSourceFile = void 0;
4
- const types_1 = require("./types");
5
- const checker_1 = require("./checker");
6
- const parser_1 = require("./parser");
4
+ const types_js_1 = require("./types.js");
5
+ const checker_js_1 = require("./checker.js");
6
+ const parser_js_1 = require("./parser.js");
7
7
  const binder = createBinder();
8
8
  function bindSourceFile(file) {
9
9
  binder.bind(file);
@@ -28,37 +28,37 @@ function createBinder() {
28
28
  }
29
29
  function innerBind(node) {
30
30
  switch (node.kind) {
31
- case types_1.SyntaxKind.DirectedGraph:
32
- case types_1.SyntaxKind.UndirectedGraph:
31
+ case types_js_1.SyntaxKind.DirectedGraph:
32
+ case types_js_1.SyntaxKind.UndirectedGraph:
33
33
  return bindGraph(node);
34
- case types_1.SyntaxKind.AttributeStatement:
34
+ case types_js_1.SyntaxKind.AttributeStatement:
35
35
  return bindAttributeStatement(node);
36
- case types_1.SyntaxKind.EdgeStatement:
36
+ case types_js_1.SyntaxKind.EdgeStatement:
37
37
  return bindEdgeStatement(node);
38
- case types_1.SyntaxKind.NodeStatement:
38
+ case types_js_1.SyntaxKind.NodeStatement:
39
39
  return bindNodeStatement(node);
40
- case types_1.SyntaxKind.SubGraph:
40
+ case types_js_1.SyntaxKind.SubGraph:
41
41
  return bindSubGraph(node);
42
- case types_1.SyntaxKind.SubGraphStatement:
42
+ case types_js_1.SyntaxKind.SubGraphStatement:
43
43
  return bindSubGraphStatement(node);
44
- case types_1.SyntaxKind.IdEqualsIdStatement:
44
+ case types_js_1.SyntaxKind.IdEqualsIdStatement:
45
45
  return bindIdEqualsIdStatement(node);
46
- case types_1.SyntaxKind.QuotedTextIdentifier:
46
+ case types_js_1.SyntaxKind.QuotedTextIdentifier:
47
47
  return bindQuotedTextIdentifier(node);
48
- case types_1.SyntaxKind.EdgeRhs:
48
+ case types_js_1.SyntaxKind.EdgeRhs:
49
49
  return bindEdgeRhs(node);
50
- case types_1.SyntaxKind.AttributeContainer:
50
+ case types_js_1.SyntaxKind.AttributeContainer:
51
51
  return bindAttributeContainer(node);
52
- case types_1.SyntaxKind.Assignment:
52
+ case types_js_1.SyntaxKind.Assignment:
53
53
  return bindAssignment(node);
54
- case types_1.SyntaxKind.NormalPortDeclaration:
54
+ case types_js_1.SyntaxKind.NormalPortDeclaration:
55
55
  return bindNormalPortDeclaration(node);
56
- case types_1.SyntaxKind.CompassPortDeclaration:
56
+ case types_js_1.SyntaxKind.CompassPortDeclaration:
57
57
  return bindCompassPortDeclaration(node);
58
- case types_1.SyntaxKind.NodeId:
58
+ case types_js_1.SyntaxKind.NodeId:
59
59
  return bindNodeId(node);
60
60
  default:
61
- if (node.kind >= types_1.SyntaxKind.FirstNode)
61
+ if (node.kind >= types_js_1.SyntaxKind.FirstNode)
62
62
  throw "TODO";
63
63
  }
64
64
  }
@@ -67,10 +67,10 @@ function createBinder() {
67
67
  graphContext |= 2;
68
68
  }
69
69
  switch (node.kind) {
70
- case types_1.SyntaxKind.DirectedGraph:
70
+ case types_js_1.SyntaxKind.DirectedGraph:
71
71
  graphContext |= 4;
72
72
  break;
73
- case types_1.SyntaxKind.UndirectedGraph:
73
+ case types_js_1.SyntaxKind.UndirectedGraph:
74
74
  graphContext |= 8;
75
75
  break;
76
76
  }
@@ -117,7 +117,7 @@ function createBinder() {
117
117
  function bindIdEqualsIdStatement(node) {
118
118
  bind(node.leftId);
119
119
  bind(node.rightId);
120
- if (node.rightId && !(0, checker_1.nodeContainsErrors)(node.rightId)) {
120
+ if (node.rightId && !(0, checker_js_1.nodeContainsErrors)(node.rightId)) {
121
121
  if (isAttributeName("color", node.leftId)) {
122
122
  ensureGlobalColor(node.rightId);
123
123
  }
@@ -155,20 +155,20 @@ function createBinder() {
155
155
  bind(node.leftId);
156
156
  let carrierIdentifier = undefined;
157
157
  switch (superParentStatement.kind) {
158
- case types_1.SyntaxKind.NodeStatement:
158
+ case types_js_1.SyntaxKind.NodeStatement:
159
159
  carrierIdentifier = superParentStatement.id.id;
160
160
  break;
161
- case types_1.SyntaxKind.EdgeStatement:
161
+ case types_js_1.SyntaxKind.EdgeStatement:
162
162
  break;
163
- case types_1.SyntaxKind.SubGraphStatement:
163
+ case types_js_1.SyntaxKind.SubGraphStatement:
164
164
  break;
165
- case types_1.SyntaxKind.AttributeStatement:
165
+ case types_js_1.SyntaxKind.AttributeStatement:
166
166
  break;
167
167
  }
168
168
  if (carrierIdentifier)
169
169
  ensureMemberSymbol(node.leftId, carrierIdentifier);
170
170
  bind(node.rightId);
171
- if (node.rightId && !(0, checker_1.nodeContainsErrors)(node.rightId)) {
171
+ if (node.rightId && !(0, checker_js_1.nodeContainsErrors)(node.rightId)) {
172
172
  if (isAttributeName("color", node.leftId)) {
173
173
  ensureGlobalColor(node.rightId);
174
174
  }
@@ -205,8 +205,8 @@ function createBinder() {
205
205
  return new Map();
206
206
  }
207
207
  function ensureMemberSymbol(node, carrier) {
208
- if (node && carrier && (0, parser_1.isIdentifierNode)(node)) {
209
- const name = (0, checker_1.getIdentifierText)(node);
208
+ if (node && carrier && (0, parser_js_1.isIdentifierNode)(node)) {
209
+ const name = (0, checker_js_1.getIdentifierText)(node);
210
210
  if (name === undefined)
211
211
  return;
212
212
  const carrierSymbol = carrier.symbol;
@@ -222,9 +222,9 @@ function createBinder() {
222
222
  debugger;
223
223
  }
224
224
  function ensureGlobalSymbol(node) {
225
- if (node && (0, parser_1.isIdentifierNode)(node)) {
225
+ if (node && (0, parser_js_1.isIdentifierNode)(node)) {
226
226
  const symbols = symbolTable;
227
- const name = (0, checker_1.getIdentifierText)(node);
227
+ const name = (0, checker_js_1.getIdentifierText)(node);
228
228
  if (name === undefined)
229
229
  return;
230
230
  if (symbols === undefined)
@@ -252,9 +252,9 @@ function createBinder() {
252
252
  node.symbol = sym;
253
253
  }
254
254
  function ensureGlobalColor(node) {
255
- if (node && (0, parser_1.isIdentifierNode)(node)) {
255
+ if (node && (0, parser_js_1.isIdentifierNode)(node)) {
256
256
  const colors = colorTable;
257
- const name = (0, checker_1.getIdentifierText)(node);
257
+ const name = (0, checker_js_1.getIdentifierText)(node);
258
258
  if (name === undefined)
259
259
  return;
260
260
  if (colors === undefined)
@@ -283,7 +283,7 @@ function createBinder() {
283
283
  };
284
284
  }
285
285
  function isAttributeName(name, id) {
286
- return id ? (0, checker_1.getIdentifierText)(id).trim().toLowerCase() === name : false;
286
+ return id ? (0, checker_js_1.getIdentifierText)(id).trim().toLowerCase() === name : false;
287
287
  }
288
288
  return {
289
289
  bind: file => {
@@ -1,4 +1,4 @@
1
- import { SyntaxNode, Identifier, SyntaxKind, Graph, EdgeStatement, EdgeRhs, SourceFile, SubGraphStatement, NodeId, AttributeStatement, Statement, StatementOf, Token } from "./types";
1
+ import { SyntaxNode, Identifier, SyntaxKind, Graph, EdgeStatement, EdgeRhs, SourceFile, SubGraphStatement, NodeId, AttributeStatement, Statement, StatementOf, Token } from "./types.js";
2
2
  export declare function checkSourceFile(file: SourceFile): void;
3
3
  export declare function findNodeAtOffset(root: SyntaxNode, offset: number, inclusiveEnd?: boolean): SyntaxNode | undefined;
4
4
  export declare function getAllowedEdgeOperation(graph: Graph): SyntaxKind.DirectedEdgeOp | SyntaxKind.UndirectedEdgeOp;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.nodeContainsErrors = exports.getIdentifierText = exports.edgeStatementHasAttributes = exports.isNodeId = exports.isSubGraphStatement = exports.isEdgeStatement = exports.isAttrStatement = exports.findAllStatements = exports.findOptionalSemicolons = exports.findAllEdges = exports.getAllowedEdgeOperation = exports.findNodeAtOffset = exports.checkSourceFile = void 0;
4
- const types_1 = require("./types");
5
- const util_1 = require("./service/util");
6
- const visitor_1 = require("./visitor");
4
+ const types_js_1 = require("./types.js");
5
+ const util_js_1 = require("./service/util.js");
6
+ const visitor_js_1 = require("./visitor.js");
7
7
  function checkSourceFile(file) {
8
8
  const g = file.graph;
9
9
  if (g) {
@@ -33,16 +33,16 @@ function findNodeAtOffset(root, offset, inclusiveEnd = false) {
33
33
  if (root.pos === offset && root.pos === root.end)
34
34
  return root;
35
35
  if (rangeContainsOffset(root, offset, inclusiveEnd)) {
36
- const narrowerChild = (0, visitor_1.forEachChild)(root, child => findNodeAtOffset(child, offset, inclusiveEnd));
36
+ const narrowerChild = (0, visitor_js_1.forEachChild)(root, child => findNodeAtOffset(child, offset, inclusiveEnd));
37
37
  return narrowerChild ? narrowerChild : root;
38
38
  }
39
39
  return undefined;
40
40
  }
41
41
  exports.findNodeAtOffset = findNodeAtOffset;
42
42
  function getAllowedEdgeOperation(graph) {
43
- return graph.kind === types_1.SyntaxKind.DirectedGraph
44
- ? types_1.SyntaxKind.DirectedEdgeOp
45
- : types_1.SyntaxKind.UndirectedEdgeOp;
43
+ return graph.kind === types_js_1.SyntaxKind.DirectedGraph
44
+ ? types_js_1.SyntaxKind.DirectedEdgeOp
45
+ : types_js_1.SyntaxKind.UndirectedEdgeOp;
46
46
  }
47
47
  exports.getAllowedEdgeOperation = getAllowedEdgeOperation;
48
48
  function checkGraphSemantics(file, root) {
@@ -54,7 +54,7 @@ function checkGraphSemantics(file, root) {
54
54
  }
55
55
  function findAllEdges(node) {
56
56
  const allEdges = [];
57
- (0, visitor_1.forEachChild)(node, child => {
57
+ (0, visitor_js_1.forEachChild)(node, child => {
58
58
  if (isEdgeStatement(child)) {
59
59
  if (child.rhs && child.rhs.length > 0) {
60
60
  for (const edgeRhs of child.rhs)
@@ -75,15 +75,15 @@ function findOptionalSemicolons(node) {
75
75
  }
76
76
  exports.findOptionalSemicolons = findOptionalSemicolons;
77
77
  function isStatement(node) {
78
- return node.kind === types_1.SyntaxKind.SubGraphStatement
79
- || node.kind === types_1.SyntaxKind.EdgeStatement
80
- || node.kind === types_1.SyntaxKind.NodeStatement
81
- || node.kind === types_1.SyntaxKind.IdEqualsIdStatement
82
- || node.kind === types_1.SyntaxKind.AttributeStatement;
78
+ return node.kind === types_js_1.SyntaxKind.SubGraphStatement
79
+ || node.kind === types_js_1.SyntaxKind.EdgeStatement
80
+ || node.kind === types_js_1.SyntaxKind.NodeStatement
81
+ || node.kind === types_js_1.SyntaxKind.IdEqualsIdStatement
82
+ || node.kind === types_js_1.SyntaxKind.AttributeStatement;
83
83
  }
84
84
  function findAllStatements(node, kind) {
85
85
  const allStatements = [];
86
- (0, visitor_1.forEachChild)(node, child => {
86
+ (0, visitor_js_1.forEachChild)(node, child => {
87
87
  if ((kind === undefined && isStatement(child)) || (child.kind === kind)) {
88
88
  allStatements.push(child);
89
89
  }
@@ -106,14 +106,14 @@ function findEdgeErrors(expectedEdgeOp, node) {
106
106
  return undefined;
107
107
  }
108
108
  function createEdgeViolationDiagnostics(file, expectedEdgeOp, violators) {
109
- const op = expectedEdgeOp === types_1.SyntaxKind.UndirectedEdgeOp ? "--" : "->";
110
- const graphType = expectedEdgeOp === types_1.SyntaxKind.UndirectedEdgeOp ? "undirected" : "directed";
109
+ const op = expectedEdgeOp === types_js_1.SyntaxKind.UndirectedEdgeOp ? "--" : "->";
110
+ const graphType = expectedEdgeOp === types_js_1.SyntaxKind.UndirectedEdgeOp ? "undirected" : "directed";
111
111
  const message = `Invalid edge operation, use "${op}" in ${graphType} graph`;
112
112
  const code = createCheckerError(0);
113
- const category = types_1.DiagnosticCategory.Error;
113
+ const category = types_js_1.DiagnosticCategory.Error;
114
114
  violators.forEach(edge => edge.operation.flags |= 2);
115
115
  return violators.map(edge => {
116
- const start = (0, util_1.getStart)(file, edge.operation);
116
+ const start = (0, util_js_1.getStart)(file, edge.operation);
117
117
  const end = edge.operation.end;
118
118
  return {
119
119
  message,
@@ -133,22 +133,22 @@ function getInvalidEdgeRhs(allowedOp, edges) {
133
133
  return res;
134
134
  }
135
135
  function isAttrStatement(node) {
136
- return node.kind === types_1.SyntaxKind.AttributeStatement;
136
+ return node.kind === types_js_1.SyntaxKind.AttributeStatement;
137
137
  }
138
138
  exports.isAttrStatement = isAttrStatement;
139
139
  function isEdgeStatement(node) {
140
- return node.kind === types_1.SyntaxKind.EdgeStatement;
140
+ return node.kind === types_js_1.SyntaxKind.EdgeStatement;
141
141
  }
142
142
  exports.isEdgeStatement = isEdgeStatement;
143
143
  function isSubGraphStatement(node) {
144
- return node.kind === types_1.SyntaxKind.SubGraphStatement;
144
+ return node.kind === types_js_1.SyntaxKind.SubGraphStatement;
145
145
  }
146
146
  exports.isSubGraphStatement = isSubGraphStatement;
147
147
  function isGraph(node) {
148
- return node.kind === types_1.SyntaxKind.DirectedGraph || node.kind === types_1.SyntaxKind.UndirectedGraph;
148
+ return node.kind === types_js_1.SyntaxKind.DirectedGraph || node.kind === types_js_1.SyntaxKind.UndirectedGraph;
149
149
  }
150
150
  function isNodeId(node) {
151
- return node.kind === types_1.SyntaxKind.NodeId;
151
+ return node.kind === types_js_1.SyntaxKind.NodeId;
152
152
  }
153
153
  exports.isNodeId = isNodeId;
154
154
  function edgeStatementHasAttributes(es) {
@@ -159,16 +159,16 @@ function edgeStatementHasAttributes(es) {
159
159
  exports.edgeStatementHasAttributes = edgeStatementHasAttributes;
160
160
  function getIdentifierText(n) {
161
161
  switch (n.kind) {
162
- case types_1.SyntaxKind.HtmlIdentifier:
162
+ case types_js_1.SyntaxKind.HtmlIdentifier:
163
163
  return n.htmlContent;
164
- case types_1.SyntaxKind.TextIdentifier:
164
+ case types_js_1.SyntaxKind.TextIdentifier:
165
165
  return n.text;
166
- case types_1.SyntaxKind.NumericIdentifier:
166
+ case types_js_1.SyntaxKind.NumericIdentifier:
167
167
  return n.text;
168
- case types_1.SyntaxKind.QuotedTextIdentifier:
168
+ case types_js_1.SyntaxKind.QuotedTextIdentifier:
169
169
  return n.concatenation;
170
170
  default:
171
- return (0, util_1.assertNever)(n);
171
+ return (0, util_js_1.assertNever)(n);
172
172
  }
173
173
  }
174
174
  exports.getIdentifierText = getIdentifierText;
File without changes
File without changes
@@ -1,3 +1,3 @@
1
- import { ErrorCode } from "./types";
1
+ import type { ErrorCode } from "./types.js";
2
2
  export declare const diagnosicSource = "DOT";
3
3
  export declare function formatError(error: ErrorCode): string;
File without changes
@@ -0,0 +1,5 @@
1
+ export * from "./types.js";
2
+ export * from "./scanner.js";
3
+ export * from "./parser.js";
4
+ export * from "./visitor.js";
5
+ export * from "./service/service.js";
@@ -14,10 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./types"), exports);
18
- __exportStar(require("./scanner"), exports);
19
- __exportStar(require("./parser"), exports);
20
- __exportStar(require("./visitor"), exports);
21
- __exportStar(require("./service/service"), exports);
22
- __exportStar(require("./service/interop"), exports);
17
+ __exportStar(require("./types.js"), exports);
18
+ __exportStar(require("./scanner.js"), exports);
19
+ __exportStar(require("./parser.js"), exports);
20
+ __exportStar(require("./visitor.js"), exports);
21
+ __exportStar(require("./service/service.js"), exports);
23
22
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { Scanner } from "./scanner";
1
+ import { Scanner } from "./scanner.js";
2
2
  import { SyntaxKind, SourceFile, Identifier, SyntaxNode, DiagnosticMessage } from "./types";
3
3
  export declare enum ParsingContext {
4
4
  None = 0,
@@ -81,4 +81,4 @@ export declare class Parser {
81
81
  private tryParse;
82
82
  }
83
83
  export declare function isIdentifier(kind: SyntaxKind): boolean;
84
- export declare function isIdentifierNode<T extends SyntaxNode>(node: SyntaxNode): node is Identifier;
84
+ export declare function isIdentifierNode(node: SyntaxNode): node is Identifier;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isIdentifierNode = exports.isIdentifier = exports.Parser = exports.ParsingContext = void 0;
4
- const scanner_1 = require("./scanner");
4
+ const scanner_js_1 = require("./scanner.js");
5
+ const util_js_1 = require("./service/util.js");
5
6
  const types_1 = require("./types");
6
7
  var ParsingContext;
7
8
  (function (ParsingContext) {
@@ -17,7 +18,7 @@ class Parser {
17
18
  constructor() {
18
19
  this.currentToken = types_1.SyntaxKind.Unknown;
19
20
  this.identifierCount = 0;
20
- this.scanner = new scanner_1.DefaultScanner();
21
+ this.scanner = new scanner_js_1.DefaultScanner();
21
22
  this.resetState();
22
23
  }
23
24
  resetState() {
@@ -268,13 +269,13 @@ class Parser {
268
269
  node.terminator = this.parseOptionalToken(types_1.SyntaxKind.SemicolonToken);
269
270
  return this.finishNode(node);
270
271
  }
271
- parseEdgeStatement(preceedingItem) {
272
- console.assert(preceedingItem.kind === types_1.SyntaxKind.SubGraph || preceedingItem.kind === types_1.SyntaxKind.NodeId);
273
- console.assert(preceedingItem.pos !== undefined);
272
+ parseEdgeStatement(precedingItem) {
273
+ console.assert(precedingItem.kind === types_1.SyntaxKind.SubGraph || precedingItem.kind === types_1.SyntaxKind.NodeId);
274
+ console.assert(precedingItem.pos !== undefined);
274
275
  if (!this.isEdgeOp())
275
276
  debugger;
276
- const node = this.createNode(types_1.SyntaxKind.EdgeStatement, preceedingItem.pos);
277
- node.source = preceedingItem;
277
+ const node = this.createNode(types_1.SyntaxKind.EdgeStatement, precedingItem.pos);
278
+ node.source = precedingItem;
278
279
  node.rhs = this.parseList(ParsingContext.EdgeRhsList, () => this.parseEdgeRhs());
279
280
  if (this.token() === types_1.SyntaxKind.OpenBracketToken) {
280
281
  node.attributes = this.parseList(ParsingContext.AttributeContainerList, () => this.parseAttributeContainer());
@@ -425,8 +426,9 @@ class Parser {
425
426
  return "Wat, no parsing context";
426
427
  case ParsingContext.Count:
427
428
  return "Wat, 'Count' parsing context";
429
+ default:
430
+ return (0, util_js_1.assertNever)(context);
428
431
  }
429
- return "Error parsing list";
430
432
  }
431
433
  isInSomeParsingContext() {
432
434
  for (let ctx = 0; ctx < ParsingContext.Count; ctx++) {
@@ -446,7 +448,7 @@ class Parser {
446
448
  this.nextToken();
447
449
  return false;
448
450
  }
449
- isListElement(context, inErrorRecovery) {
451
+ isListElement(context, _inErrorRecovery) {
450
452
  switch (context) {
451
453
  case ParsingContext.AssignmentList:
452
454
  return this.isIdentifier();
@@ -544,7 +546,7 @@ class Parser {
544
546
  };
545
547
  return this.parseErrorAtPosition(this.scanner.tokenPos, this.scanner.pos, message, error);
546
548
  }
547
- scanError(message, category, sub, length) {
549
+ scanError(message, _category, sub, length) {
548
550
  const errorPos = this.scanner.pos;
549
551
  const err = {
550
552
  source: 1,
@@ -557,13 +559,13 @@ class Parser {
557
559
  ? "identifier"
558
560
  : this.token() === types_1.SyntaxKind.EndOfFileToken
559
561
  ? "end of file"
560
- : `"${(0, scanner_1.getTokenAsText)(this.token())}"`;
562
+ : `"${(0, scanner_js_1.getTokenAsText)(this.token())}"`;
561
563
  const expected = expectedKinds.map(k => {
562
564
  if (isIdentifier(k))
563
565
  return "identifier";
564
566
  else if (k === types_1.SyntaxKind.EndOfFileToken)
565
567
  return "end of file";
566
- return `"${(0, scanner_1.getTokenAsText)(k)}"`;
568
+ return `"${(0, scanner_js_1.getTokenAsText)(k)}"`;
567
569
  });
568
570
  const lastExpected = expected.pop();
569
571
  const expectedJoined = expected.join(", ");
@@ -1,4 +1,4 @@
1
- import { SyntaxKind, TokenFlags, DiagnosticCategory, ScanError } from "./types";
1
+ import { SyntaxKind, TokenFlags, DiagnosticCategory, ScanError } from "./types.js";
2
2
  export interface Scanner {
3
3
  readonly end: number;
4
4
  readonly pos: number;