@shell-shock/plugin-help 0.1.2 → 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.
Files changed (42) hide show
  1. package/README.md +6 -6
  2. package/dist/components/display.cjs +16 -2
  3. package/dist/components/display.d.cts.map +1 -1
  4. package/dist/components/display.d.mts.map +1 -1
  5. package/dist/components/display.mjs +16 -2
  6. package/dist/components/display.mjs.map +1 -1
  7. package/dist/index.cjs +1 -1
  8. package/dist/index.mjs +1 -1
  9. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/constant-case.cjs +1 -1
  10. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/constant-case.mjs +1 -1
  11. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/constant-case.mjs.map +1 -1
  12. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/get-words.cjs +1 -1
  13. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/get-words.mjs +1 -1
  14. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/get-words.mjs.map +1 -1
  15. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/kebab-case.cjs +1 -1
  16. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/kebab-case.mjs +1 -1
  17. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/kebab-case.mjs.map +1 -1
  18. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/snake-case.cjs +1 -1
  19. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/snake-case.mjs +1 -1
  20. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/snake-case.mjs.map +1 -1
  21. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/upper-case-first.cjs +1 -1
  22. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/upper-case-first.mjs +1 -1
  23. package/dist/node_modules/.pnpm/{@stryke_string-format@0.17.4 → @stryke_string-format@0.17.6}/node_modules/@stryke/string-format/dist/upper-case-first.mjs.map +1 -1
  24. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-empty.cjs +1 -1
  25. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-empty.mjs +1 -1
  26. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-empty.mjs.map +1 -1
  27. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-null.cjs +1 -1
  28. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-null.mjs +1 -1
  29. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-null.mjs.map +1 -1
  30. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-set-string.cjs +1 -1
  31. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-set-string.mjs +1 -1
  32. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-set-string.mjs.map +1 -1
  33. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-set.cjs +1 -1
  34. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-set.mjs +1 -1
  35. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-set.mjs.map +1 -1
  36. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-string.cjs +1 -1
  37. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-string.mjs +1 -1
  38. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-string.mjs.map +1 -1
  39. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-undefined.cjs +1 -1
  40. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-undefined.mjs +1 -1
  41. package/dist/node_modules/.pnpm/{@stryke_type-checks@0.5.39 → @stryke_type-checks@0.5.41}/node_modules/@stryke/type-checks/dist/is-undefined.mjs.map +1 -1
  42. package/package.json +13 -14
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,7 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
- const require_kebab_case = require('../node_modules/.pnpm/@stryke_string-format@0.17.4/node_modules/@stryke/string-format/dist/kebab-case.cjs');
4
- const require_snake_case = require('../node_modules/.pnpm/@stryke_string-format@0.17.4/node_modules/@stryke/string-format/dist/snake-case.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');
4
+ const require_kebab_case = require('../node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/kebab-case.cjs');
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");
6
7
  let _alloy_js_core = require("@alloy-js/core");
7
8
  let _shell_shock_core_plugin_utils = require("@shell-shock/core/plugin-utils");
@@ -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,5 +1,6 @@
1
- import { kebabCase } from "../node_modules/.pnpm/@stryke_string-format@0.17.4/node_modules/@stryke/string-format/dist/kebab-case.mjs";
2
- import { snakeCase } from "../node_modules/.pnpm/@stryke_string-format@0.17.4/node_modules/@stryke/string-format/dist/snake-case.mjs";
1
+ import { isSetString } from "../node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set-string.mjs";
2
+ import { kebabCase } from "../node_modules/.pnpm/@stryke_string-format@0.17.6/node_modules/@stryke/string-format/dist/kebab-case.mjs";
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";
4
5
  import { For, Show, code, computed } from "@alloy-js/core";
5
6
  import { formatDescription, formatShortDescription, getAppBin, getAppTitle, getDynamicPathSegmentName, isDynamicPathSegment, sortOptions } from "@shell-shock/core/plugin-utils";
@@ -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":";;;;;;;;;;;;;;;AAkDA,SAAM,iBAAa,OAAA;CACjB,MAAE,EACF,SACF,SAAA;CAEE,MAAA,UAAA,eAAA;CACA,MAAG,QAAU,UAAK;AAClB,QAAA,CAAA,gBAAA,KAAA;EACF,IAAO,OAAQ;AACb,UAAQ,OAAS,KAAM,QAAQ,OAAM,IAAA;;EAErC,UAAM;EACN,WAAY,QAAE,CAAA,WAAU,IAAA;;oEAEjB,IAAA,KAAA,QAAA,SAAA,SAAA,IAAA,IAAA,QAAA,SAAA,KAAA,YAAA,wBAAA,qBAAA,QAAA,GAAA,YAAA,UAAA,IAAA,qBAAA,QAAA,GAAA,IAAA,UAAA,0BAAA,QAAA,CAAA,CAAA,KAAA,QAAA,KAAA,CAAA,KAAA,IAAA,KAAA,KAAA,OAAA,OAAA,QAAA,SAAA,CAAA,SAAA,IAAA,gDAAA,KAAA,QAAA,KAAA,SAAA,IAAA,IAAA,QAAA,KAAA,KAAA,QAAA,+BAAA,WAAA,IAAA,SAAA,sBAAA,UAAA,IAAA,SAAA,sBAAA,WAAA,IAAA,WAAA,IAAA,QAAA,SAAA,IAAA,IAAA,QAAA,KAAA,IAAA,GAAA,IAAA,SAAA,sBAAA,UAAA,IAAA,SAAA,IAAA,SAAA,IAAA,KAAA,IAAA,IAAA,SAAA,sBAAA,UAAA,IAAA,SAAA,sBAAA,WAAA,IAAA,WAAA,QAAA,GAAA,MAAA,CAAA,KAAA,IAAA,KAAA,GAAA,6DAAA,MAAA,QAAA,MAAA,OAAA;UACJ,EAAA,gBAAA,OAAA,EAAA,CAAA,CAAA;EACF,CAAC,EAAE,gBAAkB,MAAK;EACzB,IAAI,OAAO;AACT,UAAK,QAAA,KAAA,SAAA;;EAEP,IAAE,WAAS;AACT,UAAE,CAAM,gBAAW,OAAc,EAAE,CAAC,EAAC,gBAAkB,KAAM;IAC3D,IAAE,OAAQ;AACR,YAAO,OAAC,KAAQ,QAAA,OAAA,IAAA;;IAElB,UAAU;IACV,WAAU,QAAM,CAAA,WAAY,IAAO;;oEAEuB,IAAA,KAAW,QAAA,SAAA,SAAA,IAAA,IAAA,QAAA,SAAA,KAAA,YAAA,wBAAA,qBAAA,QAAA,GAAA,YAAA,UAAA,IAAA,qBAAA,QAAA,GAAA,IAAA,UAAA,0BAAA,QAAA,CAAA,CAAA,KAAA,QAAA,KAAA,CAAA,KAAA,IAAA,KAAA,KAAA,OAAA,OAAA,QAAA,SAAA,CAAA,SAAA,IAAA,gDAAA,GAAA,6CAAA,QAAA,KAAA,SAAA,IAAA,IAAA,QAAA,KAAA,KAAA,QAAA,+BAAA,WAAA,IAAA,SAAA,sBAAA,UAAA,IAAA,SAAA,sBAAA,WAAA,IAAA,WAAA,IAAA,QAAA,SAAA,IAAA,IAAA,QAAA,KAAA,IAAA,GAAA,IAAA,SAAA,sBAAA,UAAA,IAAA,SAAA,IAAA,SAAA,IAAA,KAAA,IAAA,IAAA,SAAA,sBAAA,UAAA,IAAA,SAAA,sBAAA,WAAA,IAAA,WAAA,QAAA,GAAA,MAAA,CAAA,KAAA,IAAA,KAAA,GAAA,kBAAA,MAAA,QAAA,MAAA,OAAA;UACnE,EAAE,gBAAc,OAAA,EAAA,CAAA,CAAA;IACnB,CAAC,CAAC;;EAEN,CAAC,CAAC;;;;;AAYL,SAAgB,mBAAc,OAAgB;CAC5C,MAAM,EACJ,YACE;CACJ,MAAM,UAAU,eAAc;AAC9B,QAAO;EAAC,IAAI;EAAS,gBAAA,OAAA,EAAA,CAAA;EAAA,gBAAA,KAAA;GACnB,IAAI,OAAO;AACT,WAAO,YAAW,QAAS;;GAE7B,UAAU;GACV,WAAU,WAAU;IAClB,MAAM,QAAQ,EAAE;IAChB,MAAM,QAAI,EAAA;AACV,QAAI,OAAO,KAAK,WAAK,EACnB,OAAM,KAAC,IAAA,OAAA,OAAA;QAEP,OAAC,KAAA,KAAA,UAAA,OAAA,KAAA,GAAA;AAEH,WAAM,MAAA,SAAA,UAAA;AACJ,SAAC,MAAA,WAAA,EACD,OAAG,KAAA,IAAA,QAAA;SAEF,OAAK,KAAA,KAAA,UAAA,MAAA,GAAA;MAEN;AACF,WAAO,IAAA,uCAAA,MAAA,SAAA,IAAA,GAAA,MAAA,MAAA,CAAA,KAAA,KAAA,GAAA,MAAA,SAAA,IAAA,OAAA,OAAA,KAAA,MAAA,SAAA,IAAA,MAAA,MAAA,CAAA,KAAA,KAAA,GAAA,KAAA,OAAA,SAAA,sBAAA,SAAA,KAAA,UAAA,OAAA,WAAA,OAAA,QAAA,SAAA,IAAA,OAAA,QAAA,KAAA,IAAA,GAAA,OAAA,SAAA,OAAA,SAAA,OAAA,KAAA,GAAA,OAAA,WAAA,QAAA,GAAA,KAAA,OAAA,SAAA,sBAAA,SAAA,KAAA,UAAA,OAAA,WAAA,OAAA,QAAA,SAAA,IAAA,OAAA,QAAA,KAAA,IAAA,GAAA,OAAA,KAAA,GAAA,OAAA,WAAA,QAAA,GAAA,KAAA,GAAA,8FAAA,uBAAA,OAAA,YAAA,CAAA,QAAA,QAAA,GAAA,CAAA,MAAA,GAAA,OAAA,OAAA,OAAA,YAAA,SAAA,KAAA,OAAA,MAAA,QAAA,QAAA,OAAA,qBAAA,GAAA,OAAA,MAAA,OAAA,YAAA,SAAA,OAAA,OAAA,KAAA,OAAA,YAAA,SAAA,YAAA,KAAA,UAAA,OAAA,QAAA,CAAA,QAAA,MAAA,OAAA,KAAA,GAAA,KAAA,GAAA;;GAEV,CAAC;EAAE,gBAAS,OAAA,EAAA,CAAA;EAAA,IAAA;EAAA;;;;;AAYf,SAAgB,oBAAW,OAAA;CACzB,MAAM,EACJ,aACE;AACJ,QAAO;EAAC,IAAI;EAAY,gBAAA,OAAA,EAAA,CAAA;EAAA,gBAAA,KAAA;GACtB,IAAI,OAAO;AACT,WAAO,OAAK,OAAK,SAAA;;GAEnB,UAAU;GACV,WAAU,UAAS,IAAI,uCAAuC,MAAE,KAAA,6EAAA,uBAAA,MAAA,YAAA,CAAA,QAAA,QAAA,GAAA,CAAA,MAAA,CAAA;GACjE,CAAC;EAAE,gBAAkB,OAAI,EAAA,CAAA;EAAQ,IAAC;EAAA;;;;;AAgCrC,SAAW,gBAAe,OAAA;CAC1B,MAAA,WAEE,SAAA,GACE,sBAAgB,UAClB;CACF,MAAO,QAAS,UAAA;CACd,MAAM,UAAU,eAAS;;AAEzB,QAAM;EAAA,WAAU,IAAA,iEAAkC,SAAA,IAAA,gBAAA,MAAA,QAAA,MAAA,OAAA,MAAA,GAAA,IAAA;EAAA,gBAAA,OAAA,EAAA,CAAA;EAAA,gBAAA,kBAAA;;GAE3C;GACN,CAAC;EAAC,gBAAA,SAAA,EAAA,CAAA;EAAA,gBAAA,MAAA;GACD,IAAG,OAAK;AACN,WAAM,QAAA,MAAA,SAAA;;GAER,IAAI,WAAW;AACb,WAAI;KAAA,WAAiB,IAAG;wEACQ,SAAA,IAAA,gBAAA,MAAA,QAAA,MAAA,OAAA,MAAA,GAAA,IAAA;KAAA,gBAAA,OAAA,EAAA,CAAA;KAAA,gBAAA,oBAAA,EAC9B,IAAI,UAAS;AACX,aAAO,QAAQ;QAElB,CAAC;KAAE,gBAAkB,SAAS,EAAC,CAAA;KAAA;;;;GAGlC,IAAI,OAAE;AACJ,WAAM,OAAI,KAAM,QAAW,SAAG,CAAA,SAAA;;GAEhC,IAAI,WAAW;AACb,WAAO;KAAC,WAAa,IAAG;yEAClB,SAAA,IAAA,gBAAA,MAAA,QAAA,MAAA,OAAA,MAAA,GAAA,IAAA;KAAA,gBAAA,OAAA,EAAA,CAAA;KAAA,gBAAA,qBAAA,EACJ,IAAI,WAAA;;QAGL,CAAC;KAAE,gBAAiB,SAAA,EAAA,CAAA;KAAA;;GAExB,CAAC;EAAE,gBAAW,MAAA;GACb,IAAI,OAAK;AACP,WAAM,YAAa,QAAG,UAAA;;GAExB,IAAI,WAAU;AACZ,WAAO;KAAC,WAAQ,IAAO;oIACA,QAAA,UAAA,KAAA,SAAA,IAAA,gBAAA,MAAA,QAAA,MAAA,OAAA,MAAA,GAAA,IAAA;KAAA,gBAAA,OAAA,EAAA,CAAA;KAAA,gBAAA,SAAA,EAAA,CAAA;KAAA;;GAE1B,CAAC;EAAC;;;;;AAyBL,SAAgB,0BAAE,OAAA;CAChB,MAAM,EACJ,SACA,UACA,aACE;CACJ,MAAK,UAAW,eAAA;AAChB,QAAI;EAAA,gBAAA,OAAA,EAAA,CAAA;EAAA,IAAA;EAAA,gBAAA,OAAA,EAAA,CAAA;EAAA,gBAAA,oBAAA,EACH,SACH,CAAA;EAAA,IAAA;EAAA,gBAAA,SAAA,EAAA,CAAA;EAAA,gBAAA,MAAA;;AAEM,WAAC,OAAU,KAAA,SAAA,CAAA,SAAyB;;GAEtC,IAAG,WAAW;AACd,WAAA;KAAA,WAAA,IAAA,0FAAA,YAAA,SAAA,KAAA,CAAA;yBACqB;KAAE,gBAAY,SAAA,EAAA,CAAA;KAAA,gBAAA,KAAA;MACvC,IAAA,OAAA;;;MAGK,gBAAe;MAClB,QAAA,IAAA;MACK,OAAQ,IAAC;MACR,WAAU,UAAK;OAAK,WAAA,IAAA;;;mEAGvB,kBAAA,MAAA,YAAA,CAAA,QAAA,QAAA,GAAA,CAAA,MAAA,CAAA;;kBAEO;OAAA,gBAAA,OAAA,EAAA,CAAA;OAAA,gBAAA,iBAAA;QACF,SAAO;QACR,QAAO;QACN,qBAAqB;QACtB,CAAC;OAAE,gBAAM,OAAA,EAAA,CAAA;OAAA;MACX,CAAC;KAAE,WAAa,IAAA,8DAAiE,UAAA,QAAA,GAAsB,YAAA,SAAA,SAAA,IAAA,IAAA,SAAA,KAAA,IAAA,KAAA,GAAA;wBAC5F;KAAA;;GAEf,CAAC;EAAC;;;;;AAYL,SAAgB,mBAAkB,OAAG;CACnC,MAAE,EACF;CAEA,MAAE,UAAA,eAAA;AACF,QAAG;EAAA,IAAQ;EAAoB,gBAAkB,SAAK,EAAA,CAAO;EAAA,gBAAA,iBAAA;GAC5D;GACC,qBAAE;GACH,CAAC;EAAC,IAAK;EAAa,gBAAwB,SAAQ,EAAA,CAAA;EAAM,gBAAiB,MAAO;GAClF,IAAA,OAAA;AACG,WAAA,OAAa,KAAA,QAAA,SAAA,CAAA,SAAA;;GAEjB,IAAA,WAAA;;;;KAEE,gBAAA,SAAA,EAAA,CAAA;KAAA,gBAAA,KAAA;MACI,IAAC,OAAQ;AACd,cAAA,OAAA,OAAA,QAAA,SAAA;;MAEE,gBAAc;MAChB,QAAA,IAAA;MACG,OAAA,IAAa;MACf,WAAA,UAAA;OAAA,WAAA,IAAA;wDACa,MAAA,OAAA,2BAAA,MAAA,KAAA,gBAAA,GAAA,GAAA,MAAA,MAAA,GAAA,MAAA,YAAA,KAAA,UAAA;;;;kBAIF;OAAK,gBAAe,OAAM,EAAA,CAAA;OAAS,gBAAkB,iBAAO;QACzE,SAAA;QACK,QAAS;QACN,qBAAqB;;;;MAExB,CAAC;KAAA,WAAQ,IAAU,8DAAA,UAAA,QAAA,CAAA,GAAA,QAAA,SAAA,KAAA,IAAA,CAAA;wBACR;KAAA;;GAEhB,CAAA;EAAA"}
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperties(exports, { __esModule: { value: true }, [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.39/node_modules/@stryke/type-checks/dist/is-set-string.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');
4
4
  const require_components_help_builtin = require('./components/help-builtin.cjs');
5
5
  const require_components_help_command = require('./components/help-command.cjs');
6
6
  require('./components/index.cjs');
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { isSetString } from "./node_modules/.pnpm/@stryke_type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-set-string.mjs";
1
+ import { isSetString } from "./node_modules/.pnpm/@stryke_type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set-string.mjs";
2
2
  import { HelpBuiltin } from "./components/help-builtin.mjs";
3
3
  import { HelpCommand } from "./components/help-command.mjs";
4
4
  import "./components/index.mjs";
@@ -1,5 +1,5 @@
1
1
 
2
- //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/constant-case.mjs
2
+ //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/constant-case.mjs
3
3
  /**
4
4
  * Check if the input string is in constant case.
5
5
  *
@@ -1,4 +1,4 @@
1
- //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/constant-case.mjs
1
+ //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/constant-case.mjs
2
2
  /**
3
3
  * Check if the input string is in constant case.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"constant-case.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/constant-case.mjs"],"sourcesContent":["import { getWords } from \"./get-words.mjs\";\nimport { isSnakeCase } from \"./snake-case.mjs\";\n\n//#region src/constant-case.ts\n/**\n* Check if the input string is in constant case.\n*\n* @remarks\n* Constant case is defined as all uppercase letters with underscores separating words - \"THIS_IS_AN_EXAMPLE\".\n*\n* @param input - The input string to check.\n* @returns True if the input is in constant case, false otherwise.\n*/\nfunction isConstantCase(input) {\n\treturn input ? /^[A-Z0-9_]+$/.test(input) : false;\n}\n/**\n* Convert the input string to constant case.\n*\n* @remarks\n* Constant case is defined as all uppercase letters with underscores separating words - \"THIS_IS_AN_EXAMPLE\".\n*\n* @param input - The input string.\n* @returns The constant-cased string.\n*/\nfunction constantCase(input) {\n\treturn isConstantCase(input) || input === void 0 ? input : isSnakeCase(input) ? input.toUpperCase() : getWords(input).join(\"_\").toUpperCase();\n}\n\n//#endregion\nexport { constantCase, isConstantCase };\n//# sourceMappingURL=constant-case.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;AAaA,SAAS,eAAe,OAAO;AAC9B,QAAO,QAAQ,eAAe,KAAK,MAAM,GAAG"}
1
+ {"version":3,"file":"constant-case.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/constant-case.mjs"],"sourcesContent":["import { getWords } from \"./get-words.mjs\";\nimport { isSnakeCase } from \"./snake-case.mjs\";\n\n//#region src/constant-case.ts\n/**\n* Check if the input string is in constant case.\n*\n* @remarks\n* Constant case is defined as all uppercase letters with underscores separating words - \"THIS_IS_AN_EXAMPLE\".\n*\n* @param input - The input string to check.\n* @returns True if the input is in constant case, false otherwise.\n*/\nfunction isConstantCase(input) {\n\treturn input ? /^[A-Z0-9_]+$/.test(input) : false;\n}\n/**\n* Convert the input string to constant case.\n*\n* @remarks\n* Constant case is defined as all uppercase letters with underscores separating words - \"THIS_IS_AN_EXAMPLE\".\n*\n* @param input - The input string.\n* @returns The constant-cased string.\n*/\nfunction constantCase(input) {\n\treturn isConstantCase(input) || input === void 0 ? input : isSnakeCase(input) ? input.toUpperCase() : getWords(input).join(\"_\").toUpperCase();\n}\n\n//#endregion\nexport { constantCase, isConstantCase };\n//# sourceMappingURL=constant-case.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;AAaA,SAAS,eAAe,OAAO;AAC9B,QAAO,QAAQ,eAAe,KAAK,MAAM,GAAG"}
@@ -1,5 +1,5 @@
1
1
 
2
- //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/get-words.mjs
2
+ //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/get-words.mjs
3
3
  /**
4
4
  * Regular expression pattern to split strings into words for various case conversions
5
5
  *
@@ -1,4 +1,4 @@
1
- //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/get-words.mjs
1
+ //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/get-words.mjs
2
2
  /**
3
3
  * Regular expression pattern to split strings into words for various case conversions
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"get-words.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/get-words.mjs"],"sourcesContent":["//#region src/get-words.ts\n/**\n* Regular expression pattern to split strings into words for various case conversions\n*\n* This pattern matches sequences of characters in a string, considering the following case:\n* - Sequences of two or more uppercase letters followed by an uppercase letter and lowercase letters or digits (for acronyms)\n* - Sequences of one uppercase letter optionally followed by lowercase letters and digits\n* - Single uppercase letters\n* - Sequences of digits\n*\n* The resulting match can be used to convert camelCase, snake_case, kebab-case, and other mixed formats into\n* a consistent format like snake case.\n*\n* @example\n* const matches = 'camelCaseHTTPRequest'.match(CASE_SPLIT_PATTERN);\n* // matches: ['camel', 'Case', 'HTTP', 'Request']\n*/\nconst CASE_SPLIT_PATTERN = /[A-Z]?[a-z]+|\\d+|[A-Z]+(?![a-z])/g;\nconst RELAXED_SPLIT_PATTERN = /[A-Z/.-]?[a-z/.-]+|\\d+|[A-Z/.-]+(?![a-z/.-])/g;\n/**\n* Splits a string into words using a regular expression pattern\n*\n* @example\n* const words = getWords('camelCaseHTTPRequest');\n* // words: ['camel', 'Case', 'HTTP', 'Request']\n*\n* @param str - The string to split into words\n* @param options - Options for splitting the string\n* @returns An array of words\n*/\nfunction getWords(str, options = {}) {\n\tif (str.length > 5e3) throw new Error(\"The regular expression parameter of `get-words` can't handle strings longer than 2000 characters\");\n\treturn [...str.match(options.split ?? (options.relaxed ? RELAXED_SPLIT_PATTERN : CASE_SPLIT_PATTERN)) ?? []];\n}\n\n//#endregion\nexport { CASE_SPLIT_PATTERN, RELAXED_SPLIT_PATTERN, getWords };\n//# sourceMappingURL=get-words.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;AAiBA,MAAM,qBAAqB;AAC3B,MAAM,wBAAwB;;;;;;;;;;;;AAY9B,SAAS,SAAS,KAAK,UAAU,EAAE,EAAE;AACpC,KAAI,IAAI,SAAS,IAAK,OAAM,IAAI,MAAM,mGAAmG;AACzI,QAAO,CAAC,GAAG,IAAI,MAAM,QAAQ,UAAU,QAAQ,UAAU,wBAAwB,oBAAoB,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"get-words.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/get-words.mjs"],"sourcesContent":["//#region src/get-words.ts\n/**\n* Regular expression pattern to split strings into words for various case conversions\n*\n* This pattern matches sequences of characters in a string, considering the following case:\n* - Sequences of two or more uppercase letters followed by an uppercase letter and lowercase letters or digits (for acronyms)\n* - Sequences of one uppercase letter optionally followed by lowercase letters and digits\n* - Single uppercase letters\n* - Sequences of digits\n*\n* The resulting match can be used to convert camelCase, snake_case, kebab-case, and other mixed formats into\n* a consistent format like snake case.\n*\n* @example\n* const matches = 'camelCaseHTTPRequest'.match(CASE_SPLIT_PATTERN);\n* // matches: ['camel', 'Case', 'HTTP', 'Request']\n*/\nconst CASE_SPLIT_PATTERN = /[A-Z]?[a-z]+|\\d+|[A-Z]+(?![a-z])/g;\nconst RELAXED_SPLIT_PATTERN = /[A-Z/.-]?[a-z/.-]+|\\d+|[A-Z/.-]+(?![a-z/.-])/g;\n/**\n* Splits a string into words using a regular expression pattern\n*\n* @example\n* const words = getWords('camelCaseHTTPRequest');\n* // words: ['camel', 'Case', 'HTTP', 'Request']\n*\n* @param str - The string to split into words\n* @param options - Options for splitting the string\n* @returns An array of words\n*/\nfunction getWords(str, options = {}) {\n\tif (str.length > 5e3) throw new Error(\"The regular expression parameter of `get-words` can't handle strings longer than 2000 characters\");\n\treturn [...str.match(options.split ?? (options.relaxed ? RELAXED_SPLIT_PATTERN : CASE_SPLIT_PATTERN)) ?? []];\n}\n\n//#endregion\nexport { CASE_SPLIT_PATTERN, RELAXED_SPLIT_PATTERN, getWords };\n//# sourceMappingURL=get-words.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;AAiBA,MAAM,qBAAqB;AAC3B,MAAM,wBAAwB;;;;;;;;;;;;AAY9B,SAAS,SAAS,KAAK,UAAU,EAAE,EAAE;AACpC,KAAI,IAAI,SAAS,IAAK,OAAM,IAAI,MAAM,mGAAmG;AACzI,QAAO,CAAC,GAAG,IAAI,MAAM,QAAQ,UAAU,QAAQ,UAAU,wBAAwB,oBAAoB,IAAI,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  const require_get_words = require('./get-words.cjs');
2
2
 
3
- //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/kebab-case.mjs
3
+ //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/kebab-case.mjs
4
4
  /**
5
5
  * Check if the input string is in kebab case.
6
6
  *
@@ -1,6 +1,6 @@
1
1
  import { getWords } from "./get-words.mjs";
2
2
 
3
- //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/kebab-case.mjs
3
+ //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/kebab-case.mjs
4
4
  /**
5
5
  * Check if the input string is in kebab case.
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"kebab-case.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/kebab-case.mjs"],"sourcesContent":["import { getWords } from \"./get-words.mjs\";\n\n//#region src/kebab-case.ts\n/**\n* Check if the input string is in kebab case.\n*\n* @remarks\n* Kebab case is defined as all lowercase letters with hyphens separating words - \"this-is-an-example\".\n*\n* @param input - The input string to check.\n* @returns True if the input is in kebab case, false otherwise.\n*/\nfunction isKebabCase(input) {\n\treturn input ? /^[a-z]+(?:-[a-z0-9]+)*$/.test(input) : false;\n}\n/**\n* Convert the input string to kebab case.\n*\n* @remarks\n* Kebab case is defined as all lowercase letters with hyphens separating words - \"this-is-an-example\".\n*\n* @param input - The input string.\n* @returns The kebab-cased string.\n*/\nfunction kebabCase(input) {\n\tif (isKebabCase(input) || input === void 0) return input;\n\tconst parts = input ? getWords(input) : [];\n\tif (parts.length === 0) return \"\";\n\treturn parts.join(\"-\").toLowerCase();\n}\n\n//#endregion\nexport { isKebabCase, kebabCase };\n//# sourceMappingURL=kebab-case.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;AAYA,SAAS,YAAY,OAAO;AAC3B,QAAO,QAAQ,0BAA0B,KAAK,MAAM,GAAG;;;;;;;;;;;AAWxD,SAAS,UAAU,OAAO;AACzB,KAAI,YAAY,MAAM,IAAI,UAAU,KAAK,EAAG,QAAO;CACnD,MAAM,QAAQ,QAAQ,SAAS,MAAM,GAAG,EAAE;AAC1C,KAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,QAAO,MAAM,KAAK,IAAI,CAAC,aAAa"}
1
+ {"version":3,"file":"kebab-case.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/kebab-case.mjs"],"sourcesContent":["import { getWords } from \"./get-words.mjs\";\n\n//#region src/kebab-case.ts\n/**\n* Check if the input string is in kebab case.\n*\n* @remarks\n* Kebab case is defined as all lowercase letters with hyphens separating words - \"this-is-an-example\".\n*\n* @param input - The input string to check.\n* @returns True if the input is in kebab case, false otherwise.\n*/\nfunction isKebabCase(input) {\n\treturn input ? /^[a-z]+(?:-[a-z0-9]+)*$/.test(input) : false;\n}\n/**\n* Convert the input string to kebab case.\n*\n* @remarks\n* Kebab case is defined as all lowercase letters with hyphens separating words - \"this-is-an-example\".\n*\n* @param input - The input string.\n* @returns The kebab-cased string.\n*/\nfunction kebabCase(input) {\n\tif (isKebabCase(input) || input === void 0) return input;\n\tconst parts = input ? getWords(input) : [];\n\tif (parts.length === 0) return \"\";\n\treturn parts.join(\"-\").toLowerCase();\n}\n\n//#endregion\nexport { isKebabCase, kebabCase };\n//# sourceMappingURL=kebab-case.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;AAYA,SAAS,YAAY,OAAO;AAC3B,QAAO,QAAQ,0BAA0B,KAAK,MAAM,GAAG;;;;;;;;;;;AAWxD,SAAS,UAAU,OAAO;AACzB,KAAI,YAAY,MAAM,IAAI,UAAU,KAAK,EAAG,QAAO;CACnD,MAAM,QAAQ,QAAQ,SAAS,MAAM,GAAG,EAAE;AAC1C,KAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,QAAO,MAAM,KAAK,IAAI,CAAC,aAAa"}
@@ -1,7 +1,7 @@
1
1
  const require_upper_case_first = require('./upper-case-first.cjs');
2
2
  const require_constant_case = require('./constant-case.cjs');
3
3
 
4
- //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/snake-case.mjs
4
+ //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/snake-case.mjs
5
5
  /**
6
6
  * Check if the input string is in snake case.
7
7
  *
@@ -1,7 +1,7 @@
1
1
  import { upperCaseFirst } from "./upper-case-first.mjs";
2
2
  import { isConstantCase } from "./constant-case.mjs";
3
3
 
4
- //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/snake-case.mjs
4
+ //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/snake-case.mjs
5
5
  /**
6
6
  * Check if the input string is in snake case.
7
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"snake-case.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/snake-case.mjs"],"sourcesContent":["import { EMPTY_STRING } from \"./types/src/base.mjs\";\nimport { upperCaseFirst } from \"./upper-case-first.mjs\";\nimport { isConstantCase } from \"./constant-case.mjs\";\n\n//#region src/snake-case.ts\n/**\n* Check if the input string is in snake case.\n*\n* @remarks\n* Snake case is defined as all lowercase letters with underscores separating words - \"this_is_an_example\"\n*\n* @param input - The input string to check.\n* @returns True if the input is in snake case, false otherwise.\n*/\nfunction isSnakeCase(input) {\n\treturn input ? /^[a-z]+(?:_[a-z0-9]+)*$/.test(input) : false;\n}\n/**\n* Convert the input string to snake case.\n*\n* @remarks\n* Snake case is defined as all lowercase letters with underscores separating words - \"this_is_an_example\"\n*\n* @param input - The input string.\n* @param options - Options to control the behavior of the function.\n* @returns The snake-cased string.\n*/\nfunction snakeCase(input, options) {\n\tif (isSnakeCase(input) || input === void 0) return input;\n\tif (isConstantCase(input)) return input.toLowerCase();\n\tconst parts = input?.replace(/[A-Z]+/g, (input$1) => upperCaseFirst(input$1) ?? EMPTY_STRING).split(/(?=[A-Z])|[\\s._-]/).map((x) => x.toLowerCase()) ?? [];\n\tif (parts.length === 0) return \"\";\n\tif (parts.length === 1) return parts[0];\n\tconst result = parts.reduce((ret, part) => {\n\t\treturn `${ret}_${part.toLowerCase()}`;\n\t});\n\treturn options?.splitOnNumber === false ? result : result.replace(/[A-Z]\\d/i, (val) => `${val[0]}_${val[1]}`);\n}\n\n//#endregion\nexport { isSnakeCase, snakeCase };\n//# sourceMappingURL=snake-case.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;AAcA,SAAS,YAAY,OAAO;AAC3B,QAAO,QAAQ,0BAA0B,KAAK,MAAM,GAAG;;;;;;;;;;;;AAYxD,SAAS,UAAU,OAAO,SAAS;AAClC,KAAI,YAAY,MAAM,IAAI,UAAU,KAAK,EAAG,QAAO;AACnD,KAAI,eAAe,MAAM,CAAE,QAAO,MAAM,aAAa;CACrD,MAAM,QAAQ,OAAO,QAAQ,YAAY,YAAY,eAAe,QAAQ,OAAiB,CAAC,MAAM,oBAAoB,CAAC,KAAK,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE;AAC1J,KAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,KAAI,MAAM,WAAW,EAAG,QAAO,MAAM;CACrC,MAAM,SAAS,MAAM,QAAQ,KAAK,SAAS;AAC1C,SAAO,GAAG,IAAI,GAAG,KAAK,aAAa;GAClC;AACF,QAAO,SAAS,kBAAkB,QAAQ,SAAS,OAAO,QAAQ,aAAa,QAAQ,GAAG,IAAI,GAAG,GAAG,IAAI,KAAK"}
1
+ {"version":3,"file":"snake-case.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/snake-case.mjs"],"sourcesContent":["import { EMPTY_STRING } from \"./types/src/base.mjs\";\nimport { upperCaseFirst } from \"./upper-case-first.mjs\";\nimport { isConstantCase } from \"./constant-case.mjs\";\n\n//#region src/snake-case.ts\n/**\n* Check if the input string is in snake case.\n*\n* @remarks\n* Snake case is defined as all lowercase letters with underscores separating words - \"this_is_an_example\"\n*\n* @param input - The input string to check.\n* @returns True if the input is in snake case, false otherwise.\n*/\nfunction isSnakeCase(input) {\n\treturn input ? /^[a-z]+(?:_[a-z0-9]+)*$/.test(input) : false;\n}\n/**\n* Convert the input string to snake case.\n*\n* @remarks\n* Snake case is defined as all lowercase letters with underscores separating words - \"this_is_an_example\"\n*\n* @param input - The input string.\n* @param options - Options to control the behavior of the function.\n* @returns The snake-cased string.\n*/\nfunction snakeCase(input, options) {\n\tif (isSnakeCase(input) || input === void 0) return input;\n\tif (isConstantCase(input)) return input.toLowerCase();\n\tconst parts = input?.replace(/[A-Z]+/g, (input$1) => upperCaseFirst(input$1) ?? EMPTY_STRING).split(/(?=[A-Z])|[\\s._-]/).map((x) => x.toLowerCase()) ?? [];\n\tif (parts.length === 0) return \"\";\n\tif (parts.length === 1) return parts[0];\n\tconst result = parts.reduce((ret, part) => {\n\t\treturn `${ret}_${part.toLowerCase()}`;\n\t});\n\treturn options?.splitOnNumber === false ? result : result.replace(/[A-Z]\\d/i, (val) => `${val[0]}_${val[1]}`);\n}\n\n//#endregion\nexport { isSnakeCase, snakeCase };\n//# sourceMappingURL=snake-case.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;AAcA,SAAS,YAAY,OAAO;AAC3B,QAAO,QAAQ,0BAA0B,KAAK,MAAM,GAAG;;;;;;;;;;;;AAYxD,SAAS,UAAU,OAAO,SAAS;AAClC,KAAI,YAAY,MAAM,IAAI,UAAU,KAAK,EAAG,QAAO;AACnD,KAAI,eAAe,MAAM,CAAE,QAAO,MAAM,aAAa;CACrD,MAAM,QAAQ,OAAO,QAAQ,YAAY,YAAY,eAAe,QAAQ,OAAiB,CAAC,MAAM,oBAAoB,CAAC,KAAK,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE;AAC1J,KAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,KAAI,MAAM,WAAW,EAAG,QAAO,MAAM;CACrC,MAAM,SAAS,MAAM,QAAQ,KAAK,SAAS;AAC1C,SAAO,GAAG,IAAI,GAAG,KAAK,aAAa;GAClC;AACF,QAAO,SAAS,kBAAkB,QAAQ,SAAS,OAAO,QAAQ,aAAa,QAAQ,GAAG,IAAI,GAAG,GAAG,IAAI,KAAK"}
@@ -1,5 +1,5 @@
1
1
 
2
- //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/upper-case-first.mjs
2
+ //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/upper-case-first.mjs
3
3
  /**
4
4
  * Upper case the first character of an input string.
5
5
  *
@@ -1,4 +1,4 @@
1
- //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/upper-case-first.mjs
1
+ //#region ../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/upper-case-first.mjs
2
2
  /**
3
3
  * Upper case the first character of an input string.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"upper-case-first.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+string-format@0.17.4/node_modules/@stryke/string-format/dist/upper-case-first.mjs"],"sourcesContent":["//#region src/upper-case-first.ts\n/**\n* Upper case the first character of an input string.\n*\n* @remarks\n* \"Thisisanexample\"\n*\n* @param input - The input string.\n* @returns The capitalized string.\n*/\nfunction upperCaseFirst(input) {\n\treturn input ? input.charAt(0).toUpperCase() + input.slice(1) : input;\n}\n\n//#endregion\nexport { upperCaseFirst };\n//# sourceMappingURL=upper-case-first.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;AAUA,SAAS,eAAe,OAAO;AAC9B,QAAO,QAAQ,MAAM,OAAO,EAAE,CAAC,aAAa,GAAG,MAAM,MAAM,EAAE,GAAG"}
1
+ {"version":3,"file":"upper-case-first.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+string-format@0.17.6/node_modules/@stryke/string-format/dist/upper-case-first.mjs"],"sourcesContent":["//#region src/upper-case-first.ts\n/**\n* Upper case the first character of an input string.\n*\n* @remarks\n* \"Thisisanexample\"\n*\n* @param input - The input string.\n* @returns The capitalized string.\n*/\nfunction upperCaseFirst(input) {\n\treturn input ? input.charAt(0).toUpperCase() + input.slice(1) : input;\n}\n\n//#endregion\nexport { upperCaseFirst };\n//# sourceMappingURL=upper-case-first.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;AAUA,SAAS,eAAe,OAAO;AAC9B,QAAO,QAAQ,MAAM,OAAO,EAAE,CAAC,aAAa,GAAG,MAAM,MAAM,EAAE,GAAG"}
@@ -1,7 +1,7 @@
1
1
  const require_is_null = require('./is-null.cjs');
2
2
  const require_is_undefined = require('./is-undefined.cjs');
3
3
 
4
- //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-empty.mjs
4
+ //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-empty.mjs
5
5
  /**
6
6
  * Check if the provided value's type is `null` or `undefined`
7
7
  *
@@ -1,7 +1,7 @@
1
1
  import { isNull } from "./is-null.mjs";
2
2
  import { isUndefined } from "./is-undefined.mjs";
3
3
 
4
- //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-empty.mjs
4
+ //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-empty.mjs
5
5
  /**
6
6
  * Check if the provided value's type is `null` or `undefined`
7
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"is-empty.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-empty.mjs"],"sourcesContent":["import { isDate } from \"./is-date.mjs\";\nimport { isFunction } from \"./is-function.mjs\";\nimport { isNull } from \"./is-null.mjs\";\nimport { isNumber } from \"./is-number.mjs\";\nimport { isSymbol } from \"./is-symbol.mjs\";\nimport { isUndefined } from \"./is-undefined.mjs\";\n\n//#region src/is-empty.ts\n/**\n* Check if the provided value's type is `null` or `undefined`\n*\n* @param value - The value to type check\n* @returns An indicator specifying if the value provided is of type `null` or `undefined`\n*/\nconst isEmpty = (value) => {\n\ttry {\n\t\treturn isUndefined(value) || isNull(value);\n\t} catch {\n\t\treturn false;\n\t}\n};\nconst isEmptyAnything = (value) => {\n\tif (value === true || value === false) return true;\n\tif (value === null || value === void 0) return true;\n\tif (isNumber(value)) return value === 0;\n\tif (isDate(value)) return Number.isNaN(value.getTime());\n\tif (isFunction(value)) return false;\n\tif (isSymbol(value)) return false;\n\tconst { length } = value;\n\tif (isNumber(length)) return length === 0;\n\tconst { size } = value;\n\tif (isNumber(size)) return size === 0;\n\treturn Object.keys(value).length === 0;\n};\n\n//#endregion\nexport { isEmpty, isEmptyAnything };\n//# sourceMappingURL=is-empty.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;AAcA,MAAM,WAAW,UAAU;AAC1B,KAAI;AACH,SAAO,YAAY,MAAM,IAAI,OAAO,MAAM;SACnC;AACP,SAAO"}
1
+ {"version":3,"file":"is-empty.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-empty.mjs"],"sourcesContent":["import { isDate } from \"./is-date.mjs\";\nimport { isFunction } from \"./is-function.mjs\";\nimport { isNull } from \"./is-null.mjs\";\nimport { isNumber } from \"./is-number.mjs\";\nimport { isSymbol } from \"./is-symbol.mjs\";\nimport { isUndefined } from \"./is-undefined.mjs\";\n\n//#region src/is-empty.ts\n/**\n* Check if the provided value's type is `null` or `undefined`\n*\n* @param value - The value to type check\n* @returns An indicator specifying if the value provided is of type `null` or `undefined`\n*/\nconst isEmpty = (value) => {\n\ttry {\n\t\treturn isUndefined(value) || isNull(value);\n\t} catch {\n\t\treturn false;\n\t}\n};\nconst isEmptyAnything = (value) => {\n\tif (value === true || value === false) return true;\n\tif (value === null || value === void 0) return true;\n\tif (isNumber(value)) return value === 0;\n\tif (isDate(value)) return Number.isNaN(value.getTime());\n\tif (isFunction(value)) return false;\n\tif (isSymbol(value)) return false;\n\tconst { length } = value;\n\tif (isNumber(length)) return length === 0;\n\tconst { size } = value;\n\tif (isNumber(size)) return size === 0;\n\treturn Object.keys(value).length === 0;\n};\n\n//#endregion\nexport { isEmpty, isEmptyAnything };\n//# sourceMappingURL=is-empty.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;AAcA,MAAM,WAAW,UAAU;AAC1B,KAAI;AACH,SAAO,YAAY,MAAM,IAAI,OAAO,MAAM;SACnC;AACP,SAAO"}
@@ -1,5 +1,5 @@
1
1
 
2
- //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-null.mjs
2
+ //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-null.mjs
3
3
  const isNull = (value) => {
4
4
  try {
5
5
  return value === null;
@@ -1,4 +1,4 @@
1
- //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-null.mjs
1
+ //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-null.mjs
2
2
  const isNull = (value) => {
3
3
  try {
4
4
  return value === null;
@@ -1 +1 @@
1
- {"version":3,"file":"is-null.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-null.mjs"],"sourcesContent":["//#region src/is-null.ts\nconst isNull = (value) => {\n\ttry {\n\t\treturn value === null;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\n//#endregion\nexport { isNull };\n//# sourceMappingURL=is-null.mjs.map"],"x_google_ignoreList":[0],"mappings":";AACA,MAAM,UAAU,UAAU;AACzB,KAAI;AACH,SAAO,UAAU;SACV;AACP,SAAO"}
1
+ {"version":3,"file":"is-null.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-null.mjs"],"sourcesContent":["//#region src/is-null.ts\nconst isNull = (value) => {\n\ttry {\n\t\treturn value === null;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\n//#endregion\nexport { isNull };\n//# sourceMappingURL=is-null.mjs.map"],"x_google_ignoreList":[0],"mappings":";AACA,MAAM,UAAU,UAAU;AACzB,KAAI;AACH,SAAO,UAAU;SACV;AACP,SAAO"}
@@ -1,7 +1,7 @@
1
1
  const require_is_string = require('./is-string.cjs');
2
2
  const require_is_set = require('./is-set.cjs');
3
3
 
4
- //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-set-string.mjs
4
+ //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set-string.mjs
5
5
  /**
6
6
  * Determine if the type is string and is not empty (length greater than zero)
7
7
  *
@@ -1,7 +1,7 @@
1
1
  import { isString } from "./is-string.mjs";
2
2
  import { isSet } from "./is-set.mjs";
3
3
 
4
- //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-set-string.mjs
4
+ //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set-string.mjs
5
5
  /**
6
6
  * Determine if the type is string and is not empty (length greater than zero)
7
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"is-set-string.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-set-string.mjs"],"sourcesContent":["import { isString } from \"./is-string.mjs\";\nimport { isSet } from \"./is-set.mjs\";\n\n//#region src/is-set-string.ts\n/**\n* Determine if the type is string and is not empty (length greater than zero)\n*\n* @param value - The value to type check\n* @returns An indicator specifying if the value provided is of type `string` and length greater than zero\n*/\nconst isSetString = (value) => {\n\ttry {\n\t\treturn isSet(value) && isString(value) && value.length > 0;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\n//#endregion\nexport { isSetString };\n//# sourceMappingURL=is-set-string.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;AAUA,MAAM,eAAe,UAAU;AAC9B,KAAI;AACH,SAAO,MAAM,MAAM,IAAI,SAAS,MAAM,IAAI,MAAM,SAAS;SAClD;AACP,SAAO"}
1
+ {"version":3,"file":"is-set-string.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set-string.mjs"],"sourcesContent":["import { isString } from \"./is-string.mjs\";\nimport { isSet } from \"./is-set.mjs\";\n\n//#region src/is-set-string.ts\n/**\n* Determine if the type is string and is not empty (length greater than zero)\n*\n* @param value - The value to type check\n* @returns An indicator specifying if the value provided is of type `string` and length greater than zero\n*/\nconst isSetString = (value) => {\n\ttry {\n\t\treturn isSet(value) && isString(value) && value.length > 0;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\n//#endregion\nexport { isSetString };\n//# sourceMappingURL=is-set-string.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;AAUA,MAAM,eAAe,UAAU;AAC9B,KAAI;AACH,SAAO,MAAM,MAAM,IAAI,SAAS,MAAM,IAAI,MAAM,SAAS;SAClD;AACP,SAAO"}
@@ -1,6 +1,6 @@
1
1
  const require_is_empty = require('./is-empty.cjs');
2
2
 
3
- //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-set.mjs
3
+ //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set.mjs
4
4
  /**
5
5
  * The inverse of the `isEmpty` function
6
6
  *
@@ -1,6 +1,6 @@
1
1
  import { isEmpty } from "./is-empty.mjs";
2
2
 
3
- //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-set.mjs
3
+ //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set.mjs
4
4
  /**
5
5
  * The inverse of the `isEmpty` function
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"is-set.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-set.mjs"],"sourcesContent":["import { isEmpty } from \"./is-empty.mjs\";\n\n//#region src/is-set.ts\n/**\n* The inverse of the `isEmpty` function\n*\n* @param value - The value to type check\n* @returns An indicator specifying if the value provided is **NOT** of type `null` or `undefined`\n*/\nconst isSet = (value) => {\n\ttry {\n\t\treturn !isEmpty(value);\n\t} catch {\n\t\treturn false;\n\t}\n};\n\n//#endregion\nexport { isSet };\n//# sourceMappingURL=is-set.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;AASA,MAAM,SAAS,UAAU;AACxB,KAAI;AACH,SAAO,CAAC,QAAQ,MAAM;SACf;AACP,SAAO"}
1
+ {"version":3,"file":"is-set.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-set.mjs"],"sourcesContent":["import { isEmpty } from \"./is-empty.mjs\";\n\n//#region src/is-set.ts\n/**\n* The inverse of the `isEmpty` function\n*\n* @param value - The value to type check\n* @returns An indicator specifying if the value provided is **NOT** of type `null` or `undefined`\n*/\nconst isSet = (value) => {\n\ttry {\n\t\treturn !isEmpty(value);\n\t} catch {\n\t\treturn false;\n\t}\n};\n\n//#endregion\nexport { isSet };\n//# sourceMappingURL=is-set.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;AASA,MAAM,SAAS,UAAU;AACxB,KAAI;AACH,SAAO,CAAC,QAAQ,MAAM;SACf;AACP,SAAO"}
@@ -1,5 +1,5 @@
1
1
 
2
- //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-string.mjs
2
+ //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-string.mjs
3
3
  const isString = (value) => {
4
4
  try {
5
5
  return typeof value === "string";
@@ -1,4 +1,4 @@
1
- //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-string.mjs
1
+ //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-string.mjs
2
2
  const isString = (value) => {
3
3
  try {
4
4
  return typeof value === "string";
@@ -1 +1 @@
1
- {"version":3,"file":"is-string.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-string.mjs"],"sourcesContent":["//#region src/is-string.ts\nconst isString = (value) => {\n\ttry {\n\t\treturn typeof value === \"string\";\n\t} catch {\n\t\treturn false;\n\t}\n};\n\n//#endregion\nexport { isString };\n//# sourceMappingURL=is-string.mjs.map"],"x_google_ignoreList":[0],"mappings":";AACA,MAAM,YAAY,UAAU;AAC3B,KAAI;AACH,SAAO,OAAO,UAAU;SACjB;AACP,SAAO"}
1
+ {"version":3,"file":"is-string.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-string.mjs"],"sourcesContent":["//#region src/is-string.ts\nconst isString = (value) => {\n\ttry {\n\t\treturn typeof value === \"string\";\n\t} catch {\n\t\treturn false;\n\t}\n};\n\n//#endregion\nexport { isString };\n//# sourceMappingURL=is-string.mjs.map"],"x_google_ignoreList":[0],"mappings":";AACA,MAAM,YAAY,UAAU;AAC3B,KAAI;AACH,SAAO,OAAO,UAAU;SACjB;AACP,SAAO"}
@@ -1,5 +1,5 @@
1
1
 
2
- //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-undefined.mjs
2
+ //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-undefined.mjs
3
3
  const isUndefined = (value) => {
4
4
  return value === void 0;
5
5
  };
@@ -1,4 +1,4 @@
1
- //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-undefined.mjs
1
+ //#region ../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-undefined.mjs
2
2
  const isUndefined = (value) => {
3
3
  return value === void 0;
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"is-undefined.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+type-checks@0.5.39/node_modules/@stryke/type-checks/dist/is-undefined.mjs"],"sourcesContent":["//#region src/is-undefined.ts\nconst isUndefined = (value) => {\n\treturn value === void 0;\n};\n\n//#endregion\nexport { isUndefined };\n//# sourceMappingURL=is-undefined.mjs.map"],"x_google_ignoreList":[0],"mappings":";AACA,MAAM,eAAe,UAAU;AAC9B,QAAO,UAAU,KAAK"}
1
+ {"version":3,"file":"is-undefined.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@stryke+type-checks@0.5.41/node_modules/@stryke/type-checks/dist/is-undefined.mjs"],"sourcesContent":["//#region src/is-undefined.ts\nconst isUndefined = (value) => {\n\treturn value === void 0;\n};\n\n//#endregion\nexport { isUndefined };\n//# sourceMappingURL=is-undefined.mjs.map"],"x_google_ignoreList":[0],"mappings":";AACA,MAAM,eAAe,UAAU;AAC9B,QAAO,UAAU,KAAK"}
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "@shell-shock/plugin-help",
3
- "version": "0.1.2",
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.0",
60
- "@shell-shock/plugin-theme": "^0.3.15",
61
- "@shell-shock/plugin-console": "^0.1.11",
62
- "@stryke/path": "^0.27.0",
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",
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" },
@@ -170,8 +169,8 @@
170
169
  }
171
170
  },
172
171
  "inlinedDependencies": {
173
- "@stryke/string-format": "0.17.4",
174
- "@stryke/type-checks": "0.5.39"
172
+ "@stryke/string-format": "0.17.6",
173
+ "@stryke/type-checks": "0.5.41"
175
174
  },
176
- "gitHead": "d9365dd86c8fd0958486dfb1cef4822da5798464"
175
+ "gitHead": "64e1ac187a12cd18acfd8134768bb793bbda3947"
177
176
  }