@shell-shock/plugin-help 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -27,7 +27,7 @@ This package is part of the ⚡<b>Shell Shock</b> monorepo. The Shell Shock pack
27
27
 
28
28
  <h3 align="center">💻 Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3><br />
29
29
 
30
- [![Version](https://img.shields.io/badge/version-0.1.1-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://stormsoftware.com/projects/shell-shock/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/shell-shock/release.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
30
+ [![Version](https://img.shields.io/badge/version-0.1.2-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://stormsoftware.com/projects/shell-shock/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/shell-shock/release.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
31
31
 
32
32
  <!-- prettier-ignore-start -->
33
33
  <!-- markdownlint-disable -->
@@ -58,14 +58,14 @@ A **Shell Shock** plugin that adds a `help` command and various built-in modules
58
58
  Using [pnpm](http://pnpm.io):
59
59
 
60
60
  ```bash
61
- pnpm add -D @shell-shock/plugin-upgrade
61
+ pnpm add -D @shell-shock/plugin-help
62
62
  ```
63
63
 
64
64
  <details>
65
65
  <summary>Using npm</summary>
66
66
 
67
67
  ```bash
68
- npm install -D @shell-shock/plugin-upgrade
68
+ npm install -D @shell-shock/plugin-help
69
69
  ```
70
70
 
71
71
  </details>
@@ -74,18 +74,18 @@ npm install -D @shell-shock/plugin-upgrade
74
74
  <summary>Using yarn</summary>
75
75
 
76
76
  ```bash
77
- yarn add -D @shell-shock/plugin-upgrade
77
+ yarn add -D @shell-shock/plugin-help
78
78
  ```
79
79
 
80
80
  </details>
81
81
 
82
82
  ## Building
83
83
 
84
- Run `nx build plugin-upgrade` to build the library.
84
+ Run `nx build plugin-help` to build the library.
85
85
 
86
86
  ## Running unit tests
87
87
 
88
- Run `nx test plugin-upgrade` to execute the unit tests via [Jest](https://jestjs.io).
88
+ Run `nx test plugin-help` to execute the unit tests via [Jest](https://jestjs.io).
89
89
 
90
90
  <!-- START footer -->
91
91
  <!-- prettier-ignore-start -->
@@ -1,5 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
+ const require_is_set_string = require('../node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set-string.cjs');
3
4
  const require_kebab_case = require('../node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/kebab-case.cjs');
4
5
  const require_snake_case = require('../node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/snake-case.cjs');
5
6
  let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
@@ -141,6 +142,19 @@ function BaseHelpDisplay(props) {
141
142
  (0, _alloy_js_core_jsx_runtime.createComponent)(_powerlines_plugin_alloy_core_components_spacing.Spacing, {})
142
143
  ];
143
144
  }
145
+ }),
146
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
147
+ get when() {
148
+ return require_is_set_string.isSetString(command.reference);
149
+ },
150
+ get children() {
151
+ return [
152
+ (0, _alloy_js_core_jsx_runtime.memo)(() => _alloy_js_core.code`writeLine("");
153
+ 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} }` : ""});`),
154
+ (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {}),
155
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_powerlines_plugin_alloy_core_components_spacing.Spacing, {})
156
+ ];
157
+ }
144
158
  })
145
159
  ];
146
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"display.d.cts","names":[],"sources":["../../src/components/display.tsx"],"mappings":";;;;UAqCiB,qBAAA;;;AAAjB;EAIE,OAAA,EAAS,WAAA;;;;;;;;AAgBX;EANE,MAAA;AAAA;;;;iBAMc,gBAAA,CAAiB,KAAA,EAAO,qBAAA,GAAqB,eAAA,CAAA,QAAA;AAAA,UAiH5C,uBAAA;EAjH4C;AAiH7D;;EAIE,OAAA,EAAS,aAAA;AAAA;;AAMX;;iBAAgB,kBAAA,CAAmB,KAAA,EAAO,uBAAA,GAAuB,eAAA,CAAA,QAAA;AAAA,UA0EhD,wBAAA;EA1EyB;;;EA8ExC,QAAA,EAAU,MAAA,SAAe,WAAA;AAAA;AAJ3B;;;AAAA,iBAUgB,mBAAA,CAAoB,KAAA,EAAO,wBAAA,GAAwB,eAAA,CAAA,QAAA;AAAA,UAwBlD,oBAAA;EA9BL;;;EAkCV,OAAA,EAAS,WAAA;EA5BK;;;;;;;;EAsCd,mBAAA;EAde;;;;;;;;EAwBf,MAAA;AAAA;AAMF;;;AAAA,iBAAgB,eAAA,CAAgB,KAAA,EAAO,oBAAA,GAAoB,eAAA,CAAA,QAAA;AAAA,UAmD1C,8BAAA;EAnDe;;;EAuD9B,OAAA,EAAS,aAAA;EAJM;;;EASf,QAAA,EAAU,MAAA,SAAe,WAAA;EAAA;;;;;;EAQzB,QAAA;AAAA;;;;iBAMc,yBAAA,CACd,KAAA,EAAO,8BAAA,GAA8B,eAAA,CAAA,QAAA;AAAA,UA2DtB,uBAAA;EA5DwB;;;EAgEvC,OAAA,EAAS,WAAA;AAAA;;;;iBAMK,kBAAA,CAAmB,KAAA,EAAO,uBAAA,GAAuB,eAAA,CAAA,QAAA"}
1
+ {"version":3,"file":"display.d.cts","names":[],"sources":["../../src/components/display.tsx"],"mappings":";;;;UAsCiB,qBAAA;;;AAAjB;EAIE,OAAA,EAAS,WAAA;;;;;;;;AAgBX;EANE,MAAA;AAAA;;;;iBAMc,gBAAA,CAAiB,KAAA,EAAO,qBAAA,GAAqB,eAAA,CAAA,QAAA;AAAA,UAiH5C,uBAAA;EAjH4C;AAiH7D;;EAIE,OAAA,EAAS,aAAA;AAAA;;AAMX;;iBAAgB,kBAAA,CAAmB,KAAA,EAAO,uBAAA,GAAuB,eAAA,CAAA,QAAA;AAAA,UA0EhD,wBAAA;EA1EyB;;;EA8ExC,QAAA,EAAU,MAAA,SAAe,WAAA;AAAA;AAJ3B;;;AAAA,iBAUgB,mBAAA,CAAoB,KAAA,EAAO,wBAAA,GAAwB,eAAA,CAAA,QAAA;AAAA,UAwBlD,oBAAA;EA9BL;;;EAkCV,OAAA,EAAS,WAAA;EA5BK;;;;;;;;EAsCd,mBAAA;EAde;;;;;;;;EAwBf,MAAA;AAAA;AAMF;;;AAAA,iBAAgB,eAAA,CAAgB,KAAA,EAAO,oBAAA,GAAoB,eAAA,CAAA,QAAA;AAAA,UA6D1C,8BAAA;EA7De;;;EAiE9B,OAAA,EAAS,aAAA;EAJM;;;EASf,QAAA,EAAU,MAAA,SAAe,WAAA;EAAA;;;;;;EAQzB,QAAA;AAAA;;;;iBAMc,yBAAA,CACd,KAAA,EAAO,8BAAA,GAA8B,eAAA,CAAA,QAAA;AAAA,UA2DtB,uBAAA;EA5DwB;;;EAgEvC,OAAA,EAAS,WAAA;AAAA;;;;iBAMK,kBAAA,CAAmB,KAAA,EAAO,uBAAA,GAAuB,eAAA,CAAA,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"display.d.mts","names":[],"sources":["../../src/components/display.tsx"],"mappings":";;;;UAqCiB,qBAAA;;;AAAjB;EAIE,OAAA,EAAS,WAAA;;;;;;;;AAgBX;EANE,MAAA;AAAA;;;;iBAMc,gBAAA,CAAiB,KAAA,EAAO,qBAAA,GAAqB,eAAA,CAAA,QAAA;AAAA,UAiH5C,uBAAA;EAjH4C;AAiH7D;;EAIE,OAAA,EAAS,aAAA;AAAA;;AAMX;;iBAAgB,kBAAA,CAAmB,KAAA,EAAO,uBAAA,GAAuB,eAAA,CAAA,QAAA;AAAA,UA0EhD,wBAAA;EA1EyB;;;EA8ExC,QAAA,EAAU,MAAA,SAAe,WAAA;AAAA;AAJ3B;;;AAAA,iBAUgB,mBAAA,CAAoB,KAAA,EAAO,wBAAA,GAAwB,eAAA,CAAA,QAAA;AAAA,UAwBlD,oBAAA;EA9BL;;;EAkCV,OAAA,EAAS,WAAA;EA5BK;;;;;;;;EAsCd,mBAAA;EAde;;;;;;;;EAwBf,MAAA;AAAA;AAMF;;;AAAA,iBAAgB,eAAA,CAAgB,KAAA,EAAO,oBAAA,GAAoB,eAAA,CAAA,QAAA;AAAA,UAmD1C,8BAAA;EAnDe;;;EAuD9B,OAAA,EAAS,aAAA;EAJM;;;EASf,QAAA,EAAU,MAAA,SAAe,WAAA;EAAA;;;;;;EAQzB,QAAA;AAAA;;;;iBAMc,yBAAA,CACd,KAAA,EAAO,8BAAA,GAA8B,eAAA,CAAA,QAAA;AAAA,UA2DtB,uBAAA;EA5DwB;;;EAgEvC,OAAA,EAAS,WAAA;AAAA;;;;iBAMK,kBAAA,CAAmB,KAAA,EAAO,uBAAA,GAAuB,eAAA,CAAA,QAAA"}
1
+ {"version":3,"file":"display.d.mts","names":[],"sources":["../../src/components/display.tsx"],"mappings":";;;;UAsCiB,qBAAA;;;AAAjB;EAIE,OAAA,EAAS,WAAA;;;;;;;;AAgBX;EANE,MAAA;AAAA;;;;iBAMc,gBAAA,CAAiB,KAAA,EAAO,qBAAA,GAAqB,eAAA,CAAA,QAAA;AAAA,UAiH5C,uBAAA;EAjH4C;AAiH7D;;EAIE,OAAA,EAAS,aAAA;AAAA;;AAMX;;iBAAgB,kBAAA,CAAmB,KAAA,EAAO,uBAAA,GAAuB,eAAA,CAAA,QAAA;AAAA,UA0EhD,wBAAA;EA1EyB;;;EA8ExC,QAAA,EAAU,MAAA,SAAe,WAAA;AAAA;AAJ3B;;;AAAA,iBAUgB,mBAAA,CAAoB,KAAA,EAAO,wBAAA,GAAwB,eAAA,CAAA,QAAA;AAAA,UAwBlD,oBAAA;EA9BL;;;EAkCV,OAAA,EAAS,WAAA;EA5BK;;;;;;;;EAsCd,mBAAA;EAde;;;;;;;;EAwBf,MAAA;AAAA;AAMF;;;AAAA,iBAAgB,eAAA,CAAgB,KAAA,EAAO,oBAAA,GAAoB,eAAA,CAAA,QAAA;AAAA,UA6D1C,8BAAA;EA7De;;;EAiE9B,OAAA,EAAS,aAAA;EAJM;;;EASf,QAAA,EAAU,MAAA,SAAe,WAAA;EAAA;;;;;;EAQzB,QAAA;AAAA;;;;iBAMc,yBAAA,CACd,KAAA,EAAO,8BAAA,GAA8B,eAAA,CAAA,QAAA;AAAA,UA2DtB,uBAAA;EA5DwB;;;EAgEvC,OAAA,EAAS,WAAA;AAAA;;;;iBAMK,kBAAA,CAAmB,KAAA,EAAO,uBAAA,GAAuB,eAAA,CAAA,QAAA"}
@@ -1,3 +1,4 @@
1
+ import { isSetString } from "../node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set-string.mjs";
1
2
  import { kebabCase } from "../node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/kebab-case.mjs";
2
3
  import { snakeCase } from "../node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/snake-case.mjs";
3
4
  import { createComponent, createIntrinsic, memo } from "@alloy-js/core/jsx-runtime";
@@ -139,6 +140,19 @@ function BaseHelpDisplay(props) {
139
140
  createComponent(Spacing, {})
140
141
  ];
141
142
  }
143
+ }),
144
+ createComponent(Show, {
145
+ get when() {
146
+ return isSetString(command.reference);
147
+ },
148
+ get children() {
149
+ return [
150
+ memo(() => code`writeLine("");
151
+ 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} }` : ""});`),
152
+ createIntrinsic("hbr", {}),
153
+ createComponent(Spacing, {})
154
+ ];
155
+ }
142
156
  })
143
157
  ];
144
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"display.mjs","names":[],"sources":["../../src/components/display.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Shell Shock\n\n This code was released as part of the Shell Shock project. Shell Shock\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/shell-shock.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/shell-shock\n Documentation: https://docs.stormsoftware.com/projects/shell-shock\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { code, computed, For, Show } from \"@alloy-js/core\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport { usePowerlines } from \"@powerlines/plugin-alloy/core/contexts/context\";\nimport type { CommandOption, CommandTree } from \"@shell-shock/core\";\nimport { CommandParameterKinds } from \"@shell-shock/core\";\nimport {\n formatDescription,\n formatShortDescription,\n getAppBin,\n getAppTitle,\n getDynamicPathSegmentName,\n isDynamicPathSegment,\n sortOptions\n} from \"@shell-shock/core/plugin-utils\";\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\";\nimport type { HelpPluginContext } from \"../types/plugin\";\n\nexport interface HelpUsageDisplayProps {\n /**\n * The command to generate help for.\n */\n command: CommandTree;\n\n /**\n * The padding scale to apply to the help display headings.\n *\n * @remarks\n * This value is multiplied by the theme's app padding to determine the final padding.\n *\n * @defaultValue 2\n */\n indent?: number;\n}\n\n/**\n * A component that generates the usage display for a command.\n */\nexport function HelpUsageDisplay(props: HelpUsageDisplayProps) {\n const { command, indent = 2 } = props;\n\n const context = usePowerlines<HelpPluginContext>();\n const theme = useTheme();\n\n return (\n <>\n <For each={Object.keys(context.config.bin)} hardline>\n {bin => (\n <>\n {code`\n writeLine(\n colors.text.body.secondary(\\`\\$ \\${colors.text.usage.bin(\"${bin}\")}${\n command.segments.length > 0\n ? ` ${command.segments\n .map(\n segment =>\n `\\${colors.text.usage.${isDynamicPathSegment(segment) ? \"dynamic\" : \"command\"}(\"${\n isDynamicPathSegment(segment)\n ? `[${snakeCase(getDynamicPathSegmentName(segment))}]`\n : segment\n }\")}`\n )\n .join(\" \")}`\n : \"\"\n }${Object.values(command.children).length > 0 ? ` \\${colors.text.usage.dynamic(\"[command]\")}` : \"\"}${\n command.args.length > 0\n ? ` ${command.args\n .map(\n arg =>\n `\\${colors.text.usage.args(\"<${snakeCase(\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.choices &&\n arg.choices.length > 0\n ? arg.choices.join(\"|\")\n : arg.kind === CommandParameterKinds.string &&\n arg.format\n ? arg.format\n : arg.name\n )}${\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic\n ? \"...\"\n : \"\"\n }>\")}`\n )\n .join(\" \")}`\n : \"\"\n } \\${colors.text.usage.options(\"[options]\")}\\`), { padding: ${theme.padding.app * indent} }\n );`}\n <hbr />\n </>\n )}\n </For>\n <Show when={command.args.length > 0}>\n <hbr />\n <For each={Object.keys(context.config.bin)} hardline>\n {bin => (\n <>\n {code`\n writeLine(\n colors.text.body.secondary(\\`\\$ \\${colors.text.usage.bin(\"${bin}\")}${\n command.segments.length > 0\n ? ` ${command.segments\n .map(\n segment =>\n `\\${colors.text.usage.${isDynamicPathSegment(segment) ? \"dynamic\" : \"command\"}(\"${\n isDynamicPathSegment(segment)\n ? `[${snakeCase(getDynamicPathSegmentName(segment))}]`\n : segment\n }\")}`\n )\n .join(\" \")}`\n : \"\"\n }${Object.values(command.children).length > 0 ? ` \\${colors.text.usage.dynamic(\"[command]\")}` : \"\"} \\${colors.text.usage.options(\"[options]\")}${\n command.args.length > 0\n ? ` ${command.args\n .map(\n arg =>\n `\\${colors.text.usage.args(\"<${snakeCase(\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.choices &&\n arg.choices.length > 0\n ? arg.choices.join(\"|\")\n : arg.kind === CommandParameterKinds.string &&\n arg.format\n ? arg.format\n : arg.name\n )}${\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic\n ? \"...\"\n : \"\"\n }>\")}`\n )\n .join(\" \")}`\n : \"\"\n }\\`), { padding: ${theme.padding.app * indent} }\n );`}\n <hbr />\n </>\n )}\n </For>\n </Show>\n </>\n );\n}\n\nexport interface HelpOptionsDisplayProps {\n /**\n * The options to display help for.\n */\n options: CommandOption[];\n}\n\n/**\n * A component that generates the options table display for a command.\n */\nexport function HelpOptionsDisplay(props: HelpOptionsDisplayProps) {\n const { options } = props;\n\n const context = usePowerlines<HelpPluginContext>();\n\n return (\n <>\n {code`table([ `}\n <hbr />\n <For each={sortOptions(options)} hardline>\n {option => {\n const flags = [] as string[];\n const names = [] as string[];\n if (option.name.length === 1) {\n flags.push(`-${option.name}`);\n } else {\n names.push(`--${kebabCase(option.name)}`);\n }\n\n option.alias.forEach((alias: string) => {\n if (alias.length === 1) {\n flags.push(`-${alias}`);\n } else {\n names.push(`--${kebabCase(alias)}`);\n }\n });\n\n return code`[{ value: colors.text.body.primary(\"${\n flags.length > 0\n ? `${flags.sort().join(\", \")}${names.length > 0 ? \", \" : \"\"}`\n : \"\"\n }${names.length > 0 ? names.sort().join(\", \") : \"\"}${\n option.kind === CommandParameterKinds.string\n ? ` <${snakeCase(\n option.choices && option.choices.length > 0\n ? option.choices.join(\"|\")\n : option.format\n ? option.format\n : option.name\n )}${option.variadic ? \"...\" : \"\"}>`\n : option.kind === CommandParameterKinds.number\n ? ` <${snakeCase(\n option.choices && option.choices.length > 0\n ? option.choices.join(\"|\")\n : option.name\n )}${option.variadic ? \"...\" : \"\"}>`\n : \"\"\n }\"), align: \"right\", border: \"none\", maxWidth: \"1/3\" }, { value: colors.text.body.tertiary(\\`${formatShortDescription(\n option.description\n )\n .replace(/\\.+$/, \"\")\n .trim()}${\n option.env || option.default !== undefined\n ? ` (${\n option.env\n ? `env: ${context.config.appSpecificEnvPrefix}_${option.env}${\n option.default !== undefined ? \", \" : \"\"\n }`\n : \"\"\n }${\n option.default !== undefined\n ? `default: ${JSON.stringify(option.default).replace(/\"/g, '\\\\\"')}`\n : \"\"\n })`\n : \"\"\n }.\\`), align: \"left\", border: \"none\" }], `;\n }}\n </For>\n <hbr />\n {code` ]); `}\n </>\n );\n}\n\nexport interface HelpCommandsDisplayProps {\n /**\n * A mapping of command names to their command definitions.\n */\n commands: Record<string, CommandTree>;\n}\n\n/**\n * A component that generates the commands table display for a command.\n */\nexport function HelpCommandsDisplay(props: HelpCommandsDisplayProps) {\n const { commands } = props;\n\n return (\n <>\n {code`table([ `}\n <hbr />\n <For each={Object.values(commands)} hardline>\n {child =>\n code`[{ value: colors.text.body.primary(\"${\n child.name\n }\"), align: \"right\", border: \"none\" }, { value: colors.text.body.tertiary(\\`${formatShortDescription(\n child.description\n )\n .replace(/\\.+$/, \"\")\n .trim()}.\\`), align: \"left\", border: \"none\" }], `\n }\n </For>\n <hbr />\n {code` ]); `}\n </>\n );\n}\n\nexport interface BaseHelpDisplayProps {\n /**\n * The command to generate help for.\n */\n command: CommandTree;\n\n /**\n * Whether to filter out global options from the help display.\n *\n * @remarks\n * When enabled, any options that are present in the global options context will be filtered out from the help display. This is useful for sub-commands to avoid displaying global options that are not relevant to the specific command.\n *\n * @defaultValue false\n */\n filterGlobalOptions?: boolean;\n\n /**\n * The padding scale to apply to the help display headings.\n *\n * @remarks\n * This value is multiplied by the theme's app padding to determine the final padding.\n *\n * @defaultValue 1\n */\n indent?: number;\n}\n\n/**\n * A component that generates the `help` function declaration for a command.\n */\nexport function BaseHelpDisplay(props: BaseHelpDisplayProps) {\n const { command, indent = 1, filterGlobalOptions = false } = props;\n\n const theme = useTheme();\n const context = usePowerlines<HelpPluginContext>();\n\n const options = computed(() =>\n filterGlobalOptions\n ? Object.values(command.options).filter(\n option =>\n !context.options.some(\n globalOption =>\n globalOption.name === option.name ||\n option.alias.includes(globalOption.name) ||\n globalOption.alias?.includes(option.name) ||\n globalOption.alias?.some(alias => option.alias.includes(alias))\n )\n )\n : Object.values(command.options)\n );\n\n return (\n <>\n {code`writeLine(colors.bold(colors.text.heading.secondary(\"Usage:\"))${\n indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"\n });`}\n <hbr />\n <HelpUsageDisplay command={command} indent={indent} />\n <Spacing />\n <Show when={options.value.length > 0}>\n {code`writeLine(\"\");\n writeLine(colors.bold(colors.text.heading.secondary(\"Options:\"))${\n indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"\n });`}\n <hbr />\n <HelpOptionsDisplay options={options.value} />\n <Spacing />\n </Show>\n <Show when={Object.keys(command.children).length > 0}>\n {code`writeLine(\"\");\n writeLine(colors.bold(colors.text.heading.secondary(\"Commands:\"))${\n indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"\n });`}\n <hbr />\n <HelpCommandsDisplay commands={command.children} />\n <Spacing />\n </Show>\n </>\n );\n}\n\nexport interface VirtualCommandHelpDisplayProps {\n /**\n * The options to display help for.\n */\n options: CommandOption[];\n\n /**\n * A mapping of command names to their command definitions.\n */\n commands: Record<string, CommandTree>;\n\n /**\n * The command path to generate help for, used for generating the help invocation instructions.\n *\n * @remarks\n * This is optional since the virtual command entry component can be used for both the global binary executable and virtual commands (there will be no command definition for the binary executable).\n */\n segments?: string[];\n}\n\n/**\n * A component that generates the invocation of the `help` function for a command.\n */\nexport function VirtualCommandHelpDisplay(\n props: VirtualCommandHelpDisplayProps\n) {\n const { options, segments, commands } = props;\n\n const context = usePowerlines<HelpPluginContext>();\n\n return (\n <>\n <hbr />\n {code`writeLine(colors.bold(colors.text.heading.secondary(\"Global Options:\")));`}\n <hbr />\n <HelpOptionsDisplay options={options} />\n {code`writeLine(\"\"); `}\n <Spacing />\n <Show when={Object.keys(commands).length > 0}>\n {code`writeLine(colors.text.body.secondary(\"The following commands are available through the ${getAppTitle(\n context,\n true\n )} command-line interface:\"));\n writeLine(\"\"); `}\n <Spacing />\n <For\n each={Object.values(commands)}\n doubleHardline\n joiner={code`writeLine(\"\"); `}\n ender={code`writeLine(\"\"); `}>\n {child => (\n <>\n {code`\n writeLine(colors.text.heading.primary(${\n child.icon\n ? `(isUnicodeSupported ? \" ${child.icon} \" : \"\") + `\n : \"\"\n }\"${child.title} ${child.isVirtual ? \"\" : \"Command\"}\"));\n writeLine(\"\");\n writeLine(colors.text.body.secondary(splitText(\\`${formatDescription(\n child.description\n )\n .replace(/\\.+$/, \"\")\n .trim()}.\\`)));\n writeLine(\"\");\n `}\n <hbr />\n <BaseHelpDisplay command={child} indent={2} filterGlobalOptions />\n <hbr />\n </>\n )}\n </For>\n {code`help(\"Running a specific command with the help flag (via: '${getAppBin(\n context\n )}${\n segments && segments.length > 0 ? ` ${segments.join(\" \")}` : \"\"\n } <specific command> --help') will provide additional information that is specific to that command.\");\n writeLine(\"\");`}\n </Show>\n </>\n );\n}\n\nexport interface CommandHelpDisplayProps {\n /**\n * A mapping of command names to their command definitions.\n */\n command: CommandTree;\n}\n\n/**\n * A component that generates the invocation of the `help` function for a command.\n */\nexport function CommandHelpDisplay(props: CommandHelpDisplayProps) {\n const { command } = props;\n\n const context = usePowerlines<HelpPluginContext>();\n\n return (\n <>\n {code`writeLine(\"\"); `}\n <Spacing />\n <BaseHelpDisplay command={command} filterGlobalOptions={false} />\n {code`writeLine(\"\"); `}\n <Spacing />\n <Show when={Object.keys(command.children).length > 0}>\n {code`writeLine(colors.text.body.secondary(\"The following sub-commands are available:\"));\n writeLine(\"\"); `}\n <Spacing />\n <For\n each={Object.values(command.children)}\n doubleHardline\n joiner={code`writeLine(\"\"); `}\n ender={code`writeLine(\"\"); `}>\n {child => (\n <>\n {code`\n writeLine(colors.text.heading.primary(${\n child.icon\n ? `(isUnicodeSupported ? \" ${child.icon} \" : \"\") + `\n : \"\"\n }\"${child.title} ${child.isVirtual ? \"\" : \"Command\"}\"));\n writeLine(\"\");\n writeLine(colors.text.body.secondary(splitText(\\`${formatDescription(\n child.description\n )\n .replace(/\\.+$/, \"\")\n .trim()}.\\`)));\n writeLine(\"\");\n `}\n <hbr />\n <BaseHelpDisplay command={child} indent={2} filterGlobalOptions />\n <hbr />\n </>\n )}\n </For>\n {code`help(\"Running a specific command with the help flag (via: '${getAppBin(\n context\n )} ${command.segments.join(\n \" \"\n )} <specific command> --help') will provide additional information that is specific to that command.\");\n writeLine(\"\");`}\n </Show>\n </>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"display.mjs","names":[],"sources":["../../src/components/display.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Shell Shock\n\n This code was released as part of the Shell Shock project. Shell Shock\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/shell-shock.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/shell-shock\n Documentation: https://docs.stormsoftware.com/projects/shell-shock\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { code, computed, For, Show } from \"@alloy-js/core\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport { usePowerlines } from \"@powerlines/plugin-alloy/core/contexts/context\";\nimport type { CommandOption, CommandTree } from \"@shell-shock/core\";\nimport { CommandParameterKinds } from \"@shell-shock/core\";\nimport {\n formatDescription,\n formatShortDescription,\n getAppBin,\n getAppTitle,\n getDynamicPathSegmentName,\n isDynamicPathSegment,\n sortOptions\n} from \"@shell-shock/core/plugin-utils\";\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\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport type { HelpPluginContext } from \"../types/plugin\";\n\nexport interface HelpUsageDisplayProps {\n /**\n * The command to generate help for.\n */\n command: CommandTree;\n\n /**\n * The padding scale to apply to the help display headings.\n *\n * @remarks\n * This value is multiplied by the theme's app padding to determine the final padding.\n *\n * @defaultValue 2\n */\n indent?: number;\n}\n\n/**\n * A component that generates the usage display for a command.\n */\nexport function HelpUsageDisplay(props: HelpUsageDisplayProps) {\n const { command, indent = 2 } = props;\n\n const context = usePowerlines<HelpPluginContext>();\n const theme = useTheme();\n\n return (\n <>\n <For each={Object.keys(context.config.bin)} hardline>\n {bin => (\n <>\n {code`\n writeLine(\n colors.text.body.secondary(\\`\\$ \\${colors.text.usage.bin(\"${bin}\")}${\n command.segments.length > 0\n ? ` ${command.segments\n .map(\n segment =>\n `\\${colors.text.usage.${isDynamicPathSegment(segment) ? \"dynamic\" : \"command\"}(\"${\n isDynamicPathSegment(segment)\n ? `[${snakeCase(getDynamicPathSegmentName(segment))}]`\n : segment\n }\")}`\n )\n .join(\" \")}`\n : \"\"\n }${Object.values(command.children).length > 0 ? ` \\${colors.text.usage.dynamic(\"[command]\")}` : \"\"}${\n command.args.length > 0\n ? ` ${command.args\n .map(\n arg =>\n `\\${colors.text.usage.args(\"<${snakeCase(\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.choices &&\n arg.choices.length > 0\n ? arg.choices.join(\"|\")\n : arg.kind === CommandParameterKinds.string &&\n arg.format\n ? arg.format\n : arg.name\n )}${\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic\n ? \"...\"\n : \"\"\n }>\")}`\n )\n .join(\" \")}`\n : \"\"\n } \\${colors.text.usage.options(\"[options]\")}\\`), { padding: ${theme.padding.app * indent} }\n );`}\n <hbr />\n </>\n )}\n </For>\n <Show when={command.args.length > 0}>\n <hbr />\n <For each={Object.keys(context.config.bin)} hardline>\n {bin => (\n <>\n {code`\n writeLine(\n colors.text.body.secondary(\\`\\$ \\${colors.text.usage.bin(\"${bin}\")}${\n command.segments.length > 0\n ? ` ${command.segments\n .map(\n segment =>\n `\\${colors.text.usage.${isDynamicPathSegment(segment) ? \"dynamic\" : \"command\"}(\"${\n isDynamicPathSegment(segment)\n ? `[${snakeCase(getDynamicPathSegmentName(segment))}]`\n : segment\n }\")}`\n )\n .join(\" \")}`\n : \"\"\n }${Object.values(command.children).length > 0 ? ` \\${colors.text.usage.dynamic(\"[command]\")}` : \"\"} \\${colors.text.usage.options(\"[options]\")}${\n command.args.length > 0\n ? ` ${command.args\n .map(\n arg =>\n `\\${colors.text.usage.args(\"<${snakeCase(\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.choices &&\n arg.choices.length > 0\n ? arg.choices.join(\"|\")\n : arg.kind === CommandParameterKinds.string &&\n arg.format\n ? arg.format\n : arg.name\n )}${\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic\n ? \"...\"\n : \"\"\n }>\")}`\n )\n .join(\" \")}`\n : \"\"\n }\\`), { padding: ${theme.padding.app * indent} }\n );`}\n <hbr />\n </>\n )}\n </For>\n </Show>\n </>\n );\n}\n\nexport interface HelpOptionsDisplayProps {\n /**\n * The options to display help for.\n */\n options: CommandOption[];\n}\n\n/**\n * A component that generates the options table display for a command.\n */\nexport function HelpOptionsDisplay(props: HelpOptionsDisplayProps) {\n const { options } = props;\n\n const context = usePowerlines<HelpPluginContext>();\n\n return (\n <>\n {code`table([ `}\n <hbr />\n <For each={sortOptions(options)} hardline>\n {option => {\n const flags = [] as string[];\n const names = [] as string[];\n if (option.name.length === 1) {\n flags.push(`-${option.name}`);\n } else {\n names.push(`--${kebabCase(option.name)}`);\n }\n\n option.alias.forEach((alias: string) => {\n if (alias.length === 1) {\n flags.push(`-${alias}`);\n } else {\n names.push(`--${kebabCase(alias)}`);\n }\n });\n\n return code`[{ value: colors.text.body.primary(\"${\n flags.length > 0\n ? `${flags.sort().join(\", \")}${names.length > 0 ? \", \" : \"\"}`\n : \"\"\n }${names.length > 0 ? names.sort().join(\", \") : \"\"}${\n option.kind === CommandParameterKinds.string\n ? ` <${snakeCase(\n option.choices && option.choices.length > 0\n ? option.choices.join(\"|\")\n : option.format\n ? option.format\n : option.name\n )}${option.variadic ? \"...\" : \"\"}>`\n : option.kind === CommandParameterKinds.number\n ? ` <${snakeCase(\n option.choices && option.choices.length > 0\n ? option.choices.join(\"|\")\n : option.name\n )}${option.variadic ? \"...\" : \"\"}>`\n : \"\"\n }\"), align: \"right\", border: \"none\", maxWidth: \"1/3\" }, { value: colors.text.body.tertiary(\\`${formatShortDescription(\n option.description\n )\n .replace(/\\.+$/, \"\")\n .trim()}${\n option.env || option.default !== undefined\n ? ` (${\n option.env\n ? `env: ${context.config.appSpecificEnvPrefix}_${option.env}${\n option.default !== undefined ? \", \" : \"\"\n }`\n : \"\"\n }${\n option.default !== undefined\n ? `default: ${JSON.stringify(option.default).replace(/\"/g, '\\\\\"')}`\n : \"\"\n })`\n : \"\"\n }.\\`), align: \"left\", border: \"none\" }], `;\n }}\n </For>\n <hbr />\n {code` ]); `}\n </>\n );\n}\n\nexport interface HelpCommandsDisplayProps {\n /**\n * A mapping of command names to their command definitions.\n */\n commands: Record<string, CommandTree>;\n}\n\n/**\n * A component that generates the commands table display for a command.\n */\nexport function HelpCommandsDisplay(props: HelpCommandsDisplayProps) {\n const { commands } = props;\n\n return (\n <>\n {code`table([ `}\n <hbr />\n <For each={Object.values(commands)} hardline>\n {child =>\n code`[{ value: colors.text.body.primary(\"${\n child.name\n }\"), align: \"right\", border: \"none\" }, { value: colors.text.body.tertiary(\\`${formatShortDescription(\n child.description\n )\n .replace(/\\.+$/, \"\")\n .trim()}.\\`), align: \"left\", border: \"none\" }], `\n }\n </For>\n <hbr />\n {code` ]); `}\n </>\n );\n}\n\nexport interface BaseHelpDisplayProps {\n /**\n * The command to generate help for.\n */\n command: CommandTree;\n\n /**\n * Whether to filter out global options from the help display.\n *\n * @remarks\n * When enabled, any options that are present in the global options context will be filtered out from the help display. This is useful for sub-commands to avoid displaying global options that are not relevant to the specific command.\n *\n * @defaultValue false\n */\n filterGlobalOptions?: boolean;\n\n /**\n * The padding scale to apply to the help display headings.\n *\n * @remarks\n * This value is multiplied by the theme's app padding to determine the final padding.\n *\n * @defaultValue 1\n */\n indent?: number;\n}\n\n/**\n * A component that generates the `help` function declaration for a command.\n */\nexport function BaseHelpDisplay(props: BaseHelpDisplayProps) {\n const { command, indent = 1, filterGlobalOptions = false } = props;\n\n const theme = useTheme();\n const context = usePowerlines<HelpPluginContext>();\n\n const options = computed(() =>\n filterGlobalOptions\n ? Object.values(command.options).filter(\n option =>\n !context.options.some(\n globalOption =>\n globalOption.name === option.name ||\n option.alias.includes(globalOption.name) ||\n globalOption.alias?.includes(option.name) ||\n globalOption.alias?.some(alias => option.alias.includes(alias))\n )\n )\n : Object.values(command.options)\n );\n\n return (\n <>\n {code`writeLine(colors.bold(colors.text.heading.secondary(\"Usage:\"))${\n indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"\n });`}\n <hbr />\n <HelpUsageDisplay command={command} indent={indent} />\n <Spacing />\n <Show when={options.value.length > 0}>\n {code`writeLine(\"\");\n writeLine(colors.bold(colors.text.heading.secondary(\"Options:\"))${\n indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"\n });`}\n <hbr />\n <HelpOptionsDisplay options={options.value} />\n <Spacing />\n </Show>\n <Show when={Object.keys(command.children).length > 0}>\n {code`writeLine(\"\");\n writeLine(colors.bold(colors.text.heading.secondary(\"Commands:\"))${\n indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"\n });`}\n <hbr />\n <HelpCommandsDisplay commands={command.children} />\n <Spacing />\n </Show>\n <Show when={isSetString(command.reference)}>\n {code`writeLine(\"\");\n writeLine(colors.text.heading.tertiary(\\`More information about this command can be found in the reference documentation at ${\n command.reference\n }\\`)${\n indent > 1 ? `, { padding: ${theme.padding.app * indent} }` : \"\"\n });`}\n <hbr />\n <Spacing />\n </Show>\n </>\n );\n}\n\nexport interface VirtualCommandHelpDisplayProps {\n /**\n * The options to display help for.\n */\n options: CommandOption[];\n\n /**\n * A mapping of command names to their command definitions.\n */\n commands: Record<string, CommandTree>;\n\n /**\n * The command path to generate help for, used for generating the help invocation instructions.\n *\n * @remarks\n * This is optional since the virtual command entry component can be used for both the global binary executable and virtual commands (there will be no command definition for the binary executable).\n */\n segments?: string[];\n}\n\n/**\n * A component that generates the invocation of the `help` function for a command.\n */\nexport function VirtualCommandHelpDisplay(\n props: VirtualCommandHelpDisplayProps\n) {\n const { options, segments, commands } = props;\n\n const context = usePowerlines<HelpPluginContext>();\n\n return (\n <>\n <hbr />\n {code`writeLine(colors.bold(colors.text.heading.secondary(\"Global Options:\")));`}\n <hbr />\n <HelpOptionsDisplay options={options} />\n {code`writeLine(\"\"); `}\n <Spacing />\n <Show when={Object.keys(commands).length > 0}>\n {code`writeLine(colors.text.body.secondary(\"The following commands are available through the ${getAppTitle(\n context,\n true\n )} command-line interface:\"));\n writeLine(\"\"); `}\n <Spacing />\n <For\n each={Object.values(commands)}\n doubleHardline\n joiner={code`writeLine(\"\"); `}\n ender={code`writeLine(\"\"); `}>\n {child => (\n <>\n {code`\n writeLine(colors.text.heading.primary(${\n child.icon\n ? `(isUnicodeSupported ? \" ${child.icon} \" : \"\") + `\n : \"\"\n }\"${child.title} ${child.isVirtual ? \"\" : \"Command\"}\"));\n writeLine(\"\");\n writeLine(colors.text.body.secondary(splitText(\\`${formatDescription(\n child.description\n )\n .replace(/\\.+$/, \"\")\n .trim()}.\\`)));\n writeLine(\"\");\n `}\n <hbr />\n <BaseHelpDisplay command={child} indent={2} filterGlobalOptions />\n <hbr />\n </>\n )}\n </For>\n {code`help(\"Running a specific command with the help flag (via: '${getAppBin(\n context\n )}${\n segments && segments.length > 0 ? ` ${segments.join(\" \")}` : \"\"\n } <specific command> --help') will provide additional information that is specific to that command.\");\n writeLine(\"\");`}\n </Show>\n </>\n );\n}\n\nexport interface CommandHelpDisplayProps {\n /**\n * A mapping of command names to their command definitions.\n */\n command: CommandTree;\n}\n\n/**\n * A component that generates the invocation of the `help` function for a command.\n */\nexport function CommandHelpDisplay(props: CommandHelpDisplayProps) {\n const { command } = props;\n\n const context = usePowerlines<HelpPluginContext>();\n\n return (\n <>\n {code`writeLine(\"\"); `}\n <Spacing />\n <BaseHelpDisplay command={command} filterGlobalOptions={false} />\n {code`writeLine(\"\"); `}\n <Spacing />\n <Show when={Object.keys(command.children).length > 0}>\n {code`writeLine(colors.text.body.secondary(\"The following sub-commands are available:\"));\n writeLine(\"\"); `}\n <Spacing />\n <For\n each={Object.values(command.children)}\n doubleHardline\n joiner={code`writeLine(\"\"); `}\n ender={code`writeLine(\"\"); `}>\n {child => (\n <>\n {code`\n writeLine(colors.text.heading.primary(${\n child.icon\n ? `(isUnicodeSupported ? \" ${child.icon} \" : \"\") + `\n : \"\"\n }\"${child.title} ${child.isVirtual ? \"\" : \"Command\"}\"));\n writeLine(\"\");\n writeLine(colors.text.body.secondary(splitText(\\`${formatDescription(\n child.description\n )\n .replace(/\\.+$/, \"\")\n .trim()}.\\`)));\n writeLine(\"\");\n `}\n <hbr />\n <BaseHelpDisplay command={child} indent={2} filterGlobalOptions />\n <hbr />\n </>\n )}\n </For>\n {code`help(\"Running a specific command with the help flag (via: '${getAppBin(\n context\n )} ${command.segments.join(\n \" \"\n )} <specific command> --help') will provide additional information that is specific to that command.\");\n writeLine(\"\");`}\n </Show>\n </>\n );\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "@shell-shock/plugin-help",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "private": false,
5
5
  "description": "A package containing a Shell Shock plugin to provide help and documentation for the local application's commands.",
6
6
  "keywords": [
7
- "style-dictionary",
8
7
  "shell-shock",
9
8
  "shell-shock-plugin",
10
9
  "powerlines",
@@ -53,18 +52,18 @@
53
52
  "dependencies": {
54
53
  "@alloy-js/core": "0.23.0-dev.8",
55
54
  "@alloy-js/typescript": "0.23.0-dev.4",
56
- "@powerlines/deepkit": "^0.6.134",
57
- "@powerlines/plugin-alloy": "^0.25.41",
58
- "@powerlines/plugin-plugin": "^0.12.306",
59
- "@shell-shock/core": "^0.13.1",
60
- "@shell-shock/plugin-theme": "^0.3.16",
61
- "@shell-shock/plugin-console": "^0.1.12",
55
+ "@powerlines/deepkit": "^0.6.146",
56
+ "@powerlines/plugin-alloy": "^0.25.53",
57
+ "@powerlines/plugin-plugin": "^0.12.318",
58
+ "@shell-shock/core": "^0.13.2",
59
+ "@shell-shock/plugin-theme": "^0.3.17",
60
+ "@shell-shock/plugin-console": "^0.1.13",
62
61
  "@stryke/path": "^0.27.2",
63
62
  "defu": "^6.1.4",
64
- "powerlines": "^0.41.20"
63
+ "powerlines": "^0.42.8"
65
64
  },
66
65
  "devDependencies": {
67
- "@powerlines/plugin-deepkit": "^0.11.234",
66
+ "@powerlines/plugin-deepkit": "^0.11.246",
68
67
  "@types/node": "^25.5.0"
69
68
  },
70
69
  "publishConfig": { "access": "public" },
@@ -173,5 +172,5 @@
173
172
  "@stryke/string-format": "0.17.6",
174
173
  "@stryke/type-checks": "0.5.41"
175
174
  },
176
- "gitHead": "86c55189ed02d126fb583cf6d2555266f00d0f3a"
175
+ "gitHead": "64e1ac187a12cd18acfd8134768bb793bbda3947"
177
176
  }