@jsprismarine/brigadier 0.2.1 → 0.3.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 (269) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/LICENSE +21 -21
  3. package/README.md +85 -81
  4. package/dist/CommandSyntaxException-BKBHJvxr.cjs +173 -0
  5. package/dist/CommandSyntaxException-Dz8Qlq9d.js +168 -0
  6. package/dist/LiteralArgumentBuilder-2hpX2C86.js +121 -0
  7. package/dist/LiteralArgumentBuilder-s6PUMmST.cjs +125 -0
  8. package/dist/RequiredArgumentBuilder-D105occO.js +144 -0
  9. package/dist/RequiredArgumentBuilder-DMJ4kl0u.cjs +148 -0
  10. package/dist/index.cjs.js +63 -0
  11. package/dist/index.d.ts +25 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.es.js +31 -0
  14. package/dist/lib/AmbiguityConsumer.cjs.js +3 -0
  15. package/dist/lib/AmbiguityConsumer.d.ts +6 -0
  16. package/dist/lib/AmbiguityConsumer.d.ts.map +1 -0
  17. package/dist/lib/AmbiguityConsumer.es.js +2 -0
  18. package/dist/lib/Command.cjs.js +3 -0
  19. package/dist/lib/Command.d.ts +6 -0
  20. package/dist/lib/Command.d.ts.map +1 -0
  21. package/dist/lib/Command.es.js +2 -0
  22. package/dist/lib/CommandDispatcher.cjs.js +369 -0
  23. package/dist/lib/CommandDispatcher.d.ts +31 -0
  24. package/dist/lib/CommandDispatcher.d.ts.map +1 -0
  25. package/dist/lib/CommandDispatcher.es.js +365 -0
  26. package/dist/lib/ImmutableStringReader.cjs.js +3 -0
  27. package/dist/lib/ImmutableStringReader.d.ts +13 -0
  28. package/dist/lib/ImmutableStringReader.d.ts.map +1 -0
  29. package/dist/lib/ImmutableStringReader.es.js +2 -0
  30. package/dist/lib/LiteralMessage.cjs.js +19 -0
  31. package/dist/lib/LiteralMessage.d.ts +9 -0
  32. package/dist/lib/LiteralMessage.d.ts.map +1 -0
  33. package/dist/lib/LiteralMessage.es.js +15 -0
  34. package/dist/lib/Message.cjs.js +3 -0
  35. package/dist/lib/Message.d.ts +4 -0
  36. package/dist/lib/Message.d.ts.map +1 -0
  37. package/dist/lib/Message.es.js +2 -0
  38. package/dist/lib/ParseResults.cjs.js +30 -0
  39. package/dist/lib/ParseResults.d.ts +15 -0
  40. package/dist/lib/ParseResults.d.ts.map +1 -0
  41. package/dist/lib/ParseResults.es.js +26 -0
  42. package/dist/lib/Predicate.cjs.js +3 -0
  43. package/dist/lib/Predicate.d.ts +4 -0
  44. package/dist/lib/Predicate.d.ts.map +1 -0
  45. package/dist/lib/Predicate.es.js +2 -0
  46. package/dist/lib/RedirectModifier.cjs.js +3 -0
  47. package/dist/lib/RedirectModifier.d.ts +6 -0
  48. package/dist/lib/RedirectModifier.d.ts.map +1 -0
  49. package/dist/lib/RedirectModifier.es.js +2 -0
  50. package/dist/lib/ResultConsumer.cjs.js +3 -0
  51. package/dist/lib/ResultConsumer.d.ts +6 -0
  52. package/dist/lib/ResultConsumer.d.ts.map +1 -0
  53. package/dist/lib/ResultConsumer.es.js +2 -0
  54. package/dist/lib/SingleRedirectModifier.cjs.js +3 -0
  55. package/dist/lib/SingleRedirectModifier.d.ts +6 -0
  56. package/dist/lib/SingleRedirectModifier.d.ts.map +1 -0
  57. package/dist/lib/SingleRedirectModifier.es.js +2 -0
  58. package/dist/lib/StringReader.cjs.js +164 -0
  59. package/dist/lib/StringReader.d.ts +29 -0
  60. package/dist/lib/StringReader.d.ts.map +1 -0
  61. package/dist/lib/StringReader.es.js +160 -0
  62. package/dist/lib/arguments/ArgumentType.cjs.js +23 -0
  63. package/dist/lib/arguments/ArgumentType.d.ts +23 -0
  64. package/dist/lib/arguments/ArgumentType.d.ts.map +1 -0
  65. package/dist/lib/arguments/ArgumentType.es.js +19 -0
  66. package/dist/lib/arguments/BoolArgumentType.cjs.js +33 -0
  67. package/dist/lib/arguments/BoolArgumentType.d.ts +15 -0
  68. package/dist/lib/arguments/BoolArgumentType.d.ts.map +1 -0
  69. package/dist/lib/arguments/BoolArgumentType.es.js +29 -0
  70. package/dist/lib/arguments/FloatArgumentType.cjs.js +71 -0
  71. package/dist/lib/arguments/FloatArgumentType.d.ts +18 -0
  72. package/dist/lib/arguments/FloatArgumentType.d.ts.map +1 -0
  73. package/dist/lib/arguments/FloatArgumentType.es.js +67 -0
  74. package/dist/lib/arguments/IntegerArgumentType.cjs.js +71 -0
  75. package/dist/lib/arguments/IntegerArgumentType.d.ts +18 -0
  76. package/dist/lib/arguments/IntegerArgumentType.d.ts.map +1 -0
  77. package/dist/lib/arguments/IntegerArgumentType.es.js +67 -0
  78. package/dist/lib/arguments/StringArgumentType.cjs.js +73 -0
  79. package/dist/lib/arguments/StringArgumentType.d.ts +23 -0
  80. package/dist/lib/arguments/StringArgumentType.d.ts.map +1 -0
  81. package/dist/lib/arguments/StringArgumentType.es.js +68 -0
  82. package/dist/lib/builder/ArgumentBuilder.cjs.js +72 -0
  83. package/dist/lib/builder/ArgumentBuilder.d.ts +30 -0
  84. package/dist/lib/builder/ArgumentBuilder.d.ts.map +1 -0
  85. package/dist/lib/builder/ArgumentBuilder.es.js +68 -0
  86. package/dist/lib/builder/LiteralArgumentBuilder.cjs.js +20 -0
  87. package/dist/lib/builder/LiteralArgumentBuilder.d.ts +13 -0
  88. package/dist/lib/builder/LiteralArgumentBuilder.d.ts.map +1 -0
  89. package/dist/lib/builder/LiteralArgumentBuilder.es.js +11 -0
  90. package/dist/lib/builder/RequiredArgumentBuilder.cjs.js +21 -0
  91. package/dist/lib/builder/RequiredArgumentBuilder.d.ts +20 -0
  92. package/dist/lib/builder/RequiredArgumentBuilder.d.ts.map +1 -0
  93. package/dist/lib/builder/RequiredArgumentBuilder.es.js +12 -0
  94. package/dist/lib/context/CommandContext.cjs.js +117 -0
  95. package/dist/lib/context/CommandContext.d.ts +35 -0
  96. package/dist/lib/context/CommandContext.d.ts.map +1 -0
  97. package/dist/lib/context/CommandContext.es.js +113 -0
  98. package/dist/lib/context/CommandContextBuilder.cjs.js +142 -0
  99. package/dist/lib/context/CommandContextBuilder.d.ts +40 -0
  100. package/dist/lib/context/CommandContextBuilder.d.ts.map +1 -0
  101. package/dist/lib/context/CommandContextBuilder.es.js +138 -0
  102. package/dist/lib/context/ParsedArgument.cjs.js +30 -0
  103. package/dist/lib/context/ParsedArgument.d.ts +11 -0
  104. package/dist/lib/context/ParsedArgument.d.ts.map +1 -0
  105. package/dist/lib/context/ParsedArgument.es.js +26 -0
  106. package/dist/lib/context/ParsedCommandNode.cjs.js +32 -0
  107. package/dist/lib/context/ParsedCommandNode.d.ts +13 -0
  108. package/dist/lib/context/ParsedCommandNode.d.ts.map +1 -0
  109. package/dist/lib/context/ParsedCommandNode.es.js +28 -0
  110. package/dist/lib/context/StringRange.cjs.js +52 -0
  111. package/dist/lib/context/StringRange.d.ts +18 -0
  112. package/dist/lib/context/StringRange.d.ts.map +1 -0
  113. package/dist/lib/context/StringRange.es.js +48 -0
  114. package/dist/lib/context/SuggestionContext.cjs.js +15 -0
  115. package/dist/lib/context/SuggestionContext.d.ts +8 -0
  116. package/dist/lib/context/SuggestionContext.d.ts.map +1 -0
  117. package/dist/lib/context/SuggestionContext.es.js +11 -0
  118. package/dist/lib/exceptions/BuiltInExceptionProvider.cjs.js +3 -0
  119. package/dist/lib/exceptions/BuiltInExceptionProvider.d.ts +25 -0
  120. package/dist/lib/exceptions/BuiltInExceptionProvider.d.ts.map +1 -0
  121. package/dist/lib/exceptions/BuiltInExceptionProvider.es.js +2 -0
  122. package/dist/lib/exceptions/BuiltInExceptions.cjs.js +11 -0
  123. package/dist/lib/exceptions/BuiltInExceptions.d.ts +45 -0
  124. package/dist/lib/exceptions/BuiltInExceptions.d.ts.map +1 -0
  125. package/dist/lib/exceptions/BuiltInExceptions.es.js +3 -0
  126. package/dist/lib/exceptions/CommandExceptionType.cjs.js +3 -0
  127. package/dist/lib/exceptions/CommandExceptionType.d.ts +3 -0
  128. package/dist/lib/exceptions/CommandExceptionType.d.ts.map +1 -0
  129. package/dist/lib/exceptions/CommandExceptionType.es.js +2 -0
  130. package/dist/lib/exceptions/CommandSyntaxException.cjs.js +11 -0
  131. package/dist/lib/exceptions/CommandSyntaxException.d.ts +21 -0
  132. package/dist/lib/exceptions/CommandSyntaxException.d.ts.map +1 -0
  133. package/dist/lib/exceptions/CommandSyntaxException.es.js +3 -0
  134. package/dist/lib/exceptions/DynamicCommandExceptionType.cjs.js +11 -0
  135. package/dist/lib/exceptions/DynamicCommandExceptionType.d.ts +12 -0
  136. package/dist/lib/exceptions/DynamicCommandExceptionType.d.ts.map +1 -0
  137. package/dist/lib/exceptions/DynamicCommandExceptionType.es.js +3 -0
  138. package/dist/lib/exceptions/SimpleCommandExceptionType.cjs.js +11 -0
  139. package/dist/lib/exceptions/SimpleCommandExceptionType.d.ts +13 -0
  140. package/dist/lib/exceptions/SimpleCommandExceptionType.d.ts.map +1 -0
  141. package/dist/lib/exceptions/SimpleCommandExceptionType.es.js +3 -0
  142. package/dist/lib/suggestion/IntegerSuggestion.cjs.js +39 -0
  143. package/dist/lib/suggestion/IntegerSuggestion.d.ts +14 -0
  144. package/dist/lib/suggestion/IntegerSuggestion.d.ts.map +1 -0
  145. package/dist/lib/suggestion/IntegerSuggestion.es.js +35 -0
  146. package/dist/lib/suggestion/Suggestion.cjs.js +72 -0
  147. package/dist/lib/suggestion/Suggestion.d.ts +19 -0
  148. package/dist/lib/suggestion/Suggestion.d.ts.map +1 -0
  149. package/dist/lib/suggestion/Suggestion.es.js +68 -0
  150. package/dist/lib/suggestion/SuggestionProvider.cjs.js +3 -0
  151. package/dist/lib/suggestion/SuggestionProvider.d.ts +8 -0
  152. package/dist/lib/suggestion/SuggestionProvider.d.ts.map +1 -0
  153. package/dist/lib/suggestion/SuggestionProvider.es.js +2 -0
  154. package/dist/lib/suggestion/Suggestions.cjs.js +71 -0
  155. package/dist/lib/suggestion/Suggestions.d.ts +18 -0
  156. package/dist/lib/suggestion/Suggestions.d.ts.map +1 -0
  157. package/dist/lib/suggestion/Suggestions.es.js +67 -0
  158. package/dist/lib/suggestion/SuggestionsBuilder.cjs.js +59 -0
  159. package/dist/lib/suggestion/SuggestionsBuilder.d.ts +20 -0
  160. package/dist/lib/suggestion/SuggestionsBuilder.d.ts.map +1 -0
  161. package/dist/lib/suggestion/SuggestionsBuilder.es.js +55 -0
  162. package/dist/lib/tree/ArgumentCommandNode.cjs.js +20 -0
  163. package/dist/lib/tree/ArgumentCommandNode.d.ts +33 -0
  164. package/dist/lib/tree/ArgumentCommandNode.d.ts.map +1 -0
  165. package/dist/lib/tree/ArgumentCommandNode.es.js +12 -0
  166. package/dist/lib/tree/CommandNode.cjs.js +133 -0
  167. package/dist/lib/tree/CommandNode.d.ts +47 -0
  168. package/dist/lib/tree/CommandNode.d.ts.map +1 -0
  169. package/dist/lib/tree/CommandNode.es.js +129 -0
  170. package/dist/lib/tree/LiteralCommandNode.cjs.js +19 -0
  171. package/dist/lib/tree/LiteralCommandNode.d.ts +29 -0
  172. package/dist/lib/tree/LiteralCommandNode.d.ts.map +1 -0
  173. package/dist/lib/tree/LiteralCommandNode.es.js +11 -0
  174. package/dist/lib/tree/RootCommandNode.cjs.js +59 -0
  175. package/dist/lib/tree/RootCommandNode.d.ts +23 -0
  176. package/dist/lib/tree/RootCommandNode.d.ts.map +1 -0
  177. package/dist/lib/tree/RootCommandNode.es.js +55 -0
  178. package/dist/lib/util/isEqual.cjs.js +59 -0
  179. package/dist/lib/util/isEqual.d.ts +2 -0
  180. package/dist/lib/util/isEqual.d.ts.map +1 -0
  181. package/dist/lib/util/isEqual.es.js +55 -0
  182. package/package.json +40 -41
  183. package/dist/index.js +0 -82
  184. package/dist/index.js.map +0 -1
  185. package/dist/lib/AmbiguityConsumer.js +0 -3
  186. package/dist/lib/AmbiguityConsumer.js.map +0 -1
  187. package/dist/lib/Command.js +0 -3
  188. package/dist/lib/Command.js.map +0 -1
  189. package/dist/lib/CommandDispatcher.js +0 -360
  190. package/dist/lib/CommandDispatcher.js.map +0 -1
  191. package/dist/lib/ImmutableStringReader.js +0 -3
  192. package/dist/lib/ImmutableStringReader.js.map +0 -1
  193. package/dist/lib/LiteralMessage.js +0 -15
  194. package/dist/lib/LiteralMessage.js.map +0 -1
  195. package/dist/lib/Message.js +0 -3
  196. package/dist/lib/Message.js.map +0 -1
  197. package/dist/lib/ParseResults.js +0 -24
  198. package/dist/lib/ParseResults.js.map +0 -1
  199. package/dist/lib/Predicate.js +0 -3
  200. package/dist/lib/Predicate.js.map +0 -1
  201. package/dist/lib/RedirectModifier.js +0 -3
  202. package/dist/lib/RedirectModifier.js.map +0 -1
  203. package/dist/lib/ResultConsumer.js +0 -3
  204. package/dist/lib/ResultConsumer.js.map +0 -1
  205. package/dist/lib/SingleRedirectModifier.js +0 -3
  206. package/dist/lib/SingleRedirectModifier.js.map +0 -1
  207. package/dist/lib/StringReader.js +0 -176
  208. package/dist/lib/StringReader.js.map +0 -1
  209. package/dist/lib/arguments/ArgumentType.js +0 -19
  210. package/dist/lib/arguments/ArgumentType.js.map +0 -1
  211. package/dist/lib/arguments/BoolArgumentType.js +0 -30
  212. package/dist/lib/arguments/BoolArgumentType.js.map +0 -1
  213. package/dist/lib/arguments/FloatArgumentType.js +0 -61
  214. package/dist/lib/arguments/FloatArgumentType.js.map +0 -1
  215. package/dist/lib/arguments/IntegerArgumentType.js +0 -61
  216. package/dist/lib/arguments/IntegerArgumentType.js.map +0 -1
  217. package/dist/lib/arguments/StringArgumentType.js +0 -71
  218. package/dist/lib/arguments/StringArgumentType.js.map +0 -1
  219. package/dist/lib/builder/ArgumentBuilder.js +0 -66
  220. package/dist/lib/builder/ArgumentBuilder.js.map +0 -1
  221. package/dist/lib/builder/LiteralArgumentBuilder.js +0 -33
  222. package/dist/lib/builder/LiteralArgumentBuilder.js.map +0 -1
  223. package/dist/lib/builder/RequiredArgumentBuilder.js +0 -44
  224. package/dist/lib/builder/RequiredArgumentBuilder.js.map +0 -1
  225. package/dist/lib/context/CommandContext.js +0 -96
  226. package/dist/lib/context/CommandContext.js.map +0 -1
  227. package/dist/lib/context/CommandContextBuilder.js +0 -120
  228. package/dist/lib/context/CommandContextBuilder.js.map +0 -1
  229. package/dist/lib/context/ParsedArgument.js +0 -27
  230. package/dist/lib/context/ParsedArgument.js.map +0 -1
  231. package/dist/lib/context/ParsedCommandNode.js +0 -27
  232. package/dist/lib/context/ParsedCommandNode.js.map +0 -1
  233. package/dist/lib/context/StringRange.js +0 -47
  234. package/dist/lib/context/StringRange.js.map +0 -1
  235. package/dist/lib/context/SuggestionContext.js +0 -10
  236. package/dist/lib/context/SuggestionContext.js.map +0 -1
  237. package/dist/lib/exceptions/BuiltInExceptionProvider.js +0 -3
  238. package/dist/lib/exceptions/BuiltInExceptionProvider.js.map +0 -1
  239. package/dist/lib/exceptions/BuiltInExceptions.js +0 -88
  240. package/dist/lib/exceptions/BuiltInExceptions.js.map +0 -1
  241. package/dist/lib/exceptions/CommandExceptionType.js +0 -3
  242. package/dist/lib/exceptions/CommandExceptionType.js.map +0 -1
  243. package/dist/lib/exceptions/CommandSyntaxException.js +0 -57
  244. package/dist/lib/exceptions/CommandSyntaxException.js.map +0 -1
  245. package/dist/lib/exceptions/DynamicCommandExceptionType.js +0 -20
  246. package/dist/lib/exceptions/DynamicCommandExceptionType.js.map +0 -1
  247. package/dist/lib/exceptions/SimpleCommandExceptionType.js +0 -23
  248. package/dist/lib/exceptions/SimpleCommandExceptionType.js.map +0 -1
  249. package/dist/lib/suggestion/IntegerSuggestion.js +0 -41
  250. package/dist/lib/suggestion/IntegerSuggestion.js.map +0 -1
  251. package/dist/lib/suggestion/Suggestion.js +0 -72
  252. package/dist/lib/suggestion/Suggestion.js.map +0 -1
  253. package/dist/lib/suggestion/SuggestionProvider.js +0 -3
  254. package/dist/lib/suggestion/SuggestionProvider.js.map +0 -1
  255. package/dist/lib/suggestion/Suggestions.js +0 -71
  256. package/dist/lib/suggestion/Suggestions.js.map +0 -1
  257. package/dist/lib/suggestion/SuggestionsBuilder.js +0 -54
  258. package/dist/lib/suggestion/SuggestionsBuilder.js.map +0 -1
  259. package/dist/lib/tree/ArgumentCommandNode.js +0 -97
  260. package/dist/lib/tree/ArgumentCommandNode.js.map +0 -1
  261. package/dist/lib/tree/CommandNode.js +0 -134
  262. package/dist/lib/tree/CommandNode.js.map +0 -1
  263. package/dist/lib/tree/LiteralCommandNode.js +0 -93
  264. package/dist/lib/tree/LiteralCommandNode.js.map +0 -1
  265. package/dist/lib/tree/RootCommandNode.js +0 -50
  266. package/dist/lib/tree/RootCommandNode.js.map +0 -1
  267. package/dist/lib/util/isEqual.js +0 -57
  268. package/dist/lib/util/isEqual.js.map +0 -1
  269. package/index.js +0 -1
@@ -0,0 +1,365 @@
1
+ import CommandContextBuilder from './context/CommandContextBuilder.es.js';
2
+ import { C as CommandSyntaxException } from '../CommandSyntaxException-Dz8Qlq9d.js';
3
+ import ParseResults from './ParseResults.es.js';
4
+ import RootCommandNode from './tree/RootCommandNode.es.js';
5
+ import StringReader from './StringReader.es.js';
6
+ import Suggestions from './suggestion/Suggestions.es.js';
7
+ import SuggestionsBuilder from './suggestion/SuggestionsBuilder.es.js';
8
+ import './context/StringRange.es.js';
9
+ import './context/CommandContext.es.js';
10
+ import './util/isEqual.es.js';
11
+ import './context/SuggestionContext.es.js';
12
+ import './context/ParsedCommandNode.es.js';
13
+ import './LiteralMessage.es.js';
14
+ import './tree/CommandNode.es.js';
15
+ import './suggestion/Suggestion.es.js';
16
+ import './suggestion/IntegerSuggestion.es.js';
17
+
18
+ const ARGUMENT_SEPARATOR = " ";
19
+ const USAGE_OPTIONAL_OPEN = "[";
20
+ const USAGE_OPTIONAL_CLOSE = "]";
21
+ const USAGE_REQUIRED_OPEN = "(";
22
+ const USAGE_REQUIRED_CLOSE = ")";
23
+ const USAGE_OR = "|";
24
+ class CommandDispatcher {
25
+ root;
26
+ consumer = {
27
+ onCommandComplete() {
28
+ }
29
+ };
30
+ constructor(root = null) {
31
+ this.root = root || new RootCommandNode();
32
+ }
33
+ register(command) {
34
+ let build = command.build();
35
+ this.root.addChild(build);
36
+ return build;
37
+ }
38
+ setConsumer(consumer) {
39
+ this.consumer = consumer;
40
+ }
41
+ execute(input, source = null) {
42
+ if (typeof input === "string")
43
+ input = new StringReader(input);
44
+ let parse;
45
+ if (input instanceof StringReader) {
46
+ if (source)
47
+ parse = this.parse(input, source);
48
+ } else
49
+ parse = input;
50
+ if (parse.getReader().canRead()) {
51
+ if (parse.getExceptions().size === 1) {
52
+ throw parse.getExceptions().values().next().value;
53
+ } else if (parse.getContext().getRange().isEmpty()) {
54
+ throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.dispatcherUnknownCommand().createWithContext(
55
+ parse.getReader()
56
+ );
57
+ } else {
58
+ throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.dispatcherUnknownArgument().createWithContext(
59
+ parse.getReader()
60
+ );
61
+ }
62
+ }
63
+ let result = [];
64
+ let forked = false;
65
+ let foundCommand = false;
66
+ let command = parse.getReader().getString();
67
+ let original = parse.getContext().build(command);
68
+ let contexts = [];
69
+ contexts.push(original);
70
+ let next = null;
71
+ while (contexts !== null) {
72
+ for (let i = 0; i < contexts.length; i++) {
73
+ let context = contexts[i];
74
+ let child = context.getChild();
75
+ if (child) {
76
+ forked = forked || context.isForked();
77
+ if (child.hasNodes()) {
78
+ foundCommand = true;
79
+ let modifier = context.getRedirectModifier();
80
+ if (!modifier) {
81
+ if (!next)
82
+ next = [];
83
+ next.push(child.copyFor(context.getSource()));
84
+ } else {
85
+ try {
86
+ let results = modifier.apply(context);
87
+ if (results.length !== 0) {
88
+ if (!next)
89
+ next = [];
90
+ for (let source2 of results) {
91
+ next.push(child.copyFor(source2));
92
+ }
93
+ }
94
+ } catch (ex) {
95
+ this.consumer.onCommandComplete(context, false, 0);
96
+ if (!forked)
97
+ throw ex;
98
+ }
99
+ }
100
+ }
101
+ } else if (context.getCommand()) {
102
+ foundCommand = true;
103
+ try {
104
+ let value = context.getCommand()(context);
105
+ result.push(value);
106
+ this.consumer.onCommandComplete(context, true, value);
107
+ } catch (ex) {
108
+ this.consumer.onCommandComplete(context, false, ex);
109
+ if (!forked)
110
+ throw ex;
111
+ }
112
+ }
113
+ }
114
+ contexts = next;
115
+ next = null;
116
+ }
117
+ if (!foundCommand) {
118
+ this.consumer.onCommandComplete(original, false, 0);
119
+ throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.dispatcherUnknownCommand().createWithContext(
120
+ parse.getReader()
121
+ );
122
+ }
123
+ return result;
124
+ }
125
+ parse(command, source) {
126
+ if (typeof command === "string")
127
+ command = new StringReader(command);
128
+ let context = new CommandContextBuilder(this, source, this.root, command.getCursor());
129
+ return this.parseNodes(this.root, command, context);
130
+ }
131
+ parseNodes(node, originalReader, contextSoFar) {
132
+ let source = contextSoFar.getSource();
133
+ let errors = null;
134
+ let potentials = null;
135
+ let cursor = originalReader.getCursor();
136
+ for (let child of node.getRelevantNodes(originalReader)) {
137
+ if (!child.canUse(source))
138
+ continue;
139
+ let context = contextSoFar.copy();
140
+ let reader = new StringReader(originalReader);
141
+ try {
142
+ child.parse(reader, context);
143
+ if (reader.canRead()) {
144
+ if (reader.peek() != ARGUMENT_SEPARATOR)
145
+ throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.dispatcherExpectedArgumentSeparator().createWithContext(
146
+ reader
147
+ );
148
+ }
149
+ } catch (ex) {
150
+ if (errors == null) {
151
+ errors = /* @__PURE__ */ new Map();
152
+ }
153
+ errors.set(child, ex);
154
+ reader.setCursor(cursor);
155
+ continue;
156
+ }
157
+ context.withCommand(child.getCommand());
158
+ if (reader.canRead(!child.getRedirect() ? 2 : 1)) {
159
+ reader.skip();
160
+ if (child.getRedirect()) {
161
+ let childContext = new CommandContextBuilder(
162
+ this,
163
+ source,
164
+ child.getRedirect(),
165
+ reader.getCursor()
166
+ );
167
+ let parse = this.parseNodes(child.getRedirect(), reader, childContext);
168
+ context.withChild(parse.getContext());
169
+ return new ParseResults(context, parse.getReader(), parse.getExceptions());
170
+ } else {
171
+ let parse = this.parseNodes(child, reader, context);
172
+ if (potentials == null) {
173
+ potentials = [];
174
+ }
175
+ potentials.push(parse);
176
+ }
177
+ } else {
178
+ if (potentials == null) {
179
+ potentials = [];
180
+ }
181
+ potentials.push(new ParseResults(context, reader, /* @__PURE__ */ new Map()));
182
+ }
183
+ }
184
+ if (potentials) {
185
+ if (potentials.length > 1) {
186
+ potentials.sort((a, b) => {
187
+ if (!a.getReader().canRead() && b.getReader().canRead()) {
188
+ return -1;
189
+ }
190
+ if (a.getReader().canRead() && !b.getReader().canRead()) {
191
+ return 1;
192
+ }
193
+ if (a.getExceptions().size === 0 && b.getExceptions().size !== 0) {
194
+ return -1;
195
+ }
196
+ if (a.getExceptions().size !== 0 && b.getExceptions().size === 0) {
197
+ return 1;
198
+ }
199
+ return 0;
200
+ });
201
+ }
202
+ return potentials[0];
203
+ }
204
+ return new ParseResults(contextSoFar, originalReader, errors == null ? /* @__PURE__ */ new Map() : errors);
205
+ }
206
+ getAllUsage(node, source, restricted) {
207
+ const result = [];
208
+ this.__getAllUsage(node, source, result, "", restricted);
209
+ return result;
210
+ }
211
+ __getAllUsage(node, source, result, prefix = "", restricted) {
212
+ if (restricted && !node.canUse(source)) {
213
+ return;
214
+ }
215
+ if (node.getCommand() != null) {
216
+ result.push(prefix);
217
+ }
218
+ if (node.getRedirect() != null) {
219
+ const redirect = node.getRedirect() === this.root ? "..." : "-> " + node.getRedirect()?.getUsageText();
220
+ result.push(
221
+ prefix.length === 0 ? node.getUsageText() + ARGUMENT_SEPARATOR + redirect : prefix + ARGUMENT_SEPARATOR + redirect
222
+ );
223
+ } else if (node.getChildrenCount() > 0) {
224
+ for (let child of node.getChildren()) {
225
+ this.__getAllUsage(
226
+ child,
227
+ source,
228
+ result,
229
+ prefix.length === 0 ? child.getUsageText() : prefix + ARGUMENT_SEPARATOR + child.getUsageText(),
230
+ restricted
231
+ );
232
+ }
233
+ }
234
+ }
235
+ getSmartUsage(node, source) {
236
+ let result = /* @__PURE__ */ new Map();
237
+ let optional = node.getCommand() !== null;
238
+ for (let child of node.getChildren()) {
239
+ let usage = this.__getSmartUsage(child, source, optional, false);
240
+ if (usage !== null) {
241
+ result.set(child, usage);
242
+ }
243
+ }
244
+ return result;
245
+ }
246
+ __getSmartUsage(node, source, optional, deep) {
247
+ if (!node.canUse(source)) {
248
+ return null;
249
+ }
250
+ let self = optional ? USAGE_OPTIONAL_OPEN + node.getUsageText() + USAGE_OPTIONAL_CLOSE : node.getUsageText();
251
+ let childOptional = node.getCommand() != null;
252
+ let open = childOptional ? USAGE_OPTIONAL_OPEN : USAGE_REQUIRED_OPEN;
253
+ let close = childOptional ? USAGE_OPTIONAL_CLOSE : USAGE_REQUIRED_CLOSE;
254
+ if (!deep) {
255
+ if (node.getRedirect() != null) {
256
+ let redirect = node.getRedirect() == this.root ? "..." : "-> " + node.getRedirect()?.getUsageText();
257
+ return self + ARGUMENT_SEPARATOR + redirect;
258
+ } else {
259
+ let children = [...node.getChildren()].filter((c) => c.canUse(source));
260
+ if (children.length == 1) {
261
+ let usage = this.__getSmartUsage(
262
+ children[0],
263
+ // FIXME
264
+ source,
265
+ childOptional,
266
+ childOptional
267
+ );
268
+ if (usage !== null) {
269
+ return self + ARGUMENT_SEPARATOR + usage;
270
+ }
271
+ } else if (children.length > 1) {
272
+ let childUsage = /* @__PURE__ */ new Set();
273
+ for (let child of children) {
274
+ let usage = this.__getSmartUsage(child, source, childOptional, true);
275
+ if (usage !== null) {
276
+ childUsage.add(usage);
277
+ }
278
+ }
279
+ if (childUsage.size === 1) {
280
+ let usage = childUsage.values().next().value;
281
+ return self + ARGUMENT_SEPARATOR + (childOptional ? USAGE_OPTIONAL_OPEN + usage + USAGE_OPTIONAL_CLOSE : usage);
282
+ } else if (childUsage.size > 1) {
283
+ let builder = open;
284
+ let count = 0;
285
+ for (let child of children) {
286
+ if (count > 0) {
287
+ builder += USAGE_OR;
288
+ }
289
+ builder += child.getUsageText();
290
+ count++;
291
+ }
292
+ if (count > 0) {
293
+ builder += close;
294
+ return self + ARGUMENT_SEPARATOR + builder;
295
+ }
296
+ }
297
+ }
298
+ }
299
+ }
300
+ return self;
301
+ }
302
+ async getCompletionSuggestions(parse, cursor = parse.getReader().getTotalLength()) {
303
+ let context = parse.getContext();
304
+ let nodeBeforeCursor = context.findSuggestionContext(cursor);
305
+ let parent = nodeBeforeCursor.parent;
306
+ let start = Math.min(nodeBeforeCursor.startPos, cursor);
307
+ let fullInput = parse.getReader().getString();
308
+ let truncatedInput = fullInput.substring(0, cursor);
309
+ let futures = [];
310
+ for (let node of parent.getChildren()) {
311
+ let future = await Suggestions.empty();
312
+ try {
313
+ future = await node.listSuggestions(
314
+ context.build(truncatedInput),
315
+ new SuggestionsBuilder(truncatedInput, start)
316
+ );
317
+ } catch (ignored) {
318
+ }
319
+ futures.push(future);
320
+ }
321
+ return Promise.resolve(Suggestions.merge(fullInput, futures));
322
+ }
323
+ getRoot() {
324
+ return this.root;
325
+ }
326
+ getPath(target) {
327
+ let nodes = [];
328
+ this.addPaths(this.root, nodes, []);
329
+ for (let list of nodes) {
330
+ if (list[list.length - 1] === target) {
331
+ let result = [];
332
+ for (let node of list) {
333
+ if (node !== this.root) {
334
+ result.push(node.getName());
335
+ }
336
+ }
337
+ return result;
338
+ }
339
+ }
340
+ return [];
341
+ }
342
+ findNode(path) {
343
+ let node = this.root;
344
+ for (let name of path) {
345
+ node = node.getChild(name);
346
+ if (!node)
347
+ return null;
348
+ }
349
+ return node;
350
+ }
351
+ findAmbiguities(consumer, context) {
352
+ this.root.findAmbiguities(consumer, context);
353
+ }
354
+ addPaths(node, result, parents) {
355
+ let current = [];
356
+ current.push(...parents);
357
+ current.push(node);
358
+ result.push(current);
359
+ for (let child of node.getChildren())
360
+ this.addPaths(child, result, current);
361
+ }
362
+ }
363
+
364
+ export { CommandDispatcher as default };
365
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZERpc3BhdGNoZXIuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvQ29tbWFuZERpc3BhdGNoZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgQW1iaWd1aXR5Q29uc3VtZXIgZnJvbSAnLi9BbWJpZ3VpdHlDb25zdW1lcic7XG5pbXBvcnQgdHlwZSBDb21tYW5kQ29udGV4dCBmcm9tICcuL2NvbnRleHQvQ29tbWFuZENvbnRleHQnO1xuaW1wb3J0IENvbW1hbmRDb250ZXh0QnVpbGRlciBmcm9tICcuL2NvbnRleHQvQ29tbWFuZENvbnRleHRCdWlsZGVyJztcbmltcG9ydCB0eXBlIENvbW1hbmROb2RlIGZyb20gJy4vdHJlZS9Db21tYW5kTm9kZSc7XG5pbXBvcnQgQ29tbWFuZFN5bnRheEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbnMvQ29tbWFuZFN5bnRheEV4Y2VwdGlvbic7XG5pbXBvcnQgdHlwZSBMaXRlcmFsQXJndW1lbnRCdWlsZGVyIGZyb20gJy4vYnVpbGRlci9MaXRlcmFsQXJndW1lbnRCdWlsZGVyJztcbmltcG9ydCB0eXBlIExpdGVyYWxDb21tYW5kTm9kZSBmcm9tICcuL3RyZWUvTGl0ZXJhbENvbW1hbmROb2RlJztcbmltcG9ydCBQYXJzZVJlc3VsdHMgZnJvbSAnLi9QYXJzZVJlc3VsdHMnO1xuaW1wb3J0IHR5cGUgUmVzdWx0Q29uc3VtZXIgZnJvbSAnLi9SZXN1bHRDb25zdW1lcic7XG5pbXBvcnQgUm9vdENvbW1hbmROb2RlIGZyb20gJy4vdHJlZS9Sb290Q29tbWFuZE5vZGUnO1xuaW1wb3J0IFN0cmluZ1JlYWRlciBmcm9tICcuL1N0cmluZ1JlYWRlcic7XG5pbXBvcnQgdHlwZSBTdWdnZXN0aW9uQ29udGV4dCBmcm9tICcuL2NvbnRleHQvU3VnZ2VzdGlvbkNvbnRleHQnO1xuaW1wb3J0IFN1Z2dlc3Rpb25zIGZyb20gJy4vc3VnZ2VzdGlvbi9TdWdnZXN0aW9ucyc7XG5pbXBvcnQgU3VnZ2VzdGlvbnNCdWlsZGVyIGZyb20gJy4vc3VnZ2VzdGlvbi9TdWdnZXN0aW9uc0J1aWxkZXInO1xuXG5jb25zdCBBUkdVTUVOVF9TRVBBUkFUT1IgPSAnICc7XG5jb25zdCBVU0FHRV9PUFRJT05BTF9PUEVOID0gJ1snO1xuY29uc3QgVVNBR0VfT1BUSU9OQUxfQ0xPU0UgPSAnXSc7XG5jb25zdCBVU0FHRV9SRVFVSVJFRF9PUEVOID0gJygnO1xuY29uc3QgVVNBR0VfUkVRVUlSRURfQ0xPU0UgPSAnKSc7XG5jb25zdCBVU0FHRV9PUiA9ICd8JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29tbWFuZERpc3BhdGNoZXI8Uz4ge1xuICAgIHByaXZhdGUgcm9vdDogUm9vdENvbW1hbmROb2RlPFM+O1xuXG4gICAgcHJpdmF0ZSBjb25zdW1lcjogUmVzdWx0Q29uc3VtZXI8Uz4gPSB7XG4gICAgICAgIG9uQ29tbWFuZENvbXBsZXRlKCkge31cbiAgICB9O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHJvb3Q6IFJvb3RDb21tYW5kTm9kZTxTPiB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIHRoaXMucm9vdCA9IHJvb3QgfHwgbmV3IFJvb3RDb21tYW5kTm9kZTxTPigpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlcihjb21tYW5kOiBMaXRlcmFsQXJndW1lbnRCdWlsZGVyPFM+KTogTGl0ZXJhbENvbW1hbmROb2RlPFM+IHtcbiAgICAgICAgbGV0IGJ1aWxkID0gY29tbWFuZC5idWlsZCgpO1xuICAgICAgICB0aGlzLnJvb3QuYWRkQ2hpbGQoYnVpbGQpO1xuICAgICAgICByZXR1cm4gYnVpbGQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldENvbnN1bWVyKGNvbnN1bWVyOiBSZXN1bHRDb25zdW1lcjxTPikge1xuICAgICAgICB0aGlzLmNvbnN1bWVyID0gY29uc3VtZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGV4ZWN1dGUoXG4gICAgICAgIGlucHV0OiBzdHJpbmcgfCBTdHJpbmdSZWFkZXIgfCBQYXJzZVJlc3VsdHM8Uz4sXG4gICAgICAgIHNvdXJjZTogUyB8IG51bGwgPSBudWxsXG4gICAgKTogUHJvbWlzZTxhbnk+IHwgUHJvbWlzZTxhbnk+W10gfCBhbnkge1xuICAgICAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykgaW5wdXQgPSBuZXcgU3RyaW5nUmVhZGVyKGlucHV0KTtcblxuICAgICAgICBsZXQgcGFyc2UhOiBQYXJzZVJlc3VsdHM8Uz47IC8vIEZJWE1FOiBUaGlzIGlzIGEgaGFjayB0byBtYWtlIFR5cGVTY3JpcHQgaGFwcHkuXG4gICAgICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIFN0cmluZ1JlYWRlcikge1xuICAgICAgICAgICAgaWYgKHNvdXJjZSkgcGFyc2UgPSB0aGlzLnBhcnNlKGlucHV0LCBzb3VyY2UpO1xuICAgICAgICB9IGVsc2UgcGFyc2UgPSBpbnB1dDtcblxuICAgICAgICBpZiAocGFyc2UuZ2V0UmVhZGVyKCkuY2FuUmVhZCgpKSB7XG4gICAgICAgICAgICBpZiAocGFyc2UuZ2V0RXhjZXB0aW9ucygpLnNpemUgPT09IDEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBwYXJzZS5nZXRFeGNlcHRpb25zKCkudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJzZS5nZXRDb250ZXh0KCkuZ2V0UmFuZ2UoKS5pc0VtcHR5KCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBDb21tYW5kU3ludGF4RXhjZXB0aW9uLkJVSUxUX0lOX0VYQ0VQVElPTlMuZGlzcGF0Y2hlclVua25vd25Db21tYW5kKCkuY3JlYXRlV2l0aENvbnRleHQoXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlLmdldFJlYWRlcigpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgQ29tbWFuZFN5bnRheEV4Y2VwdGlvbi5CVUlMVF9JTl9FWENFUFRJT05TLmRpc3BhdGNoZXJVbmtub3duQXJndW1lbnQoKS5jcmVhdGVXaXRoQ29udGV4dChcbiAgICAgICAgICAgICAgICAgICAgcGFyc2UuZ2V0UmVhZGVyKClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICBsZXQgZm9ya2VkID0gZmFsc2U7XG4gICAgICAgIGxldCBmb3VuZENvbW1hbmQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGNvbW1hbmQgPSBwYXJzZS5nZXRSZWFkZXIoKS5nZXRTdHJpbmcoKTtcbiAgICAgICAgbGV0IG9yaWdpbmFsID0gcGFyc2UuZ2V0Q29udGV4dCgpLmJ1aWxkKGNvbW1hbmQpO1xuICAgICAgICBsZXQgY29udGV4dHM6IEFycmF5PENvbW1hbmRDb250ZXh0PFM+PiB8IG51bGwgPSBbXTtcbiAgICAgICAgY29udGV4dHMucHVzaChvcmlnaW5hbCk7XG4gICAgICAgIGxldCBuZXh0OiBDb21tYW5kQ29udGV4dDxTPltdIHwgbnVsbCA9IG51bGw7XG4gICAgICAgIHdoaWxlICgoY29udGV4dHMgYXMgYW55KSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb250ZXh0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBjb250ZXh0ID0gY29udGV4dHNbaV0hOyAvLyBGSVhNRVxuICAgICAgICAgICAgICAgIGxldCBjaGlsZCA9IGNvbnRleHQuZ2V0Q2hpbGQoKTtcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ya2VkID0gZm9ya2VkIHx8IGNvbnRleHQuaXNGb3JrZWQoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLmhhc05vZGVzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kQ29tbWFuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbW9kaWZpZXIgPSBjb250ZXh0LmdldFJlZGlyZWN0TW9kaWZpZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbW9kaWZpZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW5leHQpIG5leHQgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0LnB1c2goY2hpbGQuY29weUZvcihjb250ZXh0LmdldFNvdXJjZSgpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHRzOiBBcnJheTxTPiA9IG1vZGlmaWVyLmFwcGx5KGNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0cy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbmV4dCkgbmV4dCA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBzb3VyY2Ugb2YgcmVzdWx0cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQucHVzaChjaGlsZC5jb3B5Rm9yKHNvdXJjZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lci5vbkNvbW1hbmRDb21wbGV0ZShjb250ZXh0LCBmYWxzZSwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZm9ya2VkKSB0aHJvdyBleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQuZ2V0Q29tbWFuZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kQ29tbWFuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBjb250ZXh0LmdldENvbW1hbmQoKShjb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZXIub25Db21tYW5kQ29tcGxldGUoY29udGV4dCwgdHJ1ZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lci5vbkNvbW1hbmRDb21wbGV0ZShjb250ZXh0LCBmYWxzZSwgZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmb3JrZWQpIHRocm93IGV4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb250ZXh0cyA9IG5leHQhOyAvLyBGSVhNRVxuICAgICAgICAgICAgbmV4dCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWZvdW5kQ29tbWFuZCkge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lci5vbkNvbW1hbmRDb21wbGV0ZShvcmlnaW5hbCwgZmFsc2UsIDApO1xuICAgICAgICAgICAgdGhyb3cgQ29tbWFuZFN5bnRheEV4Y2VwdGlvbi5CVUlMVF9JTl9FWENFUFRJT05TLmRpc3BhdGNoZXJVbmtub3duQ29tbWFuZCgpLmNyZWF0ZVdpdGhDb250ZXh0KFxuICAgICAgICAgICAgICAgIHBhcnNlLmdldFJlYWRlcigpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGFyc2UoY29tbWFuZDogc3RyaW5nIHwgU3RyaW5nUmVhZGVyLCBzb3VyY2U6IFMpOiBQYXJzZVJlc3VsdHM8Uz4ge1xuICAgICAgICBpZiAodHlwZW9mIGNvbW1hbmQgPT09ICdzdHJpbmcnKSBjb21tYW5kID0gbmV3IFN0cmluZ1JlYWRlcihjb21tYW5kKTtcblxuICAgICAgICBsZXQgY29udGV4dDogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+ID0gbmV3IENvbW1hbmRDb250ZXh0QnVpbGRlcih0aGlzLCBzb3VyY2UsIHRoaXMucm9vdCwgY29tbWFuZC5nZXRDdXJzb3IoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlTm9kZXModGhpcy5yb290LCBjb21tYW5kLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlTm9kZXMoXG4gICAgICAgIG5vZGU6IENvbW1hbmROb2RlPFM+LFxuICAgICAgICBvcmlnaW5hbFJlYWRlcjogU3RyaW5nUmVhZGVyLFxuICAgICAgICBjb250ZXh0U29GYXI6IENvbW1hbmRDb250ZXh0QnVpbGRlcjxTPlxuICAgICk6IFBhcnNlUmVzdWx0czxTPiB7XG4gICAgICAgIGxldCBzb3VyY2U6IFMgPSBjb250ZXh0U29GYXIuZ2V0U291cmNlKCk7XG4gICAgICAgIGxldCBlcnJvcnM6IE1hcDxDb21tYW5kTm9kZTxTPiwgQ29tbWFuZFN5bnRheEV4Y2VwdGlvbj4gfCBudWxsID0gbnVsbDtcbiAgICAgICAgbGV0IHBvdGVudGlhbHM6IFBhcnNlUmVzdWx0czxTPltdIHwgbnVsbCA9IG51bGw7XG4gICAgICAgIGxldCBjdXJzb3IgPSBvcmlnaW5hbFJlYWRlci5nZXRDdXJzb3IoKTtcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgb2Ygbm9kZS5nZXRSZWxldmFudE5vZGVzKG9yaWdpbmFsUmVhZGVyKSkge1xuICAgICAgICAgICAgaWYgKCFjaGlsZC5jYW5Vc2Uoc291cmNlKSkgY29udGludWU7XG5cbiAgICAgICAgICAgIGxldCBjb250ZXh0OiBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz4gPSBjb250ZXh0U29GYXIuY29weSgpO1xuICAgICAgICAgICAgbGV0IHJlYWRlcjogU3RyaW5nUmVhZGVyID0gbmV3IFN0cmluZ1JlYWRlcihvcmlnaW5hbFJlYWRlcik7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNoaWxkLnBhcnNlKHJlYWRlciwgY29udGV4dCk7XG5cbiAgICAgICAgICAgICAgICBpZiAocmVhZGVyLmNhblJlYWQoKSlcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlYWRlci5wZWVrKCkgIT0gQVJHVU1FTlRfU0VQQVJBVE9SKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgQ29tbWFuZFN5bnRheEV4Y2VwdGlvbi5CVUlMVF9JTl9FWENFUFRJT05TLmRpc3BhdGNoZXJFeHBlY3RlZEFyZ3VtZW50U2VwYXJhdG9yKCkuY3JlYXRlV2l0aENvbnRleHQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3JzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlcnJvcnMuc2V0KGNoaWxkLCBleCBhcyBhbnkpO1xuICAgICAgICAgICAgICAgIHJlYWRlci5zZXRDdXJzb3IoY3Vyc29yKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29udGV4dC53aXRoQ29tbWFuZChjaGlsZC5nZXRDb21tYW5kKCkhKTtcbiAgICAgICAgICAgIGlmIChyZWFkZXIuY2FuUmVhZCghY2hpbGQuZ2V0UmVkaXJlY3QoKSA/IDIgOiAxKSkge1xuICAgICAgICAgICAgICAgIHJlYWRlci5za2lwKCk7XG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkLmdldFJlZGlyZWN0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNoaWxkQ29udGV4dDogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+ID0gbmV3IENvbW1hbmRDb250ZXh0QnVpbGRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC5nZXRSZWRpcmVjdCgpISxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5nZXRDdXJzb3IoKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcGFyc2U6IFBhcnNlUmVzdWx0czxTPiA9IHRoaXMucGFyc2VOb2RlcyhjaGlsZC5nZXRSZWRpcmVjdCgpISwgcmVhZGVyLCBjaGlsZENvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndpdGhDaGlsZChwYXJzZS5nZXRDb250ZXh0KCkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFBhcnNlUmVzdWx0cyhjb250ZXh0LCBwYXJzZS5nZXRSZWFkZXIoKSwgcGFyc2UuZ2V0RXhjZXB0aW9ucygpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcGFyc2U6IFBhcnNlUmVzdWx0czxTPiA9IHRoaXMucGFyc2VOb2RlcyhjaGlsZCwgcmVhZGVyLCBjb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBvdGVudGlhbHMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG90ZW50aWFscyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcG90ZW50aWFscy5wdXNoKHBhcnNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChwb3RlbnRpYWxzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcG90ZW50aWFscyA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwb3RlbnRpYWxzLnB1c2gobmV3IFBhcnNlUmVzdWx0cyhjb250ZXh0LCByZWFkZXIsIG5ldyBNYXAoKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBvdGVudGlhbHMpIHtcbiAgICAgICAgICAgIGlmIChwb3RlbnRpYWxzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICBwb3RlbnRpYWxzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFhLmdldFJlYWRlcigpLmNhblJlYWQoKSAmJiBiLmdldFJlYWRlcigpLmNhblJlYWQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmdldFJlYWRlcigpLmNhblJlYWQoKSAmJiAhYi5nZXRSZWFkZXIoKS5jYW5SZWFkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmdldEV4Y2VwdGlvbnMoKS5zaXplID09PSAwICYmIGIuZ2V0RXhjZXB0aW9ucygpLnNpemUgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoYS5nZXRFeGNlcHRpb25zKCkuc2l6ZSAhPT0gMCAmJiBiLmdldEV4Y2VwdGlvbnMoKS5zaXplID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwb3RlbnRpYWxzWzBdITsgLy8gRklYTUVcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgUGFyc2VSZXN1bHRzPFM+KGNvbnRleHRTb0Zhciwgb3JpZ2luYWxSZWFkZXIsIGVycm9ycyA9PSBudWxsID8gbmV3IE1hcCgpIDogZXJyb3JzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWxsVXNhZ2Uobm9kZTogQ29tbWFuZE5vZGU8Uz4sIHNvdXJjZTogUywgcmVzdHJpY3RlZDogYm9vbGVhbik6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgICAgIHRoaXMuX19nZXRBbGxVc2FnZShub2RlLCBzb3VyY2UsIHJlc3VsdCwgJycsIHJlc3RyaWN0ZWQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX19nZXRBbGxVc2FnZShub2RlOiBDb21tYW5kTm9kZTxTPiwgc291cmNlOiBTLCByZXN1bHQ6IHN0cmluZ1tdLCBwcmVmaXggPSAnJywgcmVzdHJpY3RlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAocmVzdHJpY3RlZCAmJiAhbm9kZS5jYW5Vc2Uoc291cmNlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vZGUuZ2V0Q29tbWFuZCgpICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHByZWZpeCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9kZS5nZXRSZWRpcmVjdCgpICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlZGlyZWN0ID0gbm9kZS5nZXRSZWRpcmVjdCgpID09PSB0aGlzLnJvb3QgPyAnLi4uJyA6ICctPiAnICsgbm9kZS5nZXRSZWRpcmVjdCgpPy5nZXRVc2FnZVRleHQoKTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgICAgICAgIHByZWZpeC5sZW5ndGggPT09IDBcbiAgICAgICAgICAgICAgICAgICAgPyBub2RlLmdldFVzYWdlVGV4dCgpICsgQVJHVU1FTlRfU0VQQVJBVE9SICsgcmVkaXJlY3RcbiAgICAgICAgICAgICAgICAgICAgOiBwcmVmaXggKyBBUkdVTUVOVF9TRVBBUkFUT1IgKyByZWRpcmVjdFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChub2RlLmdldENoaWxkcmVuQ291bnQoKSA+IDApIHtcbiAgICAgICAgICAgIGZvciAobGV0IGNoaWxkIG9mIG5vZGUuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX19nZXRBbGxVc2FnZShcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQsXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZSxcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICBwcmVmaXgubGVuZ3RoID09PSAwID8gY2hpbGQuZ2V0VXNhZ2VUZXh0KCkgOiBwcmVmaXggKyBBUkdVTUVOVF9TRVBBUkFUT1IgKyBjaGlsZC5nZXRVc2FnZVRleHQoKSxcbiAgICAgICAgICAgICAgICAgICAgcmVzdHJpY3RlZFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U21hcnRVc2FnZShub2RlOiBDb21tYW5kTm9kZTxTPiwgc291cmNlOiBTKTogTWFwPENvbW1hbmROb2RlPFM+LCBzdHJpbmc+IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBNYXA8Q29tbWFuZE5vZGU8Uz4sIHN0cmluZz4oKTtcblxuICAgICAgICBsZXQgb3B0aW9uYWwgPSBub2RlLmdldENvbW1hbmQoKSAhPT0gbnVsbDtcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgb2Ygbm9kZS5nZXRDaGlsZHJlbigpKSB7XG4gICAgICAgICAgICBsZXQgdXNhZ2UgPSB0aGlzLl9fZ2V0U21hcnRVc2FnZShjaGlsZCwgc291cmNlLCBvcHRpb25hbCwgZmFsc2UpO1xuICAgICAgICAgICAgaWYgKHVzYWdlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnNldChjaGlsZCwgdXNhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9fZ2V0U21hcnRVc2FnZShub2RlOiBDb21tYW5kTm9kZTxTPiwgc291cmNlOiBTLCBvcHRpb25hbDogYm9vbGVhbiwgZGVlcDogYm9vbGVhbik6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAoIW5vZGUuY2FuVXNlKHNvdXJjZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHNlbGYgPSBvcHRpb25hbCA/IFVTQUdFX09QVElPTkFMX09QRU4gKyBub2RlLmdldFVzYWdlVGV4dCgpICsgVVNBR0VfT1BUSU9OQUxfQ0xPU0UgOiBub2RlLmdldFVzYWdlVGV4dCgpO1xuICAgICAgICBsZXQgY2hpbGRPcHRpb25hbCA9IG5vZGUuZ2V0Q29tbWFuZCgpICE9IG51bGw7XG4gICAgICAgIGxldCBvcGVuID0gY2hpbGRPcHRpb25hbCA/IFVTQUdFX09QVElPTkFMX09QRU4gOiBVU0FHRV9SRVFVSVJFRF9PUEVOO1xuICAgICAgICBsZXQgY2xvc2UgPSBjaGlsZE9wdGlvbmFsID8gVVNBR0VfT1BUSU9OQUxfQ0xPU0UgOiBVU0FHRV9SRVFVSVJFRF9DTE9TRTtcblxuICAgICAgICBpZiAoIWRlZXApIHtcbiAgICAgICAgICAgIGlmIChub2RlLmdldFJlZGlyZWN0KCkgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGxldCByZWRpcmVjdCA9IG5vZGUuZ2V0UmVkaXJlY3QoKSA9PSB0aGlzLnJvb3QgPyAnLi4uJyA6ICctPiAnICsgbm9kZS5nZXRSZWRpcmVjdCgpPy5nZXRVc2FnZVRleHQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZiArIEFSR1VNRU5UX1NFUEFSQVRPUiArIHJlZGlyZWN0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRyZW46IENvbW1hbmROb2RlPFM+W10gPSBbLi4ubm9kZS5nZXRDaGlsZHJlbigpXS5maWx0ZXIoKGMpID0+IGMuY2FuVXNlKHNvdXJjZSkpO1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdXNhZ2UgPSB0aGlzLl9fZ2V0U21hcnRVc2FnZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuWzBdISwgLy8gRklYTUVcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkT3B0aW9uYWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZE9wdGlvbmFsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1c2FnZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYgKyBBUkdVTUVOVF9TRVBBUkFUT1IgKyB1c2FnZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY2hpbGRVc2FnZSA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVzYWdlID0gdGhpcy5fX2dldFNtYXJ0VXNhZ2UoY2hpbGQsIHNvdXJjZSwgY2hpbGRPcHRpb25hbCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXNhZ2UgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFVzYWdlLmFkZCh1c2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkVXNhZ2Uuc2l6ZSA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVzYWdlID0gY2hpbGRVc2FnZS52YWx1ZXMoKS5uZXh0KCkudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSR1VNRU5UX1NFUEFSQVRPUiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkT3B0aW9uYWwgPyBVU0FHRV9PUFRJT05BTF9PUEVOICsgdXNhZ2UgKyBVU0FHRV9PUFRJT05BTF9DTE9TRSA6IHVzYWdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGlsZFVzYWdlLnNpemUgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnVpbGRlciA9IG9wZW47XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY291bnQgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIgKz0gVVNBR0VfT1I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIgKz0gY2hpbGQuZ2V0VXNhZ2VUZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGVyICs9IGNsb3NlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmICsgQVJHVU1FTlRfU0VQQVJBVE9SICsgYnVpbGRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VsZjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Q29tcGxldGlvblN1Z2dlc3Rpb25zKFxuICAgICAgICBwYXJzZTogUGFyc2VSZXN1bHRzPFM+LFxuICAgICAgICBjdXJzb3IgPSBwYXJzZS5nZXRSZWFkZXIoKS5nZXRUb3RhbExlbmd0aCgpXG4gICAgKTogUHJvbWlzZTxTdWdnZXN0aW9ucz4ge1xuICAgICAgICBsZXQgY29udGV4dDogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+ID0gcGFyc2UuZ2V0Q29udGV4dCgpO1xuICAgICAgICBsZXQgbm9kZUJlZm9yZUN1cnNvcjogU3VnZ2VzdGlvbkNvbnRleHQ8Uz4gPSBjb250ZXh0LmZpbmRTdWdnZXN0aW9uQ29udGV4dChjdXJzb3IpO1xuICAgICAgICBsZXQgcGFyZW50OiBDb21tYW5kTm9kZTxTPiA9IG5vZGVCZWZvcmVDdXJzb3IucGFyZW50O1xuICAgICAgICBsZXQgc3RhcnQgPSBNYXRoLm1pbihub2RlQmVmb3JlQ3Vyc29yLnN0YXJ0UG9zLCBjdXJzb3IpO1xuICAgICAgICBsZXQgZnVsbElucHV0ID0gcGFyc2UuZ2V0UmVhZGVyKCkuZ2V0U3RyaW5nKCk7XG4gICAgICAgIGxldCB0cnVuY2F0ZWRJbnB1dCA9IGZ1bGxJbnB1dC5zdWJzdHJpbmcoMCwgY3Vyc29yKTtcbiAgICAgICAgbGV0IGZ1dHVyZXMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgbm9kZSBvZiBwYXJlbnQuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgICAgICAgbGV0IGZ1dHVyZSA9IGF3YWl0IFN1Z2dlc3Rpb25zLmVtcHR5KCk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGZ1dHVyZSA9IGF3YWl0IG5vZGUubGlzdFN1Z2dlc3Rpb25zKFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmJ1aWxkKHRydW5jYXRlZElucHV0KSxcbiAgICAgICAgICAgICAgICAgICAgbmV3IFN1Z2dlc3Rpb25zQnVpbGRlcih0cnVuY2F0ZWRJbnB1dCwgc3RhcnQpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGlnbm9yZWQpIHt9XG4gICAgICAgICAgICBmdXR1cmVzLnB1c2goZnV0dXJlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoU3VnZ2VzdGlvbnMubWVyZ2UoZnVsbElucHV0LCBmdXR1cmVzKSEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSb290KCk6IFJvb3RDb21tYW5kTm9kZTxTPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvb3Q7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhdGgodGFyZ2V0OiBDb21tYW5kTm9kZTxTPik6IHN0cmluZ1tdIHtcbiAgICAgICAgbGV0IG5vZGVzOiBBcnJheTxBcnJheTxDb21tYW5kTm9kZTxTPj4+ID0gW107XG4gICAgICAgIHRoaXMuYWRkUGF0aHModGhpcy5yb290LCBub2RlcywgW10pO1xuICAgICAgICBmb3IgKGxldCBsaXN0IG9mIG5vZGVzKSB7XG4gICAgICAgICAgICBpZiAobGlzdFtsaXN0Lmxlbmd0aCAtIDFdID09PSB0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgbm9kZSBvZiBsaXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChub2RlICE9PSB0aGlzLnJvb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKG5vZGUuZ2V0TmFtZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmluZE5vZGUocGF0aDogc3RyaW5nW10pOiBDb21tYW5kTm9kZTxTPiB8IG51bGwge1xuICAgICAgICBsZXQgbm9kZTogQ29tbWFuZE5vZGU8Uz4gfCB1bmRlZmluZWQgPSB0aGlzLnJvb3Q7XG4gICAgICAgIGZvciAobGV0IG5hbWUgb2YgcGF0aCkge1xuICAgICAgICAgICAgbm9kZSA9IG5vZGUuZ2V0Q2hpbGQobmFtZSk7XG4gICAgICAgICAgICBpZiAoIW5vZGUpIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaW5kQW1iaWd1aXRpZXMoY29uc3VtZXI6IEFtYmlndWl0eUNvbnN1bWVyPFM+LCBjb250ZXh0OiBhbnkpIHtcbiAgICAgICAgdGhpcy5yb290LmZpbmRBbWJpZ3VpdGllcyhjb25zdW1lciwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRQYXRocyhub2RlOiBDb21tYW5kTm9kZTxTPiwgcmVzdWx0OiBBcnJheTxBcnJheTxDb21tYW5kTm9kZTxTPj4+LCBwYXJlbnRzOiBBcnJheTxDb21tYW5kTm9kZTxTPj4pOiB2b2lkIHtcbiAgICAgICAgbGV0IGN1cnJlbnQ6IEFycmF5PENvbW1hbmROb2RlPFM+PiA9IFtdO1xuICAgICAgICBjdXJyZW50LnB1c2goLi4ucGFyZW50cyk7XG4gICAgICAgIGN1cnJlbnQucHVzaChub2RlKTtcbiAgICAgICAgcmVzdWx0LnB1c2goY3VycmVudCk7XG4gICAgICAgIGZvciAobGV0IGNoaWxkIG9mIG5vZGUuZ2V0Q2hpbGRyZW4oKSkgdGhpcy5hZGRQYXRocyhjaGlsZCwgcmVzdWx0LCBjdXJyZW50KTtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsic291cmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQWVBLE1BQU0sa0JBQXFCLEdBQUEsR0FBQSxDQUFBO0FBQzNCLE1BQU0sbUJBQXNCLEdBQUEsR0FBQSxDQUFBO0FBQzVCLE1BQU0sb0JBQXVCLEdBQUEsR0FBQSxDQUFBO0FBQzdCLE1BQU0sbUJBQXNCLEdBQUEsR0FBQSxDQUFBO0FBQzVCLE1BQU0sb0JBQXVCLEdBQUEsR0FBQSxDQUFBO0FBQzdCLE1BQU0sUUFBVyxHQUFBLEdBQUEsQ0FBQTtBQUVqQixNQUFxQixpQkFBcUIsQ0FBQTtBQUFBLEVBQzlCLElBQUEsQ0FBQTtBQUFBLEVBRUEsUUFBOEIsR0FBQTtBQUFBLElBQ2xDLGlCQUFvQixHQUFBO0FBQUEsS0FBQztBQUFBLEdBQ3pCLENBQUE7QUFBQSxFQUVPLFdBQUEsQ0FBWSxPQUFrQyxJQUFNLEVBQUE7QUFDdkQsSUFBSyxJQUFBLENBQUEsSUFBQSxHQUFPLElBQVEsSUFBQSxJQUFJLGVBQW1CLEVBQUEsQ0FBQTtBQUFBLEdBQy9DO0FBQUEsRUFFTyxTQUFTLE9BQTJELEVBQUE7QUFDdkUsSUFBSSxJQUFBLEtBQUEsR0FBUSxRQUFRLEtBQU0sRUFBQSxDQUFBO0FBQzFCLElBQUssSUFBQSxDQUFBLElBQUEsQ0FBSyxTQUFTLEtBQUssQ0FBQSxDQUFBO0FBQ3hCLElBQU8sT0FBQSxLQUFBLENBQUE7QUFBQSxHQUNYO0FBQUEsRUFFTyxZQUFZLFFBQTZC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
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1tdXRhYmxlU3RyaW5nUmVhZGVyLmNqcy5qcyIsInNvdXJjZXMiOltdLCJzb3VyY2VzQ29udGVudCI6W10sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OyJ9
@@ -0,0 +1,13 @@
1
+ export default interface ImmutableStringReader {
2
+ getString(): string;
3
+ getRemainingLength(): number;
4
+ getTotalLength(): number;
5
+ getCursor(): number;
6
+ getRead(): string;
7
+ getRemaining(): string;
8
+ canRead(length: number): boolean;
9
+ canRead(): boolean;
10
+ peek(): string;
11
+ peek(offset: number): string;
12
+ }
13
+ //# sourceMappingURL=ImmutableStringReader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImmutableStringReader.d.ts","sourceRoot":"","sources":["../../src/lib/ImmutableStringReader.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,qBAAqB;IAC1C,SAAS,IAAI,MAAM,CAAC;IAEpB,kBAAkB,IAAI,MAAM,CAAC;IAE7B,cAAc,IAAI,MAAM,CAAC;IAEzB,SAAS,IAAI,MAAM,CAAC;IAEpB,OAAO,IAAI,MAAM,CAAC;IAElB,YAAY,IAAI,MAAM,CAAC;IAEvB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC,OAAO,IAAI,OAAO,CAAC;IAEnB,IAAI,IAAI,MAAM,CAAC;IAEf,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1tdXRhYmxlU3RyaW5nUmVhZGVyLmVzLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ class LiteralMessage {
6
+ str;
7
+ constructor(str) {
8
+ this.str = str;
9
+ }
10
+ getString() {
11
+ return this.str;
12
+ }
13
+ toString() {
14
+ return this.str;
15
+ }
16
+ }
17
+
18
+ exports.default = LiteralMessage;
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl0ZXJhbE1lc3NhZ2UuY2pzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL0xpdGVyYWxNZXNzYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIE1lc3NhZ2UgZnJvbSAnLi9NZXNzYWdlJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGl0ZXJhbE1lc3NhZ2UgaW1wbGVtZW50cyBNZXNzYWdlIHtcbiAgICBzdHI6IHN0cmluZztcbiAgICBwdWJsaWMgY29uc3RydWN0b3Ioc3RyOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zdHIgPSBzdHI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zdHI7XG4gICAgfVxuXG4gICAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0cjtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE1BQXFCLGNBQWtDLENBQUE7QUFBQSxFQUNuRCxHQUFBLENBQUE7QUFBQSxFQUNPLFlBQVksR0FBYSxFQUFBO0FBQzVCLElBQUEsSUFBQSxDQUFLLEdBQU0sR0FBQSxHQUFBLENBQUE7QUFBQSxHQUNmO0FBQUEsRUFFTyxTQUFvQixHQUFBO0FBQ3ZCLElBQUEsT0FBTyxJQUFLLENBQUEsR0FBQSxDQUFBO0FBQUEsR0FDaEI7QUFBQSxFQUVPLFFBQW1CLEdBQUE7QUFDdEIsSUFBQSxPQUFPLElBQUssQ0FBQSxHQUFBLENBQUE7QUFBQSxHQUNoQjtBQUNKOzs7OyJ9
@@ -0,0 +1,9 @@
1
+ import { default as Message } from './Message';
2
+
3
+ export default class LiteralMessage implements Message {
4
+ str: string;
5
+ constructor(str: string);
6
+ getString(): string;
7
+ toString(): string;
8
+ }
9
+ //# sourceMappingURL=LiteralMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiteralMessage.d.ts","sourceRoot":"","sources":["../../src/lib/LiteralMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,OAAO;IAClD,GAAG,EAAE,MAAM,CAAC;gBACO,GAAG,EAAE,MAAM;IAIvB,SAAS,IAAI,MAAM;IAInB,QAAQ,IAAI,MAAM;CAG5B"}
@@ -0,0 +1,15 @@
1
+ class LiteralMessage {
2
+ str;
3
+ constructor(str) {
4
+ this.str = str;
5
+ }
6
+ getString() {
7
+ return this.str;
8
+ }
9
+ toString() {
10
+ return this.str;
11
+ }
12
+ }
13
+
14
+ export { LiteralMessage as default };
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl0ZXJhbE1lc3NhZ2UuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvTGl0ZXJhbE1lc3NhZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgTWVzc2FnZSBmcm9tICcuL01lc3NhZ2UnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaXRlcmFsTWVzc2FnZSBpbXBsZW1lbnRzIE1lc3NhZ2Uge1xuICAgIHN0cjogc3RyaW5nO1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihzdHI6IHN0cmluZykge1xuICAgICAgICB0aGlzLnN0ciA9IHN0cjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0cjtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFxQixjQUFrQyxDQUFBO0FBQUEsRUFDbkQsR0FBQSxDQUFBO0FBQUEsRUFDTyxZQUFZLEdBQWEsRUFBQTtBQUM1QixJQUFBLElBQUEsQ0FBSyxHQUFNLEdBQUEsR0FBQSxDQUFBO0FBQUEsR0FDZjtBQUFBLEVBRU8sU0FBb0IsR0FBQTtBQUN2QixJQUFBLE9BQU8sSUFBSyxDQUFBLEdBQUEsQ0FBQTtBQUFBLEdBQ2hCO0FBQUEsRUFFTyxRQUFtQixHQUFBO0FBQ3RCLElBQUEsT0FBTyxJQUFLLENBQUEsR0FBQSxDQUFBO0FBQUEsR0FDaEI7QUFDSjs7OzsifQ==
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVzc2FnZS5janMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzsifQ==
@@ -0,0 +1,4 @@
1
+ export default interface Message {
2
+ getString(): string;
3
+ }
4
+ //# sourceMappingURL=Message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../src/lib/Message.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,OAAO;IAC5B,SAAS,IAAI,MAAM,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVzc2FnZS5lcy5qcyIsInNvdXJjZXMiOltdLCJzb3VyY2VzQ29udGVudCI6W10sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const lib_StringReader = require('./StringReader.cjs.js');
6
+ require('../CommandSyntaxException-BKBHJvxr.cjs');
7
+ require('./LiteralMessage.cjs.js');
8
+
9
+ class ParseResults {
10
+ context;
11
+ exceptions;
12
+ reader;
13
+ constructor(context, reader, exceptions) {
14
+ this.context = context;
15
+ this.reader = reader || new lib_StringReader.default("");
16
+ this.exceptions = exceptions || /* @__PURE__ */ new Map();
17
+ }
18
+ getContext() {
19
+ return this.context;
20
+ }
21
+ getReader() {
22
+ return this.reader;
23
+ }
24
+ getExceptions() {
25
+ return this.exceptions;
26
+ }
27
+ }
28
+
29
+ exports.default = ParseResults;
30
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyc2VSZXN1bHRzLmNqcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9QYXJzZVJlc3VsdHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgQ29tbWFuZENvbnRleHRCdWlsZGVyIGZyb20gJy4vY29udGV4dC9Db21tYW5kQ29udGV4dEJ1aWxkZXInO1xuaW1wb3J0IHR5cGUgQ29tbWFuZFN5bnRheEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbnMvQ29tbWFuZFN5bnRheEV4Y2VwdGlvbic7XG5pbXBvcnQgdHlwZSBDb21tYW5kTm9kZSBmcm9tICcuL3RyZWUvQ29tbWFuZE5vZGUnO1xuaW1wb3J0IHR5cGUgSW1tdXRhYmxlU3RyaW5nUmVhZGVyIGZyb20gJy4vSW1tdXRhYmxlU3RyaW5nUmVhZGVyJztcbmltcG9ydCBTdHJpbmdSZWFkZXIgZnJvbSAnLi9TdHJpbmdSZWFkZXInO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYXJzZVJlc3VsdHM8Uz4ge1xuICAgIHByaXZhdGUgY29udGV4dDogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+O1xuXG4gICAgcHJpdmF0ZSBleGNlcHRpb25zOiBNYXA8Q29tbWFuZE5vZGU8Uz4sIENvbW1hbmRTeW50YXhFeGNlcHRpb24+O1xuXG4gICAgcHJpdmF0ZSByZWFkZXI6IEltbXV0YWJsZVN0cmluZ1JlYWRlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgY29udGV4dDogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+LFxuICAgICAgICByZWFkZXI6IEltbXV0YWJsZVN0cmluZ1JlYWRlcixcbiAgICAgICAgZXhjZXB0aW9uczogTWFwPENvbW1hbmROb2RlPFM+LCBDb21tYW5kU3ludGF4RXhjZXB0aW9uPlxuICAgICkge1xuICAgICAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgICB0aGlzLnJlYWRlciA9IHJlYWRlciB8fCBuZXcgU3RyaW5nUmVhZGVyKCcnKTtcbiAgICAgICAgdGhpcy5leGNlcHRpb25zID0gZXhjZXB0aW9ucyB8fCBuZXcgTWFwPENvbW1hbmROb2RlPFM+LCBDb21tYW5kU3ludGF4RXhjZXB0aW9uPigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb250ZXh0KCk6IENvbW1hbmRDb250ZXh0QnVpbGRlcjxTPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJlYWRlcigpOiBJbW11dGFibGVTdHJpbmdSZWFkZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEV4Y2VwdGlvbnMoKTogTWFwPENvbW1hbmROb2RlPFM+LCBDb21tYW5kU3ludGF4RXhjZXB0aW9uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4Y2VwdGlvbnM7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIlN0cmluZ1JlYWRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFNQSxNQUFxQixZQUFnQixDQUFBO0FBQUEsRUFDekIsT0FBQSxDQUFBO0FBQUEsRUFFQSxVQUFBLENBQUE7QUFBQSxFQUVBLE1BQUEsQ0FBQTtBQUFBLEVBRUQsV0FBQSxDQUNILE9BQ0EsRUFBQSxNQUFBLEVBQ0EsVUFDRixFQUFBO0FBQ0UsSUFBQSxJQUFBLENBQUssT0FBVSxHQUFBLE9BQUEsQ0FBQTtBQUNmLElBQUEsSUFBQSxDQUFLLE1BQVMsR0FBQSxNQUFBLElBQVUsSUFBSUEsd0JBQUEsQ0FBYSxFQUFFLENBQUEsQ0FBQTtBQUMzQyxJQUFLLElBQUEsQ0FBQSxVQUFBLEdBQWEsVUFBYyxvQkFBQSxJQUFJLEdBQTRDLEVBQUEsQ0FBQTtBQUFBLEdBQ3BGO0FBQUEsRUFFTyxVQUF1QyxHQUFBO0FBQzFDLElBQUEsT0FBTyxJQUFLLENBQUEsT0FBQSxDQUFBO0FBQUEsR0FDaEI7QUFBQSxFQUVPLFNBQW1DLEdBQUE7QUFDdEMsSUFBQSxPQUFPLElBQUssQ0FBQSxNQUFBLENBQUE7QUFBQSxHQUNoQjtBQUFBLEVBRU8sYUFBNkQsR0FBQTtBQUNoRSxJQUFBLE9BQU8sSUFBSyxDQUFBLFVBQUEsQ0FBQTtBQUFBLEdBQ2hCO0FBQ0o7Ozs7In0=
@@ -0,0 +1,15 @@
1
+ import { default as ImmutableStringReader } from './ImmutableStringReader';
2
+ import { default as CommandNode } from './tree/CommandNode';
3
+ import { default as CommandSyntaxException } from './exceptions/CommandSyntaxException';
4
+ import { default as CommandContextBuilder } from './context/CommandContextBuilder';
5
+
6
+ export default class ParseResults<S> {
7
+ private context;
8
+ private exceptions;
9
+ private reader;
10
+ constructor(context: CommandContextBuilder<S>, reader: ImmutableStringReader, exceptions: Map<CommandNode<S>, CommandSyntaxException>);
11
+ getContext(): CommandContextBuilder<S>;
12
+ getReader(): ImmutableStringReader;
13
+ getExceptions(): Map<CommandNode<S>, CommandSyntaxException>;
14
+ }
15
+ //# sourceMappingURL=ParseResults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParseResults.d.ts","sourceRoot":"","sources":["../../src/lib/ParseResults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,qBAAqB,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,sBAAsB,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,qBAAqB,MAAM,yBAAyB,CAAC;AAGjE,MAAM,CAAC,OAAO,OAAO,YAAY,CAAC,CAAC;IAC/B,OAAO,CAAC,OAAO,CAA2B;IAE1C,OAAO,CAAC,UAAU,CAA8C;IAEhE,OAAO,CAAC,MAAM,CAAwB;gBAGlC,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,EACjC,MAAM,EAAE,qBAAqB,EAC7B,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC;IAOpD,UAAU,IAAI,qBAAqB,CAAC,CAAC,CAAC;IAItC,SAAS,IAAI,qBAAqB;IAIlC,aAAa,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC;CAGtE"}
@@ -0,0 +1,26 @@
1
+ import StringReader from './StringReader.es.js';
2
+ import '../CommandSyntaxException-Dz8Qlq9d.js';
3
+ import './LiteralMessage.es.js';
4
+
5
+ class ParseResults {
6
+ context;
7
+ exceptions;
8
+ reader;
9
+ constructor(context, reader, exceptions) {
10
+ this.context = context;
11
+ this.reader = reader || new StringReader("");
12
+ this.exceptions = exceptions || /* @__PURE__ */ new Map();
13
+ }
14
+ getContext() {
15
+ return this.context;
16
+ }
17
+ getReader() {
18
+ return this.reader;
19
+ }
20
+ getExceptions() {
21
+ return this.exceptions;
22
+ }
23
+ }
24
+
25
+ export { ParseResults as default };
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyc2VSZXN1bHRzLmVzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL1BhcnNlUmVzdWx0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBDb21tYW5kQ29udGV4dEJ1aWxkZXIgZnJvbSAnLi9jb250ZXh0L0NvbW1hbmRDb250ZXh0QnVpbGRlcic7XG5pbXBvcnQgdHlwZSBDb21tYW5kU3ludGF4RXhjZXB0aW9uIGZyb20gJy4vZXhjZXB0aW9ucy9Db21tYW5kU3ludGF4RXhjZXB0aW9uJztcbmltcG9ydCB0eXBlIENvbW1hbmROb2RlIGZyb20gJy4vdHJlZS9Db21tYW5kTm9kZSc7XG5pbXBvcnQgdHlwZSBJbW11dGFibGVTdHJpbmdSZWFkZXIgZnJvbSAnLi9JbW11dGFibGVTdHJpbmdSZWFkZXInO1xuaW1wb3J0IFN0cmluZ1JlYWRlciBmcm9tICcuL1N0cmluZ1JlYWRlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhcnNlUmVzdWx0czxTPiB7XG4gICAgcHJpdmF0ZSBjb250ZXh0OiBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz47XG5cbiAgICBwcml2YXRlIGV4Y2VwdGlvbnM6IE1hcDxDb21tYW5kTm9kZTxTPiwgQ29tbWFuZFN5bnRheEV4Y2VwdGlvbj47XG5cbiAgICBwcml2YXRlIHJlYWRlcjogSW1tdXRhYmxlU3RyaW5nUmVhZGVyO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBjb250ZXh0OiBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz4sXG4gICAgICAgIHJlYWRlcjogSW1tdXRhYmxlU3RyaW5nUmVhZGVyLFxuICAgICAgICBleGNlcHRpb25zOiBNYXA8Q29tbWFuZE5vZGU8Uz4sIENvbW1hbmRTeW50YXhFeGNlcHRpb24+XG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgICAgIHRoaXMucmVhZGVyID0gcmVhZGVyIHx8IG5ldyBTdHJpbmdSZWFkZXIoJycpO1xuICAgICAgICB0aGlzLmV4Y2VwdGlvbnMgPSBleGNlcHRpb25zIHx8IG5ldyBNYXA8Q29tbWFuZE5vZGU8Uz4sIENvbW1hbmRTeW50YXhFeGNlcHRpb24+KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbnRleHQoKTogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmVhZGVyKCk6IEltbXV0YWJsZVN0cmluZ1JlYWRlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RXhjZXB0aW9ucygpOiBNYXA8Q29tbWFuZE5vZGU8Uz4sIENvbW1hbmRTeW50YXhFeGNlcHRpb24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhjZXB0aW9ucztcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQU1BLE1BQXFCLFlBQWdCLENBQUE7QUFBQSxFQUN6QixPQUFBLENBQUE7QUFBQSxFQUVBLFVBQUEsQ0FBQTtBQUFBLEVBRUEsTUFBQSxDQUFBO0FBQUEsRUFFRCxXQUFBLENBQ0gsT0FDQSxFQUFBLE1BQUEsRUFDQSxVQUNGLEVBQUE7QUFDRSxJQUFBLElBQUEsQ0FBSyxPQUFVLEdBQUEsT0FBQSxDQUFBO0FBQ2YsSUFBQSxJQUFBLENBQUssTUFBUyxHQUFBLE1BQUEsSUFBVSxJQUFJLFlBQUEsQ0FBYSxFQUFFLENBQUEsQ0FBQTtBQUMzQyxJQUFLLElBQUEsQ0FBQSxVQUFBLEdBQWEsVUFBYyxvQkFBQSxJQUFJLEdBQTRDLEVBQUEsQ0FBQTtBQUFBLEdBQ3BGO0FBQUEsRUFFTyxVQUF1QyxHQUFBO0FBQzFDLElBQUEsT0FBTyxJQUFLLENBQUEsT0FBQSxDQUFBO0FBQUEsR0FDaEI7QUFBQSxFQUVPLFNBQW1DLEdBQUE7QUFDdEMsSUFBQSxPQUFPLElBQUssQ0FBQSxNQUFBLENBQUE7QUFBQSxHQUNoQjtBQUFBLEVBRU8sYUFBNkQsR0FBQTtBQUNoRSxJQUFBLE9BQU8sSUFBSyxDQUFBLFVBQUEsQ0FBQTtBQUFBLEdBQ2hCO0FBQ0o7Ozs7In0=
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJlZGljYXRlLmNqcy5qcyIsInNvdXJjZXMiOltdLCJzb3VyY2VzQ29udGVudCI6W10sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OyJ9
@@ -0,0 +1,4 @@
1
+ export default interface Predicate<T> {
2
+ (t: T): boolean;
3
+ }
4
+ //# sourceMappingURL=Predicate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Predicate.d.ts","sourceRoot":"","sources":["../../src/lib/Predicate.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC,CAAC;IAChC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJlZGljYXRlLmVzLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9