@optique/core 1.3.0-dev.2530 → 1.3.0-dev.2532

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.
@@ -8,6 +8,15 @@ function terminalText(text) {
8
8
  text
9
9
  };
10
10
  }
11
+ function valuesFormatter(theme) {
12
+ if (theme.values != null && theme.values !== require_terminal.defaultTerminalTheme.values) return theme.values;
13
+ if (theme.value != null && theme.value !== require_terminal.defaultTerminalTheme.value) return require_terminal.defaultTerminalTheme.values;
14
+ return (term, context) => ({
15
+ type: "style",
16
+ style: { foreground: "green" },
17
+ children: [require_terminal.defaultTerminalTheme.values(term, context)]
18
+ });
19
+ }
11
20
  function formatTerminalTerm(term, theme = {}, quotes = false, usage) {
12
21
  const quote = (s) => quotes ? `\`${s}\`` : s;
13
22
  let text;
@@ -61,7 +70,7 @@ function formatTerminalTerm(term, theme = {}, quotes = false, usage) {
61
70
  case "optionNames": return (theme.optionNames ?? require_terminal.defaultTerminalTheme.optionNames)(term, ctx);
62
71
  case "metavar": return (theme.metavar ?? require_terminal.defaultTerminalTheme.metavar)(term, ctx);
63
72
  case "value": return (theme.value ?? require_terminal.defaultTerminalTheme.value)(term, ctx);
64
- case "values": return (theme.values ?? require_terminal.defaultTerminalTheme.values)(term, ctx);
73
+ case "values": return valuesFormatter(theme)(term, ctx);
65
74
  case "envVar": return (theme.envVar ?? require_terminal.defaultTerminalTheme.envVar)(term, ctx);
66
75
  case "commandLine": return (theme.commandLine ?? require_terminal.defaultTerminalTheme.commandLine)(term, ctx);
67
76
  case "url": return (theme.url ?? require_terminal.defaultTerminalTheme.url)(term, ctx);
@@ -234,7 +243,7 @@ function cacheTerminalTheme(theme = {}) {
234
243
  optionNames: cache(theme.optionNames ?? require_terminal.defaultTerminalTheme.optionNames),
235
244
  metavar: cache(theme.metavar ?? require_terminal.defaultTerminalTheme.metavar),
236
245
  value: cache(theme.value ?? require_terminal.defaultTerminalTheme.value),
237
- values: cache(theme.values ?? require_terminal.defaultTerminalTheme.values),
246
+ values: cache(valuesFormatter(theme)),
238
247
  envVar: cache(theme.envVar ?? require_terminal.defaultTerminalTheme.envVar),
239
248
  commandLine: cache(theme.commandLine ?? require_terminal.defaultTerminalTheme.commandLine),
240
249
  url: cache(theme.url ?? require_terminal.defaultTerminalTheme.url),
@@ -8,6 +8,15 @@ function terminalText(text) {
8
8
  text
9
9
  };
10
10
  }
11
+ function valuesFormatter(theme) {
12
+ if (theme.values != null && theme.values !== defaultTerminalTheme.values) return theme.values;
13
+ if (theme.value != null && theme.value !== defaultTerminalTheme.value) return defaultTerminalTheme.values;
14
+ return (term, context) => ({
15
+ type: "style",
16
+ style: { foreground: "green" },
17
+ children: [defaultTerminalTheme.values(term, context)]
18
+ });
19
+ }
11
20
  function formatTerminalTerm(term, theme = {}, quotes = false, usage) {
12
21
  const quote = (s) => quotes ? `\`${s}\`` : s;
13
22
  let text;
@@ -61,7 +70,7 @@ function formatTerminalTerm(term, theme = {}, quotes = false, usage) {
61
70
  case "optionNames": return (theme.optionNames ?? defaultTerminalTheme.optionNames)(term, ctx);
62
71
  case "metavar": return (theme.metavar ?? defaultTerminalTheme.metavar)(term, ctx);
63
72
  case "value": return (theme.value ?? defaultTerminalTheme.value)(term, ctx);
64
- case "values": return (theme.values ?? defaultTerminalTheme.values)(term, ctx);
73
+ case "values": return valuesFormatter(theme)(term, ctx);
65
74
  case "envVar": return (theme.envVar ?? defaultTerminalTheme.envVar)(term, ctx);
66
75
  case "commandLine": return (theme.commandLine ?? defaultTerminalTheme.commandLine)(term, ctx);
67
76
  case "url": return (theme.url ?? defaultTerminalTheme.url)(term, ctx);
@@ -234,7 +243,7 @@ function cacheTerminalTheme(theme = {}) {
234
243
  optionNames: cache(theme.optionNames ?? defaultTerminalTheme.optionNames),
235
244
  metavar: cache(theme.metavar ?? defaultTerminalTheme.metavar),
236
245
  value: cache(theme.value ?? defaultTerminalTheme.value),
237
- values: cache(theme.values ?? defaultTerminalTheme.values),
246
+ values: cache(valuesFormatter(theme)),
238
247
  envVar: cache(theme.envVar ?? defaultTerminalTheme.envVar),
239
248
  commandLine: cache(theme.commandLine ?? defaultTerminalTheme.commandLine),
240
249
  url: cache(theme.url ?? defaultTerminalTheme.url),
package/dist/terminal.cjs CHANGED
@@ -33,8 +33,7 @@ const defaultTerminalTheme = {
33
33
  } : styled(ctx.text, ctx.usage === "argument" ? { underline: true } : { bold: true }),
34
34
  value: (_term, ctx) => ctx.usage === "literal" ? plain(ctx.text) : styled(ctx.text, { foreground: "green" }),
35
35
  values: (term, ctx) => ({
36
- type: "style",
37
- style: { foreground: "green" },
36
+ type: "concat",
38
37
  children: term.values.flatMap((value, i) => [...i === 0 ? [] : [plain(" ")], ctx.format({
39
38
  type: "value",
40
39
  value
package/dist/terminal.js CHANGED
@@ -32,8 +32,7 @@ const defaultTerminalTheme = {
32
32
  } : styled(ctx.text, ctx.usage === "argument" ? { underline: true } : { bold: true }),
33
33
  value: (_term, ctx) => ctx.usage === "literal" ? plain(ctx.text) : styled(ctx.text, { foreground: "green" }),
34
34
  values: (term, ctx) => ({
35
- type: "style",
36
- style: { foreground: "green" },
35
+ type: "concat",
37
36
  children: term.values.flatMap((value, i) => [...i === 0 ? [] : [plain(" ")], ctx.format({
38
37
  type: "value",
39
38
  value
package/dist/usage.cjs CHANGED
@@ -468,6 +468,8 @@ function* formatUsageTerms(terms, options) {
468
468
  * @param options Optional formatting options to customize the output.
469
469
  * See {@link UsageTermFormatOptions} for available options.
470
470
  * @returns A formatted string representation of the usage term.
471
+ * @throws {RangeError} If a theme supplies an invalid RGB channel or palette
472
+ * index, even when colors are disabled.
471
473
  */
472
474
  function formatUsageTerm(term, options = {}) {
473
475
  options = {
package/dist/usage.d.cts CHANGED
@@ -483,6 +483,8 @@ interface UsageTermFormatOptions extends UsageFormatOptions {
483
483
  * @param options Optional formatting options to customize the output.
484
484
  * See {@link UsageTermFormatOptions} for available options.
485
485
  * @returns A formatted string representation of the usage term.
486
+ * @throws {RangeError} If a theme supplies an invalid RGB channel or palette
487
+ * index, even when colors are disabled.
486
488
  */
487
489
  declare function formatUsageTerm(term: UsageTerm, options?: UsageTermFormatOptions): string;
488
490
  //#endregion
package/dist/usage.d.ts CHANGED
@@ -483,6 +483,8 @@ interface UsageTermFormatOptions extends UsageFormatOptions {
483
483
  * @param options Optional formatting options to customize the output.
484
484
  * See {@link UsageTermFormatOptions} for available options.
485
485
  * @returns A formatted string representation of the usage term.
486
+ * @throws {RangeError} If a theme supplies an invalid RGB channel or palette
487
+ * index, even when colors are disabled.
486
488
  */
487
489
  declare function formatUsageTerm(term: UsageTerm, options?: UsageTermFormatOptions): string;
488
490
  //#endregion
package/dist/usage.js CHANGED
@@ -468,6 +468,8 @@ function* formatUsageTerms(terms, options) {
468
468
  * @param options Optional formatting options to customize the output.
469
469
  * See {@link UsageTermFormatOptions} for available options.
470
470
  * @returns A formatted string representation of the usage term.
471
+ * @throws {RangeError} If a theme supplies an invalid RGB channel or palette
472
+ * index, even when colors are disabled.
471
473
  */
472
474
  function formatUsageTerm(term, options = {}) {
473
475
  options = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optique/core",
3
- "version": "1.3.0-dev.2530",
3
+ "version": "1.3.0-dev.2532",
4
4
  "description": "Type-safe combinatorial command-line interface parser",
5
5
  "keywords": [
6
6
  "CLI",
@@ -237,7 +237,7 @@
237
237
  },
238
238
  "sideEffects": false,
239
239
  "devDependencies": {
240
- "@optique/env": "1.3.0-dev.2530+970f0e16",
240
+ "@optique/env": "1.3.0-dev.2532+2ec45dbf",
241
241
  "@types/node": "^24.0.0",
242
242
  "fast-check": "^4.7.0",
243
243
  "tsdown": "^0.13.0",