convoker 0.4.0 → 0.5.0

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 (40) hide show
  1. package/.turbo/turbo-prepare.log +20 -0
  2. package/dist/index.cjs +60 -0
  3. package/dist/index.d.cts +5 -0
  4. package/dist/index.d.mts +5 -37
  5. package/dist/index.mjs +5 -90
  6. package/package.json +18 -53
  7. package/src/index.ts +4 -0
  8. package/tsconfig.json +6 -0
  9. package/tsdown.config.ts +10 -0
  10. package/README.md +0 -34
  11. package/dist/chunk-z5eko27R.mjs +0 -13
  12. package/dist/color/index.d.mts +0 -2
  13. package/dist/color/index.mjs +0 -3
  14. package/dist/color-DiZvJ0Fc.mjs +0 -201
  15. package/dist/color-DiZvJ0Fc.mjs.map +0 -1
  16. package/dist/command/index.d.mts +0 -5
  17. package/dist/command/index.mjs +0 -8
  18. package/dist/command-8P8qXJ2o.mjs +0 -486
  19. package/dist/command-8P8qXJ2o.mjs.map +0 -1
  20. package/dist/index-BYLskLxk.d.mts +0 -200
  21. package/dist/index-BtbthYjp.d.mts +0 -168
  22. package/dist/index-ClhbwSD8.d.mts +0 -202
  23. package/dist/index-Cnx4H4D-.d.mts +0 -316
  24. package/dist/index.mjs.map +0 -1
  25. package/dist/input/index.d.mts +0 -3
  26. package/dist/input/index.mjs +0 -4
  27. package/dist/input-XUsy1LCQ.mjs +0 -176
  28. package/dist/input-XUsy1LCQ.mjs.map +0 -1
  29. package/dist/prompt/index.d.mts +0 -5
  30. package/dist/prompt/index.mjs +0 -6
  31. package/dist/prompt/raw.d.mts +0 -2
  32. package/dist/prompt/raw.mjs +0 -3
  33. package/dist/prompt-a5Ix_Hyc.mjs +0 -220
  34. package/dist/prompt-a5Ix_Hyc.mjs.map +0 -1
  35. package/dist/raw-DEtZFeMv.mjs +0 -88
  36. package/dist/raw-DEtZFeMv.mjs.map +0 -1
  37. package/dist/raw-cqTp2vds.d.mts +0 -38
  38. package/dist/standard-schema-DTuaYJjO.mjs +0 -32
  39. package/dist/standard-schema-DTuaYJjO.mjs.map +0 -1
  40. package/dist/standard-schema-DXS-QnwX.d.mts +0 -59
@@ -0,0 +1,20 @@
1
+
2
+
3
+ > convoker@0.5.0 prepare /code/sprucepad/convoker/js/packages/convoker
4
+ > tsdown
5
+
6
+ ℹ tsdown v0.20.3 powered by rolldown v1.0.0-rc.3
7
+ ℹ config file: /code/sprucepad/convoker/js/packages/convoker/tsdown.config.ts (unrun)
8
+ ℹ entry: src/index.ts
9
+ ℹ tsconfig: tsconfig.json
10
+ ℹ Build start
11
+ ℹ Cleaning 4 files
12
+ ℹ [CJS] dist/index.cjs 2.01 kB │ gzip: 0.75 kB
13
+ ℹ [CJS] 1 files, total: 2.01 kB
14
+ ℹ [CJS] dist/index.d.cts 0.19 kB │ gzip: 0.11 kB
15
+ ℹ [CJS] 1 files, total: 0.19 kB
16
+ ℹ [ESM] dist/index.mjs 0.19 kB │ gzip: 0.11 kB
17
+ ℹ [ESM] dist/index.d.mts 0.19 kB │ gzip: 0.11 kB
18
+ ℹ [ESM] 2 files, total: 0.37 kB
19
+ ✔ Build complete in 1088ms
20
+ ✔ Build complete in 1089ms
package/dist/index.cjs ADDED
@@ -0,0 +1,60 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ //#region \0rolldown/runtime.js
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
12
+ key = keys[i];
13
+ if (!__hasOwnProp.call(to, key) && key !== except) {
14
+ __defProp(to, key, {
15
+ get: ((k) => from[k]).bind(null, key),
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ }
19
+ }
20
+ }
21
+ return to;
22
+ };
23
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
24
+ value: mod,
25
+ enumerable: true
26
+ }) : target, mod));
27
+
28
+ //#endregion
29
+ let _convoker_theme = require("@convoker/theme");
30
+ _convoker_theme = __toESM(_convoker_theme);
31
+ let _convoker_log = require("@convoker/log");
32
+ _convoker_log = __toESM(_convoker_log);
33
+ let _convoker_prompt = require("@convoker/prompt");
34
+ _convoker_prompt = __toESM(_convoker_prompt);
35
+
36
+ Object.defineProperty(exports, 'log', {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _convoker_log;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, 'prompt', {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _convoker_prompt;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, 'theme', {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _convoker_theme;
52
+ }
53
+ });
54
+ var _convoker_core = require("@convoker/core");
55
+ Object.keys(_convoker_core).forEach(function (k) {
56
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
57
+ enumerable: true,
58
+ get: function () { return _convoker_core[k]; }
59
+ });
60
+ });
@@ -0,0 +1,5 @@
1
+ import * as theme from "@convoker/theme";
2
+ import * as log from "@convoker/log";
3
+ import * as prompt from "@convoker/prompt";
4
+ export * from "@convoker/core";
5
+ export { log, prompt, theme };
package/dist/index.d.mts CHANGED
@@ -1,37 +1,5 @@
1
- import { J as DeepPartial, M as index_d_exports, n as Theme } from "./index-BtbthYjp.mjs";
2
- import "./standard-schema-DXS-QnwX.mjs";
3
- import { d as index_d_exports$1 } from "./index-ClhbwSD8.mjs";
4
- import { a as ErrorFn, c as ConvokerError, d as MissingRequiredOptionError, f as TooManyArgumentsError, i as CommandAlias, l as HelpAskedError, n as Builder, o as MiddlewareFn, p as UnknownOptionError, r as Command, s as ParseResult, t as ActionFn, u as MissingRequiredArgumentError } from "./index-Cnx4H4D-.mjs";
5
- import "./raw-cqTp2vds.mjs";
6
- import { d as index_d_exports$3 } from "./index-BYLskLxk.mjs";
7
- import Stream from "node:stream";
8
-
9
- //#region src/log/error.d.ts
10
- declare class WriteError extends Error {
11
- constructor(streamName: string);
12
- }
13
- declare namespace index_d_exports$2 {
14
- export { Config, DEFAULT_CONFIG, WriteError, error, fatal, info, setConfig, setTheme, trace, warn };
15
- }
16
- declare function setTheme(theme: Theme): void;
17
- interface Config {
18
- format: "text" | "json";
19
- stdout: Stream.Writable;
20
- stderr: Stream.Writable;
21
- jsonSpace: number;
22
- }
23
- declare const DEFAULT_CONFIG: Config;
24
- declare function setConfig({
25
- theme,
26
- ...cfg
27
- }: DeepPartial<Config> & {
28
- theme?: Theme;
29
- }): void;
30
- declare function trace(...msgs: any[]): void;
31
- declare function info(...msgs: any[]): void;
32
- declare function warn(...msgs: any[]): void;
33
- declare function error(...msgs: any[]): void;
34
- declare function fatal(...msgs: any[]): void;
35
- //#endregion
36
- export { ActionFn, Builder, Command, CommandAlias, ConvokerError, ErrorFn, HelpAskedError, MiddlewareFn, MissingRequiredArgumentError, MissingRequiredOptionError, ParseResult, TooManyArgumentsError, UnknownOptionError, index_d_exports as color, index_d_exports$1 as i, index_d_exports$2 as log, index_d_exports$3 as prompt };
37
- //# sourceMappingURL=index.d.mts.map
1
+ import * as theme from "@convoker/theme";
2
+ import * as log from "@convoker/log";
3
+ import * as prompt from "@convoker/prompt";
4
+ export * from "@convoker/core";
5
+ export { log, prompt, theme };
package/dist/index.mjs CHANGED
@@ -1,92 +1,7 @@
1
- import { t as __export } from "./chunk-z5eko27R.mjs";
2
- import { S as color_exports, q as merge, t as DEFAULT_THEME } from "./color-DiZvJ0Fc.mjs";
3
- import "./standard-schema-DTuaYJjO.mjs";
4
- import "./raw-DEtZFeMv.mjs";
5
- import { a as prompt_exports } from "./prompt-a5Ix_Hyc.mjs";
6
- import { a as MissingRequiredOptionError, i as MissingRequiredArgumentError, n as ConvokerError, o as TooManyArgumentsError, r as HelpAskedError, s as UnknownOptionError, t as Command } from "./command-8P8qXJ2o.mjs";
7
- import { a as input_exports } from "./input-XUsy1LCQ.mjs";
8
- import process from "node:process";
1
+ import * as theme from "@convoker/theme";
2
+ import * as log from "@convoker/log";
3
+ import * as prompt from "@convoker/prompt";
9
4
 
10
- //#region src/log/error.ts
11
- var WriteError = class extends Error {
12
- constructor(streamName) {
13
- super(`Could not write to \`${streamName}\`.`);
14
- }
15
- };
5
+ export * from "@convoker/core"
16
6
 
17
- //#endregion
18
- //#region src/log/index.ts
19
- var log_exports = /* @__PURE__ */ __export({
20
- DEFAULT_CONFIG: () => DEFAULT_CONFIG,
21
- WriteError: () => WriteError,
22
- error: () => error,
23
- fatal: () => fatal,
24
- info: () => info,
25
- setConfig: () => setConfig,
26
- setTheme: () => setTheme,
27
- trace: () => trace,
28
- warn: () => warn
29
- });
30
- let th = DEFAULT_THEME;
31
- function setTheme(theme) {
32
- th = theme;
33
- }
34
- const DEFAULT_CONFIG = {
35
- format: "text",
36
- stderr: process.stderr,
37
- stdout: process.stdout,
38
- jsonSpace: 2
39
- };
40
- let config = DEFAULT_CONFIG;
41
- function setConfig({ theme,...cfg }) {
42
- config = merge(DEFAULT_CONFIG, cfg);
43
- th = theme ?? th;
44
- }
45
- function trace(...msgs) {
46
- const str = format(msgs, "TRACE");
47
- if (!config.stdout.write(str)) throw new WriteError("stdout");
48
- }
49
- function info(...msgs) {
50
- const str = format(msgs, "INFO");
51
- if (!config.stdout.write(str)) throw new WriteError("stdout");
52
- }
53
- function warn(...msgs) {
54
- const str = format(msgs, "WARN");
55
- if (!config.stderr.write(th.warning(str))) throw new WriteError("stderr");
56
- }
57
- function error(...msgs) {
58
- const str = format(msgs, "ERROR");
59
- if (!config.stderr.write(str)) throw new WriteError("stderr");
60
- }
61
- function fatal(...msgs) {
62
- const str = format(msgs, "FATAL");
63
- if (!config.stderr.write(str)) throw new WriteError("stderr");
64
- process.exit(-1);
65
- }
66
- function format(msgs, level) {
67
- const timestamp = (/* @__PURE__ */ new Date()).toISOString();
68
- const msg = msgs.map((m) => typeof m === "string" ? m : JSON.stringify(m, null, config.jsonSpace)).join(" ");
69
- switch (config.format) {
70
- case "json": return colorize(JSON.stringify({
71
- timestamp,
72
- level,
73
- message: msg
74
- }) + "\n", level);
75
- case "text":
76
- default: return colorize(`[${timestamp}] [${th.symbols[level] ?? level}] ${msg}\n`, level);
77
- }
78
- }
79
- function colorize(str, level) {
80
- switch (level) {
81
- case "TRACE": return th.secondary(str);
82
- case "WARN": return th.warning(str);
83
- case "ERROR": return th.error(str);
84
- case "FATAL": return th.styles?.bold ? th.styles.bold(th.error(str)) : th.error(str);
85
- case "INFO":
86
- default: return th.info?.(str) ?? str;
87
- }
88
- }
89
-
90
- //#endregion
91
- export { Command, ConvokerError, HelpAskedError, MissingRequiredArgumentError, MissingRequiredOptionError, TooManyArgumentsError, UnknownOptionError, color_exports as color, input_exports as i, log_exports as log, prompt_exports as prompt };
92
- //# sourceMappingURL=index.mjs.map
7
+ export { log, prompt, theme };
package/package.json CHANGED
@@ -1,71 +1,36 @@
1
1
  {
2
2
  "name": "convoker",
3
- "version": "0.4.0",
4
- "description": "A simple, type safe CLI framework for TypeScript.",
5
- "repository": {
6
- "type": "git",
7
- "url": "git+https://github.com/sprucepad/convoker"
8
- },
9
- "main": "./dist/index.mjs",
10
- "types": "./dist/index.d.mts",
3
+ "version": "0.5.0",
4
+ "description": "A simple, type-safe CLI framework.",
11
5
  "exports": {
12
6
  ".": {
13
7
  "types": "./dist/index.d.mts",
14
- "import": "./dist/index.mjs"
15
- },
16
- "./command": {
17
- "types": "./dist/command/index.d.mts",
18
- "import": "./dist/command/index.mjs"
19
- },
20
- "./input": {
21
- "types": "./dist/input/index.d.mts",
22
- "import": "./dist/input/index.mjs"
23
- },
24
- "./color": {
25
- "types": "./dist/color/index.d.mts",
26
- "import": "./dist/color/index.mjs"
27
- },
28
- "./prompt": {
29
- "types": "./dist/prompt/index.d.mts",
30
- "import": "./dist/prompt/index.mjs"
31
- },
32
- "./prompt/raw": {
33
- "types": "./dist/prompt/raw.d.mts",
34
- "import": "./dist/prompt/raw.mjs"
8
+ "import": "./dist/index.mjs",
9
+ "require": "./dist/index.cjs"
35
10
  }
36
11
  },
37
- "type": "module",
38
- "files": [
39
- "dist"
40
- ],
41
12
  "keywords": [
42
13
  "cli",
43
14
  "command",
44
15
  "args",
45
16
  "argv",
46
- "option"
17
+ "option",
18
+ "prompt",
19
+ "log",
20
+ "theme"
47
21
  ],
22
+ "dependencies": {
23
+ "@convoker/core": "0.4.1",
24
+ "@convoker/log": "0.1.0",
25
+ "@convoker/prompt": "0.1.0",
26
+ "@convoker/theme": "0.1.0"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
48
31
  "author": "sprucepad",
49
32
  "license": "MIT",
50
- "devDependencies": {
51
- "@eslint/js": "^9.36.0",
52
- "@types/node": "~20.19.30",
53
- "eslint": "^9.36.0",
54
- "globals": "^16.4.0",
55
- "prettier": "^3.6.2",
56
- "tsdown": "^0.16.0",
57
- "typescript": "^5.9.2",
58
- "typescript-eslint": "^8.45.0",
59
- "valibot": "^1.1.0",
60
- "vitest": "^3.2.4"
61
- },
62
33
  "scripts": {
63
- "test": "vitest",
64
- "build": "tsdown",
65
- "check": "tsc",
66
- "format": "prettier --check .",
67
- "format:fix": "prettier --write .",
68
- "lint": "eslint .",
69
- "lint:fix": "eslint --fix ."
34
+ "check": "tsc"
70
35
  }
71
36
  }
package/src/index.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from "@convoker/core";
2
+ export * as theme from "@convoker/theme";
3
+ export * as log from "@convoker/log";
4
+ export * as prompt from "@convoker/prompt";
package/tsconfig.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "baseUrl": "."
5
+ }
6
+ }
@@ -0,0 +1,10 @@
1
+ import { defineConfig } from "tsdown";
2
+
3
+ export default defineConfig({
4
+ entry: ["./src/index.ts"],
5
+ format: ["esm", "cjs"],
6
+ dts: {
7
+ sourcemap: true,
8
+ },
9
+ sourcemap: true,
10
+ });
package/README.md DELETED
@@ -1,34 +0,0 @@
1
- # Convoker
2
-
3
- A simple, type safe CLI library for TypeScript.
4
-
5
- ```ts
6
- import { i, Command } from "convoker";
7
-
8
- const program = new Command("calc").description("A basic calculator.");
9
-
10
- program
11
- .subCommand("add", (c) =>
12
- c
13
- .description("Adds two numbers.")
14
- .input({
15
- x: i.option("number", "-x", "--x"),
16
- y: i.option("number", "-y", "--y"),
17
- })
18
- .action(({ x, y }) => {
19
- console.log(`${x} + ${y} = ${x + y}`);
20
- }),
21
- )
22
- .subCommand("sub", (c) =>
23
- c
24
- .description("Subtracts any amount of numbers.")
25
- .input({
26
- numbers: i.option("number", "--numbers", "-n").list(),
27
- })
28
- .action(({ numbers }) => {
29
- const sub = numbers.reduce((a, b) => a - b, 0);
30
- console.log(`${numbers.join(" + ")} = ${sub}`);
31
- }),
32
- )
33
- .run();
34
- ```
@@ -1,13 +0,0 @@
1
- //#region rolldown:runtime
2
- var __defProp = Object.defineProperty;
3
- var __export = (all) => {
4
- let target = {};
5
- for (var name in all) __defProp(target, name, {
6
- get: all[name],
7
- enumerable: true
8
- });
9
- return target;
10
- };
11
-
12
- //#endregion
13
- export { __export as t };
@@ -1,2 +0,0 @@
1
- import { A as greenBright, B as reset, C as createAnsiColor, D as dim, E as defineTheme, F as magenta, G as whiteBright, H as supportsColor, I as magentaBright, K as yellow, L as overline, N as inverse, O as gray, P as italic, R as red, S as bold, T as cyanBright, U as underline, V as strikethrough, W as white, _ as bgYellow, a as bgBlueBright, b as blue, c as bgGray, d as bgMagenta, f as bgMagentaBright, g as bgWhiteBright, h as bgWhite, i as bgBlue, j as hidden, k as green, l as bgGreen, m as bgRedBright, n as Theme, o as bgCyan, p as bgRed, q as yellowBright, r as bgBlack, s as bgCyanBright, t as DEFAULT_THEME, u as bgGreenBright, v as bgYellowBright, w as cyan, x as blueBright, y as black, z as redBright } from "../index-BtbthYjp.mjs";
2
- export { DEFAULT_THEME, Theme, bgBlack, bgBlue, bgBlueBright, bgCyan, bgCyanBright, bgGray, bgGreen, bgGreenBright, bgMagenta, bgMagentaBright, bgRed, bgRedBright, bgWhite, bgWhiteBright, bgYellow, bgYellowBright, black, blue, blueBright, bold, createAnsiColor, cyan, cyanBright, defineTheme, dim, gray, green, greenBright, hidden, inverse, italic, magenta, magentaBright, overline, red, redBright, reset, strikethrough, supportsColor, underline, white, whiteBright, yellow, yellowBright };
@@ -1,3 +0,0 @@
1
- import { A as greenBright, B as strikethrough, C as createAnsiColor, D as dim, E as defineTheme, F as magentaBright, G as yellow, H as underline, I as overline, K as yellowBright, L as red, M as inverse, N as italic, O as gray, P as magenta, R as redBright, T as cyanBright, U as white, V as supportsColor, W as whiteBright, _ as bgYellowBright, a as bgCyan, b as blueBright, c as bgGreen, d as bgMagentaBright, f as bgRed, g as bgYellow, h as bgWhiteBright, i as bgBlueBright, j as hidden, k as green, l as bgGreenBright, m as bgWhite, n as bgBlack, o as bgCyanBright, p as bgRedBright, r as bgBlue, s as bgGray, t as DEFAULT_THEME, u as bgMagenta, v as black, w as cyan, x as bold, y as blue, z as reset } from "../color-DiZvJ0Fc.mjs";
2
-
3
- export { DEFAULT_THEME, bgBlack, bgBlue, bgBlueBright, bgCyan, bgCyanBright, bgGray, bgGreen, bgGreenBright, bgMagenta, bgMagentaBright, bgRed, bgRedBright, bgWhite, bgWhiteBright, bgYellow, bgYellowBright, black, blue, blueBright, bold, createAnsiColor, cyan, cyanBright, defineTheme, dim, gray, green, greenBright, hidden, inverse, italic, magenta, magentaBright, overline, red, redBright, reset, strikethrough, supportsColor, underline, white, whiteBright, yellow, yellowBright };
@@ -1,201 +0,0 @@
1
- import { t as __export } from "./chunk-z5eko27R.mjs";
2
-
3
- //#region src/utils.ts
4
- /**
5
- * Checks if a value is a plain object.
6
- * @param value The value to check.
7
- * @returns If the value is a plain object.
8
- */
9
- function isPlainObject(value) {
10
- return value !== null && typeof value === "object" && Object.getPrototypeOf(value) === Object.prototype;
11
- }
12
- /**
13
- * Merges two objects deeply.
14
- * @param source The source object.
15
- * @param target The target object.
16
- * @returns The merged objects.
17
- */
18
- function merge(source, target) {
19
- if (Array.isArray(source) && Array.isArray(target)) return target;
20
- if (isPlainObject(source) && isPlainObject(target)) {
21
- const result = {};
22
- new Set([...Object.keys(source), ...Object.keys(target)]).forEach((key) => {
23
- const sourceVal = source[key];
24
- const targetVal = target[key];
25
- if (sourceVal !== void 0 && targetVal !== void 0) result[key] = merge(sourceVal, targetVal);
26
- else if (targetVal !== void 0) result[key] = targetVal;
27
- else result[key] = sourceVal;
28
- });
29
- return result;
30
- }
31
- return target;
32
- }
33
-
34
- //#endregion
35
- //#region src/color/index.ts
36
- var color_exports = /* @__PURE__ */ __export({
37
- DEFAULT_THEME: () => DEFAULT_THEME,
38
- bgBlack: () => bgBlack,
39
- bgBlue: () => bgBlue,
40
- bgBlueBright: () => bgBlueBright,
41
- bgCyan: () => bgCyan,
42
- bgCyanBright: () => bgCyanBright,
43
- bgGray: () => bgGray,
44
- bgGreen: () => bgGreen,
45
- bgGreenBright: () => bgGreenBright,
46
- bgMagenta: () => bgMagenta,
47
- bgMagentaBright: () => bgMagentaBright,
48
- bgRed: () => bgRed,
49
- bgRedBright: () => bgRedBright,
50
- bgWhite: () => bgWhite,
51
- bgWhiteBright: () => bgWhiteBright,
52
- bgYellow: () => bgYellow,
53
- bgYellowBright: () => bgYellowBright,
54
- black: () => black,
55
- blue: () => blue,
56
- blueBright: () => blueBright,
57
- bold: () => bold,
58
- createAnsiColor: () => createAnsiColor,
59
- cyan: () => cyan,
60
- cyanBright: () => cyanBright,
61
- defineTheme: () => defineTheme,
62
- dim: () => dim,
63
- gray: () => gray,
64
- green: () => green,
65
- greenBright: () => greenBright,
66
- hidden: () => hidden,
67
- inverse: () => inverse,
68
- italic: () => italic,
69
- magenta: () => magenta,
70
- magentaBright: () => magentaBright,
71
- overline: () => overline,
72
- red: () => red,
73
- redBright: () => redBright,
74
- reset: () => reset,
75
- strikethrough: () => strikethrough,
76
- supportsColor: () => supportsColor,
77
- underline: () => underline,
78
- white: () => white,
79
- whiteBright: () => whiteBright,
80
- yellow: () => yellow,
81
- yellowBright: () => yellowBright
82
- });
83
- /**
84
- * Detects if the runtime supports colored output.
85
- * @returns If the runtime supports colored output.
86
- */
87
- function detectColorSupport() {
88
- if (typeof window !== "undefined" && typeof window.document !== "undefined") return false;
89
- const env = typeof process !== "undefined" ? process.env ?? {} : {};
90
- if ("NO_COLOR" in env) return false;
91
- if ("FORCE_COLOR" in env) return true;
92
- if ("CI" in env) {
93
- if ([
94
- "TRAVIS",
95
- "CIRCLECI",
96
- "APPVEYOR",
97
- "GITLAB_CI",
98
- "GITHUB_ACTIONS",
99
- "BUILDKITE",
100
- "DRONE"
101
- ].some((k) => k in env) || env.CI_NAME === "codeship") return true;
102
- return false;
103
- }
104
- const term = env.TERM || "";
105
- if ((env.COLORTERM || "").length > 0) return true;
106
- if (term === "dumb") return false;
107
- return /(color|ansi|cygwin|xterm|vt100)/i.test(term);
108
- }
109
- /**
110
- * If the runtime supports color.
111
- */
112
- const supportsColor = detectColorSupport();
113
- /**
114
- * Creates a function that wraps a string in ANSI codes.
115
- * @param open The opening ANSI code.
116
- * @param close The closing ANSI code.
117
- * @returns A function that wraps the string in ANSI codes.
118
- */
119
- function createAnsiColor(open, close) {
120
- const openCode = `\u001b[${open}m`;
121
- const closeCode = `\u001b[${close}m`;
122
- if (!supportsColor) return (input) => input + "";
123
- return (input) => {
124
- if (!input) return openCode + closeCode;
125
- return openCode + (input + "").replace(new RegExp(`\u001b\\[${close}m`, "g"), closeCode + openCode) + closeCode;
126
- };
127
- }
128
- const reset = createAnsiColor(0, 0);
129
- const bold = createAnsiColor(1, 22);
130
- const dim = createAnsiColor(2, 22);
131
- const italic = createAnsiColor(3, 23);
132
- const underline = createAnsiColor(4, 24);
133
- const overline = createAnsiColor(53, 55);
134
- const inverse = createAnsiColor(7, 27);
135
- const hidden = createAnsiColor(8, 28);
136
- const strikethrough = createAnsiColor(9, 29);
137
- const black = createAnsiColor(30, 39);
138
- const red = createAnsiColor(31, 39);
139
- const green = createAnsiColor(32, 39);
140
- const yellow = createAnsiColor(33, 39);
141
- const blue = createAnsiColor(34, 39);
142
- const magenta = createAnsiColor(35, 39);
143
- const cyan = createAnsiColor(36, 39);
144
- const white = createAnsiColor(37, 39);
145
- const gray = createAnsiColor(90, 39);
146
- const bgBlack = createAnsiColor(40, 49);
147
- const bgRed = createAnsiColor(41, 49);
148
- const bgGreen = createAnsiColor(42, 49);
149
- const bgYellow = createAnsiColor(43, 49);
150
- const bgBlue = createAnsiColor(44, 49);
151
- const bgMagenta = createAnsiColor(45, 49);
152
- const bgCyan = createAnsiColor(46, 49);
153
- const bgWhite = createAnsiColor(47, 49);
154
- const bgGray = createAnsiColor(100, 49);
155
- const redBright = createAnsiColor(91, 39);
156
- const greenBright = createAnsiColor(92, 39);
157
- const yellowBright = createAnsiColor(93, 39);
158
- const blueBright = createAnsiColor(94, 39);
159
- const magentaBright = createAnsiColor(95, 39);
160
- const cyanBright = createAnsiColor(96, 39);
161
- const whiteBright = createAnsiColor(97, 39);
162
- const bgRedBright = createAnsiColor(101, 49);
163
- const bgGreenBright = createAnsiColor(102, 49);
164
- const bgYellowBright = createAnsiColor(103, 49);
165
- const bgBlueBright = createAnsiColor(104, 49);
166
- const bgMagentaBright = createAnsiColor(105, 49);
167
- const bgCyanBright = createAnsiColor(106, 49);
168
- const bgWhiteBright = createAnsiColor(107, 49);
169
- /**
170
- * The default theme.
171
- */
172
- const DEFAULT_THEME = {
173
- primary: cyan,
174
- secondary: gray,
175
- success: green,
176
- warning: yellow,
177
- error: red,
178
- symbols: {
179
- success: "✔",
180
- error: "✖",
181
- fatal: "✖",
182
- warning: "⚠"
183
- },
184
- styles: {
185
- bold,
186
- italic,
187
- underline
188
- }
189
- };
190
- /**
191
- * Defines a theme.
192
- * @param theme The (partial) theme.
193
- * @returns The theme, merged with the default theme.
194
- */
195
- function defineTheme(theme) {
196
- return merge(DEFAULT_THEME, theme);
197
- }
198
-
199
- //#endregion
200
- export { greenBright as A, strikethrough as B, createAnsiColor as C, dim as D, defineTheme as E, magentaBright as F, yellow as G, underline as H, overline as I, yellowBright as K, red as L, inverse as M, italic as N, gray as O, magenta as P, redBright as R, color_exports as S, cyanBright as T, white as U, supportsColor as V, whiteBright as W, bgYellowBright as _, bgCyan as a, blueBright as b, bgGreen as c, bgMagentaBright as d, bgRed as f, bgYellow as g, bgWhiteBright as h, bgBlueBright as i, hidden as j, green as k, bgGreenBright as l, bgWhite as m, bgBlack as n, bgCyanBright as o, bgRedBright as p, merge as q, bgBlue as r, bgGray as s, DEFAULT_THEME as t, bgMagenta as u, black as v, cyan as w, bold as x, blue as y, reset as z };
201
- //# sourceMappingURL=color-DiZvJ0Fc.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"color-DiZvJ0Fc.mjs","names":["result: any","DEFAULT_THEME: Theme"],"sources":["../src/utils.ts","../src/color/index.ts"],"sourcesContent":["/**\n * Deep `Partial<T>`.\n */\nexport type DeepPartial<T> = {\n [P in keyof T]?: DeepPartial<T[P]>;\n};\n\n/**\n * All TypeScript primitive types.\n */\ntype Primitive = string | number | boolean | symbol | null | undefined | bigint;\n\n/**\n * A plain TypeScript object.\n */\ntype PlainObject = Record<string | number | symbol, unknown>;\n\n/**\n * Merges two objects deeply.\n */\nexport type DeepMerge<T, U> = U extends Primitive\n ? T\n : T extends Primitive\n ? T\n : U extends readonly (infer TItem)[]\n ? T extends readonly (infer UItem)[]\n ? Array<DeepMerge<TItem, UItem>>\n : T\n : U extends PlainObject\n ? T extends PlainObject\n ? {\n [K in keyof U | keyof T]: K extends keyof T\n ? K extends keyof U\n ? DeepMerge<U[K], T[K]>\n : T[K]\n : K extends keyof U\n ? U[K]\n : never;\n }\n : T\n : T;\n\n/**\n * Checks if a value is a plain object.\n * @param value The value to check.\n * @returns If the value is a plain object.\n */\nfunction isPlainObject(value: any): value is Record<string, any> {\n return (\n value !== null &&\n typeof value === \"object\" &&\n Object.getPrototypeOf(value) === Object.prototype\n );\n}\n\n/**\n * Merges two objects deeply.\n * @param source The source object.\n * @param target The target object.\n * @returns The merged objects.\n */\nexport function merge<T, U>(source: T, target: U): DeepMerge<T, U> {\n if (Array.isArray(source) && Array.isArray(target)) {\n // Replace arrays\n return target as any;\n }\n\n if (isPlainObject(source) && isPlainObject(target)) {\n const result: any = {};\n const keys = new Set([...Object.keys(source), ...Object.keys(target)]);\n keys.forEach((key) => {\n const sourceVal = (source as any)[key];\n const targetVal = (target as any)[key];\n\n if (sourceVal !== undefined && targetVal !== undefined) {\n result[key] = merge(sourceVal, targetVal);\n } else if (targetVal !== undefined) {\n result[key] = targetVal;\n } else {\n result[key] = sourceVal;\n }\n });\n return result;\n }\n\n // For class instances or primitives, always use target\n return target as any;\n}\n","import { merge, type DeepPartial } from \"@/utils\";\n\n/**\n * Detects if the runtime supports colored output.\n * @returns If the runtime supports colored output.\n */\nfunction detectColorSupport() {\n // If running in a browser-like environment, return false\n if (typeof window !== \"undefined\" && typeof window.document !== \"undefined\") {\n return false;\n }\n\n const env = typeof process !== \"undefined\" ? (process.env ?? {}) : {};\n\n // Force-disable colors if NO_COLOR is set\n if (\"NO_COLOR\" in env) return false;\n\n // Force-enable if FORCE_COLOR is set\n if (\"FORCE_COLOR\" in env) return true;\n\n // Check for CI systems that support color\n if (\"CI\" in env) {\n if (\n [\n \"TRAVIS\",\n \"CIRCLECI\",\n \"APPVEYOR\",\n \"GITLAB_CI\",\n \"GITHUB_ACTIONS\",\n \"BUILDKITE\",\n \"DRONE\",\n ].some((k) => k in env) ||\n env.CI_NAME === \"codeship\"\n ) {\n return true;\n }\n return false;\n }\n\n const term = env.TERM || \"\";\n const colorterm = env.COLORTERM || \"\";\n\n if (colorterm.length > 0) return true;\n if (term === \"dumb\") return false;\n\n return /(color|ansi|cygwin|xterm|vt100)/i.test(term);\n}\n\n/**\n * If the runtime supports color.\n */\nexport const supportsColor = detectColorSupport();\n\n/**\n * Creates a function that wraps a string in ANSI codes.\n * @param open The opening ANSI code.\n * @param close The closing ANSI code.\n * @returns A function that wraps the string in ANSI codes.\n */\nexport function createAnsiColor(\n open: number,\n close: number,\n): (input: any) => string {\n const openCode = `\\u001b[${open}m`;\n const closeCode = `\\u001b[${close}m`;\n\n if (!supportsColor) return (input) => input + \"\";\n\n return (input) => {\n if (!input) return openCode + closeCode;\n\n const str = input + \"\";\n // replace any existing close codes with reopen\n const replaced = str.replace(\n new RegExp(`\\u001b\\\\[${close}m`, \"g\"),\n closeCode + openCode,\n );\n return openCode + replaced + closeCode;\n };\n}\n\nexport const reset = createAnsiColor(0, 0);\nexport const bold = createAnsiColor(1, 22);\nexport const dim = createAnsiColor(2, 22);\nexport const italic = createAnsiColor(3, 23);\nexport const underline = createAnsiColor(4, 24);\nexport const overline = createAnsiColor(53, 55);\nexport const inverse = createAnsiColor(7, 27);\nexport const hidden = createAnsiColor(8, 28);\nexport const strikethrough = createAnsiColor(9, 29);\n\nexport const black = createAnsiColor(30, 39);\nexport const red = createAnsiColor(31, 39);\nexport const green = createAnsiColor(32, 39);\nexport const yellow = createAnsiColor(33, 39);\nexport const blue = createAnsiColor(34, 39);\nexport const magenta = createAnsiColor(35, 39);\nexport const cyan = createAnsiColor(36, 39);\nexport const white = createAnsiColor(37, 39);\nexport const gray = createAnsiColor(90, 39);\n\nexport const bgBlack = createAnsiColor(40, 49);\nexport const bgRed = createAnsiColor(41, 49);\nexport const bgGreen = createAnsiColor(42, 49);\nexport const bgYellow = createAnsiColor(43, 49);\nexport const bgBlue = createAnsiColor(44, 49);\nexport const bgMagenta = createAnsiColor(45, 49);\nexport const bgCyan = createAnsiColor(46, 49);\nexport const bgWhite = createAnsiColor(47, 49);\nexport const bgGray = createAnsiColor(100, 49);\n\nexport const redBright = createAnsiColor(91, 39);\nexport const greenBright = createAnsiColor(92, 39);\nexport const yellowBright = createAnsiColor(93, 39);\nexport const blueBright = createAnsiColor(94, 39);\nexport const magentaBright = createAnsiColor(95, 39);\nexport const cyanBright = createAnsiColor(96, 39);\nexport const whiteBright = createAnsiColor(97, 39);\n\nexport const bgRedBright = createAnsiColor(101, 49);\nexport const bgGreenBright = createAnsiColor(102, 49);\nexport const bgYellowBright = createAnsiColor(103, 49);\nexport const bgBlueBright = createAnsiColor(104, 49);\nexport const bgMagentaBright = createAnsiColor(105, 49);\nexport const bgCyanBright = createAnsiColor(106, 49);\nexport const bgWhiteBright = createAnsiColor(107, 49);\n\n/**\n * A theme.\n */\nexport interface Theme {\n /**\n * Wraps a string in a background ANSI code.\n * @param a The string to wrap.\n */\n background?(a: string): string;\n /**\n * Wraps a string in a foreground ANSI code.\n * @param a The string to wrap.\n */\n foreground?(a: string): string;\n /**\n * Wraps a string in a primary ANSI code.\n * @param a The string to wrap.\n */\n primary(a: string): string;\n /**\n * Wraps a string in a secondary ANSI code.\n * @param a The string to wrap.\n */\n secondary(a: string): string;\n /**\n * Wraps a string in a accent ANSI code.\n * @param a The string to wrap.\n */\n accent?(a: string): string;\n\n /**\n * Wraps a string in a success ANSI code.\n * @param a The string to wrap.\n */\n success(a: string): string;\n /**\n * Wraps a string in a warning ANSI code.\n * @param a The string to wrap.\n */\n warning(a: string): string;\n /**\n * Wraps a string in a error ANSI code.\n * @param a The string to wrap.\n */\n error(a: string): string;\n /**\n * Wraps a string in a info ANSI code.\n * @param a The string to wrap.\n */\n info?(a: string): string;\n\n /**\n * Set of symbols for logging.\n */\n symbols?: {\n /**\n * Success message symbol.\n */\n success: string;\n /**\n * Error message symbol.\n */\n error: string;\n /**\n * Fatal error message symbol.\n */\n fatal: string;\n /**\n * Warning message symbol.\n */\n warning: string;\n /**\n * Information message symbol.\n */\n info?: string;\n };\n\n /**\n * Optional styles.\n */\n styles?: {\n /**\n * Wraps a string in a bold ANSI code.\n * @param a The string to wrap.\n */\n bold?(a: string): string;\n /**\n * Wraps a string in an italic ANSI code.\n * @param a The string to wrap.\n */\n italic?(a: string): string;\n /**\n * Wraps a string in an underline ANSI code.\n * @param a The string to wrap.\n */\n underline?(a: string): string;\n };\n}\n\n/**\n * The default theme.\n */\nexport const DEFAULT_THEME: Theme = {\n primary: cyan,\n secondary: gray,\n\n success: green,\n warning: yellow,\n error: red,\n\n symbols: {\n success: \"✔\",\n error: \"✖\",\n fatal: \"✖\",\n warning: \"⚠\",\n },\n\n styles: {\n bold: bold,\n italic: italic,\n underline: underline,\n },\n};\n\n/**\n * Defines a theme.\n * @param theme The (partial) theme.\n * @returns The theme, merged with the default theme.\n */\nexport function defineTheme(theme: DeepPartial<Theme>): Theme {\n return merge(DEFAULT_THEME, theme);\n}\n"],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import "../index-BtbthYjp.mjs";
2
- import "../standard-schema-DXS-QnwX.mjs";
3
- import "../index-ClhbwSD8.mjs";
4
- import { a as ErrorFn, c as ConvokerError, d as MissingRequiredOptionError, f as TooManyArgumentsError, i as CommandAlias, l as HelpAskedError, n as Builder, o as MiddlewareFn, p as UnknownOptionError, r as Command, s as ParseResult, t as ActionFn, u as MissingRequiredArgumentError } from "../index-Cnx4H4D-.mjs";
5
- export { ActionFn, Builder, Command, CommandAlias, ConvokerError, ErrorFn, HelpAskedError, MiddlewareFn, MissingRequiredArgumentError, MissingRequiredOptionError, ParseResult, TooManyArgumentsError, UnknownOptionError };
@@ -1,8 +0,0 @@
1
- import "../color-DiZvJ0Fc.mjs";
2
- import "../standard-schema-DTuaYJjO.mjs";
3
- import "../raw-DEtZFeMv.mjs";
4
- import "../prompt-a5Ix_Hyc.mjs";
5
- import { a as MissingRequiredOptionError, i as MissingRequiredArgumentError, n as ConvokerError, o as TooManyArgumentsError, r as HelpAskedError, s as UnknownOptionError, t as Command } from "../command-8P8qXJ2o.mjs";
6
- import "../input-XUsy1LCQ.mjs";
7
-
8
- export { Command, ConvokerError, HelpAskedError, MissingRequiredArgumentError, MissingRequiredOptionError, TooManyArgumentsError, UnknownOptionError };