@spyglassmc/core 0.1.2 → 0.2.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 (187) hide show
  1. package/README.md +7 -0
  2. package/lib/browser.d.ts +2 -0
  3. package/lib/browser.js +2 -0
  4. package/lib/common/TwoWayMap.js +4 -10
  5. package/lib/common/externals/BrowserExternals.d.ts +3 -0
  6. package/lib/common/externals/BrowserExternals.js +191 -0
  7. package/lib/common/externals/NodeJsExternals.d.ts +3 -0
  8. package/lib/common/externals/NodeJsExternals.js +151 -0
  9. package/lib/common/externals/downloader.d.ts +31 -0
  10. package/lib/common/externals/downloader.js +32 -0
  11. package/lib/common/externals/index.d.ts +96 -0
  12. package/lib/common/externals/index.js +2 -0
  13. package/lib/common/index.d.ts +2 -1
  14. package/lib/common/index.js +2 -17
  15. package/lib/common/util.d.ts +15 -15
  16. package/lib/common/util.js +30 -77
  17. package/lib/index.d.ts +7 -7
  18. package/lib/index.js +7 -23
  19. package/lib/node/AstNode.d.ts +3 -3
  20. package/lib/node/AstNode.js +10 -16
  21. package/lib/node/BooleanNode.d.ts +2 -2
  22. package/lib/node/BooleanNode.js +4 -7
  23. package/lib/node/CommentNode.d.ts +1 -1
  24. package/lib/node/CommentNode.js +2 -5
  25. package/lib/node/ErrorNode.d.ts +1 -1
  26. package/lib/node/ErrorNode.js +2 -5
  27. package/lib/node/FileNode.d.ts +3 -3
  28. package/lib/node/FileNode.js +2 -5
  29. package/lib/node/FloatNode.d.ts +2 -2
  30. package/lib/node/FloatNode.js +4 -7
  31. package/lib/node/IntegerNode.d.ts +2 -2
  32. package/lib/node/IntegerNode.js +4 -7
  33. package/lib/node/ListNode.d.ts +2 -2
  34. package/lib/node/ListNode.js +2 -5
  35. package/lib/node/LiteralNode.d.ts +3 -3
  36. package/lib/node/LiteralNode.js +4 -7
  37. package/lib/node/LongNode.d.ts +2 -2
  38. package/lib/node/LongNode.js +4 -7
  39. package/lib/node/RecordNode.d.ts +2 -2
  40. package/lib/node/RecordNode.js +2 -5
  41. package/lib/node/ResourceLocationNode.d.ts +5 -5
  42. package/lib/node/ResourceLocationNode.js +9 -12
  43. package/lib/node/Sequence.d.ts +2 -2
  44. package/lib/node/Sequence.js +4 -7
  45. package/lib/node/StringNode.d.ts +4 -4
  46. package/lib/node/StringNode.js +9 -12
  47. package/lib/node/SymbolNode.d.ts +3 -3
  48. package/lib/node/SymbolNode.js +4 -7
  49. package/lib/node/index.d.ts +15 -15
  50. package/lib/node/index.js +15 -31
  51. package/lib/nodejs.d.ts +2 -0
  52. package/lib/nodejs.js +2 -0
  53. package/lib/parser/Parser.d.ts +3 -3
  54. package/lib/parser/Parser.js +1 -4
  55. package/lib/parser/boolean.d.ts +2 -2
  56. package/lib/parser/boolean.js +3 -6
  57. package/lib/parser/comment.d.ts +2 -2
  58. package/lib/parser/comment.js +5 -9
  59. package/lib/parser/empty.d.ts +1 -1
  60. package/lib/parser/empty.js +1 -5
  61. package/lib/parser/error.d.ts +2 -2
  62. package/lib/parser/error.js +5 -9
  63. package/lib/parser/file.d.ts +3 -3
  64. package/lib/parser/file.js +9 -13
  65. package/lib/parser/float.d.ts +4 -4
  66. package/lib/parser/float.js +12 -16
  67. package/lib/parser/index.d.ts +16 -16
  68. package/lib/parser/index.js +16 -38
  69. package/lib/parser/integer.d.ts +4 -4
  70. package/lib/parser/integer.js +10 -14
  71. package/lib/parser/list.d.ts +2 -2
  72. package/lib/parser/list.js +15 -19
  73. package/lib/parser/literal.d.ts +2 -2
  74. package/lib/parser/literal.js +5 -9
  75. package/lib/parser/long.d.ts +4 -4
  76. package/lib/parser/long.js +10 -14
  77. package/lib/parser/record.d.ts +3 -3
  78. package/lib/parser/record.js +20 -24
  79. package/lib/parser/resourceLocation.d.ts +2 -2
  80. package/lib/parser/resourceLocation.js +14 -18
  81. package/lib/parser/string.d.ts +5 -5
  82. package/lib/parser/string.js +36 -42
  83. package/lib/parser/symbol.d.ts +3 -3
  84. package/lib/parser/symbol.js +3 -7
  85. package/lib/parser/util.d.ts +5 -5
  86. package/lib/parser/util.js +38 -56
  87. package/lib/processor/ColorInfoProvider.d.ts +1 -1
  88. package/lib/processor/ColorInfoProvider.js +6 -9
  89. package/lib/processor/InlayHintProvider.d.ts +2 -2
  90. package/lib/processor/InlayHintProvider.js +1 -2
  91. package/lib/processor/SignatureHelpProvider.d.ts +2 -2
  92. package/lib/processor/SignatureHelpProvider.js +1 -2
  93. package/lib/processor/checker/Checker.d.ts +2 -2
  94. package/lib/processor/checker/Checker.js +1 -5
  95. package/lib/processor/checker/builtin.d.ts +4 -4
  96. package/lib/processor/checker/builtin.js +19 -30
  97. package/lib/processor/checker/index.d.ts +2 -2
  98. package/lib/processor/checker/index.js +2 -31
  99. package/lib/processor/colorizer/Colorizer.d.ts +4 -4
  100. package/lib/processor/colorizer/Colorizer.js +8 -11
  101. package/lib/processor/colorizer/builtin.d.ts +3 -3
  102. package/lib/processor/colorizer/builtin.js +33 -46
  103. package/lib/processor/colorizer/index.d.ts +2 -2
  104. package/lib/processor/colorizer/index.js +2 -31
  105. package/lib/processor/completer/Completer.d.ts +4 -4
  106. package/lib/processor/completer/Completer.js +14 -33
  107. package/lib/processor/completer/builtin.d.ts +7 -7
  108. package/lib/processor/completer/builtin.js +46 -62
  109. package/lib/processor/completer/index.d.ts +2 -2
  110. package/lib/processor/completer/index.js +2 -31
  111. package/lib/processor/formatter/Formatter.d.ts +2 -2
  112. package/lib/processor/formatter/Formatter.js +2 -7
  113. package/lib/processor/formatter/builtin.d.ts +3 -3
  114. package/lib/processor/formatter/builtin.js +22 -36
  115. package/lib/processor/formatter/index.d.ts +2 -2
  116. package/lib/processor/formatter/index.js +2 -31
  117. package/lib/processor/index.d.ts +9 -9
  118. package/lib/processor/index.js +9 -25
  119. package/lib/processor/linter/Linter.d.ts +2 -2
  120. package/lib/processor/linter/Linter.js +1 -2
  121. package/lib/processor/linter/builtin/undeclaredSymbol.d.ts +2 -2
  122. package/lib/processor/linter/builtin/undeclaredSymbol.js +20 -24
  123. package/lib/processor/linter/builtin.d.ts +3 -3
  124. package/lib/processor/linter/builtin.js +19 -26
  125. package/lib/processor/linter/index.d.ts +2 -2
  126. package/lib/processor/linter/index.js +2 -31
  127. package/lib/processor/util.d.ts +2 -2
  128. package/lib/processor/util.js +4 -9
  129. package/lib/service/CacheService.d.ts +6 -6
  130. package/lib/service/CacheService.js +32 -56
  131. package/lib/service/Config.d.ts +11 -12
  132. package/lib/service/Config.js +50 -45
  133. package/lib/service/Context.d.ts +13 -13
  134. package/lib/service/Context.js +29 -32
  135. package/lib/service/Dependency.js +2 -5
  136. package/lib/service/Downloader.d.ts +10 -40
  137. package/lib/service/Downloader.js +37 -110
  138. package/lib/service/ErrorReporter.d.ts +2 -2
  139. package/lib/service/ErrorReporter.js +10 -14
  140. package/lib/service/FileService.d.ts +16 -14
  141. package/lib/service/FileService.js +55 -92
  142. package/lib/service/Hover.d.ts +2 -2
  143. package/lib/service/Hover.js +4 -7
  144. package/lib/service/Logger.js +2 -5
  145. package/lib/service/MetaRegistry.d.ts +12 -12
  146. package/lib/service/MetaRegistry.js +62 -73
  147. package/lib/service/Operations.js +3 -9
  148. package/lib/service/Profiler.d.ts +1 -1
  149. package/lib/service/Profiler.js +25 -41
  150. package/lib/service/Project.d.ts +47 -51
  151. package/lib/service/Project.js +199 -239
  152. package/lib/service/Service.d.ts +17 -27
  153. package/lib/service/Service.js +37 -43
  154. package/lib/service/SymbolLocations.d.ts +3 -3
  155. package/lib/service/SymbolLocations.js +4 -7
  156. package/lib/service/SymbolRegistrar.d.ts +1 -1
  157. package/lib/service/SymbolRegistrar.js +1 -2
  158. package/lib/service/fileUtil.d.ts +15 -45
  159. package/lib/service/fileUtil.js +38 -143
  160. package/lib/service/index.d.ts +17 -17
  161. package/lib/service/index.js +17 -35
  162. package/lib/source/IndexMap.d.ts +1 -1
  163. package/lib/source/IndexMap.js +7 -10
  164. package/lib/source/LanguageError.d.ts +2 -2
  165. package/lib/source/LanguageError.js +2 -5
  166. package/lib/source/Location.d.ts +3 -3
  167. package/lib/source/Location.js +6 -9
  168. package/lib/source/Offset.d.ts +1 -1
  169. package/lib/source/Offset.js +4 -7
  170. package/lib/source/Position.js +2 -5
  171. package/lib/source/PositionRange.d.ts +2 -2
  172. package/lib/source/PositionRange.js +14 -17
  173. package/lib/source/Range.d.ts +1 -1
  174. package/lib/source/Range.js +7 -10
  175. package/lib/source/Source.d.ts +3 -3
  176. package/lib/source/Source.js +28 -29
  177. package/lib/source/index.d.ts +8 -8
  178. package/lib/source/index.js +8 -24
  179. package/lib/symbol/Symbol.d.ts +2 -2
  180. package/lib/symbol/Symbol.js +49 -65
  181. package/lib/symbol/SymbolUtil.d.ts +22 -25
  182. package/lib/symbol/SymbolUtil.js +150 -151
  183. package/lib/symbol/UriBinder.d.ts +1 -1
  184. package/lib/symbol/UriBinder.js +1 -2
  185. package/lib/symbol/index.d.ts +3 -3
  186. package/lib/symbol/index.js +3 -19
  187. package/package.json +7 -4
@@ -1,16 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isAllowedCharacter = exports.brigadierString = exports.BrigadierStringOptions = exports.BrigadierUnquotableOption = exports.BrigadierUnquotablePattern = exports.BrigadierUnquotableCharacterSet = exports.BrigadierUnquotableCharacters = exports.parseStringValue = exports.string = void 0;
4
- const locales_1 = require("@spyglassmc/locales");
5
- const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
6
- const node_1 = require("../node");
7
- const source_1 = require("../source");
8
- const Parser_1 = require("./Parser");
9
- function string(options) {
1
+ import { localeQuote, localize } from '@spyglassmc/locales';
2
+ import { TextDocument } from 'vscode-languageserver-textdocument';
3
+ import { EscapeChar, EscapeTable } from '../node/index.js';
4
+ import { Range, Source } from '../source/index.js';
5
+ import { Failure } from './Parser.js';
6
+ export function string(options) {
10
7
  return (src, ctx) => {
11
8
  const ans = {
12
9
  type: 'string',
13
- range: source_1.Range.create(src),
10
+ range: Range.create(src),
14
11
  options,
15
12
  value: '',
16
13
  valueMap: [],
@@ -25,39 +22,39 @@ function string(options) {
25
22
  const cStart = src.cursor;
26
23
  src.skip();
27
24
  const c2 = src.read();
28
- if (c2 === '\\' || c2 === currentQuote || node_1.EscapeChar.is(options.escapable.characters, c2)) {
25
+ if (c2 === '\\' || c2 === currentQuote || EscapeChar.is(options.escapable.characters, c2)) {
29
26
  ans.valueMap.push({
30
- inner: source_1.Range.create(ans.value.length, ans.value.length + 1),
31
- outer: source_1.Range.create(cStart, src),
27
+ inner: Range.create(ans.value.length, ans.value.length + 1),
28
+ outer: Range.create(cStart, src),
32
29
  });
33
- ans.value += node_1.EscapeTable.get(c2);
30
+ ans.value += EscapeTable.get(c2);
34
31
  }
35
32
  else if (options.escapable.unicode && c2 === 'u') {
36
33
  const hex = src.peek(4);
37
34
  if (/^[0-9a-f]{4}$/i.test(hex)) {
38
35
  src.skip(4);
39
36
  ans.valueMap.push({
40
- inner: source_1.Range.create(ans.value.length, ans.value.length + 1),
41
- outer: source_1.Range.create(cStart, src),
37
+ inner: Range.create(ans.value.length, ans.value.length + 1),
38
+ outer: Range.create(cStart, src),
42
39
  });
43
40
  ans.value += String.fromCharCode(parseInt(hex, 16));
44
41
  }
45
42
  else {
46
- ctx.err.report((0, locales_1.localize)('parser.string.illegal-unicode-escape'), source_1.Range.create(src, src.getCharRange(3).end));
43
+ ctx.err.report(localize('parser.string.illegal-unicode-escape'), Range.create(src, src.getCharRange(3).end));
47
44
  ans.valueMap.push({
48
- inner: source_1.Range.create(ans.value.length, ans.value.length + 1),
49
- outer: source_1.Range.create(cStart, src),
45
+ inner: Range.create(ans.value.length, ans.value.length + 1),
46
+ outer: Range.create(cStart, src),
50
47
  });
51
48
  ans.value += c2;
52
49
  }
53
50
  }
54
51
  else {
55
52
  if (!options.escapable.allowUnknown) {
56
- ctx.err.report((0, locales_1.localize)('parser.string.illegal-escape', (0, locales_1.localeQuote)(c2)), src.getCharRange(-1));
53
+ ctx.err.report(localize('parser.string.illegal-escape', localeQuote(c2)), src.getCharRange(-1));
57
54
  }
58
55
  ans.valueMap.push({
59
- inner: source_1.Range.create(ans.value.length, ans.value.length + 1),
60
- outer: source_1.Range.create(cStart, src),
56
+ inner: Range.create(ans.value.length, ans.value.length + 1),
57
+ outer: Range.create(cStart, src),
61
58
  });
62
59
  ans.value += c2;
63
60
  }
@@ -68,10 +65,10 @@ function string(options) {
68
65
  }
69
66
  }
70
67
  if (!src.trySkip(currentQuote)) {
71
- ctx.err.report((0, locales_1.localize)('expected', (0, locales_1.localeQuote)(currentQuote)), src);
68
+ ctx.err.report(localize('expected', localeQuote(currentQuote)), src);
72
69
  }
73
70
  if (!options.quotes.includes(currentQuote)) {
74
- ctx.err.report((0, locales_1.localize)('parser.string.illegal-quote', options.quotes), ans);
71
+ ctx.err.report(localize('parser.string.illegal-quote', options.quotes), ans);
75
72
  }
76
73
  start = contentStart;
77
74
  }
@@ -80,17 +77,17 @@ function string(options) {
80
77
  ans.value += src.read();
81
78
  }
82
79
  if (!ans.value && !options.unquotable.allowEmpty) {
83
- ctx.err.report((0, locales_1.localize)('expected', (0, locales_1.localize)('string')), src);
80
+ ctx.err.report(localize('expected', localize('string')), src);
84
81
  }
85
82
  }
86
83
  else {
87
- ctx.err.report((0, locales_1.localize)('expected', options.quotes), src);
84
+ ctx.err.report(localize('expected', options.quotes), src);
88
85
  }
89
- ans.valueMap.unshift({ inner: source_1.Range.create(0), outer: source_1.Range.create(start) });
86
+ ans.valueMap.unshift({ inner: Range.create(0), outer: Range.create(start) });
90
87
  if (options.value?.parser) {
91
88
  const valueResult = parseStringValue(options.value.parser, ans.value, ans.valueMap, ctx);
92
89
  /* istanbul ignore else */
93
- if (valueResult !== Parser_1.Failure) {
90
+ if (valueResult !== Failure) {
94
91
  ans.children = [valueResult];
95
92
  }
96
93
  }
@@ -98,34 +95,31 @@ function string(options) {
98
95
  return ans;
99
96
  };
100
97
  }
101
- exports.string = string;
102
- function parseStringValue(parser, value, map, ctx) {
103
- const valueSrc = new source_1.Source(value, map);
98
+ export function parseStringValue(parser, value, map, ctx) {
99
+ const valueSrc = new Source(value, map);
104
100
  const valueCtx = {
105
101
  ...ctx,
106
- doc: vscode_languageserver_textdocument_1.TextDocument.create(ctx.doc.uri, ctx.doc.languageId, ctx.doc.version, value),
102
+ doc: TextDocument.create(ctx.doc.uri, ctx.doc.languageId, ctx.doc.version, value),
107
103
  };
108
104
  // TODO: Mark trailing string as errors.
109
105
  return parser(valueSrc, valueCtx);
110
106
  }
111
- exports.parseStringValue = parseStringValue;
112
- exports.BrigadierUnquotableCharacters = Object.freeze([
107
+ export const BrigadierUnquotableCharacters = Object.freeze([
113
108
  '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
114
109
  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
115
110
  'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
116
111
  '_', '.', '+', '-',
117
112
  ]);
118
- exports.BrigadierUnquotableCharacterSet = new Set(exports.BrigadierUnquotableCharacters);
119
- exports.BrigadierUnquotablePattern = /^[0-9A-Za-z_\.\+\-]*$/;
120
- exports.BrigadierUnquotableOption = { allowEmpty: true, allowList: exports.BrigadierUnquotableCharacterSet };
121
- exports.BrigadierStringOptions = {
113
+ export const BrigadierUnquotableCharacterSet = new Set(BrigadierUnquotableCharacters);
114
+ export const BrigadierUnquotablePattern = /^[0-9A-Za-z_\.\+\-]*$/;
115
+ export const BrigadierUnquotableOption = { allowEmpty: true, allowList: BrigadierUnquotableCharacterSet };
116
+ export const BrigadierStringOptions = {
122
117
  escapable: {},
123
118
  quotes: ['"', "'"],
124
- unquotable: exports.BrigadierUnquotableOption,
119
+ unquotable: BrigadierUnquotableOption,
125
120
  };
126
- exports.brigadierString = string(exports.BrigadierStringOptions);
127
- function isAllowedCharacter(c, options) {
121
+ export const brigadierString = string(BrigadierStringOptions);
122
+ export function isAllowedCharacter(c, options) {
128
123
  return options.allowList?.has(c) ?? !options.blockList?.has(c);
129
124
  }
130
- exports.isAllowedCharacter = isAllowedCharacter;
131
125
  //# sourceMappingURL=string.js.map
@@ -1,6 +1,6 @@
1
- import type { SymbolNode, SymbolOptions } from '../node/SymbolNode';
2
- import type { AllCategory } from '../symbol';
3
- import type { InfallibleParser } from './Parser';
1
+ import type { SymbolNode, SymbolOptions } from '../node/SymbolNode.js';
2
+ import type { AllCategory } from '../symbol/index.js';
3
+ import type { InfallibleParser } from './Parser.js';
4
4
  /**
5
5
  * This parser reads _everything_ until the end of the {@link Source}.
6
6
  *
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.symbol = void 0;
4
- const source_1 = require("../source");
5
- function symbol(param) {
1
+ import { Range } from '../source/index.js';
2
+ export function symbol(param) {
6
3
  const options = getOptions(param);
7
4
  return (src, ctx) => {
8
5
  const ans = {
9
6
  type: 'symbol',
10
- range: source_1.Range.create(src),
7
+ range: Range.create(src),
11
8
  options,
12
9
  value: src.readRemaining(),
13
10
  };
@@ -21,7 +18,6 @@ function symbol(param) {
21
18
  return ans;
22
19
  };
23
20
  }
24
- exports.symbol = symbol;
25
21
  function getOptions(param) {
26
22
  if (typeof param === 'string') {
27
23
  return { category: param };
@@ -1,8 +1,8 @@
1
- import type { AstNode } from '../node';
2
- import { SequenceUtil } from '../node';
3
- import type { ParserContext } from '../service';
4
- import type { ErrorSeverity, ReadonlySource, Source } from '../source';
5
- import type { InfallibleParser, Parser, Result, Returnable } from './Parser';
1
+ import type { AstNode } from '../node/index.js';
2
+ import { SequenceUtil } from '../node/index.js';
3
+ import type { ParserContext } from '../service/index.js';
4
+ import type { ErrorSeverity, ReadonlySource, Source } from '../source/index.js';
5
+ import type { InfallibleParser, Parser, Result, Returnable } from './Parser.js';
6
6
  declare type ExtractNodeType<P extends Parser<Returnable>> = P extends Parser<infer V> ? V : never;
7
7
  /**
8
8
  * @template PA Parser array.
@@ -1,15 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.acceptIf = exports.acceptOnly = exports.stopBefore = exports.validate = exports.setType = exports.map = exports.select = exports.recover = exports.optional = exports.failOnError = exports.failOnEmpty = exports.any = exports.repeat = exports.sequence = exports.attempt = void 0;
4
- const node_1 = require("../node");
5
- const service_1 = require("../service");
6
- const source_1 = require("../source");
7
- const Parser_1 = require("./Parser");
8
- function attempt(parser, src, ctx) {
1
+ import { SequenceUtil, SequenceUtilDiscriminator } from '../node/index.js';
2
+ import { ErrorReporter } from '../service/index.js';
3
+ import { Range } from '../source/index.js';
4
+ import { Failure } from './Parser.js';
5
+ export function attempt(parser, src, ctx) {
9
6
  const tmpSrc = src.clone();
10
7
  const tmpCtx = {
11
8
  ...ctx,
12
- err: new service_1.ErrorReporter(),
9
+ err: new ErrorReporter(),
13
10
  symbols: ctx.symbols.clone(),
14
11
  };
15
12
  const result = parser(tmpSrc, tmpCtx);
@@ -24,13 +21,12 @@ function attempt(parser, src, ctx) {
24
21
  },
25
22
  };
26
23
  }
27
- exports.attempt = attempt;
28
- function sequence(parsers, parseGap) {
24
+ export function sequence(parsers, parseGap) {
29
25
  return (src, ctx) => {
30
26
  const ans = {
31
- [node_1.SequenceUtilDiscriminator]: true,
27
+ [SequenceUtilDiscriminator]: true,
32
28
  children: [],
33
- range: source_1.Range.create(src),
29
+ range: Range.create(src),
34
30
  };
35
31
  for (const [i, p] of parsers.entries()) {
36
32
  const parser = typeof p === 'function' ? p : p.get(ans);
@@ -41,13 +37,13 @@ function sequence(parsers, parseGap) {
41
37
  ans.children.push(...parseGap(src, ctx));
42
38
  }
43
39
  const result = parser(src, ctx);
44
- if (result === Parser_1.Failure) {
45
- return Parser_1.Failure;
40
+ if (result === Failure) {
41
+ return Failure;
46
42
  }
47
43
  else if (result === undefined) {
48
44
  continue;
49
45
  }
50
- else if (node_1.SequenceUtil.is(result)) {
46
+ else if (SequenceUtil.is(result)) {
51
47
  ans.children.push(...result.children);
52
48
  }
53
49
  else {
@@ -58,24 +54,23 @@ function sequence(parsers, parseGap) {
58
54
  return ans;
59
55
  };
60
56
  }
61
- exports.sequence = sequence;
62
- function repeat(parser, parseGap) {
57
+ export function repeat(parser, parseGap) {
63
58
  return (src, ctx) => {
64
59
  const ans = {
65
- [node_1.SequenceUtilDiscriminator]: true,
60
+ [SequenceUtilDiscriminator]: true,
66
61
  children: [],
67
- range: source_1.Range.create(src),
62
+ range: Range.create(src),
68
63
  };
69
64
  while (src.canRead()) {
70
65
  if (parseGap) {
71
66
  ans.children.push(...parseGap(src, ctx));
72
67
  }
73
68
  const { result, updateSrcAndCtx } = attempt(parser, src, ctx);
74
- if (result === Parser_1.Failure) {
69
+ if (result === Failure) {
75
70
  break;
76
71
  }
77
72
  updateSrcAndCtx();
78
- if (node_1.SequenceUtil.is(result)) {
73
+ if (SequenceUtil.is(result)) {
79
74
  ans.children.push(...result.children);
80
75
  }
81
76
  else {
@@ -86,18 +81,17 @@ function repeat(parser, parseGap) {
86
81
  return ans;
87
82
  };
88
83
  }
89
- exports.repeat = repeat;
90
- function any(parsers, out) {
84
+ export function any(parsers, out) {
91
85
  return (src, ctx) => {
92
86
  const results = parsers
93
87
  .map((parser, i) => ({ attempt: attempt(parser, src, ctx), index: i }))
94
- .filter(({ attempt }) => attempt.result !== Parser_1.Failure)
88
+ .filter(({ attempt }) => attempt.result !== Failure)
95
89
  .sort((a, b) => (b.attempt.endCursor - a.attempt.endCursor) || (a.attempt.errorAmount - b.attempt.errorAmount));
96
90
  if (results.length === 0) {
97
91
  if (out) {
98
92
  out.index = -1;
99
93
  }
100
- return Parser_1.Failure;
94
+ return Failure;
101
95
  }
102
96
  results[0].attempt.updateSrcAndCtx();
103
97
  if (out) {
@@ -106,11 +100,10 @@ function any(parsers, out) {
106
100
  return results[0].attempt.result;
107
101
  };
108
102
  }
109
- exports.any = any;
110
103
  /**
111
104
  * @returns A parser that fails when the passed-in parser didn't move the cursor at all.
112
105
  */
113
- function failOnEmpty(parser) {
106
+ export function failOnEmpty(parser) {
114
107
  return (src, ctx) => {
115
108
  const start = src.cursor;
116
109
  const { endCursor, updateSrcAndCtx, result } = attempt(parser, src, ctx);
@@ -118,14 +111,13 @@ function failOnEmpty(parser) {
118
111
  updateSrcAndCtx();
119
112
  return result;
120
113
  }
121
- return Parser_1.Failure;
114
+ return Failure;
122
115
  };
123
116
  }
124
- exports.failOnEmpty = failOnEmpty;
125
117
  /**
126
118
  * @returns A parser that fails when the passed-in parser produced any errors.
127
119
  */
128
- function failOnError(parser) {
120
+ export function failOnError(parser) {
129
121
  return (src, ctx) => {
130
122
  const start = src.cursor;
131
123
  const { errorAmount, updateSrcAndCtx, result } = attempt(parser, src, ctx);
@@ -133,14 +125,13 @@ function failOnError(parser) {
133
125
  updateSrcAndCtx();
134
126
  return result;
135
127
  }
136
- return Parser_1.Failure;
128
+ return Failure;
137
129
  };
138
130
  }
139
- exports.failOnError = failOnError;
140
- function optional(parser) {
131
+ export function optional(parser) {
141
132
  return ((src, ctx) => {
142
133
  const { result, updateSrcAndCtx } = attempt(parser, src, ctx);
143
- if (result === Parser_1.Failure) {
134
+ if (result === Failure) {
144
135
  return undefined;
145
136
  }
146
137
  else {
@@ -149,19 +140,17 @@ function optional(parser) {
149
140
  }
150
141
  });
151
142
  }
152
- exports.optional = optional;
153
- function recover(parser, defaultValue) {
143
+ export function recover(parser, defaultValue) {
154
144
  return (src, ctx) => {
155
145
  const result = parser(src, ctx);
156
- if (result === Parser_1.Failure) {
146
+ if (result === Failure) {
157
147
  const ans = defaultValue(src, ctx);
158
148
  return ans;
159
149
  }
160
150
  return result;
161
151
  };
162
152
  }
163
- exports.recover = recover;
164
- function select(cases) {
153
+ export function select(cases) {
165
154
  return (src, ctx) => {
166
155
  for (const { predicate, prefix, parser } of cases) {
167
156
  if (predicate?.(src) ?? (prefix !== undefined ? src.tryPeek(prefix) : undefined) ?? true) {
@@ -172,31 +161,28 @@ function select(cases) {
172
161
  throw new Error('The select parser util was called with non-exhaustive cases');
173
162
  };
174
163
  }
175
- exports.select = select;
176
- function map(parser, fn) {
164
+ export function map(parser, fn) {
177
165
  return (src, ctx) => {
178
166
  const result = parser(src, ctx);
179
- if (result === Parser_1.Failure) {
180
- return Parser_1.Failure;
167
+ if (result === Failure) {
168
+ return Failure;
181
169
  }
182
170
  const ans = fn(result, src, ctx);
183
171
  return ans;
184
172
  };
185
173
  }
186
- exports.map = map;
187
- function setType(type, parser) {
174
+ export function setType(type, parser) {
188
175
  return map(parser, res => {
189
176
  const { type: _type, ...restResult } = res;
190
177
  const ans = {
191
178
  type,
192
179
  ...restResult,
193
180
  };
194
- delete ans[node_1.SequenceUtilDiscriminator];
181
+ delete ans[SequenceUtilDiscriminator];
195
182
  return ans;
196
183
  });
197
184
  }
198
- exports.setType = setType;
199
- function validate(parser, validator, message, severity) {
185
+ export function validate(parser, validator, message, severity) {
200
186
  return map(parser, (res, src, ctx) => {
201
187
  const isLegal = validator(res, src, ctx);
202
188
  if (!isLegal) {
@@ -205,8 +191,7 @@ function validate(parser, validator, message, severity) {
205
191
  return res;
206
192
  });
207
193
  }
208
- exports.validate = validate;
209
- function stopBefore(parser, ...teminators) {
194
+ export function stopBefore(parser, ...teminators) {
210
195
  const flatTerminators = teminators.flat();
211
196
  return (src, ctx) => {
212
197
  const tmpSrc = src.clone();
@@ -220,8 +205,7 @@ function stopBefore(parser, ...teminators) {
220
205
  return ans;
221
206
  };
222
207
  }
223
- exports.stopBefore = stopBefore;
224
- function acceptOnly(parser, ...characters) {
208
+ export function acceptOnly(parser, ...characters) {
225
209
  const set = new Set(characters.flat());
226
210
  return (src, ctx) => {
227
211
  const tmpSrc = src.clone();
@@ -237,8 +221,7 @@ function acceptOnly(parser, ...characters) {
237
221
  return ans;
238
222
  };
239
223
  }
240
- exports.acceptOnly = acceptOnly;
241
- function acceptIf(parser, predicate) {
224
+ export function acceptIf(parser, predicate) {
242
225
  return ((src, ctx) => {
243
226
  const tmpSrc = src.clone();
244
227
  // Cut tmpSrc.string before the nearest unacceptable character.
@@ -253,5 +236,4 @@ function acceptIf(parser, predicate) {
253
236
  return ans;
254
237
  });
255
238
  }
256
- exports.acceptIf = acceptIf;
257
239
  //# sourceMappingURL=util.js.map
@@ -1,4 +1,4 @@
1
- import type { Range } from '../source';
1
+ import type { Range } from '../source/index.js';
2
2
  export interface ColorInfo {
3
3
  range: Range;
4
4
  color: Color;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ColorPresentation = exports.ColorFormat = exports.Color = void 0;
4
- var Color;
1
+ export var Color;
5
2
  (function (Color) {
6
3
  Color.NamedColors = new Map([
7
4
  ['aqua', 0x55ffff],
@@ -75,8 +72,8 @@ var Color;
75
72
  return fromIntRGB(r, g, b);
76
73
  }
77
74
  Color.fromCompositeInt = fromCompositeInt;
78
- })(Color = exports.Color || (exports.Color = {}));
79
- var ColorFormat;
75
+ })(Color || (Color = {}));
76
+ export var ColorFormat;
80
77
  (function (ColorFormat) {
81
78
  /**
82
79
  * `1 0.6 0.2 1.0`
@@ -106,8 +103,8 @@ var ColorFormat;
106
103
  * `16620441`
107
104
  */
108
105
  ColorFormat[ColorFormat["CompositeInt"] = 6] = "CompositeInt";
109
- })(ColorFormat = exports.ColorFormat || (exports.ColorFormat = {}));
110
- var ColorPresentation;
106
+ })(ColorFormat || (ColorFormat = {}));
107
+ export var ColorPresentation;
111
108
  (function (ColorPresentation) {
112
109
  function fromColorFormat(format, color, range) {
113
110
  const presentation = colorPresentation(format, color);
@@ -137,5 +134,5 @@ var ColorPresentation;
137
134
  return `${Math.round((color[0] * 255 << 16) + (color[1] * 255 << 8) + color[2] * 255)}`;
138
135
  }
139
136
  }
140
- })(ColorPresentation = exports.ColorPresentation || (exports.ColorPresentation = {}));
137
+ })(ColorPresentation || (ColorPresentation = {}));
141
138
  //# sourceMappingURL=ColorInfoProvider.js.map
@@ -1,5 +1,5 @@
1
- import type { AstNode } from '../node';
2
- import type { ProcessorContext } from '../service';
1
+ import type { AstNode } from '../node/index.js';
2
+ import type { ProcessorContext } from '../service/index.js';
3
3
  export interface InlayHint {
4
4
  offset: number;
5
5
  text: string;
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=InlayHintProvider.js.map
@@ -1,5 +1,5 @@
1
- import type { AstNode } from '../node';
2
- import type { SignatureHelpProviderContext } from '../service';
1
+ import type { AstNode } from '../node/index.js';
2
+ import type { SignatureHelpProviderContext } from '../service/index.js';
3
3
  export interface SignatureHelp {
4
4
  signatures: SignatureInfo[];
5
5
  activeSignature: number;
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=SignatureHelpProvider.js.map
@@ -1,5 +1,5 @@
1
- import type { AstNode } from '../../node';
2
- import type { CheckerContext } from '../../service';
1
+ import type { AstNode } from '../../node/index.js';
2
+ import type { CheckerContext } from '../../service/index.js';
3
3
  export declare type Checker<N extends AstNode> = (node: N, ctx: CheckerContext) => PromiseLike<void> | void;
4
4
  export declare type SyncChecker<N extends AstNode> = (node: N, ctx: CheckerContext) => void;
5
5
  export declare type AsyncChecker<N extends AstNode> = (node: N, ctx: CheckerContext) => PromiseLike<void>;
@@ -1,7 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FallbackChecker = void 0;
4
1
  /* istanbul ignore next */
5
- const FallbackChecker = () => Promise.resolve();
6
- exports.FallbackChecker = FallbackChecker;
2
+ export const FallbackChecker = () => Promise.resolve();
7
3
  //# sourceMappingURL=Checker.js.map
@@ -1,7 +1,7 @@
1
- import type { AstNode, SymbolBaseNode } from '../../node';
2
- import { ResourceLocationNode } from '../../node';
3
- import type { CheckerContext, MetaRegistry } from '../../service';
4
- import type { Checker, SyncChecker } from './Checker';
1
+ import type { AstNode, SymbolBaseNode } from '../../node/index.js';
2
+ import { ResourceLocationNode } from '../../node/index.js';
3
+ import type { CheckerContext, MetaRegistry } from '../../service/index.js';
4
+ import type { Checker, SyncChecker } from './Checker.js';
5
5
  export declare type AttemptResult = {
6
6
  errorAmount: number;
7
7
  totalErrorSpan: number;