@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.
- package/CHANGELOG.md +29 -0
- package/LICENSE +21 -21
- package/README.md +85 -81
- package/dist/CommandSyntaxException-BKBHJvxr.cjs +173 -0
- package/dist/CommandSyntaxException-Dz8Qlq9d.js +168 -0
- package/dist/LiteralArgumentBuilder-2hpX2C86.js +121 -0
- package/dist/LiteralArgumentBuilder-s6PUMmST.cjs +125 -0
- package/dist/RequiredArgumentBuilder-D105occO.js +144 -0
- package/dist/RequiredArgumentBuilder-DMJ4kl0u.cjs +148 -0
- package/dist/index.cjs.js +63 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.es.js +31 -0
- package/dist/lib/AmbiguityConsumer.cjs.js +3 -0
- package/dist/lib/AmbiguityConsumer.d.ts +6 -0
- package/dist/lib/AmbiguityConsumer.d.ts.map +1 -0
- package/dist/lib/AmbiguityConsumer.es.js +2 -0
- package/dist/lib/Command.cjs.js +3 -0
- package/dist/lib/Command.d.ts +6 -0
- package/dist/lib/Command.d.ts.map +1 -0
- package/dist/lib/Command.es.js +2 -0
- package/dist/lib/CommandDispatcher.cjs.js +369 -0
- package/dist/lib/CommandDispatcher.d.ts +31 -0
- package/dist/lib/CommandDispatcher.d.ts.map +1 -0
- package/dist/lib/CommandDispatcher.es.js +365 -0
- package/dist/lib/ImmutableStringReader.cjs.js +3 -0
- package/dist/lib/ImmutableStringReader.d.ts +13 -0
- package/dist/lib/ImmutableStringReader.d.ts.map +1 -0
- package/dist/lib/ImmutableStringReader.es.js +2 -0
- package/dist/lib/LiteralMessage.cjs.js +19 -0
- package/dist/lib/LiteralMessage.d.ts +9 -0
- package/dist/lib/LiteralMessage.d.ts.map +1 -0
- package/dist/lib/LiteralMessage.es.js +15 -0
- package/dist/lib/Message.cjs.js +3 -0
- package/dist/lib/Message.d.ts +4 -0
- package/dist/lib/Message.d.ts.map +1 -0
- package/dist/lib/Message.es.js +2 -0
- package/dist/lib/ParseResults.cjs.js +30 -0
- package/dist/lib/ParseResults.d.ts +15 -0
- package/dist/lib/ParseResults.d.ts.map +1 -0
- package/dist/lib/ParseResults.es.js +26 -0
- package/dist/lib/Predicate.cjs.js +3 -0
- package/dist/lib/Predicate.d.ts +4 -0
- package/dist/lib/Predicate.d.ts.map +1 -0
- package/dist/lib/Predicate.es.js +2 -0
- package/dist/lib/RedirectModifier.cjs.js +3 -0
- package/dist/lib/RedirectModifier.d.ts +6 -0
- package/dist/lib/RedirectModifier.d.ts.map +1 -0
- package/dist/lib/RedirectModifier.es.js +2 -0
- package/dist/lib/ResultConsumer.cjs.js +3 -0
- package/dist/lib/ResultConsumer.d.ts +6 -0
- package/dist/lib/ResultConsumer.d.ts.map +1 -0
- package/dist/lib/ResultConsumer.es.js +2 -0
- package/dist/lib/SingleRedirectModifier.cjs.js +3 -0
- package/dist/lib/SingleRedirectModifier.d.ts +6 -0
- package/dist/lib/SingleRedirectModifier.d.ts.map +1 -0
- package/dist/lib/SingleRedirectModifier.es.js +2 -0
- package/dist/lib/StringReader.cjs.js +164 -0
- package/dist/lib/StringReader.d.ts +29 -0
- package/dist/lib/StringReader.d.ts.map +1 -0
- package/dist/lib/StringReader.es.js +160 -0
- package/dist/lib/arguments/ArgumentType.cjs.js +23 -0
- package/dist/lib/arguments/ArgumentType.d.ts +23 -0
- package/dist/lib/arguments/ArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/ArgumentType.es.js +19 -0
- package/dist/lib/arguments/BoolArgumentType.cjs.js +33 -0
- package/dist/lib/arguments/BoolArgumentType.d.ts +15 -0
- package/dist/lib/arguments/BoolArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/BoolArgumentType.es.js +29 -0
- package/dist/lib/arguments/FloatArgumentType.cjs.js +71 -0
- package/dist/lib/arguments/FloatArgumentType.d.ts +18 -0
- package/dist/lib/arguments/FloatArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/FloatArgumentType.es.js +67 -0
- package/dist/lib/arguments/IntegerArgumentType.cjs.js +71 -0
- package/dist/lib/arguments/IntegerArgumentType.d.ts +18 -0
- package/dist/lib/arguments/IntegerArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/IntegerArgumentType.es.js +67 -0
- package/dist/lib/arguments/StringArgumentType.cjs.js +73 -0
- package/dist/lib/arguments/StringArgumentType.d.ts +23 -0
- package/dist/lib/arguments/StringArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/StringArgumentType.es.js +68 -0
- package/dist/lib/builder/ArgumentBuilder.cjs.js +72 -0
- package/dist/lib/builder/ArgumentBuilder.d.ts +30 -0
- package/dist/lib/builder/ArgumentBuilder.d.ts.map +1 -0
- package/dist/lib/builder/ArgumentBuilder.es.js +68 -0
- package/dist/lib/builder/LiteralArgumentBuilder.cjs.js +20 -0
- package/dist/lib/builder/LiteralArgumentBuilder.d.ts +13 -0
- package/dist/lib/builder/LiteralArgumentBuilder.d.ts.map +1 -0
- package/dist/lib/builder/LiteralArgumentBuilder.es.js +11 -0
- package/dist/lib/builder/RequiredArgumentBuilder.cjs.js +21 -0
- package/dist/lib/builder/RequiredArgumentBuilder.d.ts +20 -0
- package/dist/lib/builder/RequiredArgumentBuilder.d.ts.map +1 -0
- package/dist/lib/builder/RequiredArgumentBuilder.es.js +12 -0
- package/dist/lib/context/CommandContext.cjs.js +117 -0
- package/dist/lib/context/CommandContext.d.ts +35 -0
- package/dist/lib/context/CommandContext.d.ts.map +1 -0
- package/dist/lib/context/CommandContext.es.js +113 -0
- package/dist/lib/context/CommandContextBuilder.cjs.js +142 -0
- package/dist/lib/context/CommandContextBuilder.d.ts +40 -0
- package/dist/lib/context/CommandContextBuilder.d.ts.map +1 -0
- package/dist/lib/context/CommandContextBuilder.es.js +138 -0
- package/dist/lib/context/ParsedArgument.cjs.js +30 -0
- package/dist/lib/context/ParsedArgument.d.ts +11 -0
- package/dist/lib/context/ParsedArgument.d.ts.map +1 -0
- package/dist/lib/context/ParsedArgument.es.js +26 -0
- package/dist/lib/context/ParsedCommandNode.cjs.js +32 -0
- package/dist/lib/context/ParsedCommandNode.d.ts +13 -0
- package/dist/lib/context/ParsedCommandNode.d.ts.map +1 -0
- package/dist/lib/context/ParsedCommandNode.es.js +28 -0
- package/dist/lib/context/StringRange.cjs.js +52 -0
- package/dist/lib/context/StringRange.d.ts +18 -0
- package/dist/lib/context/StringRange.d.ts.map +1 -0
- package/dist/lib/context/StringRange.es.js +48 -0
- package/dist/lib/context/SuggestionContext.cjs.js +15 -0
- package/dist/lib/context/SuggestionContext.d.ts +8 -0
- package/dist/lib/context/SuggestionContext.d.ts.map +1 -0
- package/dist/lib/context/SuggestionContext.es.js +11 -0
- package/dist/lib/exceptions/BuiltInExceptionProvider.cjs.js +3 -0
- package/dist/lib/exceptions/BuiltInExceptionProvider.d.ts +25 -0
- package/dist/lib/exceptions/BuiltInExceptionProvider.d.ts.map +1 -0
- package/dist/lib/exceptions/BuiltInExceptionProvider.es.js +2 -0
- package/dist/lib/exceptions/BuiltInExceptions.cjs.js +11 -0
- package/dist/lib/exceptions/BuiltInExceptions.d.ts +45 -0
- package/dist/lib/exceptions/BuiltInExceptions.d.ts.map +1 -0
- package/dist/lib/exceptions/BuiltInExceptions.es.js +3 -0
- package/dist/lib/exceptions/CommandExceptionType.cjs.js +3 -0
- package/dist/lib/exceptions/CommandExceptionType.d.ts +3 -0
- package/dist/lib/exceptions/CommandExceptionType.d.ts.map +1 -0
- package/dist/lib/exceptions/CommandExceptionType.es.js +2 -0
- package/dist/lib/exceptions/CommandSyntaxException.cjs.js +11 -0
- package/dist/lib/exceptions/CommandSyntaxException.d.ts +21 -0
- package/dist/lib/exceptions/CommandSyntaxException.d.ts.map +1 -0
- package/dist/lib/exceptions/CommandSyntaxException.es.js +3 -0
- package/dist/lib/exceptions/DynamicCommandExceptionType.cjs.js +11 -0
- package/dist/lib/exceptions/DynamicCommandExceptionType.d.ts +12 -0
- package/dist/lib/exceptions/DynamicCommandExceptionType.d.ts.map +1 -0
- package/dist/lib/exceptions/DynamicCommandExceptionType.es.js +3 -0
- package/dist/lib/exceptions/SimpleCommandExceptionType.cjs.js +11 -0
- package/dist/lib/exceptions/SimpleCommandExceptionType.d.ts +13 -0
- package/dist/lib/exceptions/SimpleCommandExceptionType.d.ts.map +1 -0
- package/dist/lib/exceptions/SimpleCommandExceptionType.es.js +3 -0
- package/dist/lib/suggestion/IntegerSuggestion.cjs.js +39 -0
- package/dist/lib/suggestion/IntegerSuggestion.d.ts +14 -0
- package/dist/lib/suggestion/IntegerSuggestion.d.ts.map +1 -0
- package/dist/lib/suggestion/IntegerSuggestion.es.js +35 -0
- package/dist/lib/suggestion/Suggestion.cjs.js +72 -0
- package/dist/lib/suggestion/Suggestion.d.ts +19 -0
- package/dist/lib/suggestion/Suggestion.d.ts.map +1 -0
- package/dist/lib/suggestion/Suggestion.es.js +68 -0
- package/dist/lib/suggestion/SuggestionProvider.cjs.js +3 -0
- package/dist/lib/suggestion/SuggestionProvider.d.ts +8 -0
- package/dist/lib/suggestion/SuggestionProvider.d.ts.map +1 -0
- package/dist/lib/suggestion/SuggestionProvider.es.js +2 -0
- package/dist/lib/suggestion/Suggestions.cjs.js +71 -0
- package/dist/lib/suggestion/Suggestions.d.ts +18 -0
- package/dist/lib/suggestion/Suggestions.d.ts.map +1 -0
- package/dist/lib/suggestion/Suggestions.es.js +67 -0
- package/dist/lib/suggestion/SuggestionsBuilder.cjs.js +59 -0
- package/dist/lib/suggestion/SuggestionsBuilder.d.ts +20 -0
- package/dist/lib/suggestion/SuggestionsBuilder.d.ts.map +1 -0
- package/dist/lib/suggestion/SuggestionsBuilder.es.js +55 -0
- package/dist/lib/tree/ArgumentCommandNode.cjs.js +20 -0
- package/dist/lib/tree/ArgumentCommandNode.d.ts +33 -0
- package/dist/lib/tree/ArgumentCommandNode.d.ts.map +1 -0
- package/dist/lib/tree/ArgumentCommandNode.es.js +12 -0
- package/dist/lib/tree/CommandNode.cjs.js +133 -0
- package/dist/lib/tree/CommandNode.d.ts +47 -0
- package/dist/lib/tree/CommandNode.d.ts.map +1 -0
- package/dist/lib/tree/CommandNode.es.js +129 -0
- package/dist/lib/tree/LiteralCommandNode.cjs.js +19 -0
- package/dist/lib/tree/LiteralCommandNode.d.ts +29 -0
- package/dist/lib/tree/LiteralCommandNode.d.ts.map +1 -0
- package/dist/lib/tree/LiteralCommandNode.es.js +11 -0
- package/dist/lib/tree/RootCommandNode.cjs.js +59 -0
- package/dist/lib/tree/RootCommandNode.d.ts +23 -0
- package/dist/lib/tree/RootCommandNode.d.ts.map +1 -0
- package/dist/lib/tree/RootCommandNode.es.js +55 -0
- package/dist/lib/util/isEqual.cjs.js +59 -0
- package/dist/lib/util/isEqual.d.ts +2 -0
- package/dist/lib/util/isEqual.d.ts.map +1 -0
- package/dist/lib/util/isEqual.es.js +55 -0
- package/package.json +40 -41
- package/dist/index.js +0 -82
- package/dist/index.js.map +0 -1
- package/dist/lib/AmbiguityConsumer.js +0 -3
- package/dist/lib/AmbiguityConsumer.js.map +0 -1
- package/dist/lib/Command.js +0 -3
- package/dist/lib/Command.js.map +0 -1
- package/dist/lib/CommandDispatcher.js +0 -360
- package/dist/lib/CommandDispatcher.js.map +0 -1
- package/dist/lib/ImmutableStringReader.js +0 -3
- package/dist/lib/ImmutableStringReader.js.map +0 -1
- package/dist/lib/LiteralMessage.js +0 -15
- package/dist/lib/LiteralMessage.js.map +0 -1
- package/dist/lib/Message.js +0 -3
- package/dist/lib/Message.js.map +0 -1
- package/dist/lib/ParseResults.js +0 -24
- package/dist/lib/ParseResults.js.map +0 -1
- package/dist/lib/Predicate.js +0 -3
- package/dist/lib/Predicate.js.map +0 -1
- package/dist/lib/RedirectModifier.js +0 -3
- package/dist/lib/RedirectModifier.js.map +0 -1
- package/dist/lib/ResultConsumer.js +0 -3
- package/dist/lib/ResultConsumer.js.map +0 -1
- package/dist/lib/SingleRedirectModifier.js +0 -3
- package/dist/lib/SingleRedirectModifier.js.map +0 -1
- package/dist/lib/StringReader.js +0 -176
- package/dist/lib/StringReader.js.map +0 -1
- package/dist/lib/arguments/ArgumentType.js +0 -19
- package/dist/lib/arguments/ArgumentType.js.map +0 -1
- package/dist/lib/arguments/BoolArgumentType.js +0 -30
- package/dist/lib/arguments/BoolArgumentType.js.map +0 -1
- package/dist/lib/arguments/FloatArgumentType.js +0 -61
- package/dist/lib/arguments/FloatArgumentType.js.map +0 -1
- package/dist/lib/arguments/IntegerArgumentType.js +0 -61
- package/dist/lib/arguments/IntegerArgumentType.js.map +0 -1
- package/dist/lib/arguments/StringArgumentType.js +0 -71
- package/dist/lib/arguments/StringArgumentType.js.map +0 -1
- package/dist/lib/builder/ArgumentBuilder.js +0 -66
- package/dist/lib/builder/ArgumentBuilder.js.map +0 -1
- package/dist/lib/builder/LiteralArgumentBuilder.js +0 -33
- package/dist/lib/builder/LiteralArgumentBuilder.js.map +0 -1
- package/dist/lib/builder/RequiredArgumentBuilder.js +0 -44
- package/dist/lib/builder/RequiredArgumentBuilder.js.map +0 -1
- package/dist/lib/context/CommandContext.js +0 -96
- package/dist/lib/context/CommandContext.js.map +0 -1
- package/dist/lib/context/CommandContextBuilder.js +0 -120
- package/dist/lib/context/CommandContextBuilder.js.map +0 -1
- package/dist/lib/context/ParsedArgument.js +0 -27
- package/dist/lib/context/ParsedArgument.js.map +0 -1
- package/dist/lib/context/ParsedCommandNode.js +0 -27
- package/dist/lib/context/ParsedCommandNode.js.map +0 -1
- package/dist/lib/context/StringRange.js +0 -47
- package/dist/lib/context/StringRange.js.map +0 -1
- package/dist/lib/context/SuggestionContext.js +0 -10
- package/dist/lib/context/SuggestionContext.js.map +0 -1
- package/dist/lib/exceptions/BuiltInExceptionProvider.js +0 -3
- package/dist/lib/exceptions/BuiltInExceptionProvider.js.map +0 -1
- package/dist/lib/exceptions/BuiltInExceptions.js +0 -88
- package/dist/lib/exceptions/BuiltInExceptions.js.map +0 -1
- package/dist/lib/exceptions/CommandExceptionType.js +0 -3
- package/dist/lib/exceptions/CommandExceptionType.js.map +0 -1
- package/dist/lib/exceptions/CommandSyntaxException.js +0 -57
- package/dist/lib/exceptions/CommandSyntaxException.js.map +0 -1
- package/dist/lib/exceptions/DynamicCommandExceptionType.js +0 -20
- package/dist/lib/exceptions/DynamicCommandExceptionType.js.map +0 -1
- package/dist/lib/exceptions/SimpleCommandExceptionType.js +0 -23
- package/dist/lib/exceptions/SimpleCommandExceptionType.js.map +0 -1
- package/dist/lib/suggestion/IntegerSuggestion.js +0 -41
- package/dist/lib/suggestion/IntegerSuggestion.js.map +0 -1
- package/dist/lib/suggestion/Suggestion.js +0 -72
- package/dist/lib/suggestion/Suggestion.js.map +0 -1
- package/dist/lib/suggestion/SuggestionProvider.js +0 -3
- package/dist/lib/suggestion/SuggestionProvider.js.map +0 -1
- package/dist/lib/suggestion/Suggestions.js +0 -71
- package/dist/lib/suggestion/Suggestions.js.map +0 -1
- package/dist/lib/suggestion/SuggestionsBuilder.js +0 -54
- package/dist/lib/suggestion/SuggestionsBuilder.js.map +0 -1
- package/dist/lib/tree/ArgumentCommandNode.js +0 -97
- package/dist/lib/tree/ArgumentCommandNode.js.map +0 -1
- package/dist/lib/tree/CommandNode.js +0 -134
- package/dist/lib/tree/CommandNode.js.map +0 -1
- package/dist/lib/tree/LiteralCommandNode.js +0 -93
- package/dist/lib/tree/LiteralCommandNode.js.map +0 -1
- package/dist/lib/tree/RootCommandNode.js +0 -50
- package/dist/lib/tree/RootCommandNode.js.map +0 -1
- package/dist/lib/util/isEqual.js +0 -57
- package/dist/lib/util/isEqual.js.map +0 -1
- 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
|