@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,133 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const lib_util_isEqual = require('../util/isEqual.cjs.js');
6
+
7
+ class CommandNode {
8
+ children = /* @__PURE__ */ new Map();
9
+ literals = /* @__PURE__ */ new Map();
10
+ args = /* @__PURE__ */ new Map();
11
+ requirement;
12
+ redirect = null;
13
+ modifier = null;
14
+ forks;
15
+ command = null;
16
+ constructor(command, requirement, redirect, modifier, forks) {
17
+ this.command = command;
18
+ this.requirement = requirement || (() => true);
19
+ this.redirect = redirect;
20
+ this.modifier = modifier;
21
+ this.forks = forks;
22
+ }
23
+ getCommand() {
24
+ return this.command;
25
+ }
26
+ getChildren() {
27
+ return this.children.values();
28
+ }
29
+ getChildrenCount() {
30
+ return this.children.size;
31
+ }
32
+ getChild(name) {
33
+ return this.children.get(name);
34
+ }
35
+ getRedirect() {
36
+ return this.redirect;
37
+ }
38
+ getRedirectModifier() {
39
+ return this.modifier;
40
+ }
41
+ canUse(source) {
42
+ return this.requirement(source);
43
+ }
44
+ addChild(node) {
45
+ if (node.getNodeType() === "root") {
46
+ throw new Error("Cannot add a RootCommandNode as a child to any other CommandNode");
47
+ }
48
+ let child = this.children.get(node.getName());
49
+ if (child != null) {
50
+ if (node.getCommand() != null) {
51
+ child.command = node.getCommand();
52
+ }
53
+ for (let grandchild of node.getChildren()) {
54
+ child.addChild(grandchild);
55
+ }
56
+ } else {
57
+ this.children.set(node.getName(), node);
58
+ if (node.getNodeType() === "literal") {
59
+ this.literals.set(node.getName(), node);
60
+ } else if (node.getNodeType() === "argument") {
61
+ this.args.set(node.getName(), node);
62
+ }
63
+ }
64
+ this.children = new Map([...this.children.entries()].sort((a, b) => a[1].compareTo(b[1])));
65
+ }
66
+ findAmbiguities(consumer, context) {
67
+ let matches = [];
68
+ for (let child of this.children.values()) {
69
+ for (let sibling of this.children.values()) {
70
+ if (child === sibling) {
71
+ continue;
72
+ }
73
+ for (let input of child.getExamples()) {
74
+ if (sibling.isValidInput(input, context)) {
75
+ matches.push(input);
76
+ }
77
+ }
78
+ if (matches.length > 0) {
79
+ consumer.ambiguous(this, child, sibling, matches);
80
+ matches = [];
81
+ }
82
+ }
83
+ child.findAmbiguities(consumer, context);
84
+ }
85
+ }
86
+ equals(o) {
87
+ if (this === o)
88
+ return true;
89
+ if (!(o instanceof CommandNode))
90
+ return false;
91
+ if (this.children.size !== o.children.size) {
92
+ return false;
93
+ }
94
+ if (!lib_util_isEqual.default(this.children, o.children))
95
+ return false;
96
+ if (this.command != null ? !lib_util_isEqual.default(this.command, o.command) : o.command != null)
97
+ return false;
98
+ return true;
99
+ }
100
+ getRequirement() {
101
+ return this.requirement;
102
+ }
103
+ getRelevantNodes(input) {
104
+ if (this.literals.size > 0) {
105
+ let cursor = input.getCursor();
106
+ while (input.canRead() && input.peek() != " ") {
107
+ input.skip();
108
+ }
109
+ let text = input.getString().substring(cursor, input.getCursor());
110
+ input.setCursor(cursor);
111
+ let literal = this.literals.get(text);
112
+ if (literal != null) {
113
+ return [literal];
114
+ } else {
115
+ return this.args.values();
116
+ }
117
+ } else {
118
+ return this.args.values();
119
+ }
120
+ }
121
+ compareTo(o) {
122
+ if (this.getNodeType() === o.getNodeType()) {
123
+ return this.getSortedKey() > o.getSortedKey() ? 1 : -1;
124
+ }
125
+ return o.getNodeType() === "literal" ? 1 : -1;
126
+ }
127
+ isFork() {
128
+ return this.forks;
129
+ }
130
+ }
131
+
132
+ exports.default = CommandNode;
133
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZE5vZGUuY2pzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyZWUvQ29tbWFuZE5vZGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgQW1iaWd1aXR5Q29uc3VtZXIgZnJvbSAnLi4vQW1iaWd1aXR5Q29uc3VtZXInO1xuaW1wb3J0IHR5cGUgQXJndW1lbnRCdWlsZGVyIGZyb20gJy4uL2J1aWxkZXIvQXJndW1lbnRCdWlsZGVyJztcbmltcG9ydCB0eXBlIENvbW1hbmQgZnJvbSAnLi4vQ29tbWFuZCc7XG5pbXBvcnQgdHlwZSBDb21tYW5kQ29udGV4dCBmcm9tICcuLi9jb250ZXh0L0NvbW1hbmRDb250ZXh0JztcbmltcG9ydCB0eXBlIENvbW1hbmRDb250ZXh0QnVpbGRlciBmcm9tICcuLi9jb250ZXh0L0NvbW1hbmRDb250ZXh0QnVpbGRlcic7XG5pbXBvcnQgdHlwZSBQcmVkaWNhdGUgZnJvbSAnLi4vUHJlZGljYXRlJztcbmltcG9ydCB0eXBlIFJlZGlyZWN0TW9kaWZpZXIgZnJvbSAnLi4vUmVkaXJlY3RNb2RpZmllcic7XG5pbXBvcnQgdHlwZSBTdHJpbmdSZWFkZXIgZnJvbSAnLi4vU3RyaW5nUmVhZGVyJztcbmltcG9ydCB0eXBlIFN1Z2dlc3Rpb25zIGZyb20gJy4uL3N1Z2dlc3Rpb24vU3VnZ2VzdGlvbnMnO1xuaW1wb3J0IHR5cGUgU3VnZ2VzdGlvbnNCdWlsZGVyIGZyb20gJy4uL3N1Z2dlc3Rpb24vU3VnZ2VzdGlvbnNCdWlsZGVyJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJy4uL3V0aWwvaXNFcXVhbCc7XG5cbmFic3RyYWN0IGNsYXNzIENvbW1hbmROb2RlPFM+IHtcbiAgICBwcml2YXRlIGNoaWxkcmVuOiBNYXA8c3RyaW5nLCBDb21tYW5kTm9kZTxTPj4gPSBuZXcgTWFwKCk7XG5cbiAgICBwcml2YXRlIGxpdGVyYWxzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcCgpO1xuXG4gICAgcHJpdmF0ZSBhcmdzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcCgpO1xuXG4gICAgcHJpdmF0ZSByZXF1aXJlbWVudDogUHJlZGljYXRlPFM+O1xuXG4gICAgcHJpdmF0ZSByZWRpcmVjdDogQ29tbWFuZE5vZGU8Uz4gfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgbW9kaWZpZXI6IFJlZGlyZWN0TW9kaWZpZXI8Uz4gfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgZm9ya3M6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIGNvbW1hbmQ6IENvbW1hbmQ8Uz4gfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXROb2RlVHlwZSgpOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIGNvbW1hbmQ6IENvbW1hbmQ8Uz4gfCBudWxsLFxuICAgICAgICByZXF1aXJlbWVudDogUHJlZGljYXRlPFM+LFxuICAgICAgICByZWRpcmVjdDogQ29tbWFuZE5vZGU8Uz4gfCBudWxsLFxuICAgICAgICBtb2RpZmllcjogUmVkaXJlY3RNb2RpZmllcjxTPiB8IG51bGwsXG4gICAgICAgIGZvcmtzOiBib29sZWFuXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29tbWFuZCA9IGNvbW1hbmQ7XG4gICAgICAgIHRoaXMucmVxdWlyZW1lbnQgPSByZXF1aXJlbWVudCB8fCAoKCkgPT4gdHJ1ZSk7XG4gICAgICAgIHRoaXMucmVkaXJlY3QgPSByZWRpcmVjdDtcbiAgICAgICAgdGhpcy5tb2RpZmllciA9IG1vZGlmaWVyO1xuICAgICAgICB0aGlzLmZvcmtzID0gZm9ya3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbW1hbmQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbW1hbmQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENoaWxkcmVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi52YWx1ZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2hpbGRyZW5Db3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5zaXplO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDaGlsZChuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4uZ2V0KG5hbWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSZWRpcmVjdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVkaXJlY3Q7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJlZGlyZWN0TW9kaWZpZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGlmaWVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5Vc2Uoc291cmNlOiBTKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVpcmVtZW50KHNvdXJjZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENoaWxkKG5vZGU6IENvbW1hbmROb2RlPFM+KSB7XG4gICAgICAgIGlmIChub2RlLmdldE5vZGVUeXBlKCkgPT09ICdyb290Jykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYWRkIGEgUm9vdENvbW1hbmROb2RlIGFzIGEgY2hpbGQgdG8gYW55IG90aGVyIENvbW1hbmROb2RlJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY2hpbGQgPSB0aGlzLmNoaWxkcmVuLmdldChub2RlLmdldE5hbWUoKSk7XG4gICAgICAgIGlmIChjaGlsZCAhPSBudWxsKSB7XG4gICAgICAgICAgICAvLyAgV2UndmUgZm91bmQgc29tZXRoaW5nIHRvIG1lcmdlIG9udG9cbiAgICAgICAgICAgIGlmIChub2RlLmdldENvbW1hbmQoKSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQuY29tbWFuZCA9IG5vZGUuZ2V0Q29tbWFuZCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGxldCBncmFuZGNoaWxkIG9mIG5vZGUuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgICAgICAgICAgIGNoaWxkLmFkZENoaWxkKGdyYW5kY2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGlsZHJlbi5zZXQobm9kZS5nZXROYW1lKCksIG5vZGUpO1xuICAgICAgICAgICAgaWYgKG5vZGUuZ2V0Tm9kZVR5cGUoKSA9PT0gJ2xpdGVyYWwnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXRlcmFscy5zZXQobm9kZS5nZXROYW1lKCksIG5vZGUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLmdldE5vZGVUeXBlKCkgPT09ICdhcmd1bWVudCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFyZ3Muc2V0KG5vZGUuZ2V0TmFtZSgpLCBub2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSBuZXcgTWFwKFsuLi50aGlzLmNoaWxkcmVuLmVudHJpZXMoKV0uc29ydCgoYSwgYikgPT4gYVsxXS5jb21wYXJlVG8oYlsxXSkpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmluZEFtYmlndWl0aWVzKGNvbnN1bWVyOiBBbWJpZ3VpdHlDb25zdW1lcjxTPiwgY29udGV4dDogYW55KSB7XG4gICAgICAgIGxldCBtYXRjaGVzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgICAgIGZvciAobGV0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4udmFsdWVzKCkpIHtcbiAgICAgICAgICAgIGZvciAobGV0IHNpYmxpbmcgb2YgdGhpcy5jaGlsZHJlbi52YWx1ZXMoKSkge1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZCA9PT0gc2libGluZykge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbnB1dCBvZiBjaGlsZC5nZXRFeGFtcGxlcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaWJsaW5nLmlzVmFsaWRJbnB1dChpbnB1dCwgY29udGV4dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZXMucHVzaChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobWF0Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN1bWVyLmFtYmlndW91cyh0aGlzLCBjaGlsZCwgc2libGluZywgbWF0Y2hlcyk7XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoZXMgPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNoaWxkLmZpbmRBbWJpZ3VpdGllcyhjb25zdW1lciwgY29udGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgaXNWYWxpZElucHV0KGlucHV0OiBzdHJpbmcsIGNvbnRleHQ6IGFueSk6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgZXF1YWxzKG86IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcyA9PT0gbykgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmICghKG8gaW5zdGFuY2VvZiBDb21tYW5kTm9kZSkpIHJldHVybiBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy5jaGlsZHJlbi5zaXplICE9PSBvLmNoaWxkcmVuLnNpemUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNFcXVhbCh0aGlzLmNoaWxkcmVuLCBvLmNoaWxkcmVuKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbW1hbmQgIT0gbnVsbCA/ICFpc0VxdWFsKHRoaXMuY29tbWFuZCwgby5jb21tYW5kKSA6IG8uY29tbWFuZCAhPSBudWxsKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJlcXVpcmVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXF1aXJlbWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0TmFtZSgpOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0VXNhZ2VUZXh0KCk6IHN0cmluZztcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBwYXJzZShyZWFkZXI6IFN0cmluZ1JlYWRlciwgY29udGV4dEJ1aWxkZXI6IENvbW1hbmRDb250ZXh0QnVpbGRlcjxTPik6IHZvaWQ7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgbGlzdFN1Z2dlc3Rpb25zKGNvbnRleHQ6IENvbW1hbmRDb250ZXh0PFM+LCBidWlsZGVyOiBTdWdnZXN0aW9uc0J1aWxkZXIpOiBQcm9taXNlPFN1Z2dlc3Rpb25zPjtcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBjcmVhdGVCdWlsZGVyKCk6IEFyZ3VtZW50QnVpbGRlcjxTLCBhbnk+O1xuXG4gICAgcHVibGljIGFic3RyYWN0IGdldFNvcnRlZEtleSgpOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgZ2V0UmVsZXZhbnROb2RlcyhpbnB1dDogU3RyaW5nUmVhZGVyKTogSXRlcmFibGU8Q29tbWFuZE5vZGU8Uz4+IHtcbiAgICAgICAgaWYgKHRoaXMubGl0ZXJhbHMuc2l6ZSA+IDApIHtcbiAgICAgICAgICAgIGxldCBjdXJzb3I6IG51bWJlciA9IGlucHV0LmdldEN1cnNvcigpO1xuICAgICAgICAgICAgd2hpbGUgKGlucHV0LmNhblJlYWQoKSAmJiBpbnB1dC5wZWVrKCkgIT0gJyAnKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQuc2tpcCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgdGV4dCA9IGlucHV0LmdldFN0cmluZygpLnN1YnN0cmluZyhjdXJzb3IsIGlucHV0LmdldEN1cnNvcigpKTtcbiAgICAgICAgICAgIGlucHV0LnNldEN1cnNvcihjdXJzb3IpO1xuICAgICAgICAgICAgbGV0IGxpdGVyYWwgPSB0aGlzLmxpdGVyYWxzLmdldCh0ZXh0KTtcbiAgICAgICAgICAgIGlmIChsaXRlcmFsICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW2xpdGVyYWxdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcmdzLnZhbHVlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXJncy52YWx1ZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjb21wYXJlVG8obzogQ29tbWFuZE5vZGU8Uz4pOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5nZXROb2RlVHlwZSgpID09PSBvLmdldE5vZGVUeXBlKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNvcnRlZEtleSgpID4gby5nZXRTb3J0ZWRLZXkoKSA/IDEgOiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvLmdldE5vZGVUeXBlKCkgPT09ICdsaXRlcmFsJyA/IDEgOiAtMTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNGb3JrKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JrcztcbiAgICB9XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0RXhhbXBsZXMoKTogSXRlcmFibGU8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29tbWFuZE5vZGU7XG4iXSwibmFtZXMiOlsiaXNFcXVhbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBWUEsTUFBZSxXQUFlLENBQUE7QUFBQSxFQUNsQixRQUFBLHVCQUE0QyxHQUFJLEVBQUEsQ0FBQTtBQUFBLEVBRWhELFFBQUEsdUJBQWlDLEdBQUksRUFBQSxDQUFBO0FBQUEsRUFFckMsSUFBQSx1QkFBNkIsR0FBSSxFQUFBLENBQUE7QUFBQSxFQUVqQyxXQUFBLENBQUE7QUFB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
@@ -0,0 +1,47 @@
1
+ import { default as SuggestionsBuilder } from '../suggestion/SuggestionsBuilder';
2
+ import { default as Suggestions } from '../suggestion/Suggestions';
3
+ import { default as StringReader } from '../StringReader';
4
+ import { default as RedirectModifier } from '../RedirectModifier';
5
+ import { default as Predicate } from '../Predicate';
6
+ import { default as CommandContextBuilder } from '../context/CommandContextBuilder';
7
+ import { default as CommandContext } from '../context/CommandContext';
8
+ import { default as Command } from '../Command';
9
+ import { default as ArgumentBuilder } from '../builder/ArgumentBuilder';
10
+ import { default as AmbiguityConsumer } from '../AmbiguityConsumer';
11
+
12
+ declare abstract class CommandNode<S> {
13
+ private children;
14
+ private literals;
15
+ private args;
16
+ private requirement;
17
+ private redirect;
18
+ private modifier;
19
+ private forks;
20
+ private command;
21
+ abstract getNodeType(): string;
22
+ constructor(command: Command<S> | null, requirement: Predicate<S>, redirect: CommandNode<S> | null, modifier: RedirectModifier<S> | null, forks: boolean);
23
+ getCommand(): Command<S> | null;
24
+ getChildren(): IterableIterator<CommandNode<S>>;
25
+ getChildrenCount(): number;
26
+ getChild(name: string): CommandNode<S> | undefined;
27
+ getRedirect(): CommandNode<S> | null;
28
+ getRedirectModifier(): RedirectModifier<S> | null;
29
+ canUse(source: S): boolean;
30
+ addChild(node: CommandNode<S>): void;
31
+ findAmbiguities(consumer: AmbiguityConsumer<S>, context: any): void;
32
+ abstract isValidInput(input: string, context: any): boolean;
33
+ equals(o: object): boolean;
34
+ getRequirement(): Predicate<S>;
35
+ abstract getName(): string;
36
+ abstract getUsageText(): string;
37
+ abstract parse(reader: StringReader, contextBuilder: CommandContextBuilder<S>): void;
38
+ abstract listSuggestions(context: CommandContext<S>, builder: SuggestionsBuilder): Promise<Suggestions>;
39
+ abstract createBuilder(): ArgumentBuilder<S, any>;
40
+ abstract getSortedKey(): string;
41
+ getRelevantNodes(input: StringReader): Iterable<CommandNode<S>>;
42
+ compareTo(o: CommandNode<S>): number;
43
+ isFork(): boolean;
44
+ abstract getExamples(): Iterable<string>;
45
+ }
46
+ export default CommandNode;
47
+ //# sourceMappingURL=CommandNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandNode.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/CommandNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,qBAAqB,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,kBAAkB,MAAM,kCAAkC,CAAC;AAGvE,uBAAe,WAAW,CAAC,CAAC;IACxB,OAAO,CAAC,QAAQ,CAA0C;IAE1D,OAAO,CAAC,QAAQ,CAA+B;IAE/C,OAAO,CAAC,IAAI,CAA+B;IAE3C,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,CAAC,QAAQ,CAA+B;IAE/C,OAAO,CAAC,QAAQ,CAAoC;IAEpD,OAAO,CAAC,KAAK,CAAU;IAEvB,OAAO,CAAC,OAAO,CAA2B;aAE1B,WAAW,IAAI,MAAM;gBAGjC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,EAC1B,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EACzB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,EAC/B,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,EACpC,KAAK,EAAE,OAAO;IASX,UAAU;IAIV,WAAW;IAIX,gBAAgB,IAAI,MAAM;IAI1B,QAAQ,CAAC,IAAI,EAAE,MAAM;IAIrB,WAAW;IAIX,mBAAmB;IAInB,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO;IAI1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IA2B7B,eAAe,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG;aAwBnD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO;IAE3D,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAe1B,cAAc;aAIL,OAAO,IAAI,MAAM;aAEjB,YAAY,IAAI,MAAM;aAEtB,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,IAAI;aAE3E,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;aAE9F,aAAa,IAAI,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC;aAExC,YAAY,IAAI,MAAM;IAE/B,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAoB/D,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM;IAQpC,MAAM,IAAI,OAAO;aAIR,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC;CAClD;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,129 @@
1
+ import isEqual from '../util/isEqual.es.js';
2
+
3
+ class CommandNode {
4
+ children = /* @__PURE__ */ new Map();
5
+ literals = /* @__PURE__ */ new Map();
6
+ args = /* @__PURE__ */ new Map();
7
+ requirement;
8
+ redirect = null;
9
+ modifier = null;
10
+ forks;
11
+ command = null;
12
+ constructor(command, requirement, redirect, modifier, forks) {
13
+ this.command = command;
14
+ this.requirement = requirement || (() => true);
15
+ this.redirect = redirect;
16
+ this.modifier = modifier;
17
+ this.forks = forks;
18
+ }
19
+ getCommand() {
20
+ return this.command;
21
+ }
22
+ getChildren() {
23
+ return this.children.values();
24
+ }
25
+ getChildrenCount() {
26
+ return this.children.size;
27
+ }
28
+ getChild(name) {
29
+ return this.children.get(name);
30
+ }
31
+ getRedirect() {
32
+ return this.redirect;
33
+ }
34
+ getRedirectModifier() {
35
+ return this.modifier;
36
+ }
37
+ canUse(source) {
38
+ return this.requirement(source);
39
+ }
40
+ addChild(node) {
41
+ if (node.getNodeType() === "root") {
42
+ throw new Error("Cannot add a RootCommandNode as a child to any other CommandNode");
43
+ }
44
+ let child = this.children.get(node.getName());
45
+ if (child != null) {
46
+ if (node.getCommand() != null) {
47
+ child.command = node.getCommand();
48
+ }
49
+ for (let grandchild of node.getChildren()) {
50
+ child.addChild(grandchild);
51
+ }
52
+ } else {
53
+ this.children.set(node.getName(), node);
54
+ if (node.getNodeType() === "literal") {
55
+ this.literals.set(node.getName(), node);
56
+ } else if (node.getNodeType() === "argument") {
57
+ this.args.set(node.getName(), node);
58
+ }
59
+ }
60
+ this.children = new Map([...this.children.entries()].sort((a, b) => a[1].compareTo(b[1])));
61
+ }
62
+ findAmbiguities(consumer, context) {
63
+ let matches = [];
64
+ for (let child of this.children.values()) {
65
+ for (let sibling of this.children.values()) {
66
+ if (child === sibling) {
67
+ continue;
68
+ }
69
+ for (let input of child.getExamples()) {
70
+ if (sibling.isValidInput(input, context)) {
71
+ matches.push(input);
72
+ }
73
+ }
74
+ if (matches.length > 0) {
75
+ consumer.ambiguous(this, child, sibling, matches);
76
+ matches = [];
77
+ }
78
+ }
79
+ child.findAmbiguities(consumer, context);
80
+ }
81
+ }
82
+ equals(o) {
83
+ if (this === o)
84
+ return true;
85
+ if (!(o instanceof CommandNode))
86
+ return false;
87
+ if (this.children.size !== o.children.size) {
88
+ return false;
89
+ }
90
+ if (!isEqual(this.children, o.children))
91
+ return false;
92
+ if (this.command != null ? !isEqual(this.command, o.command) : o.command != null)
93
+ return false;
94
+ return true;
95
+ }
96
+ getRequirement() {
97
+ return this.requirement;
98
+ }
99
+ getRelevantNodes(input) {
100
+ if (this.literals.size > 0) {
101
+ let cursor = input.getCursor();
102
+ while (input.canRead() && input.peek() != " ") {
103
+ input.skip();
104
+ }
105
+ let text = input.getString().substring(cursor, input.getCursor());
106
+ input.setCursor(cursor);
107
+ let literal = this.literals.get(text);
108
+ if (literal != null) {
109
+ return [literal];
110
+ } else {
111
+ return this.args.values();
112
+ }
113
+ } else {
114
+ return this.args.values();
115
+ }
116
+ }
117
+ compareTo(o) {
118
+ if (this.getNodeType() === o.getNodeType()) {
119
+ return this.getSortedKey() > o.getSortedKey() ? 1 : -1;
120
+ }
121
+ return o.getNodeType() === "literal" ? 1 : -1;
122
+ }
123
+ isFork() {
124
+ return this.forks;
125
+ }
126
+ }
127
+
128
+ export { CommandNode as default };
129
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZE5vZGUuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJlZS9Db21tYW5kTm9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBBbWJpZ3VpdHlDb25zdW1lciBmcm9tICcuLi9BbWJpZ3VpdHlDb25zdW1lcic7XG5pbXBvcnQgdHlwZSBBcmd1bWVudEJ1aWxkZXIgZnJvbSAnLi4vYnVpbGRlci9Bcmd1bWVudEJ1aWxkZXInO1xuaW1wb3J0IHR5cGUgQ29tbWFuZCBmcm9tICcuLi9Db21tYW5kJztcbmltcG9ydCB0eXBlIENvbW1hbmRDb250ZXh0IGZyb20gJy4uL2NvbnRleHQvQ29tbWFuZENvbnRleHQnO1xuaW1wb3J0IHR5cGUgQ29tbWFuZENvbnRleHRCdWlsZGVyIGZyb20gJy4uL2NvbnRleHQvQ29tbWFuZENvbnRleHRCdWlsZGVyJztcbmltcG9ydCB0eXBlIFByZWRpY2F0ZSBmcm9tICcuLi9QcmVkaWNhdGUnO1xuaW1wb3J0IHR5cGUgUmVkaXJlY3RNb2RpZmllciBmcm9tICcuLi9SZWRpcmVjdE1vZGlmaWVyJztcbmltcG9ydCB0eXBlIFN0cmluZ1JlYWRlciBmcm9tICcuLi9TdHJpbmdSZWFkZXInO1xuaW1wb3J0IHR5cGUgU3VnZ2VzdGlvbnMgZnJvbSAnLi4vc3VnZ2VzdGlvbi9TdWdnZXN0aW9ucyc7XG5pbXBvcnQgdHlwZSBTdWdnZXN0aW9uc0J1aWxkZXIgZnJvbSAnLi4vc3VnZ2VzdGlvbi9TdWdnZXN0aW9uc0J1aWxkZXInO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnLi4vdXRpbC9pc0VxdWFsJztcblxuYWJzdHJhY3QgY2xhc3MgQ29tbWFuZE5vZGU8Uz4ge1xuICAgIHByaXZhdGUgY2hpbGRyZW46IE1hcDxzdHJpbmcsIENvbW1hbmROb2RlPFM+PiA9IG5ldyBNYXAoKTtcblxuICAgIHByaXZhdGUgbGl0ZXJhbHM6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwKCk7XG5cbiAgICBwcml2YXRlIGFyZ3M6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwKCk7XG5cbiAgICBwcml2YXRlIHJlcXVpcmVtZW50OiBQcmVkaWNhdGU8Uz47XG5cbiAgICBwcml2YXRlIHJlZGlyZWN0OiBDb21tYW5kTm9kZTxTPiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBtb2RpZmllcjogUmVkaXJlY3RNb2RpZmllcjxTPiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBmb3JrczogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgY29tbWFuZDogQ29tbWFuZDxTPiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIGFic3RyYWN0IGdldE5vZGVUeXBlKCk6IHN0cmluZztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgY29tbWFuZDogQ29tbWFuZDxTPiB8IG51bGwsXG4gICAgICAgIHJlcXVpcmVtZW50OiBQcmVkaWNhdGU8Uz4sXG4gICAgICAgIHJlZGlyZWN0OiBDb21tYW5kTm9kZTxTPiB8IG51bGwsXG4gICAgICAgIG1vZGlmaWVyOiBSZWRpcmVjdE1vZGlmaWVyPFM+IHwgbnVsbCxcbiAgICAgICAgZm9ya3M6IGJvb2xlYW5cbiAgICApIHtcbiAgICAgICAgdGhpcy5jb21tYW5kID0gY29tbWFuZDtcbiAgICAgICAgdGhpcy5yZXF1aXJlbWVudCA9IHJlcXVpcmVtZW50IHx8ICgoKSA9PiB0cnVlKTtcbiAgICAgICAgdGhpcy5yZWRpcmVjdCA9IHJlZGlyZWN0O1xuICAgICAgICB0aGlzLm1vZGlmaWVyID0gbW9kaWZpZXI7XG4gICAgICAgIHRoaXMuZm9ya3MgPSBmb3JrcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29tbWFuZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tbWFuZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2hpbGRyZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLnZhbHVlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDaGlsZHJlbkNvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLnNpemU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENoaWxkKG5hbWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5nZXQobmFtZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJlZGlyZWN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWRpcmVjdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmVkaXJlY3RNb2RpZmllcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kaWZpZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGNhblVzZShzb3VyY2U6IFMpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWlyZW1lbnQoc291cmNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ2hpbGQobm9kZTogQ29tbWFuZE5vZGU8Uz4pIHtcbiAgICAgICAgaWYgKG5vZGUuZ2V0Tm9kZVR5cGUoKSA9PT0gJ3Jvb3QnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBhZGQgYSBSb290Q29tbWFuZE5vZGUgYXMgYSBjaGlsZCB0byBhbnkgb3RoZXIgQ29tbWFuZE5vZGUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjaGlsZCA9IHRoaXMuY2hpbGRyZW4uZ2V0KG5vZGUuZ2V0TmFtZSgpKTtcbiAgICAgICAgaWYgKGNoaWxkICE9IG51bGwpIHtcbiAgICAgICAgICAgIC8vICBXZSd2ZSBmb3VuZCBzb21ldGhpbmcgdG8gbWVyZ2Ugb250b1xuICAgICAgICAgICAgaWYgKG5vZGUuZ2V0Q29tbWFuZCgpICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjaGlsZC5jb21tYW5kID0gbm9kZS5nZXRDb21tYW5kKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAobGV0IGdyYW5kY2hpbGQgb2Ygbm9kZS5nZXRDaGlsZHJlbigpKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQuYWRkQ2hpbGQoZ3JhbmRjaGlsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuLnNldChub2RlLmdldE5hbWUoKSwgbm9kZSk7XG4gICAgICAgICAgICBpZiAobm9kZS5nZXROb2RlVHlwZSgpID09PSAnbGl0ZXJhbCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpdGVyYWxzLnNldChub2RlLmdldE5hbWUoKSwgbm9kZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUuZ2V0Tm9kZVR5cGUoKSA9PT0gJ2FyZ3VtZW50Jykge1xuICAgICAgICAgICAgICAgIHRoaXMuYXJncy5zZXQobm9kZS5nZXROYW1lKCksIG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IG5ldyBNYXAoWy4uLnRoaXMuY2hpbGRyZW4uZW50cmllcygpXS5zb3J0KChhLCBiKSA9PiBhWzFdLmNvbXBhcmVUbyhiWzFdKSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaW5kQW1iaWd1aXRpZXMoY29uc3VtZXI6IEFtYmlndWl0eUNvbnN1bWVyPFM+LCBjb250ZXh0OiBhbnkpIHtcbiAgICAgICAgbGV0IG1hdGNoZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbi52YWx1ZXMoKSkge1xuICAgICAgICAgICAgZm9yIChsZXQgc2libGluZyBvZiB0aGlzLmNoaWxkcmVuLnZhbHVlcygpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkID09PSBzaWJsaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGlucHV0IG9mIGNoaWxkLmdldEV4YW1wbGVzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNpYmxpbmcuaXNWYWxpZElucHV0KGlucHV0LCBjb250ZXh0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlcy5wdXNoKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChtYXRjaGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3VtZXIuYW1iaWd1b3VzKHRoaXMsIGNoaWxkLCBzaWJsaW5nLCBtYXRjaGVzKTtcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlcyA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2hpbGQuZmluZEFtYmlndWl0aWVzKGNvbnN1bWVyLCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhYnN0cmFjdCBpc1ZhbGlkSW5wdXQoaW5wdXQ6IHN0cmluZywgY29udGV4dDogYW55KTogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBlcXVhbHMobzogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzID09PSBvKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKCEobyBpbnN0YW5jZW9mIENvbW1hbmROb2RlKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGlmICh0aGlzLmNoaWxkcmVuLnNpemUgIT09IG8uY2hpbGRyZW4uc2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0VxdWFsKHRoaXMuY2hpbGRyZW4sIG8uY2hpbGRyZW4pKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgaWYgKHRoaXMuY29tbWFuZCAhPSBudWxsID8gIWlzRXF1YWwodGhpcy5jb21tYW5kLCBvLmNvbW1hbmQpIDogby5jb21tYW5kICE9IG51bGwpIHJldHVybiBmYWxzZTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmVxdWlyZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVpcmVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXROYW1lKCk6IHN0cmluZztcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRVc2FnZVRleHQoKTogc3RyaW5nO1xuXG4gICAgcHVibGljIGFic3RyYWN0IHBhcnNlKHJlYWRlcjogU3RyaW5nUmVhZGVyLCBjb250ZXh0QnVpbGRlcjogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+KTogdm9pZDtcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBsaXN0U3VnZ2VzdGlvbnMoY29udGV4dDogQ29tbWFuZENvbnRleHQ8Uz4sIGJ1aWxkZXI6IFN1Z2dlc3Rpb25zQnVpbGRlcik6IFByb21pc2U8U3VnZ2VzdGlvbnM+O1xuXG4gICAgcHVibGljIGFic3RyYWN0IGNyZWF0ZUJ1aWxkZXIoKTogQXJndW1lbnRCdWlsZGVyPFMsIGFueT47XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0U29ydGVkS2V5KCk6IHN0cmluZztcblxuICAgIHB1YmxpYyBnZXRSZWxldmFudE5vZGVzKGlucHV0OiBTdHJpbmdSZWFkZXIpOiBJdGVyYWJsZTxDb21tYW5kTm9kZTxTPj4ge1xuICAgICAgICBpZiAodGhpcy5saXRlcmFscy5zaXplID4gMCkge1xuICAgICAgICAgICAgbGV0IGN1cnNvcjogbnVtYmVyID0gaW5wdXQuZ2V0Q3Vyc29yKCk7XG4gICAgICAgICAgICB3aGlsZSAoaW5wdXQuY2FuUmVhZCgpICYmIGlucHV0LnBlZWsoKSAhPSAnICcpIHtcbiAgICAgICAgICAgICAgICBpbnB1dC5za2lwKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCB0ZXh0ID0gaW5wdXQuZ2V0U3RyaW5nKCkuc3Vic3RyaW5nKGN1cnNvciwgaW5wdXQuZ2V0Q3Vyc29yKCkpO1xuICAgICAgICAgICAgaW5wdXQuc2V0Q3Vyc29yKGN1cnNvcik7XG4gICAgICAgICAgICBsZXQgbGl0ZXJhbCA9IHRoaXMubGl0ZXJhbHMuZ2V0KHRleHQpO1xuICAgICAgICAgICAgaWYgKGxpdGVyYWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbbGl0ZXJhbF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFyZ3MudmFsdWVzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hcmdzLnZhbHVlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBhcmVUbyhvOiBDb21tYW5kTm9kZTxTPik6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLmdldE5vZGVUeXBlKCkgPT09IG8uZ2V0Tm9kZVR5cGUoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U29ydGVkS2V5KCkgPiBvLmdldFNvcnRlZEtleSgpID8gMSA6IC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG8uZ2V0Tm9kZVR5cGUoKSA9PT0gJ2xpdGVyYWwnID8gMSA6IC0xO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0ZvcmsoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcmtzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRFeGFtcGxlcygpOiBJdGVyYWJsZTxzdHJpbmc+O1xufVxuXG5leHBvcnQgZGVmYXVsdCBDb21tYW5kTm9kZTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLE1BQWUsV0FBZSxDQUFBO0FBQUEsRUFDbEIsUUFBQSx1QkFBNEMsR0FBSSxFQUFBLENBQUE7QUFBQSxFQUVoRCxRQUFBLHVCQUFpQyxHQUFJLEVBQUEsQ0FBQTtBQUFBLEVBRXJDLElBQUEsdUJBQTZCLEdBQUksRUFBQSxDQUFBO0FBQUEsRUFFakMsV0FBQSxDQUFBO0FBQUEsRUFFQSxRQUFrQyxH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
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ require('./CommandNode.cjs.js');
6
+ require('../StringReader.cjs.js');
7
+ const lib_tree_LiteralCommandNode = require('../../LiteralArgumentBuilder-s6PUMmST.cjs');
8
+ require('../context/StringRange.cjs.js');
9
+ require('../../CommandSyntaxException-BKBHJvxr.cjs');
10
+ require('../suggestion/Suggestions.cjs.js');
11
+ require('../util/isEqual.cjs.js');
12
+ require('../LiteralMessage.cjs.js');
13
+ require('../builder/ArgumentBuilder.cjs.js');
14
+ require('./RootCommandNode.cjs.js');
15
+
16
+
17
+
18
+ exports.default = lib_tree_LiteralCommandNode.LiteralCommandNode;
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl0ZXJhbENvbW1hbmROb2RlLmNqcy5qcyIsInNvdXJjZXMiOltdLCJzb3VyY2VzQ29udGVudCI6W10sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
@@ -0,0 +1,29 @@
1
+ import { default as SuggestionsBuilder } from '../suggestion/SuggestionsBuilder';
2
+ import { default as Suggestions } from '../suggestion/Suggestions';
3
+ import { default as CommandContextBuilder } from '../context/CommandContextBuilder';
4
+ import { default as CommandContext } from '../context/CommandContext';
5
+ import { default as LiteralArgumentBuilder } from '../builder/LiteralArgumentBuilder';
6
+ import { default as StringReader } from '../StringReader';
7
+ import { default as RedirectModifier } from '../RedirectModifier';
8
+ import { default as Predicate } from '../Predicate';
9
+ import { default as CommandNode } from './CommandNode';
10
+ import { default as Command } from '../Command';
11
+
12
+ export default class LiteralCommandNode<S> extends CommandNode<S> {
13
+ private literal;
14
+ constructor(literal: string, command: Command<S>, requirement: Predicate<S>, redirect: CommandNode<S>, modifier: RedirectModifier<S> | null, forks: boolean);
15
+ getNodeType(): string;
16
+ getLiteral(): string;
17
+ getName(): string;
18
+ parse(reader: StringReader, contextBuilder: CommandContextBuilder<S>): void;
19
+ private __parse;
20
+ listSuggestions(context: CommandContext<S>, builder: SuggestionsBuilder): Promise<Suggestions>;
21
+ isValidInput(input: string): boolean;
22
+ equals(o: object): boolean;
23
+ getUsageText(): string;
24
+ createBuilder(): LiteralArgumentBuilder<S>;
25
+ getSortedKey(): string;
26
+ getExamples(): Iterable<string>;
27
+ toString(): string;
28
+ }
29
+ //# sourceMappingURL=LiteralCommandNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiteralCommandNode.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/LiteralCommandNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAC;AACxD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,sBAAsB,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,qBAAqB,MAAM,kCAAkC,CAAC;AAG1E,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,kBAAkB,MAAM,kCAAkC,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,kBAAkB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,OAAO,CAAS;gBAGpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EACzB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EACxB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,EACpC,KAAK,EAAE,OAAO;IAMX,WAAW,IAAI,MAAM;IAIrB,UAAU,IAAI,MAAM;IAIpB,OAAO,IAAI,MAAM;IAIjB,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAW3E,OAAO,CAAC,OAAO;IAgBR,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ9F,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIpC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAS1B,YAAY,IAAI,MAAM;IAItB,aAAa,IAAI,sBAAsB,CAAC,CAAC,CAAC;IAS1C,YAAY,IAAI,MAAM;IAItB,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC;IAI/B,QAAQ,IAAI,MAAM;CAG5B"}
@@ -0,0 +1,11 @@
1
+ import './CommandNode.es.js';
2
+ import '../StringReader.es.js';
3
+ export { a as default } from '../../LiteralArgumentBuilder-2hpX2C86.js';
4
+ import '../context/StringRange.es.js';
5
+ import '../../CommandSyntaxException-Dz8Qlq9d.js';
6
+ import '../suggestion/Suggestions.es.js';
7
+ import '../util/isEqual.es.js';
8
+ import '../LiteralMessage.es.js';
9
+ import '../builder/ArgumentBuilder.es.js';
10
+ import './RootCommandNode.es.js';
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl0ZXJhbENvbW1hbmROb2RlLmVzLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OyJ9
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const lib_tree_CommandNode = require('./CommandNode.cjs.js');
6
+ const lib_suggestion_Suggestions = require('../suggestion/Suggestions.cjs.js');
7
+ require('../util/isEqual.cjs.js');
8
+ require('../context/StringRange.cjs.js');
9
+
10
+ class RootCommandNode extends lib_tree_CommandNode.default {
11
+ constructor() {
12
+ super(
13
+ null,
14
+ (s) => true,
15
+ null,
16
+ (s) => s.getSource(),
17
+ false
18
+ );
19
+ }
20
+ getNodeType() {
21
+ return "root";
22
+ }
23
+ getName() {
24
+ return "";
25
+ }
26
+ getUsageText() {
27
+ return "";
28
+ }
29
+ parse(reader, contextBuilder) {
30
+ }
31
+ listSuggestions(context, builder) {
32
+ return lib_suggestion_Suggestions.default.empty();
33
+ }
34
+ isValidInput(input) {
35
+ return false;
36
+ }
37
+ equals(o) {
38
+ if (this === o)
39
+ return true;
40
+ if (!(o instanceof RootCommandNode))
41
+ return false;
42
+ return super.equals(o);
43
+ }
44
+ createBuilder() {
45
+ throw new Error("Cannot convert root into a builder");
46
+ }
47
+ getSortedKey() {
48
+ return "";
49
+ }
50
+ getExamples() {
51
+ return [];
52
+ }
53
+ toString() {
54
+ return "<root>";
55
+ }
56
+ }
57
+
58
+ exports.default = RootCommandNode;
59
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9vdENvbW1hbmROb2RlLmNqcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmVlL1Jvb3RDb21tYW5kTm9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbWFuZE5vZGUgZnJvbSAnLi9Db21tYW5kTm9kZSc7XG5pbXBvcnQgdHlwZSBTdHJpbmdSZWFkZXIgZnJvbSAnLi4vU3RyaW5nUmVhZGVyJztcbmltcG9ydCB0eXBlIEFyZ3VtZW50QnVpbGRlciBmcm9tICcuLi9idWlsZGVyL0FyZ3VtZW50QnVpbGRlcic7XG5pbXBvcnQgdHlwZSBDb21tYW5kQ29udGV4dCBmcm9tICcuLi9jb250ZXh0L0NvbW1hbmRDb250ZXh0JztcbmltcG9ydCB0eXBlIENvbW1hbmRDb250ZXh0QnVpbGRlciBmcm9tICcuLi9jb250ZXh0L0NvbW1hbmRDb250ZXh0QnVpbGRlcic7XG5pbXBvcnQgU3VnZ2VzdGlvbnMgZnJvbSAnLi4vc3VnZ2VzdGlvbi9TdWdnZXN0aW9ucyc7XG5pbXBvcnQgdHlwZSBTdWdnZXN0aW9uc0J1aWxkZXIgZnJvbSAnLi4vc3VnZ2VzdGlvbi9TdWdnZXN0aW9uc0J1aWxkZXInO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSb290Q29tbWFuZE5vZGU8Uz4gZXh0ZW5kcyBDb21tYW5kTm9kZTxTPiB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAocykgPT4gdHJ1ZSxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAoczogQ29tbWFuZENvbnRleHQ8Uz4pID0+IHMuZ2V0U291cmNlKCksXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXROb2RlVHlwZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ3Jvb3QnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXROYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VXNhZ2VUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgcGFyc2UocmVhZGVyOiBTdHJpbmdSZWFkZXIsIGNvbnRleHRCdWlsZGVyOiBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz4pIHt9XG5cbiAgICBwdWJsaWMgbGlzdFN1Z2dlc3Rpb25zKGNvbnRleHQ6IENvbW1hbmRDb250ZXh0PFM+LCBidWlsZGVyOiBTdWdnZXN0aW9uc0J1aWxkZXIpOiBQcm9taXNlPFN1Z2dlc3Rpb25zPiB7XG4gICAgICAgIHJldHVybiBTdWdnZXN0aW9ucy5lbXB0eSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1ZhbGlkSW5wdXQoaW5wdXQ6IFN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGVxdWFscyhvOiBvYmplY3QpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMgPT09IG8pIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAoIShvIGluc3RhbmNlb2YgUm9vdENvbW1hbmROb2RlKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiBzdXBlci5lcXVhbHMobyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZUJ1aWxkZXIoKTogQXJndW1lbnRCdWlsZGVyPFMsIGFueT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb252ZXJ0IHJvb3QgaW50byBhIGJ1aWxkZXInKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U29ydGVkS2V5KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RXhhbXBsZXMoKTogSXRlcmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICc8cm9vdD4nO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJDb21tYW5kTm9kZSIsIlN1Z2dlc3Rpb25zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFRQSxNQUFxQix3QkFBMkJBLDRCQUFlLENBQUE7QUFBQSxFQUNwRCxXQUFjLEdBQUE7QUFDakIsSUFBQSxLQUFBO0FBQUEsTUFDSSxJQUFBO0FBQUEsTUFDQSxDQUFDLENBQU0sS0FBQSxJQUFBO0FBQUEsTUFDUCxJQUFBO0FBQUEsTUFDQSxDQUFDLENBQXlCLEtBQUEsQ0FBQSxDQUFFLFNBQVUsRUFBQTtBQUFBLE1BQ3RDLEtBQUE7QUFBQSxLQUNKLENBQUE7QUFBQSxHQUNKO0FBQUEsRUFFTyxXQUFzQixHQUFBO0FBQ3pCLElBQU8sT0FBQSxNQUFBLENBQUE7QUFBQSxHQUNYO0FBQUEsRUFFTyxPQUFrQixHQUFBO0FBQ3JCLElBQU8sT0FBQSxFQUFBLENBQUE7QUFBQSxHQUNYO0FBQUEsRUFFTyxZQUF1QixHQUFBO0FBQzFCLElBQU8sT0FBQSxFQUFBLENBQUE7QUFBQSxHQUNYO0FBQUEsRUFFTyxLQUFBLENBQU0sUUFBc0IsY0FBMEMsRUFBQTtBQUFBLEdBQUM7QUFBQSxFQUV2RSxlQUFBLENBQWdCLFNBQTRCLE9BQW1ELEVBQUE7QUFDbEcsSUFBQSxPQUFPQyxtQ0FBWSxLQUFNLEVBQUEsQ0FBQTtBQUFBLEdBQzdCO0FBQUEsRUFFTyxhQUFhLEtBQXdCLEVBQUE7QUFDeEMsSUFBTyxPQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQ1g7QUFBQSxFQUVPLE9BQU8sQ0FBb0IsRUFBQTtBQUM5QixJQUFBLElBQUksSUFBUyxLQUFBLENBQUE7QUFBRyxNQUFPLE9BQUEsSUFBQSxDQUFBO0FBQ3ZCLElBQUEsSUFBSSxFQUFFLENBQWEsWUFBQSxlQUFBLENBQUE7QUFBa0IsTUFBTyxPQUFBLEtBQUEsQ0FBQTtBQUU1QyxJQUFPLE9BQUEsS0FBQSxDQUFNLE9BQU8sQ0FBQyxDQUFBLENBQUE7QUFBQSxHQUN6QjtBQUFBLEVBRU8sYUFBeUMsR0FBQTtBQUM1QyxJQUFNLE1BQUEsSUFBSSxNQUFNLG9DQUFvQyxDQUFBLENBQUE7QUFBQSxHQUN4RDtBQUFBLEVBRU8sWUFBdUIsR0FBQTtBQUMxQixJQUFPLE9BQUEsRUFBQSxDQUFBO0FBQUEsR0FDWDtBQUFBLEVBRU8sV0FBZ0MsR0FBQTtBQUNuQyxJQUFBLE9BQU8sRUFBQyxDQUFBO0FBQUEsR0FDWjtBQUFBLEVBRU8sUUFBbUIsR0FBQTtBQUN0QixJQUFPLE9BQUEsUUFBQSxDQUFBO0FBQUEsR0FDWDtBQUNKOzs7OyJ9
@@ -0,0 +1,23 @@
1
+ import { default as SuggestionsBuilder } from '../suggestion/SuggestionsBuilder';
2
+ import { default as Suggestions } from '../suggestion/Suggestions';
3
+ import { default as CommandContextBuilder } from '../context/CommandContextBuilder';
4
+ import { default as CommandContext } from '../context/CommandContext';
5
+ import { default as ArgumentBuilder } from '../builder/ArgumentBuilder';
6
+ import { default as StringReader } from '../StringReader';
7
+ import { default as CommandNode } from './CommandNode';
8
+
9
+ export default class RootCommandNode<S> extends CommandNode<S> {
10
+ constructor();
11
+ getNodeType(): string;
12
+ getName(): string;
13
+ getUsageText(): string;
14
+ parse(reader: StringReader, contextBuilder: CommandContextBuilder<S>): void;
15
+ listSuggestions(context: CommandContext<S>, builder: SuggestionsBuilder): Promise<Suggestions>;
16
+ isValidInput(input: String): boolean;
17
+ equals(o: object): boolean;
18
+ createBuilder(): ArgumentBuilder<S, any>;
19
+ getSortedKey(): string;
20
+ getExamples(): Iterable<string>;
21
+ toString(): string;
22
+ }
23
+ //# sourceMappingURL=RootCommandNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RootCommandNode.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/RootCommandNode.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,qBAAqB,MAAM,kCAAkC,CAAC;AAC1E,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,kBAAkB,MAAM,kCAAkC,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,eAAe,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;;IAWnD,WAAW,IAAI,MAAM;IAIrB,OAAO,IAAI,MAAM;IAIjB,YAAY,IAAI,MAAM;IAItB,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAEpE,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IAI9F,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIpC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAO1B,aAAa,IAAI,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC;IAIxC,YAAY,IAAI,MAAM;IAItB,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC;IAI/B,QAAQ,IAAI,MAAM;CAG5B"}
@@ -0,0 +1,55 @@
1
+ import CommandNode from './CommandNode.es.js';
2
+ import Suggestions from '../suggestion/Suggestions.es.js';
3
+ import '../util/isEqual.es.js';
4
+ import '../context/StringRange.es.js';
5
+
6
+ class RootCommandNode extends CommandNode {
7
+ constructor() {
8
+ super(
9
+ null,
10
+ (s) => true,
11
+ null,
12
+ (s) => s.getSource(),
13
+ false
14
+ );
15
+ }
16
+ getNodeType() {
17
+ return "root";
18
+ }
19
+ getName() {
20
+ return "";
21
+ }
22
+ getUsageText() {
23
+ return "";
24
+ }
25
+ parse(reader, contextBuilder) {
26
+ }
27
+ listSuggestions(context, builder) {
28
+ return Suggestions.empty();
29
+ }
30
+ isValidInput(input) {
31
+ return false;
32
+ }
33
+ equals(o) {
34
+ if (this === o)
35
+ return true;
36
+ if (!(o instanceof RootCommandNode))
37
+ return false;
38
+ return super.equals(o);
39
+ }
40
+ createBuilder() {
41
+ throw new Error("Cannot convert root into a builder");
42
+ }
43
+ getSortedKey() {
44
+ return "";
45
+ }
46
+ getExamples() {
47
+ return [];
48
+ }
49
+ toString() {
50
+ return "<root>";
51
+ }
52
+ }
53
+
54
+ export { RootCommandNode as default };
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9vdENvbW1hbmROb2RlLmVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyZWUvUm9vdENvbW1hbmROb2RlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tYW5kTm9kZSBmcm9tICcuL0NvbW1hbmROb2RlJztcbmltcG9ydCB0eXBlIFN0cmluZ1JlYWRlciBmcm9tICcuLi9TdHJpbmdSZWFkZXInO1xuaW1wb3J0IHR5cGUgQXJndW1lbnRCdWlsZGVyIGZyb20gJy4uL2J1aWxkZXIvQXJndW1lbnRCdWlsZGVyJztcbmltcG9ydCB0eXBlIENvbW1hbmRDb250ZXh0IGZyb20gJy4uL2NvbnRleHQvQ29tbWFuZENvbnRleHQnO1xuaW1wb3J0IHR5cGUgQ29tbWFuZENvbnRleHRCdWlsZGVyIGZyb20gJy4uL2NvbnRleHQvQ29tbWFuZENvbnRleHRCdWlsZGVyJztcbmltcG9ydCBTdWdnZXN0aW9ucyBmcm9tICcuLi9zdWdnZXN0aW9uL1N1Z2dlc3Rpb25zJztcbmltcG9ydCB0eXBlIFN1Z2dlc3Rpb25zQnVpbGRlciBmcm9tICcuLi9zdWdnZXN0aW9uL1N1Z2dlc3Rpb25zQnVpbGRlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvb3RDb21tYW5kTm9kZTxTPiBleHRlbmRzIENvbW1hbmROb2RlPFM+IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIChzKSA9PiB0cnVlLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIChzOiBDb21tYW5kQ29udGV4dDxTPikgPT4gcy5nZXRTb3VyY2UoKSxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5vZGVUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAncm9vdCc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRVc2FnZVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBwYXJzZShyZWFkZXI6IFN0cmluZ1JlYWRlciwgY29udGV4dEJ1aWxkZXI6IENvbW1hbmRDb250ZXh0QnVpbGRlcjxTPikge31cblxuICAgIHB1YmxpYyBsaXN0U3VnZ2VzdGlvbnMoY29udGV4dDogQ29tbWFuZENvbnRleHQ8Uz4sIGJ1aWxkZXI6IFN1Z2dlc3Rpb25zQnVpbGRlcik6IFByb21pc2U8U3VnZ2VzdGlvbnM+IHtcbiAgICAgICAgcmV0dXJuIFN1Z2dlc3Rpb25zLmVtcHR5KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzVmFsaWRJbnB1dChpbnB1dDogU3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXF1YWxzKG86IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcyA9PT0gbykgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmICghKG8gaW5zdGFuY2VvZiBSb290Q29tbWFuZE5vZGUpKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuIHN1cGVyLmVxdWFscyhvKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlQnVpbGRlcigpOiBBcmd1bWVudEJ1aWxkZXI8UywgYW55PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNvbnZlcnQgcm9vdCBpbnRvIGEgYnVpbGRlcicpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTb3J0ZWRLZXkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFeGFtcGxlcygpOiBJdGVyYWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJzxyb290Pic7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBUUEsTUFBcUIsd0JBQTJCLFdBQWUsQ0FBQTtBQUFBLEVBQ3BELFdBQWMsR0FBQTtBQUNqQixJQUFBLEtBQUE7QUFBQSxNQUNJLElBQUE7QUFBQSxNQUNBLENBQUMsQ0FBTSxLQUFBLElBQUE7QUFBQSxNQUNQLElBQUE7QUFBQSxNQUNBLENBQUMsQ0FBeUIsS0FBQSxDQUFBLENBQUUsU0FBVSxFQUFBO0FBQUEsTUFDdEMsS0FBQTtBQUFBLEtBQ0osQ0FBQTtBQUFBLEdBQ0o7QUFBQSxFQUVPLFdBQXNCLEdBQUE7QUFDekIsSUFBTyxPQUFBLE1BQUEsQ0FBQTtBQUFBLEdBQ1g7QUFBQSxFQUVPLE9BQWtCLEdBQUE7QUFDckIsSUFBTyxPQUFBLEVBQUEsQ0FBQTtBQUFBLEdBQ1g7QUFBQSxFQUVPLFlBQXVCLEdBQUE7QUFDMUIsSUFBTyxPQUFBLEVBQUEsQ0FBQTtBQUFBLEdBQ1g7QUFBQSxFQUVPLEtBQUEsQ0FBTSxRQUFzQixjQUEwQyxFQUFBO0FBQUEsR0FBQztBQUFBLEVBRXZFLGVBQUEsQ0FBZ0IsU0FBNEIsT0FBbUQsRUFBQTtBQUNsRyxJQUFBLE9BQU8sWUFBWSxLQUFNLEVBQUEsQ0FBQTtBQUFBLEdBQzdCO0FBQUEsRUFFTyxhQUFhLEtBQXdCLEVBQUE7QUFDeEMsSUFBTyxPQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQ1g7QUFBQSxFQUVPLE9BQU8sQ0FBb0IsRUFBQTtBQUM5QixJQUFBLElBQUksSUFBUyxLQUFBLENBQUE7QUFBRyxNQUFPLE9BQUEsSUFBQSxDQUFBO0FBQ3ZCLElBQUEsSUFBSSxFQUFFLENBQWEsWUFBQSxlQUFBLENBQUE7QUFBa0IsTUFBTyxPQUFBLEtBQUEsQ0FBQTtBQUU1QyxJQUFPLE9BQUEsS0FBQSxDQUFNLE9BQU8sQ0FBQyxDQUFBLENBQUE7QUFBQSxHQUN6QjtBQUFBLEVBRU8sYUFBeUMsR0FBQTtBQUM1QyxJQUFNLE1BQUEsSUFBSSxNQUFNLG9DQUFvQyxDQUFBLENBQUE7QUFBQSxHQUN4RDtBQUFBLEVBRU8sWUFBdUIsR0FBQTtBQUMxQixJQUFPLE9BQUEsRUFBQSxDQUFBO0FBQUEsR0FDWDtBQUFBLEVBRU8sV0FBZ0MsR0FBQTtBQUNuQyxJQUFBLE9BQU8sRUFBQyxDQUFBO0FBQUEsR0FDWjtBQUFBLEVBRU8sUUFBbUIsR0FBQTtBQUN0QixJQUFPLE9BQUEsUUFBQSxDQUFBO0FBQUEsR0FDWDtBQUNKOzs7OyJ9