@shell-shock/preset-cli 0.8.20 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/components/banner-builtin.cjs +5 -5
- package/dist/components/banner-builtin.d.cts +1 -1
- package/dist/components/banner-builtin.d.mts +1 -1
- package/dist/components/banner-builtin.mjs +2 -2
- package/dist/components/command-entry.cjs +5 -5
- package/dist/components/command-entry.d.mts +1 -1
- package/dist/components/command-entry.mjs +4 -4
- package/dist/components/virtual-command-entry.cjs +2 -2
- package/dist/components/virtual-command-entry.d.mts +1 -1
- package/dist/components/virtual-command-entry.mjs +1 -1
- package/dist/index.cjs +7 -3
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +5 -3
- package/dist/index.mjs.map +1 -1
- package/dist/types/plugin.d.cts +11 -6
- package/dist/types/plugin.d.cts.map +1 -1
- package/dist/types/plugin.d.mts +11 -6
- package/dist/types/plugin.d.mts.map +1 -1
- package/package.json +15 -12
- package/dist/plugin-banner/dist/components/banner-builtin.cjs +0 -63
- package/dist/plugin-banner/dist/components/banner-builtin.mjs +0 -62
- package/dist/plugin-banner/dist/components/banner-builtin.mjs.map +0 -1
- package/dist/plugin-banner/dist/components/banner-function-declaration.cjs +0 -162
- package/dist/plugin-banner/dist/components/banner-function-declaration.d.cts +0 -45
- package/dist/plugin-banner/dist/components/banner-function-declaration.d.cts.map +0 -1
- package/dist/plugin-banner/dist/components/banner-function-declaration.d.mts +0 -45
- package/dist/plugin-banner/dist/components/banner-function-declaration.d.mts.map +0 -1
- package/dist/plugin-banner/dist/components/banner-function-declaration.mjs +0 -160
- package/dist/plugin-banner/dist/components/banner-function-declaration.mjs.map +0 -1
- package/dist/plugin-banner/dist/index.d.cts +0 -2
- package/dist/plugin-banner/dist/index.d.mts +0 -2
- package/dist/plugin-banner/dist/types/plugin.d.cts +0 -31
- package/dist/plugin-banner/dist/types/plugin.d.cts.map +0 -1
- package/dist/plugin-banner/dist/types/plugin.d.mts +0 -31
- package/dist/plugin-banner/dist/types/plugin.d.mts.map +0 -1
- package/dist/plugin-help/dist/components/display.cjs +0 -285
- package/dist/plugin-help/dist/components/display.mjs +0 -280
- package/dist/plugin-help/dist/components/display.mjs.map +0 -1
- package/dist/plugin-help/dist/components/help-builtin.cjs +0 -86
- package/dist/plugin-help/dist/components/help-builtin.mjs +0 -85
- package/dist/plugin-help/dist/components/help-builtin.mjs.map +0 -1
- package/dist/plugin-help/dist/components/help-command.cjs +0 -96
- package/dist/plugin-help/dist/components/help-command.mjs +0 -96
- package/dist/plugin-help/dist/components/help-command.mjs.map +0 -1
- package/dist/plugin-help/dist/components/index.cjs +0 -3
- package/dist/plugin-help/dist/components/index.mjs +0 -5
- package/dist/plugin-help/dist/index.cjs +0 -106
- package/dist/plugin-help/dist/index.d.cts +0 -2
- package/dist/plugin-help/dist/index.d.mts +0 -2
- package/dist/plugin-help/dist/index.mjs +0 -103
- package/dist/plugin-help/dist/index.mjs.map +0 -1
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_types@0.11.2/node_modules/@stryke/types/dist/base.d.cts +0 -19
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_types@0.11.2/node_modules/@stryke/types/dist/base.d.cts.map +0 -1
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_types@0.11.2/node_modules/@stryke/types/dist/base.d.mts +0 -19
- package/dist/plugin-help/dist/node_modules/.pnpm/@stryke_types@0.11.2/node_modules/@stryke/types/dist/base.d.mts.map +0 -1
- package/dist/plugin-help/dist/types/plugin.d.cts +0 -63
- package/dist/plugin-help/dist/types/plugin.d.cts.map +0 -1
- package/dist/plugin-help/dist/types/plugin.d.mts +0 -63
- package/dist/plugin-help/dist/types/plugin.d.mts.map +0 -1
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
|
|
2
|
-
let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
|
|
3
|
-
let _alloy_js_core = require("@alloy-js/core");
|
|
4
|
-
let _alloy_js_typescript = require("@alloy-js/typescript");
|
|
5
|
-
let _shell_shock_core_plugin_utils = require("@shell-shock/core/plugin-utils");
|
|
6
|
-
let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
|
|
7
|
-
let _powerlines_plugin_alloy_core_components_spacing = require("@powerlines/plugin-alloy/core/components/spacing");
|
|
8
|
-
let _powerlines_plugin_alloy_core_contexts_context = require("@powerlines/plugin-alloy/core/contexts/context");
|
|
9
|
-
let _shell_shock_plugin_theme_contexts_theme = require("@shell-shock/plugin-theme/contexts/theme");
|
|
10
|
-
|
|
11
|
-
//#region ../plugin-banner/dist/components/banner-function-declaration.mjs
|
|
12
|
-
/**
|
|
13
|
-
* A component to generate the `banner` function for a specific command or application.
|
|
14
|
-
*
|
|
15
|
-
* @remarks
|
|
16
|
-
* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.
|
|
17
|
-
*/
|
|
18
|
-
function BannerFunctionDeclarationWrapper(props) {
|
|
19
|
-
const { command, children } = props;
|
|
20
|
-
const context = (0, _powerlines_plugin_alloy_core_contexts_context.usePowerlines)();
|
|
21
|
-
return (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.FunctionDeclaration, {
|
|
22
|
-
"export": true,
|
|
23
|
-
async: true,
|
|
24
|
-
name: "showBanner",
|
|
25
|
-
get doc() {
|
|
26
|
-
return `Write the ${(0, _shell_shock_core_plugin_utils.getAppTitle)(context, true)} command-line interface application banner ${command ? `for the ${command.title} command ` : ""}to the console.`;
|
|
27
|
-
},
|
|
28
|
-
parameters: [{
|
|
29
|
-
name: "sleepTimeoutMs",
|
|
30
|
-
type: "number",
|
|
31
|
-
default: 500
|
|
32
|
-
}],
|
|
33
|
-
get children() {
|
|
34
|
-
return [children, (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.IfStatement, {
|
|
35
|
-
condition: _alloy_js_core.code`isInteractive && !isHelp`,
|
|
36
|
-
children: _alloy_js_core.code`await sleep(sleepTimeoutMs);`
|
|
37
|
-
})];
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* A component to generate the `banner` function's body for a specific command or application.
|
|
43
|
-
*
|
|
44
|
-
* @remarks
|
|
45
|
-
* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.
|
|
46
|
-
*/
|
|
47
|
-
function BannerFunctionBodyDeclaration(props) {
|
|
48
|
-
const { consoleFnName = "log", variant = "primary", title, header, footer, description, command, children, insertNewlineBeforeCommand = false, insertNewlineBeforeBanner = true, insertNewlineAfterDescription = false } = props;
|
|
49
|
-
const theme = (0, _shell_shock_plugin_theme_contexts_theme.useTheme)();
|
|
50
|
-
const bannerPadding = (0, _alloy_js_core.computed)(() => Math.max(theme.padding.app, 0) * 2 + theme.borderStyles.banner.outline[variant].left.length + theme.borderStyles.banner.outline[variant].right.length);
|
|
51
|
-
const totalPadding = (0, _alloy_js_core.computed)(() => Math.max(theme.padding.banner, 0) * 2 + bannerPadding.value);
|
|
52
|
-
return [
|
|
53
|
-
_alloy_js_core.code`
|
|
54
|
-
if (useApp().get("banner") || hasFlag("no-banner") || hasFlag("hide-banner") || isMinimal) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
useApp().set("banner", true); `,
|
|
59
|
-
(0, _alloy_js_core_jsx_runtime.createComponent)(_powerlines_plugin_alloy_core_components_spacing.Spacing, {}),
|
|
60
|
-
(0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
|
|
61
|
-
when: insertNewlineBeforeBanner,
|
|
62
|
-
children: _alloy_js_core.code`writeLine(""); `
|
|
63
|
-
}),
|
|
64
|
-
(0, _alloy_js_core_jsx_runtime.createComponent)(_powerlines_plugin_alloy_core_components_spacing.Spacing, {}),
|
|
65
|
-
(0, _alloy_js_core_jsx_runtime.memo)(() => _alloy_js_core.code`
|
|
66
|
-
writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].topLeft}") + ${theme.icons.banner.header[variant] ? `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}".repeat(6)) + " " + ${theme.icons.banner.header[variant] ? `colors.text.banner.header.${variant}("${theme.icons.banner.header[variant]}") + " " + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}") + " " +` : ""} colors.bold(colors.text.banner.header.${variant}("${header}")) + " " + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}".repeat(Math.max(process.stdout.columns - ${6 + (theme.icons.banner.header[variant] ? theme.icons.banner.header[variant].length + 3 : 0) + (header ? header.length + 2 : 0) + bannerPadding.value}, 0)))` : `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}".repeat(Math.max(process.stdout.columns - ${bannerPadding.value}, 0)))`} + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].topRight}"), { consoleFn: console.${consoleFnName} }); `),
|
|
67
|
-
(0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
|
|
68
|
-
when: !!children,
|
|
69
|
-
get fallback() {
|
|
70
|
-
return (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
|
|
71
|
-
get when() {
|
|
72
|
-
return (0, _stryke_type_checks_is_set_string.isSetString)(title);
|
|
73
|
-
},
|
|
74
|
-
get children() {
|
|
75
|
-
return (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.For, {
|
|
76
|
-
get each() {
|
|
77
|
-
return title ? title.split("\n") : [];
|
|
78
|
-
},
|
|
79
|
-
hardline: true,
|
|
80
|
-
children: (line) => _alloy_js_core.code`splitText("${line}",
|
|
81
|
-
Math.max(process.stdout.columns - ${totalPadding.value}, 20)
|
|
82
|
-
).forEach((line) => {
|
|
83
|
-
writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].left}") + " ".repeat(Math.max(Math.floor((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.bold(colors.text.banner.title.${variant}(line)) + " ".repeat(Math.max(Math.ceil((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].right}"), { consoleFn: console.${consoleFnName} });
|
|
84
|
-
}); `
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
},
|
|
89
|
-
children
|
|
90
|
-
}),
|
|
91
|
-
(0, _alloy_js_core_jsx_runtime.createComponent)(_powerlines_plugin_alloy_core_components_spacing.Spacing, {}),
|
|
92
|
-
(0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
|
|
93
|
-
get when() {
|
|
94
|
-
return (0, _stryke_type_checks_is_set_string.isSetString)(command?.title) && !!command?.path;
|
|
95
|
-
},
|
|
96
|
-
get children() {
|
|
97
|
-
return [(0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
|
|
98
|
-
when: insertNewlineBeforeCommand,
|
|
99
|
-
get children() {
|
|
100
|
-
return _alloy_js_core.code`writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].left}") + " ".repeat(Math.max(process.stdout.columns - ${bannerPadding.value})) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].right}"), { consoleFn: console.${consoleFnName} }); `;
|
|
101
|
-
}
|
|
102
|
-
}), (0, _alloy_js_core_jsx_runtime.memo)(() => `writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].left}") + " ".repeat(Math.max(Math.floor((process.stdout.columns - (stripAnsi("${command?.title}").length ${command?.icon ? " + 3" : ""} + ${bannerPadding.value})) / 2), 0)) + colors.bold(colors.text.banner.command.${variant}("${command?.icon ? `${command.icon} ` : ""}${command?.title}")) + " ".repeat(Math.max(Math.ceil((process.stdout.columns - (stripAnsi("${command?.title}").length ${command?.icon ? " + 3" : ""} + ${bannerPadding.value})) / 2), 0)) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].right}"), { consoleFn: console.${consoleFnName} }); `)];
|
|
103
|
-
}
|
|
104
|
-
}),
|
|
105
|
-
(0, _alloy_js_core_jsx_runtime.createComponent)(_powerlines_plugin_alloy_core_components_spacing.Spacing, {}),
|
|
106
|
-
(0, _alloy_js_core_jsx_runtime.memo)(() => _alloy_js_core.code`splitText(
|
|
107
|
-
colors.bold(${command?.title ? "colors.text.banner.description" : "colors.text.banner.command"}.${variant}(\`${(0, _shell_shock_core_plugin_utils.formatDescription)(description)}\`)),
|
|
108
|
-
Math.max(${command?.title ? `${totalPadding.value} * 2 > process.stdout.columns / 2 ? process.stdout.columns - 6 : process.stdout.columns - ${totalPadding.value}` : `process.stdout.columns - ${totalPadding.value}`} , 20)
|
|
109
|
-
).forEach((line) => {
|
|
110
|
-
writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].left}") + " ".repeat(Math.max(Math.floor((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.text.banner.description.${variant}(line) + " ".repeat(Math.max(Math.ceil((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].right}"), { consoleFn: console.${consoleFnName} });
|
|
111
|
-
});
|
|
112
|
-
${insertNewlineAfterDescription ? `writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].left}") + " ".repeat(Math.max(process.stdout.columns - ${bannerPadding.value})) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].right}"), { consoleFn: console.${consoleFnName} });` : ""}
|
|
113
|
-
writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottomLeft}") + ${footer ? `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottom}".repeat(Math.max(process.stdout.columns - ${8 + (footer ? footer.length : 0) + bannerPadding.value}, 0))) + " " + ${footer ? `colors.bold(colors.text.banner.footer.${variant}("${footer}"))` : ""} + " " + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottom}".repeat(6))` : `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottom}".repeat(Math.max(process.stdout.columns - ${bannerPadding.value}, 0)))`} + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottomRight}"), { consoleFn: console.${consoleFnName} });
|
|
114
|
-
|
|
115
|
-
writeLine(""); `)
|
|
116
|
-
];
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* A component to generate the `banner` function for a specific command or application.
|
|
120
|
-
*
|
|
121
|
-
* @remarks
|
|
122
|
-
* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.
|
|
123
|
-
*/
|
|
124
|
-
function BannerFunctionDeclaration(props) {
|
|
125
|
-
const { consoleFnName = "log", variant = "primary", command, children, insertNewlineBeforeBanner = true } = props;
|
|
126
|
-
const theme = (0, _shell_shock_plugin_theme_contexts_theme.useTheme)();
|
|
127
|
-
const context = (0, _powerlines_plugin_alloy_core_contexts_context.usePowerlines)();
|
|
128
|
-
const header = (0, _alloy_js_core.computed)(() => `${theme.labels.banner.header[variant] || (0, _shell_shock_core_plugin_utils.getAppTitle)(context, false)} v${context.packageJson.version || "1.0.0"}`);
|
|
129
|
-
const footer = (0, _alloy_js_core.computed)(() => theme.labels.banner.footer[variant]);
|
|
130
|
-
const title = (0, _alloy_js_core.computed)(() => context.config.banner.title || (0, _shell_shock_core_plugin_utils.getAppTitle)(context, true).replace(`v${context.packageJson.version || "1.0.0"}`, ""));
|
|
131
|
-
const description = (0, _alloy_js_core.computed)(() => command?.description || (0, _shell_shock_core_plugin_utils.getAppDescription)(context));
|
|
132
|
-
return (0, _alloy_js_core_jsx_runtime.createComponent)(BannerFunctionDeclarationWrapper, {
|
|
133
|
-
command,
|
|
134
|
-
get children() {
|
|
135
|
-
return (0, _alloy_js_core_jsx_runtime.createComponent)(BannerFunctionBodyDeclaration, {
|
|
136
|
-
get title() {
|
|
137
|
-
return !children ? title.value : void 0;
|
|
138
|
-
},
|
|
139
|
-
get header() {
|
|
140
|
-
return header.value;
|
|
141
|
-
},
|
|
142
|
-
get description() {
|
|
143
|
-
return description.value;
|
|
144
|
-
},
|
|
145
|
-
get footer() {
|
|
146
|
-
return footer.value;
|
|
147
|
-
},
|
|
148
|
-
variant,
|
|
149
|
-
consoleFnName,
|
|
150
|
-
command,
|
|
151
|
-
insertNewlineBeforeCommand: true,
|
|
152
|
-
insertNewlineBeforeBanner,
|
|
153
|
-
children
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
//#endregion
|
|
160
|
-
exports.BannerFunctionBodyDeclaration = BannerFunctionBodyDeclaration;
|
|
161
|
-
exports.BannerFunctionDeclaration = BannerFunctionDeclaration;
|
|
162
|
-
exports.BannerFunctionDeclarationWrapper = BannerFunctionDeclarationWrapper;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Children } from "@alloy-js/core";
|
|
2
|
-
import { CommandTree } from "@shell-shock/core/types/command";
|
|
3
|
-
import { ThemeColorVariant } from "@shell-shock/plugin-theme/types/theme";
|
|
4
|
-
|
|
5
|
-
//#region ../plugin-banner/dist/components/banner-function-declaration.d.cts
|
|
6
|
-
//#region src/components/banner-function-declaration.d.ts
|
|
7
|
-
interface BannerFunctionDeclarationWrapperProps {
|
|
8
|
-
command?: CommandTree;
|
|
9
|
-
children?: Children;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* A component to generate the `banner` function for a specific command or application.
|
|
13
|
-
*
|
|
14
|
-
* @remarks
|
|
15
|
-
* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.
|
|
16
|
-
*/
|
|
17
|
-
interface BannerFunctionBodyDeclarationProps extends BannerFunctionDeclarationProps {
|
|
18
|
-
title?: string;
|
|
19
|
-
header?: string;
|
|
20
|
-
footer?: string;
|
|
21
|
-
description: string;
|
|
22
|
-
insertNewlineBeforeCommand?: boolean;
|
|
23
|
-
insertNewlineBeforeBanner?: boolean;
|
|
24
|
-
insertNewlineAfterDescription?: boolean;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* A component to generate the `banner` function's body for a specific command or application.
|
|
28
|
-
*
|
|
29
|
-
* @remarks
|
|
30
|
-
* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.
|
|
31
|
-
*/
|
|
32
|
-
interface BannerFunctionDeclarationProps extends BannerFunctionDeclarationWrapperProps {
|
|
33
|
-
variant?: ThemeColorVariant;
|
|
34
|
-
consoleFnName?: "log" | "info" | "warn" | "error" | "debug";
|
|
35
|
-
insertNewlineBeforeBanner?: boolean;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* A component to generate the `banner` function for a specific command or application.
|
|
39
|
-
*
|
|
40
|
-
* @remarks
|
|
41
|
-
* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.
|
|
42
|
-
*/
|
|
43
|
-
//#endregion
|
|
44
|
-
export { BannerFunctionBodyDeclarationProps };
|
|
45
|
-
//# sourceMappingURL=banner-function-declaration.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"banner-function-declaration.d.cts","names":["Children","CommandTree","ThemeColorVariant","BannerFunctionDeclarationWrapperProps","command","children","BannerFunctionDeclarationWrapper","props","BannerFunctionBodyDeclarationProps","BannerFunctionDeclarationProps","title","header","footer","description","insertNewlineBeforeCommand","insertNewlineBeforeBanner","insertNewlineAfterDescription","BannerFunctionBodyDeclaration","variant","consoleFnName","BannerFunctionDeclaration"],"sources":["../../../../../plugin-banner/dist/components/banner-function-declaration.d.cts"],"mappings":";;;;;;UAKUG,qCAAAA;EACRC,OAAAA,GAAUH,WAAAA;EACVI,QAAAA,GAAWL,QAAAA;AAAAA;;;;;;;UASHQ,kCAAAA,SAA2CC,8BAAAA;EACnDC,KAAAA;EACAC,MAAAA;EACAC,MAAAA;EACAC,WAAAA;EACAC,0BAAAA;EACAC,yBAAAA;EACAC,6BAAAA;AAAAA;;;;;AAQiG;;UACzFP,8BAAAA,SAAuCN,qCAAAA;EAC/Ce,OAAAA,GAAUhB,iBAAAA;EACViB,aAAAA;EACAJ,yBAAAA;AAAAA"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Children } from "@alloy-js/core";
|
|
2
|
-
import { CommandTree } from "@shell-shock/core/types/command";
|
|
3
|
-
import { ThemeColorVariant } from "@shell-shock/plugin-theme/types/theme";
|
|
4
|
-
|
|
5
|
-
//#region ../plugin-banner/dist/components/banner-function-declaration.d.cts
|
|
6
|
-
//#region src/components/banner-function-declaration.d.ts
|
|
7
|
-
interface BannerFunctionDeclarationWrapperProps {
|
|
8
|
-
command?: CommandTree;
|
|
9
|
-
children?: Children;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* A component to generate the `banner` function for a specific command or application.
|
|
13
|
-
*
|
|
14
|
-
* @remarks
|
|
15
|
-
* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.
|
|
16
|
-
*/
|
|
17
|
-
interface BannerFunctionBodyDeclarationProps extends BannerFunctionDeclarationProps {
|
|
18
|
-
title?: string;
|
|
19
|
-
header?: string;
|
|
20
|
-
footer?: string;
|
|
21
|
-
description: string;
|
|
22
|
-
insertNewlineBeforeCommand?: boolean;
|
|
23
|
-
insertNewlineBeforeBanner?: boolean;
|
|
24
|
-
insertNewlineAfterDescription?: boolean;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* A component to generate the `banner` function's body for a specific command or application.
|
|
28
|
-
*
|
|
29
|
-
* @remarks
|
|
30
|
-
* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.
|
|
31
|
-
*/
|
|
32
|
-
interface BannerFunctionDeclarationProps extends BannerFunctionDeclarationWrapperProps {
|
|
33
|
-
variant?: ThemeColorVariant;
|
|
34
|
-
consoleFnName?: "log" | "info" | "warn" | "error" | "debug";
|
|
35
|
-
insertNewlineBeforeBanner?: boolean;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* A component to generate the `banner` function for a specific command or application.
|
|
39
|
-
*
|
|
40
|
-
* @remarks
|
|
41
|
-
* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.
|
|
42
|
-
*/
|
|
43
|
-
//#endregion
|
|
44
|
-
export { BannerFunctionBodyDeclarationProps };
|
|
45
|
-
//# sourceMappingURL=banner-function-declaration.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"banner-function-declaration.d.mts","names":["Children","CommandTree","ThemeColorVariant","BannerFunctionDeclarationWrapperProps","command","children","BannerFunctionDeclarationWrapper","props","BannerFunctionBodyDeclarationProps","BannerFunctionDeclarationProps","title","header","footer","description","insertNewlineBeforeCommand","insertNewlineBeforeBanner","insertNewlineAfterDescription","BannerFunctionBodyDeclaration","variant","consoleFnName","BannerFunctionDeclaration"],"sources":["../../../../../plugin-banner/dist/components/banner-function-declaration.d.cts"],"mappings":";;;;;;UAKUG,qCAAAA;EACRC,OAAAA,GAAUH,WAAAA;EACVI,QAAAA,GAAWL,QAAAA;AAAAA;;;;;;;UASHQ,kCAAAA,SAA2CC,8BAAAA;EACnDC,KAAAA;EACAC,MAAAA;EACAC,MAAAA;EACAC,WAAAA;EACAC,0BAAAA;EACAC,yBAAAA;EACAC,6BAAAA;AAAAA;;;;;AAQiG;;UACzFP,8BAAAA,SAAuCN,qCAAAA;EAC/Ce,OAAAA,GAAUhB,iBAAAA;EACViB,aAAAA;EACAJ,yBAAAA;AAAAA"}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { createComponent, memo } from "@alloy-js/core/jsx-runtime";
|
|
2
|
-
import { For, Show, code, computed } from "@alloy-js/core";
|
|
3
|
-
import { FunctionDeclaration, IfStatement } from "@alloy-js/typescript";
|
|
4
|
-
import { formatDescription, getAppDescription, getAppTitle } from "@shell-shock/core/plugin-utils";
|
|
5
|
-
import { isSetString } from "@stryke/type-checks/is-set-string";
|
|
6
|
-
import { Spacing } from "@powerlines/plugin-alloy/core/components/spacing";
|
|
7
|
-
import { usePowerlines } from "@powerlines/plugin-alloy/core/contexts/context";
|
|
8
|
-
import { useTheme } from "@shell-shock/plugin-theme/contexts/theme";
|
|
9
|
-
|
|
10
|
-
//#region ../plugin-banner/dist/components/banner-function-declaration.mjs
|
|
11
|
-
/**
|
|
12
|
-
* A component to generate the `banner` function for a specific command or application.
|
|
13
|
-
*
|
|
14
|
-
* @remarks
|
|
15
|
-
* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.
|
|
16
|
-
*/
|
|
17
|
-
function BannerFunctionDeclarationWrapper(props) {
|
|
18
|
-
const { command, children } = props;
|
|
19
|
-
const context = usePowerlines();
|
|
20
|
-
return createComponent(FunctionDeclaration, {
|
|
21
|
-
"export": true,
|
|
22
|
-
async: true,
|
|
23
|
-
name: "showBanner",
|
|
24
|
-
get doc() {
|
|
25
|
-
return `Write the ${getAppTitle(context, true)} command-line interface application banner ${command ? `for the ${command.title} command ` : ""}to the console.`;
|
|
26
|
-
},
|
|
27
|
-
parameters: [{
|
|
28
|
-
name: "sleepTimeoutMs",
|
|
29
|
-
type: "number",
|
|
30
|
-
default: 500
|
|
31
|
-
}],
|
|
32
|
-
get children() {
|
|
33
|
-
return [children, createComponent(IfStatement, {
|
|
34
|
-
condition: code`isInteractive && !isHelp`,
|
|
35
|
-
children: code`await sleep(sleepTimeoutMs);`
|
|
36
|
-
})];
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* A component to generate the `banner` function's body for a specific command or application.
|
|
42
|
-
*
|
|
43
|
-
* @remarks
|
|
44
|
-
* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.
|
|
45
|
-
*/
|
|
46
|
-
function BannerFunctionBodyDeclaration(props) {
|
|
47
|
-
const { consoleFnName = "log", variant = "primary", title, header, footer, description, command, children, insertNewlineBeforeCommand = false, insertNewlineBeforeBanner = true, insertNewlineAfterDescription = false } = props;
|
|
48
|
-
const theme = useTheme();
|
|
49
|
-
const bannerPadding = computed(() => Math.max(theme.padding.app, 0) * 2 + theme.borderStyles.banner.outline[variant].left.length + theme.borderStyles.banner.outline[variant].right.length);
|
|
50
|
-
const totalPadding = computed(() => Math.max(theme.padding.banner, 0) * 2 + bannerPadding.value);
|
|
51
|
-
return [
|
|
52
|
-
code`
|
|
53
|
-
if (useApp().get("banner") || hasFlag("no-banner") || hasFlag("hide-banner") || isMinimal) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
useApp().set("banner", true); `,
|
|
58
|
-
createComponent(Spacing, {}),
|
|
59
|
-
createComponent(Show, {
|
|
60
|
-
when: insertNewlineBeforeBanner,
|
|
61
|
-
children: code`writeLine(""); `
|
|
62
|
-
}),
|
|
63
|
-
createComponent(Spacing, {}),
|
|
64
|
-
memo(() => code`
|
|
65
|
-
writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].topLeft}") + ${theme.icons.banner.header[variant] ? `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}".repeat(6)) + " " + ${theme.icons.banner.header[variant] ? `colors.text.banner.header.${variant}("${theme.icons.banner.header[variant]}") + " " + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}") + " " +` : ""} colors.bold(colors.text.banner.header.${variant}("${header}")) + " " + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}".repeat(Math.max(process.stdout.columns - ${6 + (theme.icons.banner.header[variant] ? theme.icons.banner.header[variant].length + 3 : 0) + (header ? header.length + 2 : 0) + bannerPadding.value}, 0)))` : `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}".repeat(Math.max(process.stdout.columns - ${bannerPadding.value}, 0)))`} + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].topRight}"), { consoleFn: console.${consoleFnName} }); `),
|
|
66
|
-
createComponent(Show, {
|
|
67
|
-
when: !!children,
|
|
68
|
-
get fallback() {
|
|
69
|
-
return createComponent(Show, {
|
|
70
|
-
get when() {
|
|
71
|
-
return isSetString(title);
|
|
72
|
-
},
|
|
73
|
-
get children() {
|
|
74
|
-
return createComponent(For, {
|
|
75
|
-
get each() {
|
|
76
|
-
return title ? title.split("\n") : [];
|
|
77
|
-
},
|
|
78
|
-
hardline: true,
|
|
79
|
-
children: (line) => code`splitText("${line}",
|
|
80
|
-
Math.max(process.stdout.columns - ${totalPadding.value}, 20)
|
|
81
|
-
).forEach((line) => {
|
|
82
|
-
writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].left}") + " ".repeat(Math.max(Math.floor((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.bold(colors.text.banner.title.${variant}(line)) + " ".repeat(Math.max(Math.ceil((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].right}"), { consoleFn: console.${consoleFnName} });
|
|
83
|
-
}); `
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
},
|
|
88
|
-
children
|
|
89
|
-
}),
|
|
90
|
-
createComponent(Spacing, {}),
|
|
91
|
-
createComponent(Show, {
|
|
92
|
-
get when() {
|
|
93
|
-
return isSetString(command?.title) && !!command?.path;
|
|
94
|
-
},
|
|
95
|
-
get children() {
|
|
96
|
-
return [createComponent(Show, {
|
|
97
|
-
when: insertNewlineBeforeCommand,
|
|
98
|
-
get children() {
|
|
99
|
-
return code`writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].left}") + " ".repeat(Math.max(process.stdout.columns - ${bannerPadding.value})) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].right}"), { consoleFn: console.${consoleFnName} }); `;
|
|
100
|
-
}
|
|
101
|
-
}), memo(() => `writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].left}") + " ".repeat(Math.max(Math.floor((process.stdout.columns - (stripAnsi("${command?.title}").length ${command?.icon ? " + 3" : ""} + ${bannerPadding.value})) / 2), 0)) + colors.bold(colors.text.banner.command.${variant}("${command?.icon ? `${command.icon} ` : ""}${command?.title}")) + " ".repeat(Math.max(Math.ceil((process.stdout.columns - (stripAnsi("${command?.title}").length ${command?.icon ? " + 3" : ""} + ${bannerPadding.value})) / 2), 0)) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].right}"), { consoleFn: console.${consoleFnName} }); `)];
|
|
102
|
-
}
|
|
103
|
-
}),
|
|
104
|
-
createComponent(Spacing, {}),
|
|
105
|
-
memo(() => code`splitText(
|
|
106
|
-
colors.bold(${command?.title ? "colors.text.banner.description" : "colors.text.banner.command"}.${variant}(\`${formatDescription(description)}\`)),
|
|
107
|
-
Math.max(${command?.title ? `${totalPadding.value} * 2 > process.stdout.columns / 2 ? process.stdout.columns - 6 : process.stdout.columns - ${totalPadding.value}` : `process.stdout.columns - ${totalPadding.value}`} , 20)
|
|
108
|
-
).forEach((line) => {
|
|
109
|
-
writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].left}") + " ".repeat(Math.max(Math.floor((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.text.banner.description.${variant}(line) + " ".repeat(Math.max(Math.ceil((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].right}"), { consoleFn: console.${consoleFnName} });
|
|
110
|
-
});
|
|
111
|
-
${insertNewlineAfterDescription ? `writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].left}") + " ".repeat(Math.max(process.stdout.columns - ${bannerPadding.value})) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].right}"), { consoleFn: console.${consoleFnName} });` : ""}
|
|
112
|
-
writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottomLeft}") + ${footer ? `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottom}".repeat(Math.max(process.stdout.columns - ${8 + (footer ? footer.length : 0) + bannerPadding.value}, 0))) + " " + ${footer ? `colors.bold(colors.text.banner.footer.${variant}("${footer}"))` : ""} + " " + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottom}".repeat(6))` : `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottom}".repeat(Math.max(process.stdout.columns - ${bannerPadding.value}, 0)))`} + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottomRight}"), { consoleFn: console.${consoleFnName} });
|
|
113
|
-
|
|
114
|
-
writeLine(""); `)
|
|
115
|
-
];
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* A component to generate the `banner` function for a specific command or application.
|
|
119
|
-
*
|
|
120
|
-
* @remarks
|
|
121
|
-
* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.
|
|
122
|
-
*/
|
|
123
|
-
function BannerFunctionDeclaration(props) {
|
|
124
|
-
const { consoleFnName = "log", variant = "primary", command, children, insertNewlineBeforeBanner = true } = props;
|
|
125
|
-
const theme = useTheme();
|
|
126
|
-
const context = usePowerlines();
|
|
127
|
-
const header = computed(() => `${theme.labels.banner.header[variant] || getAppTitle(context, false)} v${context.packageJson.version || "1.0.0"}`);
|
|
128
|
-
const footer = computed(() => theme.labels.banner.footer[variant]);
|
|
129
|
-
const title = computed(() => context.config.banner.title || getAppTitle(context, true).replace(`v${context.packageJson.version || "1.0.0"}`, ""));
|
|
130
|
-
const description = computed(() => command?.description || getAppDescription(context));
|
|
131
|
-
return createComponent(BannerFunctionDeclarationWrapper, {
|
|
132
|
-
command,
|
|
133
|
-
get children() {
|
|
134
|
-
return createComponent(BannerFunctionBodyDeclaration, {
|
|
135
|
-
get title() {
|
|
136
|
-
return !children ? title.value : void 0;
|
|
137
|
-
},
|
|
138
|
-
get header() {
|
|
139
|
-
return header.value;
|
|
140
|
-
},
|
|
141
|
-
get description() {
|
|
142
|
-
return description.value;
|
|
143
|
-
},
|
|
144
|
-
get footer() {
|
|
145
|
-
return footer.value;
|
|
146
|
-
},
|
|
147
|
-
variant,
|
|
148
|
-
consoleFnName,
|
|
149
|
-
command,
|
|
150
|
-
insertNewlineBeforeCommand: true,
|
|
151
|
-
insertNewlineBeforeBanner,
|
|
152
|
-
children
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
//#endregion
|
|
159
|
-
export { BannerFunctionBodyDeclaration, BannerFunctionDeclaration, BannerFunctionDeclarationWrapper };
|
|
160
|
-
//# sourceMappingURL=banner-function-declaration.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"banner-function-declaration.mjs","names":[],"sources":["../../../../../plugin-banner/dist/components/banner-function-declaration.mjs"],"sourcesContent":["import { createComponent, memo } from \"@alloy-js/core/jsx-runtime\";\nimport { For, Show, code, computed } from \"@alloy-js/core\";\nimport { formatDescription, getAppDescription, getAppTitle } from \"@shell-shock/core/plugin-utils\";\nimport { usePowerlines } from \"@powerlines/plugin-alloy/core/contexts/context\";\nimport { FunctionDeclaration, IfStatement } from \"@alloy-js/typescript\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport { useTheme } from \"@shell-shock/plugin-theme/contexts/theme\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\n\n//#region src/components/banner-function-declaration.tsx\n/**\n* A component to generate the `banner` function for a specific command or application.\n*\n* @remarks\n* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.\n*/\nfunction BannerFunctionDeclarationWrapper(props) {\n\tconst { command, children } = props;\n\tconst context = usePowerlines();\n\treturn createComponent(FunctionDeclaration, {\n\t\t\"export\": true,\n\t\tasync: true,\n\t\tname: \"showBanner\",\n\t\tget doc() {\n\t\t\treturn `Write the ${getAppTitle(context, true)} command-line interface application banner ${command ? `for the ${command.title} command ` : \"\"}to the console.`;\n\t\t},\n\t\tparameters: [{\n\t\t\tname: \"sleepTimeoutMs\",\n\t\t\ttype: \"number\",\n\t\t\tdefault: 500\n\t\t}],\n\t\tget children() {\n\t\t\treturn [children, createComponent(IfStatement, {\n\t\t\t\tcondition: code`isInteractive && !isHelp`,\n\t\t\t\tchildren: code`await sleep(sleepTimeoutMs);`\n\t\t\t})];\n\t\t}\n\t});\n}\n/**\n* A component to generate the `banner` function's body for a specific command or application.\n*\n* @remarks\n* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.\n*/\nfunction BannerFunctionBodyDeclaration(props) {\n\tconst { consoleFnName = \"log\", variant = \"primary\", title, header, footer, description, command, children, insertNewlineBeforeCommand = false, insertNewlineBeforeBanner = true, insertNewlineAfterDescription = false } = props;\n\tconst theme = useTheme();\n\tconst bannerPadding = computed(() => Math.max(theme.padding.app, 0) * 2 + theme.borderStyles.banner.outline[variant].left.length + theme.borderStyles.banner.outline[variant].right.length);\n\tconst totalPadding = computed(() => Math.max(theme.padding.banner, 0) * 2 + bannerPadding.value);\n\treturn [\n\t\tcode`\n if (useApp().get(\"banner\") || hasFlag(\"no-banner\") || hasFlag(\"hide-banner\") || isMinimal) {\n return;\n }\n\n useApp().set(\"banner\", true); `,\n\t\tcreateComponent(Spacing, {}),\n\t\tcreateComponent(Show, {\n\t\t\twhen: insertNewlineBeforeBanner,\n\t\t\tchildren: code`writeLine(\"\"); `\n\t\t}),\n\t\tcreateComponent(Spacing, {}),\n\t\tmemo(() => code`\n writeLine(colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].topLeft}\") + ${theme.icons.banner.header[variant] ? `colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].top}\".repeat(6)) + \" \" + ${theme.icons.banner.header[variant] ? `colors.text.banner.header.${variant}(\"${theme.icons.banner.header[variant]}\") + \" \" + colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].top}\") + \" \" +` : \"\"} colors.bold(colors.text.banner.header.${variant}(\"${header}\")) + \" \" + colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].top}\".repeat(Math.max(process.stdout.columns - ${6 + (theme.icons.banner.header[variant] ? theme.icons.banner.header[variant].length + 3 : 0) + (header ? header.length + 2 : 0) + bannerPadding.value}, 0)))` : `colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].top}\".repeat(Math.max(process.stdout.columns - ${bannerPadding.value}, 0)))`} + colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].topRight}\"), { consoleFn: console.${consoleFnName} }); `),\n\t\tcreateComponent(Show, {\n\t\t\twhen: !!children,\n\t\t\tget fallback() {\n\t\t\t\treturn createComponent(Show, {\n\t\t\t\t\tget when() {\n\t\t\t\t\t\treturn isSetString(title);\n\t\t\t\t\t},\n\t\t\t\t\tget children() {\n\t\t\t\t\t\treturn createComponent(For, {\n\t\t\t\t\t\t\tget each() {\n\t\t\t\t\t\t\t\treturn title ? title.split(\"\\n\") : [];\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\thardline: true,\n\t\t\t\t\t\t\tchildren: (line) => code`splitText(\"${line}\",\n Math.max(process.stdout.columns - ${totalPadding.value}, 20)\n ).forEach((line) => {\n writeLine(colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].left}\") + \" \".repeat(Math.max(Math.floor((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.bold(colors.text.banner.title.${variant}(line)) + \" \".repeat(Math.max(Math.ceil((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].right}\"), { consoleFn: console.${consoleFnName} });\n }); `\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\tchildren\n\t\t}),\n\t\tcreateComponent(Spacing, {}),\n\t\tcreateComponent(Show, {\n\t\t\tget when() {\n\t\t\t\treturn isSetString(command?.title) && !!command?.path;\n\t\t\t},\n\t\t\tget children() {\n\t\t\t\treturn [createComponent(Show, {\n\t\t\t\t\twhen: insertNewlineBeforeCommand,\n\t\t\t\t\tget children() {\n\t\t\t\t\t\treturn code`writeLine(colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].left}\") + \" \".repeat(Math.max(process.stdout.columns - ${bannerPadding.value})) + colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].right}\"), { consoleFn: console.${consoleFnName} }); `;\n\t\t\t\t\t}\n\t\t\t\t}), memo(() => `writeLine(colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].left}\") + \" \".repeat(Math.max(Math.floor((process.stdout.columns - (stripAnsi(\"${command?.title}\").length ${command?.icon ? \" + 3\" : \"\"} + ${bannerPadding.value})) / 2), 0)) + colors.bold(colors.text.banner.command.${variant}(\"${command?.icon ? `${command.icon} ` : \"\"}${command?.title}\")) + \" \".repeat(Math.max(Math.ceil((process.stdout.columns - (stripAnsi(\"${command?.title}\").length ${command?.icon ? \" + 3\" : \"\"} + ${bannerPadding.value})) / 2), 0)) + colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].right}\"), { consoleFn: console.${consoleFnName} }); `)];\n\t\t\t}\n\t\t}),\n\t\tcreateComponent(Spacing, {}),\n\t\tmemo(() => code`splitText(\n colors.bold(${command?.title ? \"colors.text.banner.description\" : \"colors.text.banner.command\"}.${variant}(\\`${formatDescription(description)}\\`)),\n Math.max(${command?.title ? `${totalPadding.value} * 2 > process.stdout.columns / 2 ? process.stdout.columns - 6 : process.stdout.columns - ${totalPadding.value}` : `process.stdout.columns - ${totalPadding.value}`} , 20)\n ).forEach((line) => {\n writeLine(colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].left}\") + \" \".repeat(Math.max(Math.floor((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.text.banner.description.${variant}(line) + \" \".repeat(Math.max(Math.ceil((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].right}\"), { consoleFn: console.${consoleFnName} });\n });\n ${insertNewlineAfterDescription ? `writeLine(colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].left}\") + \" \".repeat(Math.max(process.stdout.columns - ${bannerPadding.value})) + colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].right}\"), { consoleFn: console.${consoleFnName} });` : \"\"}\n writeLine(colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].bottomLeft}\") + ${footer ? `colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].bottom}\".repeat(Math.max(process.stdout.columns - ${8 + (footer ? footer.length : 0) + bannerPadding.value}, 0))) + \" \" + ${footer ? `colors.bold(colors.text.banner.footer.${variant}(\"${footer}\"))` : \"\"} + \" \" + colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].bottom}\".repeat(6))` : `colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].bottom}\".repeat(Math.max(process.stdout.columns - ${bannerPadding.value}, 0)))`} + colors.border.banner.outline.${variant}(\"${theme.borderStyles.banner.outline[variant].bottomRight}\"), { consoleFn: console.${consoleFnName} });\n\n writeLine(\"\"); `)\n\t];\n}\n/**\n* A component to generate the `banner` function for a specific command or application.\n*\n* @remarks\n* This function will display a banner in the console with the application's name, version, and description. It can be customized with different variants for styling and supports conditional rendering based on flags or environment variables.\n*/\nfunction BannerFunctionDeclaration(props) {\n\tconst { consoleFnName = \"log\", variant = \"primary\", command, children, insertNewlineBeforeBanner = true } = props;\n\tconst theme = useTheme();\n\tconst context = usePowerlines();\n\tconst header = computed(() => `${theme.labels.banner.header[variant] || getAppTitle(context, false)} v${context.packageJson.version || \"1.0.0\"}`);\n\tconst footer = computed(() => theme.labels.banner.footer[variant]);\n\tconst title = computed(() => context.config.banner.title || getAppTitle(context, true).replace(`v${context.packageJson.version || \"1.0.0\"}`, \"\"));\n\tconst description = computed(() => command?.description || getAppDescription(context));\n\treturn createComponent(BannerFunctionDeclarationWrapper, {\n\t\tcommand,\n\t\tget children() {\n\t\t\treturn createComponent(BannerFunctionBodyDeclaration, {\n\t\t\t\tget title() {\n\t\t\t\t\treturn !children ? title.value : void 0;\n\t\t\t\t},\n\t\t\t\tget header() {\n\t\t\t\t\treturn header.value;\n\t\t\t\t},\n\t\t\t\tget description() {\n\t\t\t\t\treturn description.value;\n\t\t\t\t},\n\t\t\t\tget footer() {\n\t\t\t\t\treturn footer.value;\n\t\t\t\t},\n\t\t\t\tvariant,\n\t\t\t\tconsoleFnName,\n\t\t\t\tcommand,\n\t\t\t\tinsertNewlineBeforeCommand: true,\n\t\t\t\tinsertNewlineBeforeBanner,\n\t\t\t\tchildren\n\t\t\t});\n\t\t}\n\t});\n}\n\n//#endregion\nexport { BannerFunctionBodyDeclaration, BannerFunctionDeclaration, BannerFunctionDeclarationWrapper };\n//# sourceMappingURL=banner-function-declaration.mjs.map"],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ConsolePluginContext, ConsolePluginOptions, ConsolePluginResolvedConfig, ConsolePluginUserConfig } from "@shell-shock/plugin-console";
|
|
2
|
-
import { ResolvedConfig, UserConfig } from "@shell-shock/core";
|
|
3
|
-
import { ThemePluginContext, ThemePluginOptions, ThemePluginResolvedConfig, ThemePluginUserConfig } from "@shell-shock/plugin-theme";
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|