@shell-shock/preset-cli 0.8.17 → 0.8.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/components/banner-builtin.cjs +2 -2
  2. package/dist/components/banner-builtin.d.cts.map +1 -1
  3. package/dist/components/banner-builtin.d.mts +1 -1
  4. package/dist/components/banner-builtin.d.mts.map +1 -1
  5. package/dist/components/banner-builtin.mjs +2 -2
  6. package/dist/components/banner-builtin.mjs.map +1 -1
  7. package/dist/components/command-entry.cjs +3 -3
  8. package/dist/components/command-entry.mjs +3 -3
  9. package/dist/components/command-router.cjs +1 -1
  10. package/dist/components/command-router.mjs +1 -1
  11. package/dist/components/upgrade-builtin.cjs +1 -1
  12. package/dist/components/upgrade-builtin.mjs +1 -1
  13. package/dist/index.cjs +5 -2
  14. package/dist/index.d.cts.map +1 -1
  15. package/dist/index.d.mts.map +1 -1
  16. package/dist/index.mjs +5 -2
  17. package/dist/index.mjs.map +1 -1
  18. package/dist/plugin-banner/dist/components/banner-builtin.cjs +2 -2
  19. package/dist/plugin-banner/dist/components/banner-builtin.mjs +1 -1
  20. package/dist/plugin-banner/dist/components/banner-function-declaration.cjs +8 -5
  21. package/dist/plugin-banner/dist/components/banner-function-declaration.mjs +8 -5
  22. package/dist/plugin-banner/dist/components/banner-function-declaration.mjs.map +1 -1
  23. package/dist/plugin-banner/dist/components/index.cjs +2 -0
  24. package/dist/plugin-banner/dist/components/index.mjs +4 -0
  25. package/dist/plugin-banner/dist/index.cjs +70 -0
  26. package/dist/plugin-banner/dist/index.d.cts +2 -0
  27. package/dist/plugin-banner/dist/index.d.mts +2 -0
  28. package/dist/plugin-banner/dist/index.mjs +68 -0
  29. package/dist/plugin-banner/dist/index.mjs.map +1 -0
  30. package/dist/plugin-banner/dist/types/plugin.d.cts +31 -0
  31. package/dist/plugin-banner/dist/types/plugin.d.cts.map +1 -0
  32. package/dist/plugin-banner/dist/types/plugin.d.mts +31 -0
  33. package/dist/plugin-banner/dist/types/plugin.d.mts.map +1 -0
  34. package/dist/plugin-help/dist/components/display.cjs +20 -8
  35. package/dist/plugin-help/dist/components/display.mjs +20 -8
  36. package/dist/plugin-help/dist/components/display.mjs.map +1 -1
  37. package/dist/plugin-help/dist/components/help-builtin.cjs +3 -3
  38. package/dist/plugin-help/dist/components/help-builtin.mjs +3 -3
  39. package/dist/plugin-help/dist/components/help-command.cjs +1 -1
  40. package/dist/plugin-help/dist/components/help-command.mjs +1 -1
  41. package/dist/plugin-help/dist/index.cjs +6 -4
  42. package/dist/plugin-help/dist/index.mjs +5 -3
  43. package/dist/plugin-help/dist/index.mjs.map +1 -1
  44. package/dist/plugin-help/dist/types/plugin.d.cts +1 -1
  45. package/dist/plugin-help/dist/types/plugin.d.mts +1 -1
  46. package/dist/types/plugin.d.cts +5 -4
  47. package/dist/types/plugin.d.cts.map +1 -1
  48. package/dist/types/plugin.d.mts +5 -4
  49. package/dist/types/plugin.d.mts.map +1 -1
  50. package/package.json +8 -8
@@ -0,0 +1,2 @@
1
+ import { BannerPluginContext, BannerPluginOptions, BannerPluginResolvedConfig, BannerPluginUserConfig } from "./types/plugin.cjs";
2
+ import { Plugin } from "powerlines";
@@ -0,0 +1,2 @@
1
+ import { BannerPluginContext, BannerPluginOptions, BannerPluginResolvedConfig, BannerPluginUserConfig } from "./types/plugin.mjs";
2
+ import { Plugin } from "powerlines";
@@ -0,0 +1,68 @@
1
+ import { BannerBuiltin } from "./components/banner-builtin.mjs";
2
+ import "./components/index.mjs";
3
+ import { createComponent } from "@alloy-js/core/jsx-runtime";
4
+ import { For, computed } from "@alloy-js/core";
5
+ import { Spacing } from "@powerlines/plugin-alloy/core/components";
6
+ import { render } from "@powerlines/plugin-alloy/render";
7
+ import { getAppDescription, getAppName, getAppTitle, getCommandList } from "@shell-shock/core/plugin-utils";
8
+ import console from "@shell-shock/plugin-console";
9
+ import theme from "@shell-shock/plugin-theme";
10
+ import { joinPaths } from "@stryke/path/join";
11
+
12
+ //#region ../plugin-banner/dist/index.mjs
13
+ /**
14
+ * The Banner - Shell Shock plugin to add a banner command to the application.
15
+ */
16
+ const plugin = (options = {}) => {
17
+ return [
18
+ ...theme(options.theme),
19
+ console(options.console),
20
+ {
21
+ name: "shell-shock:banner",
22
+ enforce: "post",
23
+ config() {
24
+ return { banner: { title: options.title } };
25
+ },
26
+ prepare: {
27
+ order: "post",
28
+ async handler() {
29
+ const commands = await getCommandList(this);
30
+ this.debug(`Rendering \`banner\` built-ins for each of the ${commands.length} command modules.`);
31
+ const bin = computed(() => ({
32
+ id: "",
33
+ name: getAppName(this),
34
+ title: getAppTitle(this),
35
+ description: getAppDescription(this),
36
+ isVirtual: true,
37
+ path: null,
38
+ segments: [],
39
+ alias: [],
40
+ tags: [],
41
+ options: Object.fromEntries(this.options.map((option) => [option.name, option])),
42
+ entry: { file: joinPaths(this.entryPath, "bin.ts") },
43
+ args: [],
44
+ parent: null,
45
+ children: this.commands
46
+ }));
47
+ return render(this, [
48
+ createComponent(BannerBuiltin, { get command() {
49
+ return bin.value;
50
+ } }),
51
+ createComponent(Spacing, {}),
52
+ createComponent(For, {
53
+ get each() {
54
+ return commands.sort((a, b) => a.name.localeCompare(b.name));
55
+ },
56
+ doubleHardline: true,
57
+ children: (command) => createComponent(BannerBuiltin, { command })
58
+ })
59
+ ]);
60
+ }
61
+ }
62
+ }
63
+ ];
64
+ };
65
+
66
+ //#endregion
67
+ export { plugin };
68
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../plugin-banner/dist/index.mjs"],"sourcesContent":["import { BannerBuiltin } from \"./components/banner-builtin.mjs\";\nimport \"./components/index.mjs\";\nimport { createComponent } from \"@alloy-js/core/jsx-runtime\";\nimport { For, computed } from \"@alloy-js/core\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components\";\nimport { render } from \"@powerlines/plugin-alloy/render\";\nimport { getAppDescription, getAppName, getAppTitle, getCommandList } from \"@shell-shock/core/plugin-utils\";\nimport console from \"@shell-shock/plugin-console\";\nimport theme from \"@shell-shock/plugin-theme\";\nimport { joinPaths } from \"@stryke/path/join\";\n\n//#region src/index.tsx\n/**\n* The Banner - Shell Shock plugin to add a banner command to the application.\n*/\nconst plugin = (options = {}) => {\n\treturn [\n\t\t...theme(options.theme),\n\t\tconsole(options.console),\n\t\t{\n\t\t\tname: \"shell-shock:banner\",\n\t\t\tenforce: \"post\",\n\t\t\tconfig() {\n\t\t\t\treturn { banner: { title: options.title } };\n\t\t\t},\n\t\t\tprepare: {\n\t\t\t\torder: \"post\",\n\t\t\t\tasync handler() {\n\t\t\t\t\tconst commands = await getCommandList(this);\n\t\t\t\t\tthis.debug(`Rendering \\`banner\\` built-ins for each of the ${commands.length} command modules.`);\n\t\t\t\t\tconst bin = computed(() => ({\n\t\t\t\t\t\tid: \"\",\n\t\t\t\t\t\tname: getAppName(this),\n\t\t\t\t\t\ttitle: getAppTitle(this),\n\t\t\t\t\t\tdescription: getAppDescription(this),\n\t\t\t\t\t\tisVirtual: true,\n\t\t\t\t\t\tpath: null,\n\t\t\t\t\t\tsegments: [],\n\t\t\t\t\t\talias: [],\n\t\t\t\t\t\ttags: [],\n\t\t\t\t\t\toptions: Object.fromEntries(this.options.map((option) => [option.name, option])),\n\t\t\t\t\t\tentry: { file: joinPaths(this.entryPath, \"bin.ts\") },\n\t\t\t\t\t\targs: [],\n\t\t\t\t\t\tparent: null,\n\t\t\t\t\t\tchildren: this.commands\n\t\t\t\t\t}));\n\t\t\t\t\treturn render(this, [\n\t\t\t\t\t\tcreateComponent(BannerBuiltin, { get command() {\n\t\t\t\t\t\t\treturn bin.value;\n\t\t\t\t\t\t} }),\n\t\t\t\t\t\tcreateComponent(Spacing, {}),\n\t\t\t\t\t\tcreateComponent(For, {\n\t\t\t\t\t\t\tget each() {\n\t\t\t\t\t\t\t\treturn commands.sort((a, b) => a.name.localeCompare(b.name));\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdoubleHardline: true,\n\t\t\t\t\t\t\tchildren: (command) => createComponent(BannerBuiltin, { command })\n\t\t\t\t\t\t})\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t];\n};\n\n//#endregion\nexport { plugin as default, plugin };\n//# sourceMappingURL=index.mjs.map"],"mappings":";;;;;;;;;;;;;;;AAeA,MAAM,UAAU,UAAU,EAAE,KAAK;AAChC,QAAO;EACN,GAAG,MAAM,QAAQ,MAAM;EACvB,QAAQ,QAAQ,QAAQ;EACxB;GACC,MAAM;GACN,SAAS;GACT,SAAS;AACR,WAAO,EAAE,QAAQ,EAAE,OAAO,QAAQ,OAAO,EAAE;;GAE5C,SAAS;IACR,OAAO;IACP,MAAM,UAAU;KACf,MAAM,WAAW,MAAM,eAAe,KAAK;AAC3C,UAAK,MAAM,kDAAkD,SAAS,OAAO,mBAAmB;KAChG,MAAM,MAAM,gBAAgB;MAC3B,IAAI;MACJ,MAAM,WAAW,KAAK;MACtB,OAAO,YAAY,KAAK;MACxB,aAAa,kBAAkB,KAAK;MACpC,WAAW;MACX,MAAM;MACN,UAAU,EAAE;MACZ,OAAO,EAAE;MACT,MAAM,EAAE;MACR,SAAS,OAAO,YAAY,KAAK,QAAQ,KAAK,WAAW,CAAC,OAAO,MAAM,OAAO,CAAC,CAAC;MAChF,OAAO,EAAE,MAAM,UAAU,KAAK,WAAW,SAAS,EAAE;MACpD,MAAM,EAAE;MACR,QAAQ;MACR,UAAU,KAAK;MACf,EAAE;AACH,YAAO,OAAO,MAAM;MACnB,gBAAgB,eAAe,EAAE,IAAI,UAAU;AAC9C,cAAO,IAAI;SACT,CAAC;MACJ,gBAAgB,SAAS,EAAE,CAAC;MAC5B,gBAAgB,KAAK;OACpB,IAAI,OAAO;AACV,eAAO,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,CAAC;;OAE7D,gBAAgB;OAChB,WAAW,YAAY,gBAAgB,eAAe,EAAE,SAAS,CAAC;OAClE,CAAC;MACF,CAAC;;IAEH;GACD;EACD"}
@@ -0,0 +1,31 @@
1
+ import { ResolvedConfig, UserConfig } from "@shell-shock/core";
2
+ import { Context as Context$1 } from "@shell-shock/core/types/context";
3
+ import { ConsolePluginContext, ConsolePluginOptions, ConsolePluginResolvedConfig, ConsolePluginUserConfig } from "@shell-shock/plugin-console";
4
+ import { ThemePluginContext, ThemePluginOptions, ThemePluginResolvedConfig, ThemePluginUserConfig } from "@shell-shock/plugin-theme";
5
+
6
+ //#region ../plugin-banner/dist/types/plugin.d.cts
7
+ //#region src/types/plugin.d.ts
8
+ interface BannerPluginOptions {
9
+ /**
10
+ * Theme plugin options.
11
+ */
12
+ theme?: ThemePluginOptions;
13
+ /**
14
+ * Console plugin options.
15
+ */
16
+ console?: ConsolePluginOptions;
17
+ /**
18
+ * The title to display in the banner. If not provided, the app title from the theme plugin will be used.
19
+ */
20
+ title?: string;
21
+ }
22
+ type BannerPluginUserConfig = ThemePluginUserConfig & ConsolePluginUserConfig & UserConfig & {
23
+ banner: Pick<BannerPluginOptions, "title">;
24
+ };
25
+ type BannerPluginResolvedConfig = ThemePluginResolvedConfig & ConsolePluginResolvedConfig & ResolvedConfig & {
26
+ banner: Pick<BannerPluginOptions, "title">;
27
+ };
28
+ type BannerPluginContext<TResolvedConfig extends BannerPluginResolvedConfig = BannerPluginResolvedConfig> = ThemePluginContext<TResolvedConfig> & ConsolePluginContext<TResolvedConfig> & Context$1<TResolvedConfig>; //#endregion
29
+ //#endregion
30
+ export { BannerPluginContext, BannerPluginOptions, BannerPluginResolvedConfig, BannerPluginUserConfig };
31
+ //# sourceMappingURL=plugin.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.cts","names":["ResolvedConfig","UserConfig","Context","ConsolePluginContext","ConsolePluginOptions","ConsolePluginResolvedConfig","ConsolePluginUserConfig","ThemePluginContext","ThemePluginOptions","ThemePluginResolvedConfig","ThemePluginUserConfig","BannerPluginOptions","theme","console","title","BannerPluginUserConfig","Pick","banner","BannerPluginResolvedConfig","BannerPluginContext","TResolvedConfig"],"sources":["../../../../../plugin-banner/dist/types/plugin.d.cts"],"mappings":";;;;;;;UAMUW,mBAAAA;EAAmB;;;EAI3BC,KAAAA,GAAQJ,kBAAAA;EAAAA;;;EAIRK,OAAAA,GAAUT,oBAAAA;EAIL;;AAAA;EAALU,KAAAA;AAAAA;AAAAA,KAEGC,sBAAAA,GAAyBL,qBAAAA,GAAwBJ,uBAAAA,GAA0BL,UAAAA;EAC9EgB,MAAAA,EAAQD,IAAAA,CAAKL,mBAAAA;AAAAA;AAAAA,KAEVO,0BAAAA,GAA6BT,yBAAAA,GAA4BJ,2BAAAA,GAA8BL,cAAAA;EAC1FiB,MAAAA,EAAQD,IAAAA,CAAKL,mBAAAA;AAAAA;AAAAA,KAEVQ,mBAAAA,yBAA4CD,0BAAAA,GAA6BA,0BAAAA,IAA8BX,kBAAAA,CAAmBa,eAAAA,IAAmBjB,oBAAAA,CAAqBiB,eAAAA,IAAmBlB,SAAAA,CAAQkB,eAAAA"}
@@ -0,0 +1,31 @@
1
+ import { ConsolePluginContext, ConsolePluginOptions, ConsolePluginResolvedConfig, ConsolePluginUserConfig } from "@shell-shock/plugin-console";
2
+ import { ThemePluginContext, ThemePluginOptions, ThemePluginResolvedConfig, ThemePluginUserConfig } from "@shell-shock/plugin-theme";
3
+ import { ResolvedConfig, UserConfig } from "@shell-shock/core";
4
+ import { Context as Context$1 } from "@shell-shock/core/types/context";
5
+
6
+ //#region ../plugin-banner/dist/types/plugin.d.cts
7
+ //#region src/types/plugin.d.ts
8
+ interface BannerPluginOptions {
9
+ /**
10
+ * Theme plugin options.
11
+ */
12
+ theme?: ThemePluginOptions;
13
+ /**
14
+ * Console plugin options.
15
+ */
16
+ console?: ConsolePluginOptions;
17
+ /**
18
+ * The title to display in the banner. If not provided, the app title from the theme plugin will be used.
19
+ */
20
+ title?: string;
21
+ }
22
+ type BannerPluginUserConfig = ThemePluginUserConfig & ConsolePluginUserConfig & UserConfig & {
23
+ banner: Pick<BannerPluginOptions, "title">;
24
+ };
25
+ type BannerPluginResolvedConfig = ThemePluginResolvedConfig & ConsolePluginResolvedConfig & ResolvedConfig & {
26
+ banner: Pick<BannerPluginOptions, "title">;
27
+ };
28
+ type BannerPluginContext<TResolvedConfig extends BannerPluginResolvedConfig = BannerPluginResolvedConfig> = ThemePluginContext<TResolvedConfig> & ConsolePluginContext<TResolvedConfig> & Context$1<TResolvedConfig>; //#endregion
29
+ //#endregion
30
+ export { BannerPluginContext, BannerPluginOptions, BannerPluginResolvedConfig, BannerPluginUserConfig };
31
+ //# sourceMappingURL=plugin.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.mts","names":["ResolvedConfig","UserConfig","Context","ConsolePluginContext","ConsolePluginOptions","ConsolePluginResolvedConfig","ConsolePluginUserConfig","ThemePluginContext","ThemePluginOptions","ThemePluginResolvedConfig","ThemePluginUserConfig","BannerPluginOptions","theme","console","title","BannerPluginUserConfig","Pick","banner","BannerPluginResolvedConfig","BannerPluginContext","TResolvedConfig"],"sources":["../../../../../plugin-banner/dist/types/plugin.d.cts"],"mappings":";;;;;;;UAMUW,mBAAAA;EAAmB;;;EAI3BC,KAAAA,GAAQJ,kBAAAA;EAAAA;;;EAIRK,OAAAA,GAAUT,oBAAAA;EAIL;;AAAA;EAALU,KAAAA;AAAAA;AAAAA,KAEGC,sBAAAA,GAAyBL,qBAAAA,GAAwBJ,uBAAAA,GAA0BL,UAAAA;EAC9EgB,MAAAA,EAAQD,IAAAA,CAAKL,mBAAAA;AAAAA;AAAAA,KAEVO,0BAAAA,GAA6BT,yBAAAA,GAA4BJ,2BAAAA,GAA8BL,cAAAA;EAC1FiB,MAAAA,EAAQD,IAAAA,CAAKL,mBAAAA;AAAAA;AAAAA,KAEVQ,mBAAAA,yBAA4CD,0BAAAA,GAA6BA,0BAAAA,IAA8BX,kBAAAA,CAAmBa,eAAAA,IAAmBjB,oBAAAA,CAAqBiB,eAAAA,IAAmBlB,SAAAA,CAAQkB,eAAAA"}
@@ -2,11 +2,12 @@ const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
2
2
  let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
3
3
  let _alloy_js_core = require("@alloy-js/core");
4
4
  let _shell_shock_core_plugin_utils = require("@shell-shock/core/plugin-utils");
5
- let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
6
- let _powerlines_plugin_alloy_core_components_spacing = require("@powerlines/plugin-alloy/core/components/spacing");
7
5
  let _powerlines_plugin_alloy_core_contexts_context = require("@powerlines/plugin-alloy/core/contexts/context");
8
- let _shell_shock_core = require("@shell-shock/core");
6
+ let _powerlines_plugin_alloy_core_components_spacing = require("@powerlines/plugin-alloy/core/components/spacing");
9
7
  let _shell_shock_plugin_theme_contexts_theme = require("@shell-shock/plugin-theme/contexts/theme");
8
+ let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
9
+ let _shell_shock_core = require("@shell-shock/core");
10
+ let _stryke_string_format_camel_case = require("@stryke/string-format/camel-case");
10
11
  let _stryke_string_format_kebab_case = require("@stryke/string-format/kebab-case");
11
12
  let _stryke_string_format_snake_case = require("@stryke/string-format/snake-case");
12
13
 
@@ -25,7 +26,7 @@ function HelpUsageDisplay(props) {
25
26
  hardline: true,
26
27
  children: (bin) => [(0, _alloy_js_core_jsx_runtime.memo)(() => _alloy_js_core.code`
27
28
  writeLine(
28
- colors.text.body.secondary(\`\$ \${colors.text.usage.bin("${bin}")}${command.segments.length > 0 ? ` ${command.segments.map((segment) => `\${colors.text.usage.${(0, _shell_shock_core_plugin_utils.isDynamicPathSegment)(segment) ? "dynamic" : "command"}("${(0, _shell_shock_core_plugin_utils.isDynamicPathSegment)(segment) ? `[${(0, _stryke_string_format_snake_case.snakeCase)((0, _shell_shock_core_plugin_utils.getDynamicPathSegmentName)(segment))}]` : segment}")}`).join(" ")}` : ""}${Object.values(command.children).length > 0 ? ` \${colors.text.usage.dynamic("[command]")}` : ""}${command.args.length > 0 ? ` ${command.args.map((arg) => `\${colors.text.usage.args("<${(0, _stryke_string_format_snake_case.snakeCase)((arg.kind === _shell_shock_core.CommandParameterKinds.string || arg.kind === _shell_shock_core.CommandParameterKinds.number) && arg.choices && arg.choices.length > 0 ? arg.choices.join("|") : arg.kind === _shell_shock_core.CommandParameterKinds.string && arg.format ? arg.format : arg.name)}${(arg.kind === _shell_shock_core.CommandParameterKinds.string || arg.kind === _shell_shock_core.CommandParameterKinds.number) && arg.variadic ? "..." : ""}>")}`).join(" ")}` : ""} \${colors.text.usage.options("[options]")}\`), { padding: ${theme.padding.app * indent} }
29
+ colors.text.body.secondary(\`\${colors.border.app.divider.tertiary("\$_")} \${colors.text.usage.bin("${bin}")}${command.segments.length > 0 ? ` ${command.segments.map((segment) => `\${colors.text.usage.${(0, _shell_shock_core_plugin_utils.isDynamicPathSegment)(segment) ? "dynamic" : "command"}("${(0, _shell_shock_core_plugin_utils.isDynamicPathSegment)(segment) ? `[${(0, _stryke_string_format_snake_case.snakeCase)((0, _shell_shock_core_plugin_utils.getDynamicPathSegmentName)(segment))}]` : segment}")}`).join(" ")}` : ""}${Object.values(command.children).length > 0 ? ` \${colors.text.usage.dynamic("[command]")}` : ""}${command.args.length > 0 ? ` ${command.args.map((arg) => `\${colors.text.usage.args("<${(0, _stryke_string_format_snake_case.snakeCase)((arg.kind === _shell_shock_core.CommandParameterKinds.string || arg.kind === _shell_shock_core.CommandParameterKinds.number) && arg.choices && arg.choices.length > 0 ? arg.choices.join("|") : arg.kind === _shell_shock_core.CommandParameterKinds.string && arg.format ? arg.format : arg.name)}${(arg.kind === _shell_shock_core.CommandParameterKinds.string || arg.kind === _shell_shock_core.CommandParameterKinds.number) && arg.variadic ? "..." : ""}>")}`).join(" ")}` : ""} \${colors.text.usage.options("[options]")}\`), { padding: ${theme.padding.app * indent} }
29
30
  );`), (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {})]
30
31
  }), (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
31
32
  get when() {
@@ -157,6 +158,17 @@ function BaseHelpDisplay(props) {
157
158
  })
158
159
  ];
159
160
  }
161
+ function sortCommands(commands) {
162
+ return Object.values(commands).sort((a, b) => {
163
+ if (a.tags.some((tag) => tag.toLowerCase() === "deprecated") && !b.tags.some((tag) => tag.toLowerCase() === "deprecated")) return 1;
164
+ else if (!a.tags.some((tag) => tag.toLowerCase() === "deprecated") && b.tags.some((tag) => tag.toLowerCase() === "deprecated")) return -1;
165
+ else if (a.tags.some((tag) => tag.toLowerCase() === "experimental") && !b.tags.some((tag) => tag.toLowerCase() === "experimental")) return 1;
166
+ else if (!a.tags.some((tag) => tag.toLowerCase() === "experimental") && b.tags.some((tag) => tag.toLowerCase() === "experimental")) return -1;
167
+ else if (a.tags.some((tag) => tag.toLowerCase() === "utility") && !b.tags.some((tag) => tag.toLowerCase() === "utility")) return 1;
168
+ else if (!a.tags.some((tag) => tag.toLowerCase() === "utility") && b.tags.some((tag) => tag.toLowerCase() === "utility")) return -1;
169
+ return a.name.localeCompare(b.name);
170
+ });
171
+ }
160
172
  /**
161
173
  * A component that generates the invocation of the `help` function for a command.
162
174
  */
@@ -181,14 +193,14 @@ function VirtualCommandHelpDisplay(props) {
181
193
  (0, _alloy_js_core_jsx_runtime.createComponent)(_powerlines_plugin_alloy_core_components_spacing.Spacing, {}),
182
194
  (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.For, {
183
195
  get each() {
184
- return Object.values(commands);
196
+ return sortCommands(commands);
185
197
  },
186
198
  doubleHardline: true,
187
199
  joiner: _alloy_js_core.code`writeLine(""); `,
188
200
  ender: _alloy_js_core.code`writeLine(""); `,
189
201
  children: (child) => [
190
202
  (0, _alloy_js_core_jsx_runtime.memo)(() => _alloy_js_core.code`
191
- writeLine(colors.text.heading.primary(${child.icon ? `(isUnicodeSupported ? " ${child.icon} " : "") + ` : ""}"${child.title} ${child.isVirtual ? "" : "Command"}"));
203
+ writeLine(colors.text.heading.primary(${child.icon ? `(isUnicodeSupported ? " ${child.icon} " : "") + ` : ""}\`${child.title} ${child.isVirtual ? "" : "Command"}${child.tags?.length > 0 ? ` ${child.tags.map((tag) => `\${colors.text.body.tertiary(colors.text.tags.${(0, _stryke_string_format_camel_case.camelCase)(tag)} ? colors.text.tags.${(0, _stryke_string_format_camel_case.camelCase)(tag)}(" ${tag} ", true) : colors.text.tags.$default(" ${tag} ", true))}`).join(" ")}` : ""}\`);
192
204
  writeLine("");
193
205
  writeLine(colors.text.body.secondary(splitText(\`${(0, _shell_shock_core_plugin_utils.formatDescription)(child.description).replace(/\.+$/, "").trim()}.\`)));
194
206
  writeLine("");
@@ -235,14 +247,14 @@ function CommandHelpDisplay(props) {
235
247
  (0, _alloy_js_core_jsx_runtime.createComponent)(_powerlines_plugin_alloy_core_components_spacing.Spacing, {}),
236
248
  (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.For, {
237
249
  get each() {
238
- return Object.values(command.children);
250
+ return sortCommands(command.children);
239
251
  },
240
252
  doubleHardline: true,
241
253
  joiner: _alloy_js_core.code`writeLine(""); `,
242
254
  ender: _alloy_js_core.code`writeLine(""); `,
243
255
  children: (child) => [
244
256
  (0, _alloy_js_core_jsx_runtime.memo)(() => _alloy_js_core.code`
245
- writeLine(colors.text.heading.primary(${child.icon ? `(isUnicodeSupported ? " ${child.icon} " : "") + ` : ""}"${child.title} ${child.isVirtual ? "" : "Command"}"));
257
+ writeLine(colors.text.heading.primary(${child.icon ? `(isUnicodeSupported ? " ${child.icon} " : "") + ` : ""}\`${child.title} ${child.isVirtual ? "" : "Command"}${child.tags?.length > 0 ? ` ${child.tags.map((tag) => `\${colors.text.body.tertiary(colors.text.tags.${(0, _stryke_string_format_camel_case.camelCase)(tag)} ? colors.text.tags.${(0, _stryke_string_format_camel_case.camelCase)(tag)}(" ${tag} ", true) : colors.text.tags.$default(" ${tag} ", true))}`).join(" ")}` : ""}\`);
246
258
  writeLine("");
247
259
  writeLine(colors.text.body.secondary(splitText(\`${(0, _shell_shock_core_plugin_utils.formatDescription)(child.description).replace(/\.+$/, "").trim()}.\`)));
248
260
  writeLine("");
@@ -1,11 +1,12 @@
1
1
  import { createComponent, createIntrinsic, memo } from "@alloy-js/core/jsx-runtime";
2
2
  import { For, Show, code, computed } from "@alloy-js/core";
3
3
  import { formatDescription, formatShortDescription, getAppBin, getAppTitle, getDynamicPathSegmentName, isDynamicPathSegment, sortOptions } from "@shell-shock/core/plugin-utils";
4
- import { isSetString } from "@stryke/type-checks/is-set-string";
5
- import { Spacing } from "@powerlines/plugin-alloy/core/components/spacing";
6
4
  import { usePowerlines } from "@powerlines/plugin-alloy/core/contexts/context";
7
- import { CommandParameterKinds } from "@shell-shock/core";
5
+ import { Spacing } from "@powerlines/plugin-alloy/core/components/spacing";
8
6
  import { useTheme } from "@shell-shock/plugin-theme/contexts/theme";
7
+ import { isSetString } from "@stryke/type-checks/is-set-string";
8
+ import { CommandParameterKinds } from "@shell-shock/core";
9
+ import { camelCase } from "@stryke/string-format/camel-case";
9
10
  import { kebabCase } from "@stryke/string-format/kebab-case";
10
11
  import { snakeCase } from "@stryke/string-format/snake-case";
11
12
 
@@ -24,7 +25,7 @@ function HelpUsageDisplay(props) {
24
25
  hardline: true,
25
26
  children: (bin) => [memo(() => code`
26
27
  writeLine(
27
- colors.text.body.secondary(\`\$ \${colors.text.usage.bin("${bin}")}${command.segments.length > 0 ? ` ${command.segments.map((segment) => `\${colors.text.usage.${isDynamicPathSegment(segment) ? "dynamic" : "command"}("${isDynamicPathSegment(segment) ? `[${snakeCase(getDynamicPathSegmentName(segment))}]` : segment}")}`).join(" ")}` : ""}${Object.values(command.children).length > 0 ? ` \${colors.text.usage.dynamic("[command]")}` : ""}${command.args.length > 0 ? ` ${command.args.map((arg) => `\${colors.text.usage.args("<${snakeCase((arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.choices && arg.choices.length > 0 ? arg.choices.join("|") : arg.kind === CommandParameterKinds.string && arg.format ? arg.format : arg.name)}${(arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.variadic ? "..." : ""}>")}`).join(" ")}` : ""} \${colors.text.usage.options("[options]")}\`), { padding: ${theme.padding.app * indent} }
28
+ colors.text.body.secondary(\`\${colors.border.app.divider.tertiary("\$_")} \${colors.text.usage.bin("${bin}")}${command.segments.length > 0 ? ` ${command.segments.map((segment) => `\${colors.text.usage.${isDynamicPathSegment(segment) ? "dynamic" : "command"}("${isDynamicPathSegment(segment) ? `[${snakeCase(getDynamicPathSegmentName(segment))}]` : segment}")}`).join(" ")}` : ""}${Object.values(command.children).length > 0 ? ` \${colors.text.usage.dynamic("[command]")}` : ""}${command.args.length > 0 ? ` ${command.args.map((arg) => `\${colors.text.usage.args("<${snakeCase((arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.choices && arg.choices.length > 0 ? arg.choices.join("|") : arg.kind === CommandParameterKinds.string && arg.format ? arg.format : arg.name)}${(arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.variadic ? "..." : ""}>")}`).join(" ")}` : ""} \${colors.text.usage.options("[options]")}\`), { padding: ${theme.padding.app * indent} }
28
29
  );`), createIntrinsic("hbr", {})]
29
30
  }), createComponent(Show, {
30
31
  get when() {
@@ -156,6 +157,17 @@ function BaseHelpDisplay(props) {
156
157
  })
157
158
  ];
158
159
  }
160
+ function sortCommands(commands) {
161
+ return Object.values(commands).sort((a, b) => {
162
+ if (a.tags.some((tag) => tag.toLowerCase() === "deprecated") && !b.tags.some((tag) => tag.toLowerCase() === "deprecated")) return 1;
163
+ else if (!a.tags.some((tag) => tag.toLowerCase() === "deprecated") && b.tags.some((tag) => tag.toLowerCase() === "deprecated")) return -1;
164
+ else if (a.tags.some((tag) => tag.toLowerCase() === "experimental") && !b.tags.some((tag) => tag.toLowerCase() === "experimental")) return 1;
165
+ else if (!a.tags.some((tag) => tag.toLowerCase() === "experimental") && b.tags.some((tag) => tag.toLowerCase() === "experimental")) return -1;
166
+ else if (a.tags.some((tag) => tag.toLowerCase() === "utility") && !b.tags.some((tag) => tag.toLowerCase() === "utility")) return 1;
167
+ else if (!a.tags.some((tag) => tag.toLowerCase() === "utility") && b.tags.some((tag) => tag.toLowerCase() === "utility")) return -1;
168
+ return a.name.localeCompare(b.name);
169
+ });
170
+ }
159
171
  /**
160
172
  * A component that generates the invocation of the `help` function for a command.
161
173
  */
@@ -180,14 +192,14 @@ function VirtualCommandHelpDisplay(props) {
180
192
  createComponent(Spacing, {}),
181
193
  createComponent(For, {
182
194
  get each() {
183
- return Object.values(commands);
195
+ return sortCommands(commands);
184
196
  },
185
197
  doubleHardline: true,
186
198
  joiner: code`writeLine(""); `,
187
199
  ender: code`writeLine(""); `,
188
200
  children: (child) => [
189
201
  memo(() => code`
190
- writeLine(colors.text.heading.primary(${child.icon ? `(isUnicodeSupported ? " ${child.icon} " : "") + ` : ""}"${child.title} ${child.isVirtual ? "" : "Command"}"));
202
+ writeLine(colors.text.heading.primary(${child.icon ? `(isUnicodeSupported ? " ${child.icon} " : "") + ` : ""}\`${child.title} ${child.isVirtual ? "" : "Command"}${child.tags?.length > 0 ? ` ${child.tags.map((tag) => `\${colors.text.body.tertiary(colors.text.tags.${camelCase(tag)} ? colors.text.tags.${camelCase(tag)}(" ${tag} ", true) : colors.text.tags.$default(" ${tag} ", true))}`).join(" ")}` : ""}\`);
191
203
  writeLine("");
192
204
  writeLine(colors.text.body.secondary(splitText(\`${formatDescription(child.description).replace(/\.+$/, "").trim()}.\`)));
193
205
  writeLine("");
@@ -234,14 +246,14 @@ function CommandHelpDisplay(props) {
234
246
  createComponent(Spacing, {}),
235
247
  createComponent(For, {
236
248
  get each() {
237
- return Object.values(command.children);
249
+ return sortCommands(command.children);
238
250
  },
239
251
  doubleHardline: true,
240
252
  joiner: code`writeLine(""); `,
241
253
  ender: code`writeLine(""); `,
242
254
  children: (child) => [
243
255
  memo(() => code`
244
- writeLine(colors.text.heading.primary(${child.icon ? `(isUnicodeSupported ? " ${child.icon} " : "") + ` : ""}"${child.title} ${child.isVirtual ? "" : "Command"}"));
256
+ writeLine(colors.text.heading.primary(${child.icon ? `(isUnicodeSupported ? " ${child.icon} " : "") + ` : ""}\`${child.title} ${child.isVirtual ? "" : "Command"}${child.tags?.length > 0 ? ` ${child.tags.map((tag) => `\${colors.text.body.tertiary(colors.text.tags.${camelCase(tag)} ? colors.text.tags.${camelCase(tag)}(" ${tag} ", true) : colors.text.tags.$default(" ${tag} ", true))}`).join(" ")}` : ""}\`);
245
257
  writeLine("");
246
258
  writeLine(colors.text.body.secondary(splitText(\`${formatDescription(child.description).replace(/\.+$/, "").trim()}.\`)));
247
259
  writeLine("");
@@ -1 +1 @@
1
- {"version":3,"file":"display.mjs","names":[],"sources":["../../../../../plugin-help/dist/components/display.mjs"],"sourcesContent":["import { createComponent, createIntrinsic, memo } from \"@alloy-js/core/jsx-runtime\";\nimport { For, Show, code, computed } from \"@alloy-js/core\";\nimport { formatDescription, formatShortDescription, getAppBin, getAppTitle, getDynamicPathSegmentName, isDynamicPathSegment, sortOptions } from \"@shell-shock/core/plugin-utils\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport { usePowerlines } from \"@powerlines/plugin-alloy/core/contexts/context\";\nimport { CommandParameterKinds } from \"@shell-shock/core\";\nimport { useTheme } from \"@shell-shock/plugin-theme/contexts/theme\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { snakeCase } from \"@stryke/string-format/snake-case\";\n\n//#region src/components/display.tsx\n/**\n* A component that generates the usage display for a command.\n*/\nfunction HelpUsageDisplay(props) {\n\tconst { command, indent = 2 } = props;\n\tconst context = usePowerlines();\n\tconst theme = useTheme();\n\treturn [createComponent(For, {\n\t\tget each() {\n\t\t\treturn Object.keys(context.config.bin);\n\t\t},\n\t\thardline: true,\n\t\tchildren: (bin) => [memo(() => code`\n writeLine(\n colors.text.body.secondary(\\`\\$ \\${colors.text.usage.bin(\"${bin}\")}${command.segments.length > 0 ? ` ${command.segments.map((segment) => `\\${colors.text.usage.${isDynamicPathSegment(segment) ? \"dynamic\" : \"command\"}(\"${isDynamicPathSegment(segment) ? `[${snakeCase(getDynamicPathSegmentName(segment))}]` : segment}\")}`).join(\" \")}` : \"\"}${Object.values(command.children).length > 0 ? ` \\${colors.text.usage.dynamic(\"[command]\")}` : \"\"}${command.args.length > 0 ? ` ${command.args.map((arg) => `\\${colors.text.usage.args(\"<${snakeCase((arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.choices && arg.choices.length > 0 ? arg.choices.join(\"|\") : arg.kind === CommandParameterKinds.string && arg.format ? arg.format : arg.name)}${(arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.variadic ? \"...\" : \"\"}>\")}`).join(\" \")}` : \"\"} \\${colors.text.usage.options(\"[options]\")}\\`), { padding: ${theme.padding.app * indent} }\n );`), createIntrinsic(\"hbr\", {})]\n\t}), createComponent(Show, {\n\t\tget when() {\n\t\t\treturn command.args.length > 0;\n\t\t},\n\t\tget children() {\n\t\t\treturn [createIntrinsic(\"hbr\", {}), createComponent(For, {\n\t\t\t\tget each() {\n\t\t\t\t\treturn Object.keys(context.config.bin);\n\t\t\t\t},\n\t\t\t\thardline: true,\n\t\t\t\tchildren: (bin) => [memo(() => code`\n writeLine(\n colors.text.body.secondary(\\`\\$ \\${colors.text.usage.bin(\"${bin}\")}${command.segments.length > 0 ? ` ${command.segments.map((segment) => `\\${colors.text.usage.${isDynamicPathSegment(segment) ? \"dynamic\" : \"command\"}(\"${isDynamicPathSegment(segment) ? `[${snakeCase(getDynamicPathSegmentName(segment))}]` : segment}\")}`).join(\" \")}` : \"\"}${Object.values(command.children).length > 0 ? ` \\${colors.text.usage.dynamic(\"[command]\")}` : \"\"} \\${colors.text.usage.options(\"[options]\")}${command.args.length > 0 ? ` ${command.args.map((arg) => `\\${colors.text.usage.args(\"<${snakeCase((arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.choices && arg.choices.length > 0 ? arg.choices.join(\"|\") : arg.kind === CommandParameterKinds.string && arg.format ? arg.format : arg.name)}${(arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.variadic ? \"...\" : \"\"}>\")}`).join(\" \")}` : \"\"}\\`), { padding: ${theme.padding.app * indent} }\n );`), createIntrinsic(\"hbr\", {})]\n\t\t\t})];\n\t\t}\n\t})];\n}\n/**\n* A component that generates the options table display for a command.\n*/\nfunction HelpOptionsDisplay(props) {\n\tconst { options } = props;\n\tconst context = usePowerlines();\n\treturn [\n\t\tcode`table([ `,\n\t\tcreateIntrinsic(\"hbr\", {}),\n\t\tcreateComponent(For, {\n\t\t\tget each() {\n\t\t\t\treturn sortOptions(options);\n\t\t\t},\n\t\t\thardline: true,\n\t\t\tchildren: (option) => {\n\t\t\t\tconst flags = [];\n\t\t\t\tconst names = [];\n\t\t\t\tif (option.name.length === 1) flags.push(`-${option.name}`);\n\t\t\t\telse names.push(`--${kebabCase(option.name)}`);\n\t\t\t\toption.alias.forEach((alias) => {\n\t\t\t\t\tif (alias.length === 1) flags.push(`-${alias}`);\n\t\t\t\t\telse names.push(`--${kebabCase(alias)}`);\n\t\t\t\t});\n\t\t\t\treturn code`[{ value: colors.text.body.primary(\"${flags.length > 0 ? `${flags.sort().join(\", \")}${names.length > 0 ? \", \" : \"\"}` : \"\"}${names.length > 0 ? names.sort().join(\", \") : \"\"}${option.kind === CommandParameterKinds.string ? ` <${snakeCase(option.choices && option.choices.length > 0 ? option.choices.join(\"|\") : option.format ? option.format : option.name)}${option.variadic ? \"...\" : \"\"}>` : option.kind === CommandParameterKinds.number ? ` <${snakeCase(option.choices && option.choices.length > 0 ? option.choices.join(\"|\") : option.name)}${option.variadic ? \"...\" : \"\"}>` : \"\"}\"), align: \"right\", border: \"none\", maxWidth: \"1/3\" }, { value: colors.text.body.tertiary(\\`${formatShortDescription(option.description).replace(/\\.+$/, \"\").trim()}${option.env || option.default !== void 0 ? ` (${option.env ? `env: ${context.config.appSpecificEnvPrefix}_${option.env}${option.default !== void 0 ? \", \" : \"\"}` : \"\"}${option.default !== void 0 ? `default: ${JSON.stringify(option.default).replace(/\"/g, \"\\\\\\\"\")}` : \"\"})` : \"\"}.\\`), align: \"left\", border: \"none\" }], `;\n\t\t\t}\n\t\t}),\n\t\tcreateIntrinsic(\"hbr\", {}),\n\t\tcode` ]); `\n\t];\n}\n/**\n* A component that generates the commands table display for a command.\n*/\nfunction HelpCommandsDisplay(props) {\n\tconst { commands } = props;\n\treturn [\n\t\tcode`table([ `,\n\t\tcreateIntrinsic(\"hbr\", {}),\n\t\tcreateComponent(For, {\n\t\t\tget each() {\n\t\t\t\treturn Object.values(commands);\n\t\t\t},\n\t\t\thardline: true,\n\t\t\tchildren: (child) => code`[{ value: colors.text.body.primary(\"${child.name}\"), align: \"right\", border: \"none\" }, { value: colors.text.body.tertiary(\\`${formatShortDescription(child.description).replace(/\\.+$/, \"\").trim()}.\\`), align: \"left\", border: \"none\" }], `\n\t\t}),\n\t\tcreateIntrinsic(\"hbr\", {}),\n\t\tcode` ]); `\n\t];\n}\n/**\n* A component that generates the `help` function declaration for a command.\n*/\nfunction BaseHelpDisplay(props) {\n\tconst { command, indent = 1, filterGlobalOptions = false } = props;\n\tconst theme = useTheme();\n\tconst context = usePowerlines();\n\tconst options = computed(() => filterGlobalOptions ? Object.values(command.options).filter((option) => !context.options.some((globalOption) => globalOption.name === option.name || option.alias.includes(globalOption.name) || globalOption.alias?.includes(option.name) || globalOption.alias?.some((alias) => option.alias.includes(alias)))) : Object.values(command.options));\n\treturn [\n\t\tmemo(() => code`writeLine(colors.bold(colors.text.heading.secondary(\"Usage:\"))${indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"});`),\n\t\tcreateIntrinsic(\"hbr\", {}),\n\t\tcreateComponent(HelpUsageDisplay, {\n\t\t\tcommand,\n\t\t\tindent\n\t\t}),\n\t\tcreateComponent(Spacing, {}),\n\t\tcreateComponent(Show, {\n\t\t\tget when() {\n\t\t\t\treturn options.value.length > 0;\n\t\t\t},\n\t\t\tget children() {\n\t\t\t\treturn [\n\t\t\t\t\tmemo(() => code`writeLine(\"\");\n writeLine(colors.bold(colors.text.heading.secondary(\"Options:\"))${indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"});`),\n\t\t\t\t\tcreateIntrinsic(\"hbr\", {}),\n\t\t\t\t\tcreateComponent(HelpOptionsDisplay, { get options() {\n\t\t\t\t\t\treturn options.value;\n\t\t\t\t\t} }),\n\t\t\t\t\tcreateComponent(Spacing, {})\n\t\t\t\t];\n\t\t\t}\n\t\t}),\n\t\tcreateComponent(Show, {\n\t\t\tget when() {\n\t\t\t\treturn Object.keys(command.children).length > 0;\n\t\t\t},\n\t\t\tget children() {\n\t\t\t\treturn [\n\t\t\t\t\tmemo(() => code`writeLine(\"\");\n writeLine(colors.bold(colors.text.heading.secondary(\"Commands:\"))${indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"});`),\n\t\t\t\t\tcreateIntrinsic(\"hbr\", {}),\n\t\t\t\t\tcreateComponent(HelpCommandsDisplay, { get commands() {\n\t\t\t\t\t\treturn command.children;\n\t\t\t\t\t} }),\n\t\t\t\t\tcreateComponent(Spacing, {})\n\t\t\t\t];\n\t\t\t}\n\t\t}),\n\t\tcreateComponent(Show, {\n\t\t\tget when() {\n\t\t\t\treturn isSetString(command.reference);\n\t\t\t},\n\t\t\tget children() {\n\t\t\t\treturn [\n\t\t\t\t\tmemo(() => code`writeLine(\"\");\n writeLine(colors.text.heading.tertiary(\\`More information about this command can be found in the reference documentation at ${command.reference}\\`)${indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"});`),\n\t\t\t\t\tcreateIntrinsic(\"hbr\", {}),\n\t\t\t\t\tcreateComponent(Spacing, {})\n\t\t\t\t];\n\t\t\t}\n\t\t})\n\t];\n}\n/**\n* A component that generates the invocation of the `help` function for a command.\n*/\nfunction VirtualCommandHelpDisplay(props) {\n\tconst { options, segments, commands } = props;\n\tconst context = usePowerlines();\n\treturn [\n\t\tcreateIntrinsic(\"hbr\", {}),\n\t\tcode`writeLine(colors.bold(colors.text.heading.secondary(\"Global Options:\")));`,\n\t\tcreateIntrinsic(\"hbr\", {}),\n\t\tcreateComponent(HelpOptionsDisplay, { options }),\n\t\tcode`writeLine(\"\"); `,\n\t\tcreateComponent(Spacing, {}),\n\t\tcreateComponent(Show, {\n\t\t\tget when() {\n\t\t\t\treturn Object.keys(commands).length > 0;\n\t\t\t},\n\t\t\tget children() {\n\t\t\t\treturn [\n\t\t\t\t\tmemo(() => code`writeLine(colors.text.body.secondary(\"The following commands are available through the ${getAppTitle(context, true)} command-line interface:\"));\n writeLine(\"\"); `),\n\t\t\t\t\tcreateComponent(Spacing, {}),\n\t\t\t\t\tcreateComponent(For, {\n\t\t\t\t\t\tget each() {\n\t\t\t\t\t\t\treturn Object.values(commands);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdoubleHardline: true,\n\t\t\t\t\t\tjoiner: code`writeLine(\"\"); `,\n\t\t\t\t\t\tender: code`writeLine(\"\"); `,\n\t\t\t\t\t\tchildren: (child) => [\n\t\t\t\t\t\t\tmemo(() => code`\n writeLine(colors.text.heading.primary(${child.icon ? `(isUnicodeSupported ? \" ${child.icon} \" : \"\") + ` : \"\"}\"${child.title} ${child.isVirtual ? \"\" : \"Command\"}\"));\n writeLine(\"\");\n writeLine(colors.text.body.secondary(splitText(\\`${formatDescription(child.description).replace(/\\.+$/, \"\").trim()}.\\`)));\n writeLine(\"\");\n `),\n\t\t\t\t\t\t\tcreateIntrinsic(\"hbr\", {}),\n\t\t\t\t\t\t\tcreateComponent(BaseHelpDisplay, {\n\t\t\t\t\t\t\t\tcommand: child,\n\t\t\t\t\t\t\t\tindent: 2,\n\t\t\t\t\t\t\t\tfilterGlobalOptions: true\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcreateIntrinsic(\"hbr\", {})\n\t\t\t\t\t\t]\n\t\t\t\t\t}),\n\t\t\t\t\tmemo(() => code`help(\"Running a specific command with the help flag (via: '${getAppBin(context)}${segments && segments.length > 0 ? ` ${segments.join(\" \")}` : \"\"} <specific command> --help') will provide additional information that is specific to that command.\");\n writeLine(\"\");`)\n\t\t\t\t];\n\t\t\t}\n\t\t})\n\t];\n}\n/**\n* A component that generates the invocation of the `help` function for a command.\n*/\nfunction CommandHelpDisplay(props) {\n\tconst { command } = props;\n\tconst context = usePowerlines();\n\treturn [\n\t\tcode`writeLine(\"\"); `,\n\t\tcreateComponent(Spacing, {}),\n\t\tcreateComponent(BaseHelpDisplay, {\n\t\t\tcommand,\n\t\t\tfilterGlobalOptions: false\n\t\t}),\n\t\tcode`writeLine(\"\"); `,\n\t\tcreateComponent(Spacing, {}),\n\t\tcreateComponent(Show, {\n\t\t\tget when() {\n\t\t\t\treturn Object.keys(command.children).length > 0;\n\t\t\t},\n\t\t\tget children() {\n\t\t\t\treturn [\n\t\t\t\t\tcode`writeLine(colors.text.body.secondary(\"The following sub-commands are available:\"));\n writeLine(\"\"); `,\n\t\t\t\t\tcreateComponent(Spacing, {}),\n\t\t\t\t\tcreateComponent(For, {\n\t\t\t\t\t\tget each() {\n\t\t\t\t\t\t\treturn Object.values(command.children);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdoubleHardline: true,\n\t\t\t\t\t\tjoiner: code`writeLine(\"\"); `,\n\t\t\t\t\t\tender: code`writeLine(\"\"); `,\n\t\t\t\t\t\tchildren: (child) => [\n\t\t\t\t\t\t\tmemo(() => code`\n writeLine(colors.text.heading.primary(${child.icon ? `(isUnicodeSupported ? \" ${child.icon} \" : \"\") + ` : \"\"}\"${child.title} ${child.isVirtual ? \"\" : \"Command\"}\"));\n writeLine(\"\");\n writeLine(colors.text.body.secondary(splitText(\\`${formatDescription(child.description).replace(/\\.+$/, \"\").trim()}.\\`)));\n writeLine(\"\");\n `),\n\t\t\t\t\t\t\tcreateIntrinsic(\"hbr\", {}),\n\t\t\t\t\t\t\tcreateComponent(BaseHelpDisplay, {\n\t\t\t\t\t\t\t\tcommand: child,\n\t\t\t\t\t\t\t\tindent: 2,\n\t\t\t\t\t\t\t\tfilterGlobalOptions: true\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcreateIntrinsic(\"hbr\", {})\n\t\t\t\t\t\t]\n\t\t\t\t\t}),\n\t\t\t\t\tmemo(() => code`help(\"Running a specific command with the help flag (via: '${getAppBin(context)} ${command.segments.join(\" \")} <specific command> --help') will provide additional information that is specific to that command.\");\n writeLine(\"\");`)\n\t\t\t\t];\n\t\t\t}\n\t\t})\n\t];\n}\n\n//#endregion\nexport { BaseHelpDisplay, CommandHelpDisplay, HelpCommandsDisplay, HelpOptionsDisplay, HelpUsageDisplay, VirtualCommandHelpDisplay };\n//# sourceMappingURL=display.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"display.mjs","names":[],"sources":["../../../../../plugin-help/dist/components/display.mjs"],"sourcesContent":["import { createComponent, createIntrinsic, memo } from \"@alloy-js/core/jsx-runtime\";\nimport { For, Show, code, computed } from \"@alloy-js/core\";\nimport { formatDescription, formatShortDescription, getAppBin, getAppTitle, getDynamicPathSegmentName, isDynamicPathSegment, sortOptions } from \"@shell-shock/core/plugin-utils\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport { usePowerlines } from \"@powerlines/plugin-alloy/core/contexts/context\";\nimport { CommandParameterKinds } from \"@shell-shock/core\";\nimport { useTheme } from \"@shell-shock/plugin-theme/contexts/theme\";\nimport { camelCase } from \"@stryke/string-format/camel-case\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { snakeCase } from \"@stryke/string-format/snake-case\";\n\n//#region src/components/display.tsx\n/**\n* A component that generates the usage display for a command.\n*/\nfunction HelpUsageDisplay(props) {\n\tconst { command, indent = 2 } = props;\n\tconst context = usePowerlines();\n\tconst theme = useTheme();\n\treturn [createComponent(For, {\n\t\tget each() {\n\t\t\treturn Object.keys(context.config.bin);\n\t\t},\n\t\thardline: true,\n\t\tchildren: (bin) => [memo(() => code`\n writeLine(\n colors.text.body.secondary(\\`\\${colors.border.app.divider.tertiary(\"\\$_\")} \\${colors.text.usage.bin(\"${bin}\")}${command.segments.length > 0 ? ` ${command.segments.map((segment) => `\\${colors.text.usage.${isDynamicPathSegment(segment) ? \"dynamic\" : \"command\"}(\"${isDynamicPathSegment(segment) ? `[${snakeCase(getDynamicPathSegmentName(segment))}]` : segment}\")}`).join(\" \")}` : \"\"}${Object.values(command.children).length > 0 ? ` \\${colors.text.usage.dynamic(\"[command]\")}` : \"\"}${command.args.length > 0 ? ` ${command.args.map((arg) => `\\${colors.text.usage.args(\"<${snakeCase((arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.choices && arg.choices.length > 0 ? arg.choices.join(\"|\") : arg.kind === CommandParameterKinds.string && arg.format ? arg.format : arg.name)}${(arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.variadic ? \"...\" : \"\"}>\")}`).join(\" \")}` : \"\"} \\${colors.text.usage.options(\"[options]\")}\\`), { padding: ${theme.padding.app * indent} }\n );`), createIntrinsic(\"hbr\", {})]\n\t}), createComponent(Show, {\n\t\tget when() {\n\t\t\treturn command.args.length > 0;\n\t\t},\n\t\tget children() {\n\t\t\treturn [createIntrinsic(\"hbr\", {}), createComponent(For, {\n\t\t\t\tget each() {\n\t\t\t\t\treturn Object.keys(context.config.bin);\n\t\t\t\t},\n\t\t\t\thardline: true,\n\t\t\t\tchildren: (bin) => [memo(() => code`\n writeLine(\n colors.text.body.secondary(\\`\\$ \\${colors.text.usage.bin(\"${bin}\")}${command.segments.length > 0 ? ` ${command.segments.map((segment) => `\\${colors.text.usage.${isDynamicPathSegment(segment) ? \"dynamic\" : \"command\"}(\"${isDynamicPathSegment(segment) ? `[${snakeCase(getDynamicPathSegmentName(segment))}]` : segment}\")}`).join(\" \")}` : \"\"}${Object.values(command.children).length > 0 ? ` \\${colors.text.usage.dynamic(\"[command]\")}` : \"\"} \\${colors.text.usage.options(\"[options]\")}${command.args.length > 0 ? ` ${command.args.map((arg) => `\\${colors.text.usage.args(\"<${snakeCase((arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.choices && arg.choices.length > 0 ? arg.choices.join(\"|\") : arg.kind === CommandParameterKinds.string && arg.format ? arg.format : arg.name)}${(arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.variadic ? \"...\" : \"\"}>\")}`).join(\" \")}` : \"\"}\\`), { padding: ${theme.padding.app * indent} }\n );`), createIntrinsic(\"hbr\", {})]\n\t\t\t})];\n\t\t}\n\t})];\n}\n/**\n* A component that generates the options table display for a command.\n*/\nfunction HelpOptionsDisplay(props) {\n\tconst { options } = props;\n\tconst context = usePowerlines();\n\treturn [\n\t\tcode`table([ `,\n\t\tcreateIntrinsic(\"hbr\", {}),\n\t\tcreateComponent(For, {\n\t\t\tget each() {\n\t\t\t\treturn sortOptions(options);\n\t\t\t},\n\t\t\thardline: true,\n\t\t\tchildren: (option) => {\n\t\t\t\tconst flags = [];\n\t\t\t\tconst names = [];\n\t\t\t\tif (option.name.length === 1) flags.push(`-${option.name}`);\n\t\t\t\telse names.push(`--${kebabCase(option.name)}`);\n\t\t\t\toption.alias.forEach((alias) => {\n\t\t\t\t\tif (alias.length === 1) flags.push(`-${alias}`);\n\t\t\t\t\telse names.push(`--${kebabCase(alias)}`);\n\t\t\t\t});\n\t\t\t\treturn code`[{ value: colors.text.body.primary(\"${flags.length > 0 ? `${flags.sort().join(\", \")}${names.length > 0 ? \", \" : \"\"}` : \"\"}${names.length > 0 ? names.sort().join(\", \") : \"\"}${option.kind === CommandParameterKinds.string ? ` <${snakeCase(option.choices && option.choices.length > 0 ? option.choices.join(\"|\") : option.format ? option.format : option.name)}${option.variadic ? \"...\" : \"\"}>` : option.kind === CommandParameterKinds.number ? ` <${snakeCase(option.choices && option.choices.length > 0 ? option.choices.join(\"|\") : option.name)}${option.variadic ? \"...\" : \"\"}>` : \"\"}\"), align: \"right\", border: \"none\", maxWidth: \"1/3\" }, { value: colors.text.body.tertiary(\\`${formatShortDescription(option.description).replace(/\\.+$/, \"\").trim()}${option.env || option.default !== void 0 ? ` (${option.env ? `env: ${context.config.appSpecificEnvPrefix}_${option.env}${option.default !== void 0 ? \", \" : \"\"}` : \"\"}${option.default !== void 0 ? `default: ${JSON.stringify(option.default).replace(/\"/g, \"\\\\\\\"\")}` : \"\"})` : \"\"}.\\`), align: \"left\", border: \"none\" }], `;\n\t\t\t}\n\t\t}),\n\t\tcreateIntrinsic(\"hbr\", {}),\n\t\tcode` ]); `\n\t];\n}\n/**\n* A component that generates the commands table display for a command.\n*/\nfunction HelpCommandsDisplay(props) {\n\tconst { commands } = props;\n\treturn [\n\t\tcode`table([ `,\n\t\tcreateIntrinsic(\"hbr\", {}),\n\t\tcreateComponent(For, {\n\t\t\tget each() {\n\t\t\t\treturn Object.values(commands);\n\t\t\t},\n\t\t\thardline: true,\n\t\t\tchildren: (child) => code`[{ value: colors.text.body.primary(\"${child.name}\"), align: \"right\", border: \"none\" }, { value: colors.text.body.tertiary(\\`${formatShortDescription(child.description).replace(/\\.+$/, \"\").trim()}.\\`), align: \"left\", border: \"none\" }], `\n\t\t}),\n\t\tcreateIntrinsic(\"hbr\", {}),\n\t\tcode` ]); `\n\t];\n}\n/**\n* A component that generates the `help` function declaration for a command.\n*/\nfunction BaseHelpDisplay(props) {\n\tconst { command, indent = 1, filterGlobalOptions = false } = props;\n\tconst theme = useTheme();\n\tconst context = usePowerlines();\n\tconst options = computed(() => filterGlobalOptions ? Object.values(command.options).filter((option) => !context.options.some((globalOption) => globalOption.name === option.name || option.alias.includes(globalOption.name) || globalOption.alias?.includes(option.name) || globalOption.alias?.some((alias) => option.alias.includes(alias)))) : Object.values(command.options));\n\treturn [\n\t\tmemo(() => code`writeLine(colors.bold(colors.text.heading.secondary(\"Usage:\"))${indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"});`),\n\t\tcreateIntrinsic(\"hbr\", {}),\n\t\tcreateComponent(HelpUsageDisplay, {\n\t\t\tcommand,\n\t\t\tindent\n\t\t}),\n\t\tcreateComponent(Spacing, {}),\n\t\tcreateComponent(Show, {\n\t\t\tget when() {\n\t\t\t\treturn options.value.length > 0;\n\t\t\t},\n\t\t\tget children() {\n\t\t\t\treturn [\n\t\t\t\t\tmemo(() => code`writeLine(\"\");\n writeLine(colors.bold(colors.text.heading.secondary(\"Options:\"))${indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"});`),\n\t\t\t\t\tcreateIntrinsic(\"hbr\", {}),\n\t\t\t\t\tcreateComponent(HelpOptionsDisplay, { get options() {\n\t\t\t\t\t\treturn options.value;\n\t\t\t\t\t} }),\n\t\t\t\t\tcreateComponent(Spacing, {})\n\t\t\t\t];\n\t\t\t}\n\t\t}),\n\t\tcreateComponent(Show, {\n\t\t\tget when() {\n\t\t\t\treturn Object.keys(command.children).length > 0;\n\t\t\t},\n\t\t\tget children() {\n\t\t\t\treturn [\n\t\t\t\t\tmemo(() => code`writeLine(\"\");\n writeLine(colors.bold(colors.text.heading.secondary(\"Commands:\"))${indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"});`),\n\t\t\t\t\tcreateIntrinsic(\"hbr\", {}),\n\t\t\t\t\tcreateComponent(HelpCommandsDisplay, { get commands() {\n\t\t\t\t\t\treturn command.children;\n\t\t\t\t\t} }),\n\t\t\t\t\tcreateComponent(Spacing, {})\n\t\t\t\t];\n\t\t\t}\n\t\t}),\n\t\tcreateComponent(Show, {\n\t\t\tget when() {\n\t\t\t\treturn isSetString(command.reference);\n\t\t\t},\n\t\t\tget children() {\n\t\t\t\treturn [\n\t\t\t\t\tmemo(() => code`writeLine(\"\");\n writeLine(colors.text.heading.tertiary(\\`More information about this command can be found in the reference documentation at ${command.reference}\\`)${indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"});`),\n\t\t\t\t\tcreateIntrinsic(\"hbr\", {}),\n\t\t\t\t\tcreateComponent(Spacing, {})\n\t\t\t\t];\n\t\t\t}\n\t\t})\n\t];\n}\nfunction sortCommands(commands) {\n\treturn Object.values(commands).sort((a, b) => {\n\t\tif (a.tags.some((tag) => tag.toLowerCase() === \"deprecated\") && !b.tags.some((tag) => tag.toLowerCase() === \"deprecated\")) return 1;\n\t\telse if (!a.tags.some((tag) => tag.toLowerCase() === \"deprecated\") && b.tags.some((tag) => tag.toLowerCase() === \"deprecated\")) return -1;\n\t\telse if (a.tags.some((tag) => tag.toLowerCase() === \"experimental\") && !b.tags.some((tag) => tag.toLowerCase() === \"experimental\")) return 1;\n\t\telse if (!a.tags.some((tag) => tag.toLowerCase() === \"experimental\") && b.tags.some((tag) => tag.toLowerCase() === \"experimental\")) return -1;\n\t\telse if (a.tags.some((tag) => tag.toLowerCase() === \"utility\") && !b.tags.some((tag) => tag.toLowerCase() === \"utility\")) return 1;\n\t\telse if (!a.tags.some((tag) => tag.toLowerCase() === \"utility\") && b.tags.some((tag) => tag.toLowerCase() === \"utility\")) return -1;\n\t\treturn a.name.localeCompare(b.name);\n\t});\n}\n/**\n* A component that generates the invocation of the `help` function for a command.\n*/\nfunction VirtualCommandHelpDisplay(props) {\n\tconst { options, segments, commands } = props;\n\tconst context = usePowerlines();\n\treturn [\n\t\tcreateIntrinsic(\"hbr\", {}),\n\t\tcode`writeLine(colors.bold(colors.text.heading.secondary(\"Global Options:\")));`,\n\t\tcreateIntrinsic(\"hbr\", {}),\n\t\tcreateComponent(HelpOptionsDisplay, { options }),\n\t\tcode`writeLine(\"\"); `,\n\t\tcreateComponent(Spacing, {}),\n\t\tcreateComponent(Show, {\n\t\t\tget when() {\n\t\t\t\treturn Object.keys(commands).length > 0;\n\t\t\t},\n\t\t\tget children() {\n\t\t\t\treturn [\n\t\t\t\t\tmemo(() => code`writeLine(colors.text.body.secondary(\"The following commands are available through the ${getAppTitle(context, true)} command-line interface:\"));\n writeLine(\"\"); `),\n\t\t\t\t\tcreateComponent(Spacing, {}),\n\t\t\t\t\tcreateComponent(For, {\n\t\t\t\t\t\tget each() {\n\t\t\t\t\t\t\treturn sortCommands(commands);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdoubleHardline: true,\n\t\t\t\t\t\tjoiner: code`writeLine(\"\"); `,\n\t\t\t\t\t\tender: code`writeLine(\"\"); `,\n\t\t\t\t\t\tchildren: (child) => [\n\t\t\t\t\t\t\tmemo(() => code`\n writeLine(colors.text.heading.primary(${child.icon ? `(isUnicodeSupported ? \" ${child.icon} \" : \"\") + ` : \"\"}\\`${child.title} ${child.isVirtual ? \"\" : \"Command\"}${child.tags?.length > 0 ? ` ${child.tags.map((tag) => `\\${colors.text.body.tertiary(colors.text.tags.${camelCase(tag)} ? colors.text.tags.${camelCase(tag)}(\" ${tag} \", true) : colors.text.tags.$default(\" ${tag} \", true))}`).join(\" \")}` : \"\"}\\`);\n writeLine(\"\");\n writeLine(colors.text.body.secondary(splitText(\\`${formatDescription(child.description).replace(/\\.+$/, \"\").trim()}.\\`)));\n writeLine(\"\");\n `),\n\t\t\t\t\t\t\tcreateIntrinsic(\"hbr\", {}),\n\t\t\t\t\t\t\tcreateComponent(BaseHelpDisplay, {\n\t\t\t\t\t\t\t\tcommand: child,\n\t\t\t\t\t\t\t\tindent: 2,\n\t\t\t\t\t\t\t\tfilterGlobalOptions: true\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcreateIntrinsic(\"hbr\", {})\n\t\t\t\t\t\t]\n\t\t\t\t\t}),\n\t\t\t\t\tmemo(() => code`help(\"Running a specific command with the help flag (via: '${getAppBin(context)}${segments && segments.length > 0 ? ` ${segments.join(\" \")}` : \"\"} <specific command> --help') will provide additional information that is specific to that command.\");\n writeLine(\"\");`)\n\t\t\t\t];\n\t\t\t}\n\t\t})\n\t];\n}\n/**\n* A component that generates the invocation of the `help` function for a command.\n*/\nfunction CommandHelpDisplay(props) {\n\tconst { command } = props;\n\tconst context = usePowerlines();\n\treturn [\n\t\tcode`writeLine(\"\"); `,\n\t\tcreateComponent(Spacing, {}),\n\t\tcreateComponent(BaseHelpDisplay, {\n\t\t\tcommand,\n\t\t\tfilterGlobalOptions: false\n\t\t}),\n\t\tcode`writeLine(\"\"); `,\n\t\tcreateComponent(Spacing, {}),\n\t\tcreateComponent(Show, {\n\t\t\tget when() {\n\t\t\t\treturn Object.keys(command.children).length > 0;\n\t\t\t},\n\t\t\tget children() {\n\t\t\t\treturn [\n\t\t\t\t\tcode`writeLine(colors.text.body.secondary(\"The following sub-commands are available:\"));\n writeLine(\"\"); `,\n\t\t\t\t\tcreateComponent(Spacing, {}),\n\t\t\t\t\tcreateComponent(For, {\n\t\t\t\t\t\tget each() {\n\t\t\t\t\t\t\treturn sortCommands(command.children);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdoubleHardline: true,\n\t\t\t\t\t\tjoiner: code`writeLine(\"\"); `,\n\t\t\t\t\t\tender: code`writeLine(\"\"); `,\n\t\t\t\t\t\tchildren: (child) => [\n\t\t\t\t\t\t\tmemo(() => code`\n writeLine(colors.text.heading.primary(${child.icon ? `(isUnicodeSupported ? \" ${child.icon} \" : \"\") + ` : \"\"}\\`${child.title} ${child.isVirtual ? \"\" : \"Command\"}${child.tags?.length > 0 ? ` ${child.tags.map((tag) => `\\${colors.text.body.tertiary(colors.text.tags.${camelCase(tag)} ? colors.text.tags.${camelCase(tag)}(\" ${tag} \", true) : colors.text.tags.$default(\" ${tag} \", true))}`).join(\" \")}` : \"\"}\\`);\n writeLine(\"\");\n writeLine(colors.text.body.secondary(splitText(\\`${formatDescription(child.description).replace(/\\.+$/, \"\").trim()}.\\`)));\n writeLine(\"\");\n `),\n\t\t\t\t\t\t\tcreateIntrinsic(\"hbr\", {}),\n\t\t\t\t\t\t\tcreateComponent(BaseHelpDisplay, {\n\t\t\t\t\t\t\t\tcommand: child,\n\t\t\t\t\t\t\t\tindent: 2,\n\t\t\t\t\t\t\t\tfilterGlobalOptions: true\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcreateIntrinsic(\"hbr\", {})\n\t\t\t\t\t\t]\n\t\t\t\t\t}),\n\t\t\t\t\tmemo(() => code`help(\"Running a specific command with the help flag (via: '${getAppBin(context)} ${command.segments.join(\" \")} <specific command> --help') will provide additional information that is specific to that command.\");\n writeLine(\"\");`)\n\t\t\t\t];\n\t\t\t}\n\t\t})\n\t];\n}\n\n//#endregion\nexport { BaseHelpDisplay, CommandHelpDisplay, HelpCommandsDisplay, HelpOptionsDisplay, HelpUsageDisplay, VirtualCommandHelpDisplay };\n//# sourceMappingURL=display.mjs.map"],"mappings":"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"}
@@ -4,13 +4,13 @@ let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
4
4
  let _alloy_js_core = require("@alloy-js/core");
5
5
  let _alloy_js_typescript = require("@alloy-js/typescript");
6
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
7
  let _powerlines_plugin_alloy_core_contexts_context = require("@powerlines/plugin-alloy/core/contexts/context");
8
+ let _powerlines_plugin_alloy_core_components_spacing = require("@powerlines/plugin-alloy/core/components/spacing");
9
+ let _powerlines_plugin_alloy_typescript_components_builtin_file = require("@powerlines/plugin-alloy/typescript/components/builtin-file");
10
+ let _stryke_path = require("@stryke/path");
9
11
  let defu = require("defu");
10
12
  defu = require_runtime.__toESM(defu);
11
13
  let _powerlines_plugin_alloy_typescript = require("@powerlines/plugin-alloy/typescript");
12
- let _powerlines_plugin_alloy_typescript_components_builtin_file = require("@powerlines/plugin-alloy/typescript/components/builtin-file");
13
- let _stryke_path = require("@stryke/path");
14
14
 
15
15
  //#region ../plugin-help/dist/components/help-builtin.mjs
16
16
  /**
@@ -3,12 +3,12 @@ import { createComponent, memo, mergeProps } from "@alloy-js/core/jsx-runtime";
3
3
  import { Show, code, splitProps } from "@alloy-js/core";
4
4
  import { FunctionDeclaration, IfStatement } from "@alloy-js/typescript";
5
5
  import { getAppTitle, isDynamicPathSegment } from "@shell-shock/core/plugin-utils";
6
- import { Spacing } from "@powerlines/plugin-alloy/core/components/spacing";
7
6
  import { usePowerlines } from "@powerlines/plugin-alloy/core/contexts/context";
8
- import defu from "defu";
9
- import "@powerlines/plugin-alloy/typescript";
7
+ import { Spacing } from "@powerlines/plugin-alloy/core/components/spacing";
10
8
  import { BuiltinFile } from "@powerlines/plugin-alloy/typescript/components/builtin-file";
11
9
  import { joinPaths } from "@stryke/path";
10
+ import defu from "defu";
11
+ import "@powerlines/plugin-alloy/typescript";
12
12
 
13
13
  //#region ../plugin-help/dist/components/help-builtin.mjs
14
14
  /**
@@ -3,8 +3,8 @@ let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
3
3
  let _alloy_js_core = require("@alloy-js/core");
4
4
  let _alloy_js_typescript = require("@alloy-js/typescript");
5
5
  let _powerlines_plugin_alloy_core_contexts_context = require("@powerlines/plugin-alloy/core/contexts/context");
6
- let _powerlines_plugin_alloy_typescript = require("@powerlines/plugin-alloy/typescript");
7
6
  let _stryke_path = require("@stryke/path");
7
+ let _powerlines_plugin_alloy_typescript = require("@powerlines/plugin-alloy/typescript");
8
8
  let _powerlines_deepkit_vendor_type = require("@powerlines/deepkit/vendor/type");
9
9
  let _powerlines_plugin_alloy_core = require("@powerlines/plugin-alloy/core");
10
10
  let _powerlines_plugin_alloy_typescript_components_tsdoc = require("@powerlines/plugin-alloy/typescript/components/tsdoc");
@@ -2,8 +2,8 @@ import { createComponent } from "@alloy-js/core/jsx-runtime";
2
2
  import { code } from "@alloy-js/core";
3
3
  import { FunctionDeclaration, InterfaceDeclaration } from "@alloy-js/typescript";
4
4
  import { usePowerlines } from "@powerlines/plugin-alloy/core/contexts/context";
5
- import { InterfaceMember, TypescriptFile } from "@powerlines/plugin-alloy/typescript";
6
5
  import { joinPaths } from "@stryke/path";
6
+ import { InterfaceMember, TypescriptFile } from "@powerlines/plugin-alloy/typescript";
7
7
  import { ReflectionKind } from "@powerlines/deepkit/vendor/type";
8
8
  import { Spacing } from "@powerlines/plugin-alloy/core";
9
9
  import { TSDoc, TSDocDefaultValue, TSDocRemarks } from "@powerlines/plugin-alloy/typescript/components/tsdoc";
@@ -7,14 +7,14 @@ let _alloy_js_core = require("@alloy-js/core");
7
7
  let _powerlines_plugin_alloy_core_components = require("@powerlines/plugin-alloy/core/components");
8
8
  let _powerlines_plugin_alloy_render = require("@powerlines/plugin-alloy/render");
9
9
  let _shell_shock_core_plugin_utils = require("@shell-shock/core/plugin-utils");
10
- let _shell_shock_plugin_console = require("@shell-shock/plugin-console");
11
- _shell_shock_plugin_console = require_runtime.__toESM(_shell_shock_plugin_console);
12
- let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
13
10
  let defu = require("defu");
14
11
  defu = require_runtime.__toESM(defu);
12
+ let _shell_shock_plugin_console = require("@shell-shock/plugin-console");
13
+ _shell_shock_plugin_console = require_runtime.__toESM(_shell_shock_plugin_console);
15
14
  let _shell_shock_plugin_theme = require("@shell-shock/plugin-theme");
16
15
  _shell_shock_plugin_theme = require_runtime.__toESM(_shell_shock_plugin_theme);
17
16
  let _stryke_path_join = require("@stryke/path/join");
17
+ let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
18
18
 
19
19
  //#region ../plugin-help/dist/index.mjs
20
20
  /**
@@ -41,7 +41,8 @@ const plugin = (options = {}) => {
41
41
  path: this.config.help.command.name,
42
42
  segments: [this.config.help.command.name],
43
43
  title: "Help",
44
- icon: "",
44
+ icon: "🛈",
45
+ tags: ["Utility"],
45
46
  description: `A command for displaying help information to assist in using the ${(0, _shell_shock_core_plugin_utils.getAppTitle)(this, true)} command-line interface application.`,
46
47
  entry: {
47
48
  file: (0, _stryke_path_join.joinPaths)(this.entryPath, "help", "index.ts"),
@@ -68,6 +69,7 @@ const plugin = (options = {}) => {
68
69
  path: null,
69
70
  segments: [],
70
71
  alias: [],
72
+ tags: [],
71
73
  options: Object.fromEntries(this.options.map((option) => [option.name, option])),
72
74
  entry: { file: (0, _stryke_path_join.joinPaths)(this.entryPath, "bin.ts") },
73
75
  args: [],
@@ -6,11 +6,11 @@ import { For, Show, computed } from "@alloy-js/core";
6
6
  import { Spacing } from "@powerlines/plugin-alloy/core/components";
7
7
  import { render } from "@powerlines/plugin-alloy/render";
8
8
  import { getAppDescription, getAppName, getAppTitle, getCommandList } from "@shell-shock/core/plugin-utils";
9
- import console from "@shell-shock/plugin-console";
10
- import { isSetString } from "@stryke/type-checks/is-set-string";
11
9
  import defu from "defu";
10
+ import console from "@shell-shock/plugin-console";
12
11
  import theme from "@shell-shock/plugin-theme";
13
12
  import { joinPaths } from "@stryke/path/join";
13
+ import { isSetString } from "@stryke/type-checks/is-set-string";
14
14
 
15
15
  //#region ../plugin-help/dist/index.mjs
16
16
  /**
@@ -37,7 +37,8 @@ const plugin = (options = {}) => {
37
37
  path: this.config.help.command.name,
38
38
  segments: [this.config.help.command.name],
39
39
  title: "Help",
40
- icon: "",
40
+ icon: "🛈",
41
+ tags: ["Utility"],
41
42
  description: `A command for displaying help information to assist in using the ${getAppTitle(this, true)} command-line interface application.`,
42
43
  entry: {
43
44
  file: joinPaths(this.entryPath, "help", "index.ts"),
@@ -64,6 +65,7 @@ const plugin = (options = {}) => {
64
65
  path: null,
65
66
  segments: [],
66
67
  alias: [],
68
+ tags: [],
67
69
  options: Object.fromEntries(this.options.map((option) => [option.name, option])),
68
70
  entry: { file: joinPaths(this.entryPath, "bin.ts") },
69
71
  args: [],
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../plugin-help/dist/index.mjs"],"sourcesContent":["import { HelpBuiltin } from \"./components/help-builtin.mjs\";\nimport { HelpCommand } from \"./components/help-command.mjs\";\nimport \"./components/index.mjs\";\nimport { createComponent } from \"@alloy-js/core/jsx-runtime\";\nimport { For, Show, computed } from \"@alloy-js/core\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components\";\nimport { render } from \"@powerlines/plugin-alloy/render\";\nimport { getAppDescription, getAppName, getAppTitle, getCommandList } from \"@shell-shock/core/plugin-utils\";\nimport console from \"@shell-shock/plugin-console\";\nimport theme from \"@shell-shock/plugin-theme\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport defu from \"defu\";\n\n//#region src/index.tsx\n/**\n* The Help - Shell Shock plugin to add a help command to the application.\n*/\nconst plugin = (options = {}) => {\n\treturn [\n\t\t...theme(options.theme),\n\t\tconsole(options.console),\n\t\t{\n\t\t\tname: \"shell-shock:help\",\n\t\t\tenforce: \"post\",\n\t\t\tconfig() {\n\t\t\t\tthis.debug(\"Providing default configuration for the Shell Shock `help` plugin.\");\n\t\t\t\treturn { help: defu({ command: options.command === false ? false : isSetString(options.command) ? { name: options.command } : { name: \"help\" } }, options, { builtins: true }) };\n\t\t\t},\n\t\t\tasync configResolved() {\n\t\t\t\tthis.debug(\"Adding the Help command to the application context.\");\n\t\t\t\tif (this.config.help.command !== false) {\n\t\t\t\t\tthis.inputs ??= [];\n\t\t\t\t\tif (this.inputs.some((input) => input.name === this.config.help.command.name)) this.info(\"The `help` command already exists in the commands list. If you would like the help command to be managed by the `@shell-shock/plugin-help` package, please remove or rename the command.\");\n\t\t\t\t\telse this.inputs.push({\n\t\t\t\t\t\tid: this.config.help.command.name,\n\t\t\t\t\t\tpath: this.config.help.command.name,\n\t\t\t\t\t\tsegments: [this.config.help.command.name],\n\t\t\t\t\t\ttitle: \"Help\",\n\t\t\t\t\t\ticon: \"?\",\n\t\t\t\t\t\tdescription: `A command for displaying help information to assist in using the ${getAppTitle(this, true)} command-line interface application.`,\n\t\t\t\t\t\tentry: {\n\t\t\t\t\t\t\tfile: joinPaths(this.entryPath, \"help\", \"index.ts\"),\n\t\t\t\t\t\t\tinput: { file: joinPaths(this.entryPath, \"help\", \"command.ts\") }\n\t\t\t\t\t\t},\n\t\t\t\t\t\tisVirtual: false,\n\t\t\t\t\t\t...this.config.help.command\n\t\t\t\t\t});\n\t\t\t\t\tawait render(this, createComponent(HelpCommand, {}));\n\t\t\t\t}\n\t\t\t},\n\t\t\tprepare: {\n\t\t\t\torder: \"post\",\n\t\t\t\tasync handler() {\n\t\t\t\t\tconst _self$ = this;\n\t\t\t\t\tconst commands = await getCommandList(this);\n\t\t\t\t\tthis.debug(`Rendering \\`help\\` built-ins for each of the ${commands.length} command modules.`);\n\t\t\t\t\tconst bin = computed(() => ({\n\t\t\t\t\t\tid: \"\",\n\t\t\t\t\t\tname: getAppName(this),\n\t\t\t\t\t\ttitle: getAppTitle(this),\n\t\t\t\t\t\tdescription: getAppDescription(this),\n\t\t\t\t\t\tisVirtual: true,\n\t\t\t\t\t\tpath: null,\n\t\t\t\t\t\tsegments: [],\n\t\t\t\t\t\talias: [],\n\t\t\t\t\t\toptions: Object.fromEntries(this.options.map((option) => [option.name, option])),\n\t\t\t\t\t\tentry: { file: joinPaths(this.entryPath, \"bin.ts\") },\n\t\t\t\t\t\targs: [],\n\t\t\t\t\t\tparent: null,\n\t\t\t\t\t\tchildren: this.commands\n\t\t\t\t\t}));\n\t\t\t\t\treturn render(this, [createComponent(Show, {\n\t\t\t\t\t\tget when() {\n\t\t\t\t\t\t\treturn _self$.config.help.builtins !== false;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tget children() {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tcreateComponent(HelpBuiltin, { get command() {\n\t\t\t\t\t\t\t\t\treturn bin.value;\n\t\t\t\t\t\t\t\t} }),\n\t\t\t\t\t\t\t\tcreateComponent(Spacing, {}),\n\t\t\t\t\t\t\t\tcreateComponent(For, {\n\t\t\t\t\t\t\t\t\tget each() {\n\t\t\t\t\t\t\t\t\t\treturn commands.sort((a, b) => a.name.localeCompare(b.name));\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdoubleHardline: true,\n\t\t\t\t\t\t\t\t\tchildren: (command) => createComponent(HelpBuiltin, { command })\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t})]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t];\n};\n\n//#endregion\nexport { plugin as default, plugin };\n//# sourceMappingURL=index.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,MAAM,UAAU,UAAU,EAAE,KAAK;AAChC,QAAO;EACN,GAAG,MAAM,QAAQ,MAAM;EACvB,QAAQ,QAAQ,QAAQ;EACxB;GACC,MAAM;GACN,SAAS;GACT,SAAS;AACR,SAAK,MAAM,qEAAqE;AAChF,WAAO,EAAE,MAAM,KAAK,EAAE,SAAS,QAAQ,YAAY,QAAQ,QAAQ,YAAY,QAAQ,QAAQ,GAAG,EAAE,MAAM,QAAQ,SAAS,GAAG,EAAE,MAAM,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,MAAM,CAAC,EAAE;;GAEjL,MAAM,iBAAiB;AACtB,SAAK,MAAM,sDAAsD;AACjE,QAAI,KAAK,OAAO,KAAK,YAAY,OAAO;AACvC,UAAK,WAAW,EAAE;AAClB,SAAI,KAAK,OAAO,MAAM,UAAU,MAAM,SAAS,KAAK,OAAO,KAAK,QAAQ,KAAK,CAAE,MAAK,KAAK,2LAA2L;SAC/Q,MAAK,OAAO,KAAK;MACrB,IAAI,KAAK,OAAO,KAAK,QAAQ;MAC7B,MAAM,KAAK,OAAO,KAAK,QAAQ;MAC/B,UAAU,CAAC,KAAK,OAAO,KAAK,QAAQ,KAAK;MACzC,OAAO;MACP,MAAM;MACN,aAAa,oEAAoE,YAAY,MAAM,KAAK,CAAC;MACzG,OAAO;OACN,MAAM,UAAU,KAAK,WAAW,QAAQ,WAAW;OACnD,OAAO,EAAE,MAAM,UAAU,KAAK,WAAW,QAAQ,aAAa,EAAE;OAChE;MACD,WAAW;MACX,GAAG,KAAK,OAAO,KAAK;MACpB,CAAC;AACF,WAAM,OAAO,MAAM,gBAAgB,aAAa,EAAE,CAAC,CAAC;;;GAGtD,SAAS;IACR,OAAO;IACP,MAAM,UAAU;KACf,MAAM,SAAS;KACf,MAAM,WAAW,MAAM,eAAe,KAAK;AAC3C,UAAK,MAAM,gDAAgD,SAAS,OAAO,mBAAmB;KAC9F,MAAM,MAAM,gBAAgB;MAC3B,IAAI;MACJ,MAAM,WAAW,KAAK;MACtB,OAAO,YAAY,KAAK;MACxB,aAAa,kBAAkB,KAAK;MACpC,WAAW;MACX,MAAM;MACN,UAAU,EAAE;MACZ,OAAO,EAAE;MACT,SAAS,OAAO,YAAY,KAAK,QAAQ,KAAK,WAAW,CAAC,OAAO,MAAM,OAAO,CAAC,CAAC;MAChF,OAAO,EAAE,MAAM,UAAU,KAAK,WAAW,SAAS,EAAE;MACpD,MAAM,EAAE;MACR,QAAQ;MACR,UAAU,KAAK;MACf,EAAE;AACH,YAAO,OAAO,MAAM,CAAC,gBAAgB,MAAM;MAC1C,IAAI,OAAO;AACV,cAAO,OAAO,OAAO,KAAK,aAAa;;MAExC,IAAI,WAAW;AACd,cAAO;QACN,gBAAgB,aAAa,EAAE,IAAI,UAAU;AAC5C,gBAAO,IAAI;WACT,CAAC;QACJ,gBAAgB,SAAS,EAAE,CAAC;QAC5B,gBAAgB,KAAK;SACpB,IAAI,OAAO;AACV,iBAAO,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,CAAC;;SAE7D,gBAAgB;SAChB,WAAW,YAAY,gBAAgB,aAAa,EAAE,SAAS,CAAC;SAChE,CAAC;QACF;;MAEF,CAAC,CAAC,CAAC;;IAEL;GACD;EACD"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../plugin-help/dist/index.mjs"],"sourcesContent":["import { HelpBuiltin } from \"./components/help-builtin.mjs\";\nimport { HelpCommand } from \"./components/help-command.mjs\";\nimport \"./components/index.mjs\";\nimport { createComponent } from \"@alloy-js/core/jsx-runtime\";\nimport { For, Show, computed } from \"@alloy-js/core\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components\";\nimport { render } from \"@powerlines/plugin-alloy/render\";\nimport { getAppDescription, getAppName, getAppTitle, getCommandList } from \"@shell-shock/core/plugin-utils\";\nimport console from \"@shell-shock/plugin-console\";\nimport theme from \"@shell-shock/plugin-theme\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport defu from \"defu\";\n\n//#region src/index.tsx\n/**\n* The Help - Shell Shock plugin to add a help command to the application.\n*/\nconst plugin = (options = {}) => {\n\treturn [\n\t\t...theme(options.theme),\n\t\tconsole(options.console),\n\t\t{\n\t\t\tname: \"shell-shock:help\",\n\t\t\tenforce: \"post\",\n\t\t\tconfig() {\n\t\t\t\tthis.debug(\"Providing default configuration for the Shell Shock `help` plugin.\");\n\t\t\t\treturn { help: defu({ command: options.command === false ? false : isSetString(options.command) ? { name: options.command } : { name: \"help\" } }, options, { builtins: true }) };\n\t\t\t},\n\t\t\tasync configResolved() {\n\t\t\t\tthis.debug(\"Adding the Help command to the application context.\");\n\t\t\t\tif (this.config.help.command !== false) {\n\t\t\t\t\tthis.inputs ??= [];\n\t\t\t\t\tif (this.inputs.some((input) => input.name === this.config.help.command.name)) this.info(\"The `help` command already exists in the commands list. If you would like the help command to be managed by the `@shell-shock/plugin-help` package, please remove or rename the command.\");\n\t\t\t\t\telse this.inputs.push({\n\t\t\t\t\t\tid: this.config.help.command.name,\n\t\t\t\t\t\tpath: this.config.help.command.name,\n\t\t\t\t\t\tsegments: [this.config.help.command.name],\n\t\t\t\t\t\ttitle: \"Help\",\n\t\t\t\t\t\ticon: \"🛈\",\n\t\t\t\t\t\ttags: [\"Utility\"],\n\t\t\t\t\t\tdescription: `A command for displaying help information to assist in using the ${getAppTitle(this, true)} command-line interface application.`,\n\t\t\t\t\t\tentry: {\n\t\t\t\t\t\t\tfile: joinPaths(this.entryPath, \"help\", \"index.ts\"),\n\t\t\t\t\t\t\tinput: { file: joinPaths(this.entryPath, \"help\", \"command.ts\") }\n\t\t\t\t\t\t},\n\t\t\t\t\t\tisVirtual: false,\n\t\t\t\t\t\t...this.config.help.command\n\t\t\t\t\t});\n\t\t\t\t\tawait render(this, createComponent(HelpCommand, {}));\n\t\t\t\t}\n\t\t\t},\n\t\t\tprepare: {\n\t\t\t\torder: \"post\",\n\t\t\t\tasync handler() {\n\t\t\t\t\tconst _self$ = this;\n\t\t\t\t\tconst commands = await getCommandList(this);\n\t\t\t\t\tthis.debug(`Rendering \\`help\\` built-ins for each of the ${commands.length} command modules.`);\n\t\t\t\t\tconst bin = computed(() => ({\n\t\t\t\t\t\tid: \"\",\n\t\t\t\t\t\tname: getAppName(this),\n\t\t\t\t\t\ttitle: getAppTitle(this),\n\t\t\t\t\t\tdescription: getAppDescription(this),\n\t\t\t\t\t\tisVirtual: true,\n\t\t\t\t\t\tpath: null,\n\t\t\t\t\t\tsegments: [],\n\t\t\t\t\t\talias: [],\n\t\t\t\t\t\ttags: [],\n\t\t\t\t\t\toptions: Object.fromEntries(this.options.map((option) => [option.name, option])),\n\t\t\t\t\t\tentry: { file: joinPaths(this.entryPath, \"bin.ts\") },\n\t\t\t\t\t\targs: [],\n\t\t\t\t\t\tparent: null,\n\t\t\t\t\t\tchildren: this.commands\n\t\t\t\t\t}));\n\t\t\t\t\treturn render(this, [createComponent(Show, {\n\t\t\t\t\t\tget when() {\n\t\t\t\t\t\t\treturn _self$.config.help.builtins !== false;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tget children() {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tcreateComponent(HelpBuiltin, { get command() {\n\t\t\t\t\t\t\t\t\treturn bin.value;\n\t\t\t\t\t\t\t\t} }),\n\t\t\t\t\t\t\t\tcreateComponent(Spacing, {}),\n\t\t\t\t\t\t\t\tcreateComponent(For, {\n\t\t\t\t\t\t\t\t\tget each() {\n\t\t\t\t\t\t\t\t\t\treturn commands.sort((a, b) => a.name.localeCompare(b.name));\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdoubleHardline: true,\n\t\t\t\t\t\t\t\t\tchildren: (command) => createComponent(HelpBuiltin, { command })\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t})]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t];\n};\n\n//#endregion\nexport { plugin as default, plugin };\n//# sourceMappingURL=index.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,MAAM,UAAU,UAAU,EAAE,KAAK;AAChC,QAAO;EACN,GAAG,MAAM,QAAQ,MAAM;EACvB,QAAQ,QAAQ,QAAQ;EACxB;GACC,MAAM;GACN,SAAS;GACT,SAAS;AACR,SAAK,MAAM,qEAAqE;AAChF,WAAO,EAAE,MAAM,KAAK,EAAE,SAAS,QAAQ,YAAY,QAAQ,QAAQ,YAAY,QAAQ,QAAQ,GAAG,EAAE,MAAM,QAAQ,SAAS,GAAG,EAAE,MAAM,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,MAAM,CAAC,EAAE;;GAEjL,MAAM,iBAAiB;AACtB,SAAK,MAAM,sDAAsD;AACjE,QAAI,KAAK,OAAO,KAAK,YAAY,OAAO;AACvC,UAAK,WAAW,EAAE;AAClB,SAAI,KAAK,OAAO,MAAM,UAAU,MAAM,SAAS,KAAK,OAAO,KAAK,QAAQ,KAAK,CAAE,MAAK,KAAK,2LAA2L;SAC/Q,MAAK,OAAO,KAAK;MACrB,IAAI,KAAK,OAAO,KAAK,QAAQ;MAC7B,MAAM,KAAK,OAAO,KAAK,QAAQ;MAC/B,UAAU,CAAC,KAAK,OAAO,KAAK,QAAQ,KAAK;MACzC,OAAO;MACP,MAAM;MACN,MAAM,CAAC,UAAU;MACjB,aAAa,oEAAoE,YAAY,MAAM,KAAK,CAAC;MACzG,OAAO;OACN,MAAM,UAAU,KAAK,WAAW,QAAQ,WAAW;OACnD,OAAO,EAAE,MAAM,UAAU,KAAK,WAAW,QAAQ,aAAa,EAAE;OAChE;MACD,WAAW;MACX,GAAG,KAAK,OAAO,KAAK;MACpB,CAAC;AACF,WAAM,OAAO,MAAM,gBAAgB,aAAa,EAAE,CAAC,CAAC;;;GAGtD,SAAS;IACR,OAAO;IACP,MAAM,UAAU;KACf,MAAM,SAAS;KACf,MAAM,WAAW,MAAM,eAAe,KAAK;AAC3C,UAAK,MAAM,gDAAgD,SAAS,OAAO,mBAAmB;KAC9F,MAAM,MAAM,gBAAgB;MAC3B,IAAI;MACJ,MAAM,WAAW,KAAK;MACtB,OAAO,YAAY,KAAK;MACxB,aAAa,kBAAkB,KAAK;MACpC,WAAW;MACX,MAAM;MACN,UAAU,EAAE;MACZ,OAAO,EAAE;MACT,MAAM,EAAE;MACR,SAAS,OAAO,YAAY,KAAK,QAAQ,KAAK,WAAW,CAAC,OAAO,MAAM,OAAO,CAAC,CAAC;MAChF,OAAO,EAAE,MAAM,UAAU,KAAK,WAAW,SAAS,EAAE;MACpD,MAAM,EAAE;MACR,QAAQ;MACR,UAAU,KAAK;MACf,EAAE;AACH,YAAO,OAAO,MAAM,CAAC,gBAAgB,MAAM;MAC1C,IAAI,OAAO;AACV,cAAO,OAAO,OAAO,KAAK,aAAa;;MAExC,IAAI,WAAW;AACd,cAAO;QACN,gBAAgB,aAAa,EAAE,IAAI,UAAU;AAC5C,gBAAO,IAAI;WACT,CAAC;QACJ,gBAAgB,SAAS,EAAE,CAAC;QAC5B,gBAAgB,KAAK;SACpB,IAAI,OAAO;AACV,iBAAO,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,CAAC;;SAE7D,gBAAgB;SAChB,WAAW,YAAY,gBAAgB,aAAa,EAAE,SAAS,CAAC;SAChE,CAAC;QACF;;MAEF,CAAC,CAAC,CAAC;;IAEL;GACD;EACD"}
@@ -1,7 +1,7 @@
1
1
  import { RequiredKeys } from "../node_modules/.pnpm/@stryke_types@0.11.2/node_modules/@stryke/types/dist/base.cjs";
2
2
  import { CommandConfig, ResolvedConfig, UserConfig } from "@shell-shock/core";
3
- import { ConsolePluginContext, ConsolePluginOptions, ConsolePluginResolvedConfig, ConsolePluginUserConfig } from "@shell-shock/plugin-console";
4
3
  import { Context as Context$1 } from "@shell-shock/core/types/context";
4
+ import { ConsolePluginContext, ConsolePluginOptions, ConsolePluginResolvedConfig, ConsolePluginUserConfig } from "@shell-shock/plugin-console";
5
5
  import { ThemePluginContext, ThemePluginOptions, ThemePluginResolvedConfig, ThemePluginUserConfig } from "@shell-shock/plugin-theme";
6
6
 
7
7
  //#region ../plugin-help/dist/types/plugin.d.cts