@shell-shock/preset-cli 0.8.0 → 0.8.4
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/dist/_virtual/{rolldown_runtime.cjs → _rolldown/runtime.cjs} +1 -1
- package/dist/_virtual/_rolldown/runtime.mjs +3 -0
- package/dist/components/banner-function-declaration.cjs +48 -164
- package/dist/components/banner-function-declaration.d.cts +2 -2
- package/dist/components/banner-function-declaration.d.cts.map +1 -1
- package/dist/components/banner-function-declaration.d.mts +2 -2
- package/dist/components/banner-function-declaration.d.mts.map +1 -1
- package/dist/components/banner-function-declaration.mjs +29 -146
- package/dist/components/banner-function-declaration.mjs.map +1 -1
- package/dist/components/command-entry.cjs +122 -120
- package/dist/components/command-entry.d.cts.map +1 -1
- package/dist/components/command-entry.d.mts +3 -3
- package/dist/components/command-entry.d.mts.map +1 -1
- package/dist/components/command-entry.mjs +21 -20
- package/dist/components/command-entry.mjs.map +1 -1
- package/dist/components/command-router.cjs +20 -19
- package/dist/components/command-router.d.cts +3 -3
- package/dist/components/command-router.d.cts.map +1 -1
- package/dist/components/command-router.d.mts.map +1 -1
- package/dist/components/command-router.mjs +1 -1
- package/dist/components/command-router.mjs.map +1 -1
- package/dist/components/index.cjs +4 -0
- package/dist/components/index.d.cts +2 -1
- package/dist/components/index.d.mts +2 -1
- package/dist/components/index.mjs +2 -1
- package/dist/components/upgrade-builtin.cjs +171 -0
- package/dist/components/upgrade-builtin.d.cts +15 -0
- package/dist/components/upgrade-builtin.d.cts.map +1 -0
- package/dist/components/upgrade-builtin.d.mts +15 -0
- package/dist/components/upgrade-builtin.d.mts.map +1 -0
- package/dist/components/upgrade-builtin.mjs +169 -0
- package/dist/components/upgrade-builtin.mjs.map +1 -0
- package/dist/components/virtual-command-entry.cjs +26 -24
- package/dist/components/virtual-command-entry.d.cts.map +1 -1
- package/dist/components/virtual-command-entry.d.mts +3 -3
- package/dist/components/virtual-command-entry.d.mts.map +1 -1
- package/dist/components/virtual-command-entry.mjs +7 -6
- package/dist/components/virtual-command-entry.mjs.map +1 -1
- package/dist/helpers/get-default-options.cjs +6 -6
- package/dist/helpers/get-default-options.mjs.map +1 -1
- package/dist/index.cjs +49 -62
- package/dist/index.d.cts +0 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +0 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +23 -36
- package/dist/index.mjs.map +1 -1
- package/dist/plugin-help/dist/components/display.cjs +259 -0
- package/dist/plugin-help/dist/components/display.mjs +254 -0
- package/dist/plugin-help/dist/components/display.mjs.map +1 -0
- package/dist/plugin-help/dist/components/help-builtin.cjs +85 -0
- package/dist/plugin-help/dist/components/help-builtin.mjs +84 -0
- package/dist/plugin-help/dist/components/help-builtin.mjs.map +1 -0
- package/dist/plugin-help/dist/components/help-command.cjs +96 -0
- package/dist/plugin-help/dist/components/help-command.mjs +96 -0
- package/dist/plugin-help/dist/components/help-command.mjs.map +1 -0
- package/dist/plugin-help/dist/components/index.cjs +3 -0
- package/dist/plugin-help/dist/components/index.mjs +5 -0
- package/dist/plugin-help/dist/index.cjs +103 -0
- package/dist/plugin-help/dist/index.d.cts +2 -0
- package/dist/plugin-help/dist/index.d.mts +2 -0
- package/dist/plugin-help/dist/index.mjs +100 -0
- package/dist/plugin-help/dist/index.mjs.map +1 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/constant-case.cjs +17 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/constant-case.mjs +17 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/constant-case.mjs.map +1 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/get-words.cjs +38 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/get-words.mjs +38 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/get-words.mjs.map +1 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/kebab-case.cjs +33 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/kebab-case.mjs +34 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/kebab-case.mjs.map +1 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/snake-case.cjs +40 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/snake-case.mjs +41 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/snake-case.mjs.map +1 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/upper-case-first.cjs +17 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/upper-case-first.mjs +17 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/upper-case-first.mjs.map +1 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-empty.cjs +20 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-empty.mjs +21 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-empty.mjs.map +1 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-null.cjs +12 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-null.mjs +12 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-null.mjs.map +1 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set-string.cjs +20 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set-string.mjs +21 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set-string.mjs.map +1 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set.cjs +19 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set.mjs +20 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set.mjs.map +1 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-string.cjs +12 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-string.mjs +12 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-string.mjs.map +1 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-undefined.cjs +8 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-undefined.mjs +8 -0
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-undefined.mjs.map +1 -0
- package/dist/plugin-help/dist/types/plugin.d.cts +62 -0
- package/dist/plugin-help/dist/types/plugin.d.cts.map +1 -0
- package/dist/plugin-help/dist/types/plugin.d.mts +62 -0
- package/dist/plugin-help/dist/types/plugin.d.mts.map +1 -0
- package/dist/types/index.d.cts +2 -2
- package/dist/types/index.d.mts +2 -2
- package/dist/types/plugin.d.cts +20 -34
- package/dist/types/plugin.d.cts.map +1 -1
- package/dist/types/plugin.d.mts +20 -34
- package/dist/types/plugin.d.mts.map +1 -1
- package/package.json +30 -16
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { BannerFunctionDeclaration } from "./banner-function-declaration.mjs";
|
|
2
2
|
import { VirtualCommandEntry } from "./virtual-command-entry.mjs";
|
|
3
|
-
import { createComponent,
|
|
3
|
+
import { createComponent, memo, mergeProps } from "@alloy-js/core/jsx-runtime";
|
|
4
4
|
import { For, Match, Show, Switch, code, computed } from "@alloy-js/core";
|
|
5
5
|
import { ElseIfClause, IfStatement } from "@alloy-js/typescript";
|
|
6
|
+
import { formatDescription, formatShortDescription, isDynamicPathSegment } from "@shell-shock/core/plugin-utils";
|
|
6
7
|
import { Spacing } from "@powerlines/plugin-alloy/core/components/spacing";
|
|
7
8
|
import { usePowerlines } from "@powerlines/plugin-alloy/core/contexts/context";
|
|
8
|
-
import { formatDescription, formatShortDescription, isDynamicPathSegment } from "@shell-shock/core/plugin-utils";
|
|
9
|
-
import { EntryFile } from "@powerlines/plugin-alloy/typescript/components/entry-file";
|
|
10
9
|
import { CommandParameterKinds } from "@shell-shock/core";
|
|
11
|
-
import
|
|
12
|
-
import { findFilePath, relativePath } from "@stryke/path/find";
|
|
10
|
+
import defu from "defu";
|
|
13
11
|
import { joinPaths } from "@stryke/path/join";
|
|
12
|
+
import { EntryFile } from "@powerlines/plugin-alloy/typescript/components/entry-file";
|
|
13
|
+
import { CommandValidationLogic } from "@shell-shock/core/components/command-validation-logic";
|
|
14
|
+
import { CommandHandlerDeclaration } from "@shell-shock/preset-script/components/command-entry";
|
|
15
|
+
import { findFilePath, relativePath } from "@stryke/path/find";
|
|
14
16
|
import { replaceExtension } from "@stryke/path/replace";
|
|
15
17
|
import { camelCase } from "@stryke/string-format/camel-case";
|
|
16
18
|
import { pascalCase } from "@stryke/string-format/pascal-case";
|
|
17
|
-
import defu from "defu";
|
|
18
19
|
|
|
19
20
|
//#region src/components/command-entry.tsx
|
|
20
21
|
/**
|
|
@@ -24,7 +25,7 @@ function CommandEntry(props) {
|
|
|
24
25
|
const { command, imports, builtinImports, ...rest } = props;
|
|
25
26
|
const context = usePowerlines();
|
|
26
27
|
const filePath = computed(() => joinPaths(command.segments.filter((segment) => !isDynamicPathSegment(segment)).join("/"), "index.ts"));
|
|
27
|
-
const commandSourcePath = computed(() =>
|
|
28
|
+
const commandSourcePath = computed(() => replaceExtension(relativePath(joinPaths(context.entryPath, findFilePath(filePath.value)), command.entry.input?.file || command.entry.file)));
|
|
28
29
|
const typeDefinition = computed(() => ({
|
|
29
30
|
...command.entry,
|
|
30
31
|
output: command.id
|
|
@@ -37,10 +38,7 @@ function CommandEntry(props) {
|
|
|
37
38
|
return typeDefinition.value;
|
|
38
39
|
},
|
|
39
40
|
get imports() {
|
|
40
|
-
return defu(imports ?? {}, {
|
|
41
|
-
[commandSourcePath.value]: `handle${pascalCase(command.name)}`,
|
|
42
|
-
prompts: "prompts"
|
|
43
|
-
});
|
|
41
|
+
return defu(imports ?? {}, { [commandSourcePath.value.startsWith(".") ? commandSourcePath.value : `./${commandSourcePath.value}`]: `handle${pascalCase(command.name)}` });
|
|
44
42
|
},
|
|
45
43
|
get builtinImports() {
|
|
46
44
|
return defu(builtinImports ?? {}, {
|
|
@@ -84,21 +82,18 @@ function CommandEntry(props) {
|
|
|
84
82
|
"isCancel",
|
|
85
83
|
"sleep"
|
|
86
84
|
],
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
"isCheckForUpdatesRequired",
|
|
90
|
-
"upgrade"
|
|
91
|
-
]
|
|
85
|
+
[joinPaths("help", ...command.segments.filter((segment) => !isDynamicPathSegment(segment)))]: ["showHelp"],
|
|
86
|
+
upgrade: ["executeUpgrade"]
|
|
92
87
|
});
|
|
93
88
|
},
|
|
94
89
|
get children() {
|
|
95
90
|
return [
|
|
96
91
|
createComponent(BannerFunctionDeclaration, { command }),
|
|
97
|
-
|
|
98
|
-
createIntrinsic("hbr", {}),
|
|
92
|
+
createComponent(Spacing, {}),
|
|
99
93
|
createComponent(CommandHandlerDeclaration, {
|
|
100
94
|
command,
|
|
101
|
-
banner: code`await banner();
|
|
95
|
+
banner: code`await banner();
|
|
96
|
+
await executeUpgrade(); `,
|
|
102
97
|
get children() {
|
|
103
98
|
return [createComponent(IfStatement, {
|
|
104
99
|
condition: code`!isInteractive`,
|
|
@@ -408,7 +403,13 @@ function CommandEntry(props) {
|
|
|
408
403
|
})]
|
|
409
404
|
}),
|
|
410
405
|
code`writeLine(""); `,
|
|
411
|
-
createComponent(Spacing, {})
|
|
406
|
+
createComponent(Spacing, {}),
|
|
407
|
+
createComponent(CommandValidationLogic, { command }),
|
|
408
|
+
createComponent(IfStatement, {
|
|
409
|
+
condition: code`failures.length > 0`,
|
|
410
|
+
children: code`error("The following validation failures were found while processing the user provided input, and must be corrected before the command-line process can be executed: \\n\\n" + failures.map(failure => " - " + failure).join("\\n"));
|
|
411
|
+
options.help = true; `
|
|
412
|
+
})
|
|
412
413
|
];
|
|
413
414
|
}
|
|
414
415
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-entry.mjs","names":["code","computed","For","Match","Show","Switch","ElseIfClause","IfStatement","Spacing","usePowerlines","EntryFile","CommandParameterKinds","formatDescription","formatShortDescription","isDynamicPathSegment","CommandHandlerDeclaration","CommandValidationLogic","findFilePath","relativePath","joinPaths","replaceExtension","camelCase","pascalCase","defu","BannerFunctionDeclaration","VirtualCommandEntry","CommandEntry","props","command","imports","builtinImports","rest","context","filePath","segments","filter","segment","join","commandSourcePath","entryPath","value","entry","input","file","typeDefinition","output","id","_$createComponent","_$mergeProps","path","name","prompts","env","console","utils","upgrade","children","_$createIntrinsic","banner","condition","when","Object","values","options","option","optional","length","args","arg","map","kind","string","number","variadic","includes","each","doubleHardline","boolean","choices","fallback","description","choice","JSON","stringify","child","isVirtual"],"sources":["../../src/components/command-entry.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 { code, computed, For, Match, Show, Switch } from \"@alloy-js/core\";\nimport { ElseIfClause, IfStatement } from \"@alloy-js/typescript\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport { usePowerlines } from \"@powerlines/plugin-alloy/core/contexts/context\";\nimport type { EntryFileProps } from \"@powerlines/plugin-alloy/typescript/components/entry-file\";\nimport { EntryFile } from \"@powerlines/plugin-alloy/typescript/components/entry-file\";\nimport type {\n CommandTree,\n NumberCommandParameter,\n StringCommandParameter\n} from \"@shell-shock/core\";\nimport { CommandParameterKinds } from \"@shell-shock/core\";\nimport {\n formatDescription,\n formatShortDescription,\n isDynamicPathSegment\n} from \"@shell-shock/core/plugin-utils\";\nimport {\n CommandHandlerDeclaration,\n CommandValidationLogic\n} from \"@shell-shock/preset-script/components/command-entry\";\nimport { findFilePath, relativePath } from \"@stryke/path/find\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { replaceExtension } from \"@stryke/path/replace\";\nimport { camelCase } from \"@stryke/string-format/camel-case\";\nimport { pascalCase } from \"@stryke/string-format/pascal-case\";\nimport defu from \"defu\";\nimport type { CLIPresetContext } from \"../types/plugin\";\nimport { BannerFunctionDeclaration } from \"./banner-function-declaration\";\nimport { VirtualCommandEntry } from \"./virtual-command-entry\";\n\nexport interface CommandEntryProps extends Omit<\n EntryFileProps,\n \"path\" | \"typeDefinition\"\n> {\n command: CommandTree;\n}\n\n/**\n * The command entry point for the Shell Shock project.\n */\nexport function CommandEntry(props: CommandEntryProps) {\n const { command, imports, builtinImports, ...rest } = props;\n\n const context = usePowerlines<CLIPresetContext>();\n const filePath = computed(() =>\n joinPaths(\n command.segments\n .filter(segment => !isDynamicPathSegment(segment))\n .join(\"/\"),\n \"index.ts\"\n )\n );\n const commandSourcePath = computed(\n () =>\n `./${replaceExtension(\n relativePath(\n joinPaths(context.entryPath, findFilePath(filePath.value)),\n command.entry.input?.file || command.entry.file\n )\n )}`\n );\n const typeDefinition = computed(() => ({\n ...command.entry,\n output: command.id\n }));\n\n return (\n <>\n <EntryFile\n {...rest}\n path={filePath.value}\n typeDefinition={typeDefinition.value}\n imports={defu(imports ?? {}, {\n [commandSourcePath.value]: `handle${pascalCase(command.name)}`,\n prompts: \"prompts\"\n })}\n builtinImports={defu(builtinImports ?? {}, {\n env: [\"env\", \"isDevelopment\", \"isDebug\", \"paths\"],\n console: [\n \"debug\",\n \"info\",\n \"help\",\n \"warn\",\n \"error\",\n \"table\",\n \"colors\",\n \"cursor\",\n \"stripAnsi\",\n \"writeLine\",\n \"splitText\",\n \"createSpinner\"\n ],\n utils: [\n \"useApp\",\n \"useArgs\",\n \"hasFlag\",\n \"isMinimal\",\n \"isInteractive\",\n \"isHelp\",\n \"isUnicodeSupported\",\n \"internal_commandContext\"\n ],\n prompts: [\n \"text\",\n \"numeric\",\n \"toggle\",\n \"select\",\n \"confirm\",\n \"waitForKeyPress\",\n \"isCancel\",\n \"sleep\"\n ],\n upgrade: [\"checkForUpdates\", \"isCheckForUpdatesRequired\", \"upgrade\"]\n })}>\n <BannerFunctionDeclaration command={command} />\n <hbr />\n <hbr />\n <CommandHandlerDeclaration\n command={command}\n banner={code`await banner(); `}>\n <IfStatement condition={code`!isInteractive`}>\n <CommandValidationLogic command={command} />\n </IfStatement>\n <Show\n when={\n Object.values(command.options ?? {}).filter(\n option => !option.optional\n ).length > 0 ||\n Object.values(command.args ?? {}).filter(arg => !arg.optional)\n .length > 0\n }>\n <ElseIfClause\n condition={code`!isHelp && (${Object.values(command.options ?? {})\n .filter(option => !option.optional)\n .map(option =>\n (option.kind === CommandParameterKinds.string ||\n option.kind === CommandParameterKinds.number) &&\n option.variadic\n ? `(!options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } || options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }.length === 0)`\n : `options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } === undefined`\n )\n .join(\" || \")}${\n Object.values(command.options ?? {}).filter(\n option => !option.optional\n ).length > 0 &&\n Object.values(command.args ?? {}).filter(arg => !arg.optional)\n .length > 0\n ? \" || \"\n : \"\"\n }${Object.values(command.args ?? {})\n .filter(arg => !arg.optional)\n .map(arg =>\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic\n ? `(!${camelCase(\n arg.name\n )} || ${camelCase(arg.name)}.length === 0)`\n : `${camelCase(arg.name)} === undefined`\n )\n .join(\" || \")}) `}>\n {code`writeLine(\"\"); `}\n <Spacing />\n <For each={Object.values(command.options ?? {})} doubleHardline>\n {option => (\n <>\n <Show when={!option.optional}>\n <IfStatement\n condition={code`!options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }`}>\n <Show\n when={\n option.kind === CommandParameterKinds.boolean ||\n !option.choices ||\n option.choices.length === 0\n }\n fallback={code`const value = await select({\n message: \\`Please select a value for the \\${colors.italic(\"${\n option.name\n }\")} option\\`, ${\n option.description\n ? `description: \\`${formatDescription(\n option.description\n )}\\`,\n `\n : \"\"\n }options: [ ${(\n option as\n | StringCommandParameter\n | NumberCommandParameter\n ).choices\n ?.map(\n choice =>\n `{ value: ${JSON.stringify(\n choice\n )}, label: \"${choice}\", ${\n option.description\n ? `description: \\`${formatShortDescription(\n option.description\n )}\\``\n : \"\"\n } }`\n )\n .join(\", \")} ]\n });\n if (isCancel(value)) {\n return;\n }\n\n options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } = value;\n `}>\n <Switch>\n <Match\n when={\n option.kind === CommandParameterKinds.string\n }>{code`\n const value = await text({\n message: \\`Please provide a value for the \\${colors.italic(\"${\n option.name\n }\")} option\\`,\n ${\n option.description\n ? `description: \\`${formatDescription(\n option.description\n )}\\`,\n `\n : \"\"\n }validate(val) {\n if (!val || val.trim() === \"\") {\n return \"A value must be provided for this option\";\n }\n\n return null;\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } = value;\n `}</Match>\n <Match\n when={\n option.kind === CommandParameterKinds.number\n }>{code`\n const value = await numeric({\n message: \\`Please provide a numeric value for the \\${colors.italic(\"${option.name}\")} option\\`,\n ${\n option.description\n ? `description: \\`${formatDescription(\n option.description\n )}\\`,\n `\n : \"\"\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } = value;\n `}</Match>\n <Match\n when={\n option.kind === CommandParameterKinds.boolean\n }>{code`\n const value = await toggle({\n message: \\`Please select a value for the \\${colors.italic(\"${option.name}\")} option\\`,\n ${\n option.description\n ? `description: \\`${formatDescription(\n option.description\n )}\\`,\n `\n : \"\"\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } = value;\n `}</Match>\n </Switch>\n </Show>\n </IfStatement>\n <Show\n when={\n (option.kind === CommandParameterKinds.string ||\n option.kind === CommandParameterKinds.number) &&\n option.variadic\n }>\n <ElseIfClause\n condition={code`options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }.length === 0`}>\n {code`\n const value = await text({\n message: \\`Please provide one or more${\n option.kind === CommandParameterKinds.number\n ? \" numeric\"\n : \"\"\n } values for the \\${colors.italic(\"${\n option.name\n }\")} option (values are separated by a \\\\\",\\\\\" character)\\`,\n ${\n option.description\n ? `description: \\`${formatDescription(\n option.description\n )}\\`,\n `\n : \"\"\n }validate(val) {\n if (!val || val.trim() === \"\") {\n return \"A value must be provided for this option\";\n }\n if (val.split(\",\").map(v => v.trim()).filter(Boolean).length === 0) {\n return \"At least one value must be provided for this option\";\n }\n ${\n option.kind === CommandParameterKinds.number\n ? `const invalidIndex = val.split(\",\").map(v => v.trim()).filter(Boolean).findIndex(v => Number.isNaN(Number(v));\n if (invalidIndex !== -1) {\n return \\`Invalid numeric value provided for item #\\${invalidIndex + 1} - all provided items must be a valid number\\`;\n } `\n : \"\"\n }\n return undefined;\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } = value.split(\",\").map(value => value.trim()).filter(Boolean)${\n option.kind === CommandParameterKinds.number\n ? `.map(Number)`\n : \"\"\n } ;\n `}\n </ElseIfClause>\n </Show>\n </Show>\n </>\n )}\n </For>\n <Spacing />\n <For each={command.args} doubleHardline>\n {arg => (\n <>\n <Show when={!arg.optional}>\n <IfStatement condition={code`!${camelCase(arg.name)}`}>\n <Show\n when={\n arg.kind === CommandParameterKinds.boolean ||\n !arg.choices ||\n arg.choices.length === 0\n }\n fallback={code`const value = await select({\n message: \\`Please select a value for the \\${colors.italic(\"${\n arg.name\n }\")} argument\\`,${\n arg.description\n ? `description: \\`${formatDescription(\n arg.description\n )}\\`,\n `\n : \"\"\n }\n options: [ ${(\n arg as\n | StringCommandParameter\n | NumberCommandParameter\n ).choices\n ?.map(\n choice =>\n `{ value: ${JSON.stringify(\n choice\n )}, label: \"${choice}\", ${\n arg.description\n ? `description: \\`${formatShortDescription(\n arg.description\n )}\\``\n : \"\"\n } }`\n )\n .join(\", \")} ]\n });\n if (isCancel(value)) {\n return;\n }\n\n ${camelCase(arg.name)} = value;\n `}>\n <Switch>\n <Match\n when={\n arg.kind === CommandParameterKinds.string\n }>{code`\n const value = await text({\n message: \\`Please provide a value for the \\${colors.italic(\"${arg.name}\")} argument\\`,\n ${\n arg.description\n ? `description: \\`${formatShortDescription(\n arg.description\n )}\\`,\n `\n : \"\"\n }validate(val) {\n if (!val || val.trim() === \"\") {\n return \"A value must be provided for this argument\";\n }\n\n return null;\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n ${camelCase(arg.name)} = value;\n `}</Match>\n <Match\n when={\n arg.kind === CommandParameterKinds.number\n }>{code`\n const value = await numeric({\n message: \\`Please provide a numeric value for the \\${colors.italic(\"${arg.name}\")} argument\\`,\n ${\n arg.description\n ? `description: \\`${formatShortDescription(\n arg.description\n )}\\`,\n `\n : \"\"\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n ${camelCase(arg.name)} = value;\n `}</Match>\n <Match\n when={\n arg.kind === CommandParameterKinds.boolean\n }>{code`\n const value = await toggle({\n message: \\`Please select a value for the \\${colors.italic(\"${arg.name}\")} argument\\`,\n ${\n arg.description\n ? `description: \\`${formatShortDescription(\n arg.description\n )}\\`,\n `\n : \"\"\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n ${camelCase(arg.name)} = value;\n `}</Match>\n </Switch>\n </Show>\n </IfStatement>\n <Show\n when={\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic\n }>\n <ElseIfClause\n condition={code`${camelCase(arg.name)}.length === 0`}>\n {code`\n const value = await text({\n message: \\`Please provide one or more${\n arg.kind === CommandParameterKinds.number\n ? \" numeric\"\n : \"\"\n } values for the \\${colors.italic(\"${arg.name}\")} argument (values are separated by a \\\\\",\\\\\" character)\\`,\n ${\n arg.description\n ? `description: \\`${formatShortDescription(\n arg.description\n )}\\`,\n `\n : \"\"\n }validate(val) {\n if (!val || val.trim() === \"\") {\n return \"A value must be provided for this argument\";\n }\n if (val.split(\",\").map(v => v.trim()).filter(Boolean).length === 0) {\n return \"At least one value must be provided for this argument\";\n }\n ${\n arg.kind === CommandParameterKinds.number\n ? `const invalidIndex = val.split(\",\").map(v => v.trim()).filter(Boolean).findIndex(v => Number.isNaN(Number(v));\n if (invalidIndex !== -1) {\n return \\`Invalid numeric value provided for item #\\${invalidIndex + 1} - all provided items must be a valid number\\`;\n } `\n : \"\"\n }\n\n return undefined;\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n ${camelCase(arg.name)} = value.split(\",\").map(value => value.trim()).filter(Boolean)${\n arg.kind === CommandParameterKinds.number\n ? `.map(Number)`\n : \"\"\n } ;\n `}\n </ElseIfClause>\n </Show>\n </Show>\n </>\n )}\n </For>\n {code`writeLine(\"\"); `}\n <Spacing />\n </ElseIfClause>\n </Show>\n </CommandHandlerDeclaration>\n </EntryFile>\n <For each={Object.values(command.children)}>\n {child => (\n <Show\n when={child.isVirtual}\n fallback={<CommandEntry command={child} />}>\n <VirtualCommandEntry command={child} />\n </Show>\n )}\n </For>\n </>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"command-entry.mjs","names":[],"sources":["../../src/components/command-entry.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 { code, computed, For, Match, Show, Switch } from \"@alloy-js/core\";\nimport { ElseIfClause, IfStatement } from \"@alloy-js/typescript\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport { usePowerlines } from \"@powerlines/plugin-alloy/core/contexts/context\";\nimport type { EntryFileProps } from \"@powerlines/plugin-alloy/typescript/components/entry-file\";\nimport { EntryFile } from \"@powerlines/plugin-alloy/typescript/components/entry-file\";\nimport type {\n CommandTree,\n NumberCommandParameter,\n StringCommandParameter\n} from \"@shell-shock/core\";\nimport { CommandParameterKinds } from \"@shell-shock/core\";\nimport { CommandValidationLogic } from \"@shell-shock/core/components/command-validation-logic\";\nimport {\n formatDescription,\n formatShortDescription,\n isDynamicPathSegment\n} from \"@shell-shock/core/plugin-utils\";\nimport { CommandHandlerDeclaration } from \"@shell-shock/preset-script/components/command-entry\";\nimport { findFilePath, relativePath } from \"@stryke/path/find\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { replaceExtension } from \"@stryke/path/replace\";\nimport { camelCase } from \"@stryke/string-format/camel-case\";\nimport { pascalCase } from \"@stryke/string-format/pascal-case\";\nimport defu from \"defu\";\nimport type { CLIPresetContext } from \"../types/plugin\";\nimport { BannerFunctionDeclaration } from \"./banner-function-declaration\";\nimport { VirtualCommandEntry } from \"./virtual-command-entry\";\n\nexport interface CommandEntryProps extends Omit<\n EntryFileProps,\n \"path\" | \"typeDefinition\"\n> {\n command: CommandTree;\n}\n\n/**\n * The command entry point for the Shell Shock project.\n */\nexport function CommandEntry(props: CommandEntryProps) {\n const { command, imports, builtinImports, ...rest } = props;\n\n const context = usePowerlines<CLIPresetContext>();\n const filePath = computed(() =>\n joinPaths(\n command.segments\n .filter(segment => !isDynamicPathSegment(segment))\n .join(\"/\"),\n \"index.ts\"\n )\n );\n const commandSourcePath = computed(() =>\n replaceExtension(\n relativePath(\n joinPaths(context.entryPath, findFilePath(filePath.value)),\n command.entry.input?.file || command.entry.file\n )\n )\n );\n const typeDefinition = computed(() => ({\n ...command.entry,\n output: command.id\n }));\n\n return (\n <>\n <EntryFile\n {...rest}\n path={filePath.value}\n typeDefinition={typeDefinition.value}\n imports={defu(imports ?? {}, {\n [commandSourcePath.value.startsWith(\".\")\n ? commandSourcePath.value\n : `./${commandSourcePath.value}`]:\n `handle${pascalCase(command.name)}`\n })}\n builtinImports={defu(builtinImports ?? {}, {\n env: [\"env\", \"isDevelopment\", \"isDebug\", \"paths\"],\n console: [\n \"debug\",\n \"info\",\n \"help\",\n \"warn\",\n \"error\",\n \"table\",\n \"colors\",\n \"cursor\",\n \"stripAnsi\",\n \"writeLine\",\n \"splitText\",\n \"createSpinner\"\n ],\n utils: [\n \"useApp\",\n \"useArgs\",\n \"hasFlag\",\n \"isMinimal\",\n \"isInteractive\",\n \"isHelp\",\n \"isUnicodeSupported\",\n \"internal_commandContext\"\n ],\n prompts: [\n \"text\",\n \"numeric\",\n \"toggle\",\n \"select\",\n \"confirm\",\n \"waitForKeyPress\",\n \"isCancel\",\n \"sleep\"\n ],\n [joinPaths(\n \"help\",\n ...command.segments.filter(\n segment => !isDynamicPathSegment(segment)\n )\n )]: [\"showHelp\"],\n upgrade: [\"executeUpgrade\"]\n })}>\n <BannerFunctionDeclaration command={command} />\n <Spacing />\n <CommandHandlerDeclaration\n command={command}\n banner={code`await banner();\n await executeUpgrade(); `}>\n <IfStatement condition={code`!isInteractive`}>\n <CommandValidationLogic command={command} />\n </IfStatement>\n <Show\n when={\n Object.values(command.options ?? {}).filter(\n option => !option.optional\n ).length > 0 ||\n Object.values(command.args ?? {}).filter(arg => !arg.optional)\n .length > 0\n }>\n <ElseIfClause\n condition={code`!isHelp && (${Object.values(command.options ?? {})\n .filter(option => !option.optional)\n .map(option =>\n (option.kind === CommandParameterKinds.string ||\n option.kind === CommandParameterKinds.number) &&\n option.variadic\n ? `(!options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } || options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }.length === 0)`\n : `options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } === undefined`\n )\n .join(\" || \")}${\n Object.values(command.options ?? {}).filter(\n option => !option.optional\n ).length > 0 &&\n Object.values(command.args ?? {}).filter(arg => !arg.optional)\n .length > 0\n ? \" || \"\n : \"\"\n }${Object.values(command.args ?? {})\n .filter(arg => !arg.optional)\n .map(arg =>\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic\n ? `(!${camelCase(\n arg.name\n )} || ${camelCase(arg.name)}.length === 0)`\n : `${camelCase(arg.name)} === undefined`\n )\n .join(\" || \")}) `}>\n {code`writeLine(\"\"); `}\n <Spacing />\n <For each={Object.values(command.options ?? {})} doubleHardline>\n {option => (\n <>\n <Show when={!option.optional}>\n <IfStatement\n condition={code`!options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }`}>\n <Show\n when={\n option.kind === CommandParameterKinds.boolean ||\n !option.choices ||\n option.choices.length === 0\n }\n fallback={code`const value = await select({\n message: \\`Please select a value for the \\${colors.italic(\"${\n option.name\n }\")} option\\`, ${\n option.description\n ? `description: \\`${formatDescription(\n option.description\n )}\\`,\n `\n : \"\"\n }options: [ ${(\n option as\n | StringCommandParameter\n | NumberCommandParameter\n ).choices\n ?.map(\n choice =>\n `{ value: ${JSON.stringify(\n choice\n )}, label: \"${choice}\", ${\n option.description\n ? `description: \\`${formatShortDescription(\n option.description\n )}\\``\n : \"\"\n } }`\n )\n .join(\", \")} ]\n });\n if (isCancel(value)) {\n return;\n }\n\n options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } = value;\n `}>\n <Switch>\n <Match\n when={\n option.kind === CommandParameterKinds.string\n }>{code`\n const value = await text({\n message: \\`Please provide a value for the \\${colors.italic(\"${\n option.name\n }\")} option\\`,\n ${\n option.description\n ? `description: \\`${formatDescription(\n option.description\n )}\\`,\n `\n : \"\"\n }validate(val) {\n if (!val || val.trim() === \"\") {\n return \"A value must be provided for this option\";\n }\n\n return null;\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } = value;\n `}</Match>\n <Match\n when={\n option.kind === CommandParameterKinds.number\n }>{code`\n const value = await numeric({\n message: \\`Please provide a numeric value for the \\${colors.italic(\"${option.name}\")} option\\`,\n ${\n option.description\n ? `description: \\`${formatDescription(\n option.description\n )}\\`,\n `\n : \"\"\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } = value;\n `}</Match>\n <Match\n when={\n option.kind === CommandParameterKinds.boolean\n }>{code`\n const value = await toggle({\n message: \\`Please select a value for the \\${colors.italic(\"${option.name}\")} option\\`,\n ${\n option.description\n ? `description: \\`${formatDescription(\n option.description\n )}\\`,\n `\n : \"\"\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } = value;\n `}</Match>\n </Switch>\n </Show>\n </IfStatement>\n <Show\n when={\n (option.kind === CommandParameterKinds.string ||\n option.kind === CommandParameterKinds.number) &&\n option.variadic\n }>\n <ElseIfClause\n condition={code`options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }.length === 0`}>\n {code`\n const value = await text({\n message: \\`Please provide one or more${\n option.kind === CommandParameterKinds.number\n ? \" numeric\"\n : \"\"\n } values for the \\${colors.italic(\"${\n option.name\n }\")} option (values are separated by a \\\\\",\\\\\" character)\\`,\n ${\n option.description\n ? `description: \\`${formatDescription(\n option.description\n )}\\`,\n `\n : \"\"\n }validate(val) {\n if (!val || val.trim() === \"\") {\n return \"A value must be provided for this option\";\n }\n if (val.split(\",\").map(v => v.trim()).filter(Boolean).length === 0) {\n return \"At least one value must be provided for this option\";\n }\n ${\n option.kind === CommandParameterKinds.number\n ? `const invalidIndex = val.split(\",\").map(v => v.trim()).filter(Boolean).findIndex(v => Number.isNaN(Number(v));\n if (invalidIndex !== -1) {\n return \\`Invalid numeric value provided for item #\\${invalidIndex + 1} - all provided items must be a valid number\\`;\n } `\n : \"\"\n }\n return undefined;\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } = value.split(\",\").map(value => value.trim()).filter(Boolean)${\n option.kind === CommandParameterKinds.number\n ? `.map(Number)`\n : \"\"\n } ;\n `}\n </ElseIfClause>\n </Show>\n </Show>\n </>\n )}\n </For>\n <Spacing />\n <For each={command.args} doubleHardline>\n {arg => (\n <>\n <Show when={!arg.optional}>\n <IfStatement condition={code`!${camelCase(arg.name)}`}>\n <Show\n when={\n arg.kind === CommandParameterKinds.boolean ||\n !arg.choices ||\n arg.choices.length === 0\n }\n fallback={code`const value = await select({\n message: \\`Please select a value for the \\${colors.italic(\"${\n arg.name\n }\")} argument\\`,${\n arg.description\n ? `description: \\`${formatDescription(\n arg.description\n )}\\`,\n `\n : \"\"\n }\n options: [ ${(\n arg as\n | StringCommandParameter\n | NumberCommandParameter\n ).choices\n ?.map(\n choice =>\n `{ value: ${JSON.stringify(\n choice\n )}, label: \"${choice}\", ${\n arg.description\n ? `description: \\`${formatShortDescription(\n arg.description\n )}\\``\n : \"\"\n } }`\n )\n .join(\", \")} ]\n });\n if (isCancel(value)) {\n return;\n }\n\n ${camelCase(arg.name)} = value;\n `}>\n <Switch>\n <Match\n when={\n arg.kind === CommandParameterKinds.string\n }>{code`\n const value = await text({\n message: \\`Please provide a value for the \\${colors.italic(\"${arg.name}\")} argument\\`,\n ${\n arg.description\n ? `description: \\`${formatShortDescription(\n arg.description\n )}\\`,\n `\n : \"\"\n }validate(val) {\n if (!val || val.trim() === \"\") {\n return \"A value must be provided for this argument\";\n }\n\n return null;\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n ${camelCase(arg.name)} = value;\n `}</Match>\n <Match\n when={\n arg.kind === CommandParameterKinds.number\n }>{code`\n const value = await numeric({\n message: \\`Please provide a numeric value for the \\${colors.italic(\"${arg.name}\")} argument\\`,\n ${\n arg.description\n ? `description: \\`${formatShortDescription(\n arg.description\n )}\\`,\n `\n : \"\"\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n ${camelCase(arg.name)} = value;\n `}</Match>\n <Match\n when={\n arg.kind === CommandParameterKinds.boolean\n }>{code`\n const value = await toggle({\n message: \\`Please select a value for the \\${colors.italic(\"${arg.name}\")} argument\\`,\n ${\n arg.description\n ? `description: \\`${formatShortDescription(\n arg.description\n )}\\`,\n `\n : \"\"\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n ${camelCase(arg.name)} = value;\n `}</Match>\n </Switch>\n </Show>\n </IfStatement>\n <Show\n when={\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic\n }>\n <ElseIfClause\n condition={code`${camelCase(arg.name)}.length === 0`}>\n {code`\n const value = await text({\n message: \\`Please provide one or more${\n arg.kind === CommandParameterKinds.number\n ? \" numeric\"\n : \"\"\n } values for the \\${colors.italic(\"${arg.name}\")} argument (values are separated by a \\\\\",\\\\\" character)\\`,\n ${\n arg.description\n ? `description: \\`${formatShortDescription(\n arg.description\n )}\\`,\n `\n : \"\"\n }validate(val) {\n if (!val || val.trim() === \"\") {\n return \"A value must be provided for this argument\";\n }\n if (val.split(\",\").map(v => v.trim()).filter(Boolean).length === 0) {\n return \"At least one value must be provided for this argument\";\n }\n ${\n arg.kind === CommandParameterKinds.number\n ? `const invalidIndex = val.split(\",\").map(v => v.trim()).filter(Boolean).findIndex(v => Number.isNaN(Number(v));\n if (invalidIndex !== -1) {\n return \\`Invalid numeric value provided for item #\\${invalidIndex + 1} - all provided items must be a valid number\\`;\n } `\n : \"\"\n }\n\n return undefined;\n }\n });\n if (isCancel(value)) {\n return;\n }\n\n ${camelCase(arg.name)} = value.split(\",\").map(value => value.trim()).filter(Boolean)${\n arg.kind === CommandParameterKinds.number\n ? `.map(Number)`\n : \"\"\n } ;\n `}\n </ElseIfClause>\n </Show>\n </Show>\n </>\n )}\n </For>\n {code`writeLine(\"\"); `}\n <Spacing />\n <CommandValidationLogic command={command} />\n <IfStatement condition={code`failures.length > 0`}>\n {code`error(\"The following validation failures were found while processing the user provided input, and must be corrected before the command-line process can be executed: \\\\n\\\\n\" + failures.map(failure => \" - \" + failure).join(\"\\\\n\"));\n options.help = true; `}\n </IfStatement>\n </ElseIfClause>\n </Show>\n </CommandHandlerDeclaration>\n </EntryFile>\n <For each={Object.values(command.children)}>\n {child => (\n <Show\n when={child.isVirtual}\n fallback={<CommandEntry command={child} />}>\n <VirtualCommandEntry command={child} />\n </Show>\n )}\n </For>\n </>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
let
|
|
4
|
-
let
|
|
5
|
-
let
|
|
6
|
-
let
|
|
7
|
-
let
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
|
|
3
|
+
let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
|
|
4
|
+
let _alloy_js_core = require("@alloy-js/core");
|
|
5
|
+
let _alloy_js_typescript = require("@alloy-js/typescript");
|
|
6
|
+
let _shell_shock_core_plugin_utils = require("@shell-shock/core/plugin-utils");
|
|
7
|
+
let _powerlines_plugin_alloy_core_components_spacing = require("@powerlines/plugin-alloy/core/components/spacing");
|
|
8
|
+
let _shell_shock_preset_script_components = require("@shell-shock/preset-script/components");
|
|
8
9
|
|
|
9
10
|
//#region src/components/command-router.tsx
|
|
10
11
|
function CommandRouterSelectOptions(props) {
|
|
11
12
|
const { commands } = props;
|
|
12
|
-
return (0,
|
|
13
|
+
return (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.For, {
|
|
13
14
|
get each() {
|
|
14
15
|
return Object.values(commands ?? {});
|
|
15
16
|
},
|
|
16
17
|
joiner: ",",
|
|
17
18
|
hardline: true,
|
|
18
|
-
children: (command) => command.isVirtual ? (0,
|
|
19
|
+
children: (command) => command.isVirtual ? (0, _alloy_js_core_jsx_runtime.createComponent)(CommandRouterSelectOptions, { get commands() {
|
|
19
20
|
return command.children ?? {};
|
|
20
|
-
} }) :
|
|
21
|
+
} }) : _alloy_js_core.code`{ value: [${command.segments.map((segment) => `"${segment}"`).join(", ")}], label: "${command.title}", description: \`${(0, _shell_shock_core_plugin_utils.formatShortDescription)(command.description)}\`${command.icon ? `, icon: "${command.icon}"` : ""} }`
|
|
21
22
|
});
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
@@ -26,22 +27,22 @@ function CommandRouterSelectOptions(props) {
|
|
|
26
27
|
function CommandRouter(props) {
|
|
27
28
|
const { segments, commands } = props;
|
|
28
29
|
return [
|
|
29
|
-
(0,
|
|
30
|
+
(0, _alloy_js_core_jsx_runtime.createComponent)(_shell_shock_preset_script_components.CommandRouter, (0, _alloy_js_core_jsx_runtime.mergeProps)(props, {
|
|
30
31
|
segments,
|
|
31
32
|
commands
|
|
32
33
|
})),
|
|
33
|
-
(0,
|
|
34
|
-
(0,
|
|
35
|
-
condition:
|
|
34
|
+
(0, _alloy_js_core_jsx_runtime.createComponent)(_powerlines_plugin_alloy_core_components_spacing.Spacing, {}),
|
|
35
|
+
(0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.IfStatement, {
|
|
36
|
+
condition: _alloy_js_core.code`isInteractive && !isHelp`,
|
|
36
37
|
get children() {
|
|
37
38
|
return [
|
|
38
|
-
|
|
39
|
+
_alloy_js_core.code`await banner();
|
|
39
40
|
|
|
40
41
|
let segments = await select({
|
|
41
42
|
message: "Which command would you like to execute?",
|
|
42
43
|
options: [ `,
|
|
43
|
-
(0,
|
|
44
|
-
(0,
|
|
44
|
+
(0, _alloy_js_core_jsx_runtime.createComponent)(CommandRouterSelectOptions, { commands }),
|
|
45
|
+
(0, _alloy_js_core_jsx_runtime.memo)(() => ` ],
|
|
45
46
|
});
|
|
46
47
|
if (isCancel(segments)) {
|
|
47
48
|
return;
|
|
@@ -64,14 +65,14 @@ function CommandRouter(props) {
|
|
|
64
65
|
|
|
65
66
|
command = segments[0];
|
|
66
67
|
args = context.get("args"); `),
|
|
67
|
-
(0,
|
|
68
|
+
(0, _alloy_js_core_jsx_runtime.createComponent)(_shell_shock_preset_script_components.CommandRouterBody, (0, _alloy_js_core_jsx_runtime.mergeProps)(props, {
|
|
68
69
|
segments,
|
|
69
70
|
commands
|
|
70
71
|
}))
|
|
71
72
|
];
|
|
72
73
|
}
|
|
73
74
|
}),
|
|
74
|
-
(0,
|
|
75
|
+
(0, _alloy_js_core_jsx_runtime.createComponent)(_powerlines_plugin_alloy_core_components_spacing.Spacing, {})
|
|
75
76
|
];
|
|
76
77
|
}
|
|
77
78
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _alloy_js_core0 from "@alloy-js/core";
|
|
2
2
|
import { CommandTree } from "@shell-shock/core";
|
|
3
3
|
import { CommandRouterProps } from "@shell-shock/preset-script/components";
|
|
4
4
|
|
|
@@ -6,11 +6,11 @@ import { CommandRouterProps } from "@shell-shock/preset-script/components";
|
|
|
6
6
|
interface CommandRouterSelectOptionsProps {
|
|
7
7
|
commands?: Record<string, CommandTree>;
|
|
8
8
|
}
|
|
9
|
-
declare function CommandRouterSelectOptions(props: CommandRouterSelectOptionsProps):
|
|
9
|
+
declare function CommandRouterSelectOptions(props: CommandRouterSelectOptionsProps): _alloy_js_core0.Children;
|
|
10
10
|
/**
|
|
11
11
|
* A component that renders a command router interface, allowing users to select and execute commands from a provided list of commands and segments. This component serves as a wrapper around the base CommandRouter, adding additional UI elements and logic for command selection.
|
|
12
12
|
*/
|
|
13
|
-
declare function CommandRouter(props: CommandRouterProps):
|
|
13
|
+
declare function CommandRouter(props: CommandRouterProps): _alloy_js_core0.Children;
|
|
14
14
|
//#endregion
|
|
15
15
|
export { CommandRouter, CommandRouterSelectOptions, CommandRouterSelectOptionsProps };
|
|
16
16
|
//# sourceMappingURL=command-router.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-router.d.cts","names":[],"sources":["../../src/components/command-router.tsx"],"
|
|
1
|
+
{"version":3,"file":"command-router.d.cts","names":[],"sources":["../../src/components/command-router.tsx"],"mappings":";;;;;UA6BiB,+BAAA;EACf,QAAA,GAAW,MAAA,SAAe,WAAA;AAAA;AAAA,iBAGZ,0BAAA,CACd,KAAA,EAAO,+BAAA,GAA+B,eAAA,CAAA,QAAA;;;;iBA0BxB,aAAA,CAAc,KAAA,EAAO,kBAAA,GAAkB,eAAA,CAAA,QAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-router.d.mts","names":[],"sources":["../../src/components/command-router.tsx"],"
|
|
1
|
+
{"version":3,"file":"command-router.d.mts","names":[],"sources":["../../src/components/command-router.tsx"],"mappings":";;;;;UA6BiB,+BAAA;EACf,QAAA,GAAW,MAAA,SAAe,WAAA;AAAA;AAAA,iBAGZ,0BAAA,CACd,KAAA,EAAO,+BAAA,GAA+B,eAAA,CAAA,QAAA;;;;iBA0BxB,aAAA,CAAc,KAAA,EAAO,kBAAA,GAAkB,eAAA,CAAA,QAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createComponent, memo, mergeProps } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { For, code } from "@alloy-js/core";
|
|
3
3
|
import { IfStatement } from "@alloy-js/typescript";
|
|
4
|
-
import { Spacing } from "@powerlines/plugin-alloy/core/components/spacing";
|
|
5
4
|
import { formatShortDescription } from "@shell-shock/core/plugin-utils";
|
|
5
|
+
import { Spacing } from "@powerlines/plugin-alloy/core/components/spacing";
|
|
6
6
|
import { CommandRouter as CommandRouter$1, CommandRouterBody } from "@shell-shock/preset-script/components";
|
|
7
7
|
|
|
8
8
|
//#region src/components/command-router.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-router.mjs","names":[
|
|
1
|
+
{"version":3,"file":"command-router.mjs","names":[],"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 { code, For } from \"@alloy-js/core\";\nimport { IfStatement } from \"@alloy-js/typescript\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport type { CommandTree } from \"@shell-shock/core\";\nimport { formatShortDescription } from \"@shell-shock/core/plugin-utils\";\nimport type { CommandRouterProps } from \"@shell-shock/preset-script/components\";\nimport {\n CommandRouter as BaseCommandRouter,\n CommandRouterBody\n} from \"@shell-shock/preset-script/components\";\n\nexport interface CommandRouterSelectOptionsProps {\n commands?: Record<string, CommandTree>;\n}\n\nexport function CommandRouterSelectOptions(\n props: CommandRouterSelectOptionsProps\n) {\n const { commands } = props;\n\n return (\n <For each={Object.values(commands ?? {})} joiner=\",\" hardline>\n {command =>\n command.isVirtual ? (\n <CommandRouterSelectOptions commands={command.children ?? {}} />\n ) : (\n code`{ value: [${command.segments\n .map(segment => `\"${segment}\"`)\n .join(\n \", \"\n )}], label: \"${command.title}\", description: \\`${formatShortDescription(\n command.description\n )}\\`${command.icon ? `, icon: \"${command.icon}\"` : \"\"} }`\n )\n }\n </For>\n );\n}\n\n/**\n * A component that renders a command router interface, allowing users to select and execute commands from a provided list of commands and segments. This component serves as a wrapper around the base CommandRouter, adding additional UI elements and logic for command selection.\n */\nexport function CommandRouter(props: CommandRouterProps) {\n const { segments, commands } = props;\n\n return (\n <>\n <BaseCommandRouter {...props} segments={segments} commands={commands} />\n <Spacing />\n <IfStatement condition={code`isInteractive && !isHelp`}>\n {code`await banner();\n\n let segments = await select({\n message: \"Which command would you like to execute?\",\n options: [ `}\n <CommandRouterSelectOptions commands={commands} />\n {` ],\n });\n if (isCancel(segments)) {\n return;\n }\n\n let dynamics = {} as Record<string, string>;\n for (const dynamic of segments.filter(segment => segment.startsWith(\"[\") && segment.endsWith(\"]\"))) {\n const value = await text({\n message: \\`Please provide a value for \\${dynamic.replace(/^\\[+/, \"\").replace(/\\]+$/, \"\")}:\\`,\n });\n if (isCancel(value)) {\n return;\n }\n dynamics[dynamic] = value;\n }\n\n segments = segments.map(segment => dynamics[segment] || segment);\n const context = useApp();\n context.set(\"args\", [args.length > 0 ? args[0] : undefined, args.length > 1 ? args[1] : undefined, ...segments, ...args.slice(${\n segments.length + 2\n })].filter(Boolean) as string[]);\n\n command = segments[0];\n args = context.get(\"args\"); `}\n <CommandRouterBody {...props} segments={segments} commands={commands} />\n </IfStatement>\n <Spacing />\n </>\n );\n}\n"],"mappings":";;;;;;;;AA6BA,SAAgB,2BAAC,OAAgC;CAC/C,MAAA,EACF;AAEA,QAAO,gBAAS,KAAA;EACd,IAAM,OAAC;AACP,UAAA,OAAA,OAAA,YAAA,EAAA,CAAA;;;EAGA,UAAO;EACL,WAAU,YAAQ,QAAO,YAAgB,gBAAY,4BAAQ,EAC3D,IAAC,WAAS;AACR,UAAO,QAAC,YAAY,EAAA;KAEvB,CAAC,GAAG,IAAG,aAAA,QAAA,SAAA,KAAA,YAAA,IAAA,QAAA,GAAA,CAAA,KAAA,KAAA,CAAA,aAAA,QAAA,MAAA,oBAAA,uBAAA,QAAA,YAAA,CAAA,IAAA,QAAA,OAAA,YAAA,QAAA,KAAA,KAAA,GAAA;EACT,CAAC;;;;;AAMJ,SAAgB,cAAc,OAA2B;CACvD,MAAM,EACJ,UACA,aACD;AACH,QAAA;EAAA,gBAAA,iBAAA,WAAA,OAAA;;GAEE;GACC,CAAC,CAAC;EAAA,gBAAe,SAAU,EAAA,CAAO;EAAC,gBAAkB,aAAc;GACpE,WAAA,IAAA;GACF,IAAO,WAAS;AACd,WAAQ;KAAA,IAAQ;;;;;KAIM,gBAAY,4BAA8B,EAClD,UACT,CAAA;KAAA,WAAY;;;;;;;;;;;;;;;;;;;wIAmBD,SAAA,SAAA,EAAA;;;sCAGV;KAAA,gBAAA,mBAAA,WAAA,OAAA;;MAEU;MACX,CAAC,CAAA;KAAA;;GAEL,CAAC;EAAE,gBAAa,SAAS,EAAA,CAAA;EAAA"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
1
2
|
const require_components_banner_function_declaration = require('./banner-function-declaration.cjs');
|
|
2
3
|
const require_components_command_router = require('./command-router.cjs');
|
|
3
4
|
const require_components_virtual_command_entry = require('./virtual-command-entry.cjs');
|
|
4
5
|
const require_components_command_entry = require('./command-entry.cjs');
|
|
6
|
+
const require_components_upgrade_builtin = require('./upgrade-builtin.cjs');
|
|
5
7
|
|
|
6
8
|
exports.BannerFunctionDeclaration = require_components_banner_function_declaration.BannerFunctionDeclaration;
|
|
7
9
|
exports.CommandEntry = require_components_command_entry.CommandEntry;
|
|
8
10
|
exports.CommandRouter = require_components_command_router.CommandRouter;
|
|
9
11
|
exports.CommandRouterSelectOptions = require_components_command_router.CommandRouterSelectOptions;
|
|
12
|
+
exports.ExecuteUpgradeFunctionDeclaration = require_components_upgrade_builtin.ExecuteUpgradeFunctionDeclaration;
|
|
13
|
+
exports.UpgradeBuiltin = require_components_upgrade_builtin.UpgradeBuiltin;
|
|
10
14
|
exports.VirtualCommandEntry = require_components_virtual_command_entry.VirtualCommandEntry;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BannerFunctionDeclaration } from "./banner-function-declaration.cjs";
|
|
2
2
|
import { CommandEntry, CommandEntryProps } from "./command-entry.cjs";
|
|
3
3
|
import { CommandRouter, CommandRouterSelectOptions, CommandRouterSelectOptionsProps } from "./command-router.cjs";
|
|
4
|
+
import { ExecuteUpgradeFunctionDeclaration, UpgradeBuiltin } from "./upgrade-builtin.cjs";
|
|
4
5
|
import { VirtualCommandEntry, VirtualCommandEntryProps } from "./virtual-command-entry.cjs";
|
|
5
|
-
export { BannerFunctionDeclaration, CommandEntry, CommandEntryProps, CommandRouter, CommandRouterSelectOptions, CommandRouterSelectOptionsProps, VirtualCommandEntry, VirtualCommandEntryProps };
|
|
6
|
+
export { BannerFunctionDeclaration, CommandEntry, CommandEntryProps, CommandRouter, CommandRouterSelectOptions, CommandRouterSelectOptionsProps, ExecuteUpgradeFunctionDeclaration, UpgradeBuiltin, VirtualCommandEntry, VirtualCommandEntryProps };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BannerFunctionDeclaration } from "./banner-function-declaration.mjs";
|
|
2
2
|
import { CommandEntry, CommandEntryProps } from "./command-entry.mjs";
|
|
3
3
|
import { CommandRouter, CommandRouterSelectOptions, CommandRouterSelectOptionsProps } from "./command-router.mjs";
|
|
4
|
+
import { ExecuteUpgradeFunctionDeclaration, UpgradeBuiltin } from "./upgrade-builtin.mjs";
|
|
4
5
|
import { VirtualCommandEntry, VirtualCommandEntryProps } from "./virtual-command-entry.mjs";
|
|
5
|
-
export { BannerFunctionDeclaration, CommandEntry, CommandEntryProps, CommandRouter, CommandRouterSelectOptions, CommandRouterSelectOptionsProps, VirtualCommandEntry, VirtualCommandEntryProps };
|
|
6
|
+
export { BannerFunctionDeclaration, CommandEntry, CommandEntryProps, CommandRouter, CommandRouterSelectOptions, CommandRouterSelectOptionsProps, ExecuteUpgradeFunctionDeclaration, UpgradeBuiltin, VirtualCommandEntry, VirtualCommandEntryProps };
|
|
@@ -2,5 +2,6 @@ import { BannerFunctionDeclaration } from "./banner-function-declaration.mjs";
|
|
|
2
2
|
import { CommandRouter, CommandRouterSelectOptions } from "./command-router.mjs";
|
|
3
3
|
import { VirtualCommandEntry } from "./virtual-command-entry.mjs";
|
|
4
4
|
import { CommandEntry } from "./command-entry.mjs";
|
|
5
|
+
import { ExecuteUpgradeFunctionDeclaration, UpgradeBuiltin } from "./upgrade-builtin.mjs";
|
|
5
6
|
|
|
6
|
-
export { BannerFunctionDeclaration, CommandEntry, CommandRouter, CommandRouterSelectOptions, VirtualCommandEntry };
|
|
7
|
+
export { BannerFunctionDeclaration, CommandEntry, CommandRouter, CommandRouterSelectOptions, ExecuteUpgradeFunctionDeclaration, UpgradeBuiltin, VirtualCommandEntry };
|