dot-language-support 1.7.0 → 2.0.3

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 (110) 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 -5
  15. package/lib/{parser.d.ts → cjs/parser.d.ts} +1 -1
  16. package/lib/{parser.js → cjs/parser.js} +11 -11
  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 +2 -2
  20. package/lib/{service → cjs/service}/codeAction.js +34 -34
  21. package/lib/cjs/service/colorProvider.d.ts +5 -0
  22. package/lib/{service → cjs/service}/colorProvider.js +7 -12
  23. package/lib/{service → cjs/service}/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.d.ts +3 -3
  24. package/lib/{service → cjs/service}/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.js +6 -6
  25. package/lib/{service → cjs/service}/command/ChangeEdgeOpCommand.d.ts +3 -3
  26. package/lib/{service → cjs/service}/command/ChangeEdgeOpCommand.js +3 -3
  27. package/lib/{service → cjs/service}/command/ConsolidateDescendantsCommand.d.ts +3 -3
  28. package/lib/{service → cjs/service}/command/ConsolidateDescendantsCommand.js +7 -7
  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 +2 -2
  32. package/lib/{service → cjs/service}/command/common.js +6 -6
  33. package/lib/{service → cjs/service}/completion.d.ts +2 -2
  34. package/lib/{service → cjs/service}/completion.js +25 -25
  35. package/lib/{service → cjs/service}/hover.d.ts +2 -2
  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}/reference.d.ts +2 -2
  40. package/lib/{service → cjs/service}/reference.js +9 -9
  41. package/lib/{service → cjs/service}/rename.d.ts +2 -2
  42. package/lib/{service → cjs/service}/rename.js +11 -11
  43. package/lib/{service → cjs/service}/service.d.ts +2 -2
  44. package/lib/cjs/service/service.js +39 -0
  45. package/lib/{service → cjs/service}/util.d.ts +2 -2
  46. package/lib/{service → cjs/service}/util.js +5 -5
  47. package/lib/{service → cjs/service}/validation.d.ts +2 -2
  48. package/lib/{service → cjs/service}/validation.js +3 -3
  49. package/lib/cjs/tester.d.ts +1 -0
  50. package/lib/cjs/tester.js +23 -0
  51. package/lib/{types.d.ts → cjs/types.d.ts} +0 -0
  52. package/lib/{types.js → cjs/types.js} +0 -0
  53. package/lib/{visitor.d.ts → cjs/visitor.d.ts} +1 -1
  54. package/lib/{visitor.js → cjs/visitor.js} +17 -17
  55. package/lib/esm/binder.d.ts +2 -0
  56. package/lib/esm/binder.js +296 -0
  57. package/lib/esm/checker.d.ts +14 -0
  58. package/lib/esm/checker.js +169 -0
  59. package/lib/esm/core.d.ts +1 -0
  60. package/lib/esm/core.js +10 -0
  61. package/lib/esm/error.d.ts +3 -0
  62. package/lib/esm/error.js +10 -0
  63. package/lib/esm/index.d.ts +5 -0
  64. package/lib/esm/index.js +6 -0
  65. package/lib/esm/parser.d.ts +84 -0
  66. package/lib/esm/parser.js +700 -0
  67. package/lib/esm/scanner.d.ts +52 -0
  68. package/lib/esm/scanner.js +581 -0
  69. package/lib/esm/service/codeAction.d.ts +12 -0
  70. package/lib/esm/service/codeAction.js +208 -0
  71. package/lib/esm/service/colorProvider.d.ts +5 -0
  72. package/lib/esm/service/colorProvider.js +64 -0
  73. package/lib/esm/service/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.d.ts +10 -0
  74. package/lib/esm/service/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.js +38 -0
  75. package/lib/esm/service/command/ChangeEdgeOpCommand.d.ts +10 -0
  76. package/lib/esm/service/command/ChangeEdgeOpCommand.js +32 -0
  77. package/lib/esm/service/command/ConsolidateDescendantsCommand.d.ts +10 -0
  78. package/lib/esm/service/command/ConsolidateDescendantsCommand.js +83 -0
  79. package/lib/esm/service/command/RemoveSemicolons.d.ts +10 -0
  80. package/lib/esm/service/command/RemoveSemicolons.js +37 -0
  81. package/lib/esm/service/command/common.d.ts +31 -0
  82. package/lib/esm/service/command/common.js +22 -0
  83. package/lib/esm/service/completion.d.ts +4 -0
  84. package/lib/esm/service/completion.js +137 -0
  85. package/lib/esm/service/hover.d.ts +4 -0
  86. package/lib/esm/service/hover.js +119 -0
  87. package/lib/esm/service/languageFacts.d.ts +683 -0
  88. package/lib/esm/service/languageFacts.js +997 -0
  89. package/lib/esm/service/reference.d.ts +5 -0
  90. package/lib/esm/service/reference.js +66 -0
  91. package/lib/esm/service/rename.d.ts +4 -0
  92. package/lib/esm/service/rename.js +45 -0
  93. package/lib/esm/service/service.d.ts +28 -0
  94. package/lib/esm/service/service.js +35 -0
  95. package/lib/esm/service/util.d.ts +11 -0
  96. package/lib/esm/service/util.js +44 -0
  97. package/lib/esm/service/validation.d.ts +4 -0
  98. package/lib/esm/service/validation.js +20 -0
  99. package/lib/esm/tester.d.ts +1 -0
  100. package/lib/esm/tester.js +21 -0
  101. package/lib/esm/types.d.ts +396 -0
  102. package/lib/esm/types.js +71 -0
  103. package/lib/esm/visitor.d.ts +2 -0
  104. package/lib/esm/visitor.js +74 -0
  105. package/package.json +14 -12
  106. package/lib/index.d.ts +0 -5
  107. package/lib/service/colorProvider.d.ts +0 -6
  108. package/lib/service/polyfill.d.ts +0 -16
  109. package/lib/service/polyfill.js +0 -3
  110. package/lib/service/service.js +0 -39
@@ -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 type { 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,9 +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);
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);
22
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,
@@ -1,8 +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");
5
- const util_1 = require("./service/util");
4
+ const scanner_js_1 = require("./scanner.js");
5
+ const util_js_1 = require("./service/util.js");
6
6
  const types_1 = require("./types");
7
7
  var ParsingContext;
8
8
  (function (ParsingContext) {
@@ -18,7 +18,7 @@ class Parser {
18
18
  constructor() {
19
19
  this.currentToken = types_1.SyntaxKind.Unknown;
20
20
  this.identifierCount = 0;
21
- this.scanner = new scanner_1.DefaultScanner();
21
+ this.scanner = new scanner_js_1.DefaultScanner();
22
22
  this.resetState();
23
23
  }
24
24
  resetState() {
@@ -269,13 +269,13 @@ class Parser {
269
269
  node.terminator = this.parseOptionalToken(types_1.SyntaxKind.SemicolonToken);
270
270
  return this.finishNode(node);
271
271
  }
272
- parseEdgeStatement(preceedingItem) {
273
- console.assert(preceedingItem.kind === types_1.SyntaxKind.SubGraph || preceedingItem.kind === types_1.SyntaxKind.NodeId);
274
- 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);
275
275
  if (!this.isEdgeOp())
276
276
  debugger;
277
- const node = this.createNode(types_1.SyntaxKind.EdgeStatement, preceedingItem.pos);
278
- node.source = preceedingItem;
277
+ const node = this.createNode(types_1.SyntaxKind.EdgeStatement, precedingItem.pos);
278
+ node.source = precedingItem;
279
279
  node.rhs = this.parseList(ParsingContext.EdgeRhsList, () => this.parseEdgeRhs());
280
280
  if (this.token() === types_1.SyntaxKind.OpenBracketToken) {
281
281
  node.attributes = this.parseList(ParsingContext.AttributeContainerList, () => this.parseAttributeContainer());
@@ -427,7 +427,7 @@ class Parser {
427
427
  case ParsingContext.Count:
428
428
  return "Wat, 'Count' parsing context";
429
429
  default:
430
- return (0, util_1.assertNever)(context);
430
+ return (0, util_js_1.assertNever)(context);
431
431
  }
432
432
  }
433
433
  isInSomeParsingContext() {
@@ -559,13 +559,13 @@ class Parser {
559
559
  ? "identifier"
560
560
  : this.token() === types_1.SyntaxKind.EndOfFileToken
561
561
  ? "end of file"
562
- : `"${(0, scanner_1.getTokenAsText)(this.token())}"`;
562
+ : `"${(0, scanner_js_1.getTokenAsText)(this.token())}"`;
563
563
  const expected = expectedKinds.map(k => {
564
564
  if (isIdentifier(k))
565
565
  return "identifier";
566
566
  else if (k === types_1.SyntaxKind.EndOfFileToken)
567
567
  return "end of file";
568
- return `"${(0, scanner_1.getTokenAsText)(k)}"`;
568
+ return `"${(0, scanner_js_1.getTokenAsText)(k)}"`;
569
569
  });
570
570
  const lastExpected = expected.pop();
571
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;