@shell-shock/preset-script 0.2.0 → 0.2.1
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/README.md +2 -2
- package/dist/components/args-parser-logic.d.cts +7 -7
- package/dist/components/args-parser-logic.d.cts.map +1 -1
- package/dist/components/command-entry.d.cts +4 -4
- package/dist/components/command-router.cjs +3 -5
- package/dist/components/command-router.cjs.map +1 -1
- package/dist/components/command-router.mjs +3 -5
- package/dist/components/command-router.mjs.map +1 -1
- package/dist/components/console-builtin.cjs +69 -49
- package/dist/components/console-builtin.cjs.map +1 -1
- package/dist/components/console-builtin.d.cts.map +1 -1
- package/dist/components/console-builtin.d.mts.map +1 -1
- package/dist/components/console-builtin.mjs +69 -49
- package/dist/components/console-builtin.mjs.map +1 -1
- package/dist/components/help.cjs +33 -21
- package/dist/components/help.cjs.map +1 -1
- package/dist/components/help.d.cts +19 -11
- package/dist/components/help.d.cts.map +1 -1
- package/dist/components/help.d.mts +19 -11
- package/dist/components/help.d.mts.map +1 -1
- package/dist/components/help.mjs +34 -22
- package/dist/components/help.mjs.map +1 -1
- package/dist/components/index.d.cts +2 -2
- package/dist/components/index.d.mts +2 -2
- package/dist/components/utils-builtin.d.cts +7 -7
- package/dist/components/utils-builtin.d.mts +7 -7
- package/dist/components/virtual-command-entry.d.cts +3 -3
- package/dist/components/virtual-command-entry.d.cts.map +1 -1
- package/dist/index.cjs +91 -71
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +92 -72
- package/dist/index.mjs.map +1 -1
- package/dist/types/plugin.d.mts.map +1 -1
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ This package is part of the ⚡<b>Shell Shock</b> monorepo. The Shell Shock pack
|
|
|
27
27
|
|
|
28
28
|
<h3 align="center">💻 Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3><br />
|
|
29
29
|
|
|
30
|
-
[](https://stormsoftware.com/projects/shell-shock/) [](http://commitizen.github.io/cz-cli/)  
|
|
31
31
|
|
|
32
32
|
<!-- prettier-ignore-start -->
|
|
33
33
|
<!-- markdownlint-disable -->
|
|
@@ -247,7 +247,7 @@ generation of development tools, please reach out on our
|
|
|
247
247
|
|
|
248
248
|
<br />
|
|
249
249
|
|
|
250
|
-
<div align="center"><a href="https://stormsoftware.com" target="_blank"><img src="https://public.storm-cdn.com/icon-fill.png" alt="Storm Software" width="200px"/></a></div>
|
|
250
|
+
<div align="center"><a href="https://stormsoftware.com" target="_blank"><img src="https://public.storm-cdn.com/storm-software/icon-circle-fill-dark.png" alt="Storm Software" width="200px"/></a></div>
|
|
251
251
|
<br />
|
|
252
252
|
<div align="center"><a href="https://stormsoftware.com" target="_blank"><img src="https://public.storm-cdn.com/visit-us-text.svg" alt="Visit us at stormsoftware.com" height="90px"/></a></div>
|
|
253
253
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _alloy_js_core14 from "@alloy-js/core";
|
|
2
2
|
import { CommandOption, CommandParam, CommandTree, CommandTreePath } from "@shell-shock/core/types/command";
|
|
3
3
|
|
|
4
4
|
//#region src/components/args-parser-logic.d.ts
|
|
5
5
|
declare function VariablePathsParserLogic(props: {
|
|
6
6
|
path: CommandTreePath;
|
|
7
|
-
}):
|
|
7
|
+
}): _alloy_js_core14.Children;
|
|
8
8
|
/**
|
|
9
9
|
* The command parameter parser logic.
|
|
10
10
|
*/
|
|
11
11
|
declare function ParamsParserLogic(props: {
|
|
12
12
|
params: CommandParam[];
|
|
13
|
-
}):
|
|
13
|
+
}): _alloy_js_core14.Children;
|
|
14
14
|
/**
|
|
15
15
|
* The command option interface property.
|
|
16
16
|
*/
|
|
@@ -20,7 +20,7 @@ declare function OptionsMember({
|
|
|
20
20
|
}: {
|
|
21
21
|
name: string;
|
|
22
22
|
option: CommandOption;
|
|
23
|
-
}):
|
|
23
|
+
}): _alloy_js_core14.Children;
|
|
24
24
|
/**
|
|
25
25
|
* The command option property parser logic.
|
|
26
26
|
*/
|
|
@@ -30,16 +30,16 @@ declare function OptionsMemberParserLogic({
|
|
|
30
30
|
}: {
|
|
31
31
|
name: string;
|
|
32
32
|
option: CommandOption;
|
|
33
|
-
}):
|
|
33
|
+
}): _alloy_js_core14.Children;
|
|
34
34
|
declare function OptionsInterfaceDeclaration(props: {
|
|
35
35
|
command: CommandTree;
|
|
36
|
-
}):
|
|
36
|
+
}): _alloy_js_core14.Children;
|
|
37
37
|
/**
|
|
38
38
|
* The command options parser logic.
|
|
39
39
|
*/
|
|
40
40
|
declare function OptionsParserLogic(props: {
|
|
41
41
|
command: CommandTree;
|
|
42
|
-
}):
|
|
42
|
+
}): _alloy_js_core14.Children;
|
|
43
43
|
//#endregion
|
|
44
44
|
export { OptionsInterfaceDeclaration, OptionsMember, OptionsMemberParserLogic, OptionsParserLogic, ParamsParserLogic, VariablePathsParserLogic };
|
|
45
45
|
//# sourceMappingURL=args-parser-logic.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args-parser-logic.d.cts","names":[],"sources":["../../src/components/args-parser-logic.tsx"],"sourcesContent":[],"mappings":";;;;iBAiDgB,wBAAA;QAAwC;IAAe,
|
|
1
|
+
{"version":3,"file":"args-parser-logic.d.cts","names":[],"sources":["../../src/components/args-parser-logic.tsx"],"sourcesContent":[],"mappings":";;;;iBAiDgB,wBAAA;QAAwC;IAAe,gBAAA,CAAE;AAAzE;AAsDA;AA4EA;AACE,iBA7Ec,iBAAA,CA6Ed,KAAA,EAAA;EACA,MAAA,EA9EiD,YA8EjD,EAAA;CAGQ,CAAA,EAjFqD,gBAAA,CAAI,QAiFzD;;;AAoEV;AACE,iBA1Ec,aAAA,CA0Ed;EAAA,IAAA;EAAA;CAAA,EAAA;EACA,IAAA,EAAA,MAAA;EAGQ,MAAA,EAzEA,aAyEA;CAAa,CAAA,EAzEA,gBAAA,CACtB,QAyEA;;AAuND;AAeA;iBA5OgB,wBAAA;;;;;UAKN;IAAa,gBAAA,CACtB;iBAuNe,2BAAA;WAA8C;IAAW,gBAAA,CAAE;;;;iBAe3D,kBAAA;WAAqC;IAAW,gBAAA,CAAE"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _alloy_js_core11 from "@alloy-js/core";
|
|
2
2
|
import { CommandTree } from "@shell-shock/core/types/command";
|
|
3
3
|
import { EntryFileProps } from "@powerlines/plugin-alloy/typescript/components/entry-file";
|
|
4
4
|
|
|
5
5
|
//#region src/components/command-entry.d.ts
|
|
6
6
|
declare function CommandInvocation(props: {
|
|
7
7
|
command: CommandTree;
|
|
8
|
-
}):
|
|
8
|
+
}): _alloy_js_core11.Children;
|
|
9
9
|
/**
|
|
10
10
|
* A component that generates the `handler` function declaration for a command.
|
|
11
11
|
*/
|
|
12
12
|
declare function CommandHandlerDeclaration(props: {
|
|
13
13
|
command: CommandTree;
|
|
14
|
-
}):
|
|
14
|
+
}): _alloy_js_core11.Children;
|
|
15
15
|
interface CommandEntryProps extends Omit<EntryFileProps, "path" | "typeDefinition"> {
|
|
16
16
|
command: CommandTree;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* The command entry point for the Shell Shock project.
|
|
20
20
|
*/
|
|
21
|
-
declare function CommandEntry(props: CommandEntryProps):
|
|
21
|
+
declare function CommandEntry(props: CommandEntryProps): _alloy_js_core11.Children;
|
|
22
22
|
//#endregion
|
|
23
23
|
export { CommandEntry, CommandEntryProps, CommandHandlerDeclaration, CommandInvocation };
|
|
24
24
|
//# sourceMappingURL=command-entry.d.cts.map
|
|
@@ -137,11 +137,9 @@ function CommandRouter(props) {
|
|
|
137
137
|
condition: __alloy_js_core.code`Boolean(command)`,
|
|
138
138
|
get children() {
|
|
139
139
|
return __alloy_js_core.code`const suggestions = didYouMean(command, [${Object.values(commands ?? {}).map((cmd) => `"${cmd.name}"${cmd.alias.map((alias) => `", "${alias}"`).join("")}`).join(", ")}], {
|
|
140
|
-
caseSensitive:
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
returnType: ReturnTypeEnums.ALL_CLOSE_MATCHES,
|
|
144
|
-
thresholdType: ThresholdTypeEnums.RELATIVE_DISTANCE,
|
|
140
|
+
caseSensitive: ${JSON.stringify(context.config.isCaseSensitive)},
|
|
141
|
+
returnType: ReturnTypeEnums.ALL_CLOSEST_MATCHES,
|
|
142
|
+
thresholdType: ThresholdTypeEnums.SIMILARITY,
|
|
145
143
|
threshold: 0.75
|
|
146
144
|
});
|
|
147
145
|
error(\`Unknown command: "\${command}"\${suggestions && suggestions.length > 0 ? \`, did you mean: \${suggestions.length === 1 ? \`"\${suggestions[0]}"\` : suggestions.map((suggestion, i) => i < suggestions.length - 1 ? \`"\${suggestion}", \` : \`or "\${suggestion}"\`)}?\` : ""} \`);`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-router.cjs","names":["code","computed","For","Show","ElseIfClause","IfStatement","VarDeclaration","usePowerlines","DynamicImportStatement","CommandContext","useCommand","isVariableCommandPath","pascalCase","CommandRouterRoute","command","_$createComponent","when","isVirtual","children","name","importPath","path","segments","filter","segment","length","exportName","_$createIntrinsic","_$memo","CommandRouter","props","commands","route","context","index","Object","keys","type","initializer","condition","value","each","values","subcommand","idx","Provider","Boolean","fallback","config","isCaseSensitive","toLowerCase","replaceAll","alias","doubleHardline","map","cmd","join"],"sources":["../../src/components/command-router.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Shell Shock\n\n This code was released as part of the Shell Shock project. Shell Shock\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/shell-shock.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/shell-shock\n Documentation: https://docs.stormsoftware.com/projects/shell-shock\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport type { Children } from \"@alloy-js/core\";\nimport { code, computed, For, Show } from \"@alloy-js/core\";\nimport {\n ElseIfClause,\n IfStatement,\n VarDeclaration\n} from \"@alloy-js/typescript\";\nimport { usePowerlines } from \"@powerlines/plugin-alloy/core/contexts/context\";\nimport { DynamicImportStatement } from \"@powerlines/plugin-alloy/typescript/components/dynamic-import-statement\";\nimport { CommandContext, useCommand } from \"@shell-shock/core/contexts/command\";\nimport { isVariableCommandPath } from \"@shell-shock/core/plugin-utils/context-helpers\";\nimport type { CommandTree } from \"@shell-shock/core/types/command\";\nimport { pascalCase } from \"@stryke/string-format/pascal-case\";\nimport type { ScriptPresetContext } from \"../types/plugin\";\n\nexport function CommandRouterRoute() {\n const command = useCommand();\n\n return (\n <>\n <Show when={!command.isVirtual}>\n <DynamicImportStatement\n name={`handle${pascalCase(command.name)}`}\n importPath={`./${\n command.path.segments.filter(\n segment => !isVariableCommandPath(segment)\n )[\n command.path.segments.filter(\n segment => !isVariableCommandPath(segment)\n ).length - 1\n ]\n }`}\n exportName=\"handler\"\n />\n </Show>\n <hbr />\n {code`return handle${pascalCase(command.name)}(args);`}\n </>\n );\n}\n\nexport interface CommandRouterProps {\n path: string[];\n commands?: Record<string, CommandTree>;\n route?: Children;\n}\n\n/**\n * The command router component.\n */\nexport function CommandRouter(props: CommandRouterProps) {\n const { path, commands, route } = props;\n\n const context = usePowerlines<ScriptPresetContext>();\n const index = computed(() => 2 + (path.length ?? 0));\n\n return (\n <Show when={commands && Object.keys(commands).length > 0}>\n <VarDeclaration\n let\n name=\"command\"\n type=\"string\"\n initializer={code`\"\";`}\n />\n <hbr />\n <IfStatement\n condition={code`args.length > ${\n index.value\n } && args[${index.value}]`}>{code`command = args[${\n index.value\n }];`}</IfStatement>\n <hbr />\n <For each={Object.values(commands ?? {})}>\n {(subcommand, idx) => (\n <CommandContext.Provider value={subcommand}>\n <Show\n when={Boolean(idx)}\n fallback={\n <IfStatement\n condition={code`${\n context.config.isCaseSensitive\n ? \"command\"\n : 'command.toLowerCase().replaceAll(/-/g, \"\")'\n } === \"${\n context.config.isCaseSensitive\n ? subcommand.name\n : subcommand.name.toLowerCase().replaceAll(/-/g, \"\")\n }\"`}>\n <Show when={Boolean(route)} fallback={<CommandRouterRoute />}>\n {route}\n </Show>\n </IfStatement>\n }>\n <ElseIfClause\n condition={code`${\n context.config.isCaseSensitive\n ? \"command\"\n : 'command.toLowerCase().replaceAll(/-/g, \"\")'\n } === \"${\n context.config.isCaseSensitive\n ? subcommand.name\n : subcommand.name.toLowerCase().replaceAll(/-/g, \"\")\n }\"`}>\n <Show when={Boolean(route)} fallback={<CommandRouterRoute />}>\n {route}\n </Show>\n </ElseIfClause>\n </Show>\n <For each={subcommand.alias} doubleHardline>\n {alias => (\n <ElseIfClause\n condition={code`${\n context.config.isCaseSensitive\n ? \"command\"\n : 'command.toLowerCase().replaceAll(/-/g, \"\")'\n } === \"${\n context.config.isCaseSensitive\n ? alias\n : alias.toLowerCase().replaceAll(/-/g, \"\")\n }\"`}>\n <Show when={Boolean(route)} fallback={<CommandRouterRoute />}>\n {route}\n </Show>\n </ElseIfClause>\n )}\n </For>\n </CommandContext.Provider>\n )}\n </For>\n <ElseIfClause\n condition={code`Boolean(command)`}>{code`const suggestions = didYouMean(command, [${Object.values(\n commands ?? {}\n )\n .map(\n cmd =>\n `\"${cmd.name}\"${cmd.alias.map(alias => `\", \"${alias}\"`).join(\"\")}`\n )\n .join(\", \")}], {\n caseSensitive:
|
|
1
|
+
{"version":3,"file":"command-router.cjs","names":["code","computed","For","Show","ElseIfClause","IfStatement","VarDeclaration","usePowerlines","DynamicImportStatement","CommandContext","useCommand","isVariableCommandPath","pascalCase","CommandRouterRoute","command","_$createComponent","when","isVirtual","children","name","importPath","path","segments","filter","segment","length","exportName","_$createIntrinsic","_$memo","CommandRouter","props","commands","route","context","index","Object","keys","type","initializer","condition","value","each","values","subcommand","idx","Provider","Boolean","fallback","config","isCaseSensitive","toLowerCase","replaceAll","alias","doubleHardline","map","cmd","join","JSON","stringify"],"sources":["../../src/components/command-router.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Shell Shock\n\n This code was released as part of the Shell Shock project. Shell Shock\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/shell-shock.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/shell-shock\n Documentation: https://docs.stormsoftware.com/projects/shell-shock\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport type { Children } from \"@alloy-js/core\";\nimport { code, computed, For, Show } from \"@alloy-js/core\";\nimport {\n ElseIfClause,\n IfStatement,\n VarDeclaration\n} from \"@alloy-js/typescript\";\nimport { usePowerlines } from \"@powerlines/plugin-alloy/core/contexts/context\";\nimport { DynamicImportStatement } from \"@powerlines/plugin-alloy/typescript/components/dynamic-import-statement\";\nimport { CommandContext, useCommand } from \"@shell-shock/core/contexts/command\";\nimport { isVariableCommandPath } from \"@shell-shock/core/plugin-utils/context-helpers\";\nimport type { CommandTree } from \"@shell-shock/core/types/command\";\nimport { pascalCase } from \"@stryke/string-format/pascal-case\";\nimport type { ScriptPresetContext } from \"../types/plugin\";\n\nexport function CommandRouterRoute() {\n const command = useCommand();\n\n return (\n <>\n <Show when={!command.isVirtual}>\n <DynamicImportStatement\n name={`handle${pascalCase(command.name)}`}\n importPath={`./${\n command.path.segments.filter(\n segment => !isVariableCommandPath(segment)\n )[\n command.path.segments.filter(\n segment => !isVariableCommandPath(segment)\n ).length - 1\n ]\n }`}\n exportName=\"handler\"\n />\n </Show>\n <hbr />\n {code`return handle${pascalCase(command.name)}(args);`}\n </>\n );\n}\n\nexport interface CommandRouterProps {\n path: string[];\n commands?: Record<string, CommandTree>;\n route?: Children;\n}\n\n/**\n * The command router component.\n */\nexport function CommandRouter(props: CommandRouterProps) {\n const { path, commands, route } = props;\n\n const context = usePowerlines<ScriptPresetContext>();\n const index = computed(() => 2 + (path.length ?? 0));\n\n return (\n <Show when={commands && Object.keys(commands).length > 0}>\n <VarDeclaration\n let\n name=\"command\"\n type=\"string\"\n initializer={code`\"\";`}\n />\n <hbr />\n <IfStatement\n condition={code`args.length > ${\n index.value\n } && args[${index.value}]`}>{code`command = args[${\n index.value\n }];`}</IfStatement>\n <hbr />\n <For each={Object.values(commands ?? {})}>\n {(subcommand, idx) => (\n <CommandContext.Provider value={subcommand}>\n <Show\n when={Boolean(idx)}\n fallback={\n <IfStatement\n condition={code`${\n context.config.isCaseSensitive\n ? \"command\"\n : 'command.toLowerCase().replaceAll(/-/g, \"\")'\n } === \"${\n context.config.isCaseSensitive\n ? subcommand.name\n : subcommand.name.toLowerCase().replaceAll(/-/g, \"\")\n }\"`}>\n <Show when={Boolean(route)} fallback={<CommandRouterRoute />}>\n {route}\n </Show>\n </IfStatement>\n }>\n <ElseIfClause\n condition={code`${\n context.config.isCaseSensitive\n ? \"command\"\n : 'command.toLowerCase().replaceAll(/-/g, \"\")'\n } === \"${\n context.config.isCaseSensitive\n ? subcommand.name\n : subcommand.name.toLowerCase().replaceAll(/-/g, \"\")\n }\"`}>\n <Show when={Boolean(route)} fallback={<CommandRouterRoute />}>\n {route}\n </Show>\n </ElseIfClause>\n </Show>\n <For each={subcommand.alias} doubleHardline>\n {alias => (\n <ElseIfClause\n condition={code`${\n context.config.isCaseSensitive\n ? \"command\"\n : 'command.toLowerCase().replaceAll(/-/g, \"\")'\n } === \"${\n context.config.isCaseSensitive\n ? alias\n : alias.toLowerCase().replaceAll(/-/g, \"\")\n }\"`}>\n <Show when={Boolean(route)} fallback={<CommandRouterRoute />}>\n {route}\n </Show>\n </ElseIfClause>\n )}\n </For>\n </CommandContext.Provider>\n )}\n </For>\n <ElseIfClause\n condition={code`Boolean(command)`}>{code`const suggestions = didYouMean(command, [${Object.values(\n commands ?? {}\n )\n .map(\n cmd =>\n `\"${cmd.name}\"${cmd.alias.map(alias => `\", \"${alias}\"`).join(\"\")}`\n )\n .join(\", \")}], {\n caseSensitive: ${JSON.stringify(context.config.isCaseSensitive)},\n returnType: ReturnTypeEnums.ALL_CLOSEST_MATCHES,\n thresholdType: ThresholdTypeEnums.SIMILARITY,\n threshold: 0.75\n });\n error(\\`Unknown command: \"\\${command}\"\\${suggestions && suggestions.length > 0 ? \\`, did you mean: \\${suggestions.length === 1 ? \\`\"\\${suggestions[0]}\"\\` : suggestions.map((suggestion, i) => i < suggestions.length - 1 ? \\`\"\\${suggestion}\", \\` : \\`or \"\\${suggestion}\"\\`)}?\\` : \"\"} \\`);`}</ElseIfClause>\n </Show>\n );\n}\n"],"mappings":"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"}
|
|
@@ -136,11 +136,9 @@ function CommandRouter(props) {
|
|
|
136
136
|
condition: code`Boolean(command)`,
|
|
137
137
|
get children() {
|
|
138
138
|
return code`const suggestions = didYouMean(command, [${Object.values(commands ?? {}).map((cmd) => `"${cmd.name}"${cmd.alias.map((alias) => `", "${alias}"`).join("")}`).join(", ")}], {
|
|
139
|
-
caseSensitive:
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
returnType: ReturnTypeEnums.ALL_CLOSE_MATCHES,
|
|
143
|
-
thresholdType: ThresholdTypeEnums.RELATIVE_DISTANCE,
|
|
139
|
+
caseSensitive: ${JSON.stringify(context.config.isCaseSensitive)},
|
|
140
|
+
returnType: ReturnTypeEnums.ALL_CLOSEST_MATCHES,
|
|
141
|
+
thresholdType: ThresholdTypeEnums.SIMILARITY,
|
|
144
142
|
threshold: 0.75
|
|
145
143
|
});
|
|
146
144
|
error(\`Unknown command: "\${command}"\${suggestions && suggestions.length > 0 ? \`, did you mean: \${suggestions.length === 1 ? \`"\${suggestions[0]}"\` : suggestions.map((suggestion, i) => i < suggestions.length - 1 ? \`"\${suggestion}", \` : \`or "\${suggestion}"\`)}?\` : ""} \`);`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-router.mjs","names":["code","computed","For","Show","ElseIfClause","IfStatement","VarDeclaration","usePowerlines","DynamicImportStatement","CommandContext","useCommand","isVariableCommandPath","pascalCase","CommandRouterRoute","command","_$createComponent","when","isVirtual","children","name","importPath","path","segments","filter","segment","length","exportName","_$createIntrinsic","_$memo","CommandRouter","props","commands","route","context","index","Object","keys","type","initializer","condition","value","each","values","subcommand","idx","Provider","Boolean","fallback","config","isCaseSensitive","toLowerCase","replaceAll","alias","doubleHardline","map","cmd","join"],"sources":["../../src/components/command-router.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Shell Shock\n\n This code was released as part of the Shell Shock project. Shell Shock\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/shell-shock.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/shell-shock\n Documentation: https://docs.stormsoftware.com/projects/shell-shock\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport type { Children } from \"@alloy-js/core\";\nimport { code, computed, For, Show } from \"@alloy-js/core\";\nimport {\n ElseIfClause,\n IfStatement,\n VarDeclaration\n} from \"@alloy-js/typescript\";\nimport { usePowerlines } from \"@powerlines/plugin-alloy/core/contexts/context\";\nimport { DynamicImportStatement } from \"@powerlines/plugin-alloy/typescript/components/dynamic-import-statement\";\nimport { CommandContext, useCommand } from \"@shell-shock/core/contexts/command\";\nimport { isVariableCommandPath } from \"@shell-shock/core/plugin-utils/context-helpers\";\nimport type { CommandTree } from \"@shell-shock/core/types/command\";\nimport { pascalCase } from \"@stryke/string-format/pascal-case\";\nimport type { ScriptPresetContext } from \"../types/plugin\";\n\nexport function CommandRouterRoute() {\n const command = useCommand();\n\n return (\n <>\n <Show when={!command.isVirtual}>\n <DynamicImportStatement\n name={`handle${pascalCase(command.name)}`}\n importPath={`./${\n command.path.segments.filter(\n segment => !isVariableCommandPath(segment)\n )[\n command.path.segments.filter(\n segment => !isVariableCommandPath(segment)\n ).length - 1\n ]\n }`}\n exportName=\"handler\"\n />\n </Show>\n <hbr />\n {code`return handle${pascalCase(command.name)}(args);`}\n </>\n );\n}\n\nexport interface CommandRouterProps {\n path: string[];\n commands?: Record<string, CommandTree>;\n route?: Children;\n}\n\n/**\n * The command router component.\n */\nexport function CommandRouter(props: CommandRouterProps) {\n const { path, commands, route } = props;\n\n const context = usePowerlines<ScriptPresetContext>();\n const index = computed(() => 2 + (path.length ?? 0));\n\n return (\n <Show when={commands && Object.keys(commands).length > 0}>\n <VarDeclaration\n let\n name=\"command\"\n type=\"string\"\n initializer={code`\"\";`}\n />\n <hbr />\n <IfStatement\n condition={code`args.length > ${\n index.value\n } && args[${index.value}]`}>{code`command = args[${\n index.value\n }];`}</IfStatement>\n <hbr />\n <For each={Object.values(commands ?? {})}>\n {(subcommand, idx) => (\n <CommandContext.Provider value={subcommand}>\n <Show\n when={Boolean(idx)}\n fallback={\n <IfStatement\n condition={code`${\n context.config.isCaseSensitive\n ? \"command\"\n : 'command.toLowerCase().replaceAll(/-/g, \"\")'\n } === \"${\n context.config.isCaseSensitive\n ? subcommand.name\n : subcommand.name.toLowerCase().replaceAll(/-/g, \"\")\n }\"`}>\n <Show when={Boolean(route)} fallback={<CommandRouterRoute />}>\n {route}\n </Show>\n </IfStatement>\n }>\n <ElseIfClause\n condition={code`${\n context.config.isCaseSensitive\n ? \"command\"\n : 'command.toLowerCase().replaceAll(/-/g, \"\")'\n } === \"${\n context.config.isCaseSensitive\n ? subcommand.name\n : subcommand.name.toLowerCase().replaceAll(/-/g, \"\")\n }\"`}>\n <Show when={Boolean(route)} fallback={<CommandRouterRoute />}>\n {route}\n </Show>\n </ElseIfClause>\n </Show>\n <For each={subcommand.alias} doubleHardline>\n {alias => (\n <ElseIfClause\n condition={code`${\n context.config.isCaseSensitive\n ? \"command\"\n : 'command.toLowerCase().replaceAll(/-/g, \"\")'\n } === \"${\n context.config.isCaseSensitive\n ? alias\n : alias.toLowerCase().replaceAll(/-/g, \"\")\n }\"`}>\n <Show when={Boolean(route)} fallback={<CommandRouterRoute />}>\n {route}\n </Show>\n </ElseIfClause>\n )}\n </For>\n </CommandContext.Provider>\n )}\n </For>\n <ElseIfClause\n condition={code`Boolean(command)`}>{code`const suggestions = didYouMean(command, [${Object.values(\n commands ?? {}\n )\n .map(\n cmd =>\n `\"${cmd.name}\"${cmd.alias.map(alias => `\", \"${alias}\"`).join(\"\")}`\n )\n .join(\", \")}], {\n caseSensitive:
|
|
1
|
+
{"version":3,"file":"command-router.mjs","names":["code","computed","For","Show","ElseIfClause","IfStatement","VarDeclaration","usePowerlines","DynamicImportStatement","CommandContext","useCommand","isVariableCommandPath","pascalCase","CommandRouterRoute","command","_$createComponent","when","isVirtual","children","name","importPath","path","segments","filter","segment","length","exportName","_$createIntrinsic","_$memo","CommandRouter","props","commands","route","context","index","Object","keys","type","initializer","condition","value","each","values","subcommand","idx","Provider","Boolean","fallback","config","isCaseSensitive","toLowerCase","replaceAll","alias","doubleHardline","map","cmd","join","JSON","stringify"],"sources":["../../src/components/command-router.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Shell Shock\n\n This code was released as part of the Shell Shock project. Shell Shock\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/shell-shock.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/shell-shock\n Documentation: https://docs.stormsoftware.com/projects/shell-shock\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport type { Children } from \"@alloy-js/core\";\nimport { code, computed, For, Show } from \"@alloy-js/core\";\nimport {\n ElseIfClause,\n IfStatement,\n VarDeclaration\n} from \"@alloy-js/typescript\";\nimport { usePowerlines } from \"@powerlines/plugin-alloy/core/contexts/context\";\nimport { DynamicImportStatement } from \"@powerlines/plugin-alloy/typescript/components/dynamic-import-statement\";\nimport { CommandContext, useCommand } from \"@shell-shock/core/contexts/command\";\nimport { isVariableCommandPath } from \"@shell-shock/core/plugin-utils/context-helpers\";\nimport type { CommandTree } from \"@shell-shock/core/types/command\";\nimport { pascalCase } from \"@stryke/string-format/pascal-case\";\nimport type { ScriptPresetContext } from \"../types/plugin\";\n\nexport function CommandRouterRoute() {\n const command = useCommand();\n\n return (\n <>\n <Show when={!command.isVirtual}>\n <DynamicImportStatement\n name={`handle${pascalCase(command.name)}`}\n importPath={`./${\n command.path.segments.filter(\n segment => !isVariableCommandPath(segment)\n )[\n command.path.segments.filter(\n segment => !isVariableCommandPath(segment)\n ).length - 1\n ]\n }`}\n exportName=\"handler\"\n />\n </Show>\n <hbr />\n {code`return handle${pascalCase(command.name)}(args);`}\n </>\n );\n}\n\nexport interface CommandRouterProps {\n path: string[];\n commands?: Record<string, CommandTree>;\n route?: Children;\n}\n\n/**\n * The command router component.\n */\nexport function CommandRouter(props: CommandRouterProps) {\n const { path, commands, route } = props;\n\n const context = usePowerlines<ScriptPresetContext>();\n const index = computed(() => 2 + (path.length ?? 0));\n\n return (\n <Show when={commands && Object.keys(commands).length > 0}>\n <VarDeclaration\n let\n name=\"command\"\n type=\"string\"\n initializer={code`\"\";`}\n />\n <hbr />\n <IfStatement\n condition={code`args.length > ${\n index.value\n } && args[${index.value}]`}>{code`command = args[${\n index.value\n }];`}</IfStatement>\n <hbr />\n <For each={Object.values(commands ?? {})}>\n {(subcommand, idx) => (\n <CommandContext.Provider value={subcommand}>\n <Show\n when={Boolean(idx)}\n fallback={\n <IfStatement\n condition={code`${\n context.config.isCaseSensitive\n ? \"command\"\n : 'command.toLowerCase().replaceAll(/-/g, \"\")'\n } === \"${\n context.config.isCaseSensitive\n ? subcommand.name\n : subcommand.name.toLowerCase().replaceAll(/-/g, \"\")\n }\"`}>\n <Show when={Boolean(route)} fallback={<CommandRouterRoute />}>\n {route}\n </Show>\n </IfStatement>\n }>\n <ElseIfClause\n condition={code`${\n context.config.isCaseSensitive\n ? \"command\"\n : 'command.toLowerCase().replaceAll(/-/g, \"\")'\n } === \"${\n context.config.isCaseSensitive\n ? subcommand.name\n : subcommand.name.toLowerCase().replaceAll(/-/g, \"\")\n }\"`}>\n <Show when={Boolean(route)} fallback={<CommandRouterRoute />}>\n {route}\n </Show>\n </ElseIfClause>\n </Show>\n <For each={subcommand.alias} doubleHardline>\n {alias => (\n <ElseIfClause\n condition={code`${\n context.config.isCaseSensitive\n ? \"command\"\n : 'command.toLowerCase().replaceAll(/-/g, \"\")'\n } === \"${\n context.config.isCaseSensitive\n ? alias\n : alias.toLowerCase().replaceAll(/-/g, \"\")\n }\"`}>\n <Show when={Boolean(route)} fallback={<CommandRouterRoute />}>\n {route}\n </Show>\n </ElseIfClause>\n )}\n </For>\n </CommandContext.Provider>\n )}\n </For>\n <ElseIfClause\n condition={code`Boolean(command)`}>{code`const suggestions = didYouMean(command, [${Object.values(\n commands ?? {}\n )\n .map(\n cmd =>\n `\"${cmd.name}\"${cmd.alias.map(alias => `\", \"${alias}\"`).join(\"\")}`\n )\n .join(\", \")}], {\n caseSensitive: ${JSON.stringify(context.config.isCaseSensitive)},\n returnType: ReturnTypeEnums.ALL_CLOSEST_MATCHES,\n thresholdType: ThresholdTypeEnums.SIMILARITY,\n threshold: 0.75\n });\n error(\\`Unknown command: \"\\${command}\"\\${suggestions && suggestions.length > 0 ? \\`, did you mean: \\${suggestions.length === 1 ? \\`\"\\${suggestions[0]}\"\\` : suggestions.map((suggestion, i) => i < suggestions.length - 1 ? \\`\"\\${suggestion}\", \\` : \\`or \"\\${suggestion}\"\\`)}?\\` : \"\"} \\`);`}</ElseIfClause>\n </Show>\n );\n}\n"],"mappings":"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"}
|
|
@@ -984,7 +984,7 @@ function WriteLineFunctionDeclaration() {
|
|
|
984
984
|
} else {
|
|
985
985
|
const index = [" ", "/", "\\\\", ".", ",", "-", ":", "|", "@", "+"].reduce((ret, split) => {
|
|
986
986
|
let current = ret;
|
|
987
|
-
while (stripAnsi(line).indexOf(split, current + 1) !== -1 && stripAnsi(line).indexOf(split, current + 1) <= maxLength) {
|
|
987
|
+
while (stripAnsi(line).indexOf(split, current + 1) !== -1 && stripAnsi(line).indexOf(split, current + 1) <= maxLength && (!/.*\\([^)]*$/.test(stripAnsi(line).slice(0, line.indexOf(split, current + 1))) || !/^[^(]*\\).*/.test(stripAnsi(line).slice(line.indexOf(split, current + 1) + 1)) || stripAnsi(line).slice(line.indexOf(split, current + 1) + 1).replace(/^.*\\)/, "").indexOf(split) !== -1)) {
|
|
988
988
|
current = line.indexOf(split, current + 1);
|
|
989
989
|
}
|
|
990
990
|
|
|
@@ -1362,11 +1362,11 @@ function DividerFunctionDeclaration() {
|
|
|
1362
1362
|
optional: false
|
|
1363
1363
|
}],
|
|
1364
1364
|
get children() {
|
|
1365
|
-
return __alloy_js_core.code`const padding = options.padding ?? ${theme.padding.app * 4};
|
|
1365
|
+
return __alloy_js_core.code`const padding = options.padding ?? ${Math.max(theme.padding.app, 1) * 4};
|
|
1366
1366
|
const width = options.width ?? (process.stdout.columns - (Math.max(padding, 0) * 2));
|
|
1367
1367
|
const border = options.border === "tertiary" ? colors.border.app.divider.tertiary("${theme.borderStyles.app.divider.tertiary.top}") : options.border === "secondary" ? colors.border.app.divider.secondary("${theme.borderStyles.app.divider.secondary.top}") : colors.border.app.divider.primary("${theme.borderStyles.app.divider.primary.top}");
|
|
1368
1368
|
|
|
1369
|
-
writeLine(" ".repeat(padding) + border.repeat(Math.max(width / ${theme.borderStyles.app.divider.primary.top.length ?? 1}, 0)));
|
|
1369
|
+
writeLine(" ".repeat(Math.max(padding - ${theme.padding.app}, 0)) + border.repeat(Math.max(width / ${theme.borderStyles.app.divider.primary.top.length ?? 1}, 0)));
|
|
1370
1370
|
`;
|
|
1371
1371
|
}
|
|
1372
1372
|
})
|
|
@@ -1825,14 +1825,17 @@ let colWidths = [] as number[];
|
|
|
1825
1825
|
let rowDims = [] as Dimensions[];
|
|
1826
1826
|
|
|
1827
1827
|
const calculateRowDimensions = () => {
|
|
1828
|
+
colWidths = [];
|
|
1828
1829
|
return cells.reduce((dims, row) => {
|
|
1829
|
-
dims.push(row.reduce((dim, cell) => {
|
|
1830
|
-
|
|
1831
|
-
dim.width = cell.width;
|
|
1832
|
-
}
|
|
1830
|
+
dims.push(row.reduce((dim, cell, index) => {
|
|
1831
|
+
dim.width += cell.width;
|
|
1833
1832
|
if (cell.height > dim.height) {
|
|
1834
1833
|
dim.height = cell.height;
|
|
1835
1834
|
}
|
|
1835
|
+
if (!colWidths[index] || cell.width > colWidths[index]!) {
|
|
1836
|
+
colWidths[index] = cell.width;
|
|
1837
|
+
}
|
|
1838
|
+
|
|
1836
1839
|
return dim;
|
|
1837
1840
|
}, { width: 0, height: 0 } as Dimensions));
|
|
1838
1841
|
|
|
@@ -1840,14 +1843,13 @@ const calculateRowDimensions = () => {
|
|
|
1840
1843
|
}, [] as Dimensions[]);
|
|
1841
1844
|
}
|
|
1842
1845
|
|
|
1843
|
-
rowDims = calculateRowDimensions();
|
|
1844
|
-
|
|
1845
|
-
/*
|
|
1846
1846
|
let recalculate!: boolean;
|
|
1847
1847
|
do {
|
|
1848
1848
|
recalculate = false;
|
|
1849
|
-
rowDims
|
|
1850
|
-
|
|
1849
|
+
rowDims = calculateRowDimensions();
|
|
1850
|
+
|
|
1851
|
+
rowDims.forEach((row, rowIndex) => {
|
|
1852
|
+
if (!recalculate && row.width > Math.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2}, 0)) {
|
|
1851
1853
|
const cell = cells[rowIndex]!.reduce((largestCell, cell) => {
|
|
1852
1854
|
if (cell.width > largestCell.width) {
|
|
1853
1855
|
return cell;
|
|
@@ -1857,7 +1859,7 @@ do {
|
|
|
1857
1859
|
|
|
1858
1860
|
const lines = splitText(
|
|
1859
1861
|
cell.value,
|
|
1860
|
-
Math.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2}
|
|
1862
|
+
Math.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2} - (row.width - (cell.width - cell.padding * 2)), 0)
|
|
1861
1863
|
);
|
|
1862
1864
|
|
|
1863
1865
|
cell.value = lines.join("\\n");
|
|
@@ -1868,50 +1870,68 @@ do {
|
|
|
1868
1870
|
}
|
|
1869
1871
|
});
|
|
1870
1872
|
|
|
1871
|
-
if (recalculate) {
|
|
1872
|
-
|
|
1873
|
+
if (!recalculate && colWidths.reduce((a, b) => a + b, 0) > Math.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2}, 0)) {
|
|
1874
|
+
let colIndex = 0;
|
|
1875
|
+
const cell = cells.reduce((ret, row) => {
|
|
1876
|
+
return row.reduce((largest, current, i) => {
|
|
1877
|
+
if (largest.width < current.width) {
|
|
1878
|
+
colIndex = i;
|
|
1879
|
+
return current;
|
|
1880
|
+
}
|
|
1881
|
+
return largest;
|
|
1882
|
+
}, ret);
|
|
1883
|
+
}, cells[0]![0]!);
|
|
1884
|
+
|
|
1885
|
+
const lines = splitText(
|
|
1886
|
+
cell.value,
|
|
1887
|
+
Math.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2} - (colWidths.filter((_, i) => i !== colIndex).reduce((a, b) => a + b, 0)) - cell.padding * 2), 0)
|
|
1888
|
+
);
|
|
1889
|
+
|
|
1890
|
+
cell.value = lines.join("\\n");
|
|
1891
|
+
cell.height = lines.length;
|
|
1892
|
+
cell.width = Math.max(...lines.map(line => stripAnsi(line).length)) + cell.padding * 2;
|
|
1893
|
+
|
|
1894
|
+
recalculate = true;
|
|
1873
1895
|
}
|
|
1874
1896
|
} while (recalculate);
|
|
1875
|
-
*/
|
|
1876
|
-
|
|
1877
|
-
rowDims.map((row, rowIndex) => {
|
|
1878
|
-
cells[rowIndex]!.forEach(cell => {
|
|
1879
|
-
cell.height = row.height;
|
|
1880
|
-
});
|
|
1881
|
-
});
|
|
1882
1897
|
|
|
1883
1898
|
// Render table
|
|
1884
|
-
cells.forEach(row => {
|
|
1885
|
-
|
|
1899
|
+
cells.forEach((row, rowIndex) => {
|
|
1900
|
+
const outputs = [] as string[][];
|
|
1886
1901
|
row.forEach((cell, colIndex) => {
|
|
1887
|
-
const
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
const contentLength = stripAnsi(cellContent).length;
|
|
1891
|
-
const totalWidth = colWidths[colIndex] ?? contentLength + totalPadding;
|
|
1892
|
-
|
|
1893
|
-
switch (cell.align) {
|
|
1894
|
-
case "right":
|
|
1895
|
-
paddedContent = " ".repeat(totalWidth - contentLength - totalPadding) + cellContent + " ".repeat(totalPadding);
|
|
1896
|
-
break;
|
|
1897
|
-
case "center":
|
|
1898
|
-
const leftPadding = Math.floor((totalWidth - contentLength - totalPadding) / 2);
|
|
1899
|
-
const rightPadding = totalWidth - contentLength - totalPadding - leftPadding;
|
|
1900
|
-
paddedContent = " ".repeat(leftPadding) + cellContent + " ".repeat(rightPadding + totalPadding);
|
|
1901
|
-
break;
|
|
1902
|
-
case "left":
|
|
1903
|
-
default:
|
|
1904
|
-
paddedContent = " ".repeat(totalPadding) + cellContent + " ".repeat(totalWidth - contentLength - totalPadding);
|
|
1905
|
-
break;
|
|
1902
|
+
const lines = cell.value.split("\\n");
|
|
1903
|
+
while (lines.length < rowDims[rowIndex]!.height) {
|
|
1904
|
+
lines.push("");
|
|
1906
1905
|
}
|
|
1907
1906
|
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1907
|
+
outputs.push(lines.map(line => {
|
|
1908
|
+
let paddedContent = "";
|
|
1909
|
+
switch (cell.align) {
|
|
1910
|
+
case "right":
|
|
1911
|
+
paddedContent = " ".repeat(Math.max(colWidths[colIndex] - stripAnsi(line).length - cell.padding, 0)) + line + " ".repeat(cell.padding);
|
|
1912
|
+
break;
|
|
1913
|
+
case "center":
|
|
1914
|
+
const leftPadding = Math.floor((colWidths[colIndex] - stripAnsi(line).length - cell.padding) / 2);
|
|
1915
|
+
const rightPadding = colWidths[colIndex] - stripAnsi(line).length - leftPadding;
|
|
1916
|
+
paddedContent = " ".repeat(leftPadding) + line + " ".repeat(rightPadding);
|
|
1917
|
+
break;
|
|
1918
|
+
case "left":
|
|
1919
|
+
default:
|
|
1920
|
+
paddedContent = " ".repeat(cell.padding) + line + " ".repeat(Math.max(colWidths[colIndex] - stripAnsi(line).length - cell.padding, 0));
|
|
1921
|
+
break;
|
|
1922
|
+
}
|
|
1923
|
+
|
|
1924
|
+
if (colIndex === row.length - 1) {
|
|
1925
|
+
return cell.border.left + paddedContent + cell.border.right;
|
|
1926
|
+
} else {
|
|
1927
|
+
return cell.border.left + paddedContent;
|
|
1928
|
+
}
|
|
1929
|
+
}));
|
|
1912
1930
|
});
|
|
1913
1931
|
|
|
1914
|
-
|
|
1932
|
+
for (let index = 0; index < rowDims[rowIndex]!.height; index++) {
|
|
1933
|
+
writeLine(outputs.map(output => output[index] ?? "").join(""));
|
|
1934
|
+
}
|
|
1915
1935
|
});
|
|
1916
1936
|
`)
|
|
1917
1937
|
];
|
|
@@ -2008,7 +2028,7 @@ function ConsoleBuiltin() {
|
|
|
2008
2028
|
description: "verbose",
|
|
2009
2029
|
get prefix() {
|
|
2010
2030
|
return (0, __alloy_js_core_jsx_runtime.createComponent)(__alloy_js_typescript.IfStatement, {
|
|
2011
|
-
condition: __alloy_js_core.code`!(isDevelopment || isDebug || env.LOG_LEVEL === "debug" || hasFlag(["verbose", "verbose=true", "verbose=always"
|
|
2031
|
+
condition: __alloy_js_core.code`!(isDevelopment || isDebug || env.LOG_LEVEL === "debug" || hasFlag(["verbose", "verbose=true", "verbose=always"]))`,
|
|
2012
2032
|
children: __alloy_js_core.code`return; `
|
|
2013
2033
|
});
|
|
2014
2034
|
}
|