stain 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,41 @@
1
+ type EmptyObject = Record<never, never>;
2
+ type StainBase = 'black' | 'blue' | 'cyan' | 'green' | 'purple' | 'red' | 'white' | 'yellow';
3
+ export type StainAnsi = StainBase | `i${StainBase}`;
4
+ type XtermKeysFactory<N extends number, Acc extends string[] = []> = Acc['length'] extends N ? Acc[number] : XtermKeysFactory<N, [...Acc, `x${Acc['length']}`]>;
5
+ export type StainXterm = XtermKeysFactory<256>;
6
+ export type Stain<C extends Record<string, number> = EmptyObject, X extends boolean = false> = ((...args: any[]) => string) & {
7
+ bg: Stain<C, X>;
8
+ bold: Stain<C, X>;
9
+ dim: Stain<C, X>;
10
+ normal: Stain<C, X>;
11
+ reset: Stain<C, X>;
12
+ underline: Stain<C, X>;
13
+ inverse: Stain<C, X>;
14
+ } & {
15
+ [K in StainAnsi]: Stain<C, X>;
16
+ } & (X extends true ? {
17
+ [K in StainXterm]: Stain<C, X>;
18
+ } : EmptyObject) & (keyof C extends never ? EmptyObject : {
19
+ [K in keyof C]: Stain<C, X>;
20
+ });
21
+ export type StainOpts<C extends Record<string, number> = EmptyObject> = {
22
+ format?: (...args: any[]) => string;
23
+ noColor?: boolean;
24
+ xterm?: boolean;
25
+ colors?: C;
26
+ simpleEscape?: boolean;
27
+ };
28
+ /**
29
+ * a nice node typed color api, that isn't "slow" at
30
+ * @perf ~6million iter/s - NO_COLOR=~186million iter/s
31
+ */
32
+ declare function createStain<C extends Record<string, number> = EmptyObject>(opts?: StainOpts<C> & {
33
+ xterm?: false;
34
+ }): Stain<C, false>;
35
+ declare function createStain<C extends Record<string, number> = EmptyObject>(opts: StainOpts<C> & {
36
+ xterm: true;
37
+ }): Stain<C, true>;
38
+ declare const stain: Stain<EmptyObject, true>;
39
+ export default createStain;
40
+ export { stain, createStain, };
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,41 @@
1
+ type EmptyObject = Record<never, never>;
2
+ type StainBase = 'black' | 'blue' | 'cyan' | 'green' | 'purple' | 'red' | 'white' | 'yellow';
3
+ export type StainAnsi = StainBase | `i${StainBase}`;
4
+ type XtermKeysFactory<N extends number, Acc extends string[] = []> = Acc['length'] extends N ? Acc[number] : XtermKeysFactory<N, [...Acc, `x${Acc['length']}`]>;
5
+ export type StainXterm = XtermKeysFactory<256>;
6
+ export type Stain<C extends Record<string, number> = EmptyObject, X extends boolean = false> = ((...args: any[]) => string) & {
7
+ bg: Stain<C, X>;
8
+ bold: Stain<C, X>;
9
+ dim: Stain<C, X>;
10
+ normal: Stain<C, X>;
11
+ reset: Stain<C, X>;
12
+ underline: Stain<C, X>;
13
+ inverse: Stain<C, X>;
14
+ } & {
15
+ [K in StainAnsi]: Stain<C, X>;
16
+ } & (X extends true ? {
17
+ [K in StainXterm]: Stain<C, X>;
18
+ } : EmptyObject) & (keyof C extends never ? EmptyObject : {
19
+ [K in keyof C]: Stain<C, X>;
20
+ });
21
+ export type StainOpts<C extends Record<string, number> = EmptyObject> = {
22
+ format?: (...args: any[]) => string;
23
+ noColor?: boolean;
24
+ xterm?: boolean;
25
+ colors?: C;
26
+ simpleEscape?: boolean;
27
+ };
28
+ /**
29
+ * a nice node typed color api, that isn't "slow" at
30
+ * @perf ~6million iter/s - NO_COLOR=~186million iter/s
31
+ */
32
+ declare function createStain<C extends Record<string, number> = EmptyObject>(opts?: StainOpts<C> & {
33
+ xterm?: false;
34
+ }): Stain<C, false>;
35
+ declare function createStain<C extends Record<string, number> = EmptyObject>(opts: StainOpts<C> & {
36
+ xterm: true;
37
+ }): Stain<C, true>;
38
+ declare const stain: Stain<EmptyObject, true>;
39
+ export default createStain;
40
+ export { stain, createStain, };
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,41 @@
1
+ type EmptyObject = Record<never, never>;
2
+ type StainBase = 'black' | 'blue' | 'cyan' | 'green' | 'purple' | 'red' | 'white' | 'yellow';
3
+ export type StainAnsi = StainBase | `i${StainBase}`;
4
+ type XtermKeysFactory<N extends number, Acc extends string[] = []> = Acc['length'] extends N ? Acc[number] : XtermKeysFactory<N, [...Acc, `x${Acc['length']}`]>;
5
+ export type StainXterm = XtermKeysFactory<256>;
6
+ export type Stain<C extends Record<string, number> = EmptyObject, X extends boolean = false> = ((...args: any[]) => string) & {
7
+ bg: Stain<C, X>;
8
+ bold: Stain<C, X>;
9
+ dim: Stain<C, X>;
10
+ normal: Stain<C, X>;
11
+ reset: Stain<C, X>;
12
+ underline: Stain<C, X>;
13
+ inverse: Stain<C, X>;
14
+ } & {
15
+ [K in StainAnsi]: Stain<C, X>;
16
+ } & (X extends true ? {
17
+ [K in StainXterm]: Stain<C, X>;
18
+ } : EmptyObject) & (keyof C extends never ? EmptyObject : {
19
+ [K in keyof C]: Stain<C, X>;
20
+ });
21
+ export type StainOpts<C extends Record<string, number> = EmptyObject> = {
22
+ format?: (...args: any[]) => string;
23
+ noColor?: boolean;
24
+ xterm?: boolean;
25
+ colors?: C;
26
+ simpleEscape?: boolean;
27
+ };
28
+ /**
29
+ * a nice node typed color api, that isn't "slow" at
30
+ * @perf ~6million iter/s - NO_COLOR=~186million iter/s
31
+ */
32
+ declare function createStain<C extends Record<string, number> = EmptyObject>(opts?: StainOpts<C> & {
33
+ xterm?: false;
34
+ }): Stain<C, false>;
35
+ declare function createStain<C extends Record<string, number> = EmptyObject>(opts: StainOpts<C> & {
36
+ xterm: true;
37
+ }): Stain<C, true>;
38
+ declare const stain: Stain<EmptyObject, true>;
39
+ export default createStain;
40
+ export { stain, createStain, };
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,312 @@
1
+ // node_modules/cli-reap/dist/index.js
2
+ var GLOBAL_THIS = /* @__PURE__ */ (() => typeof globalThis === "object" ? globalThis : (() => {
3
+ (function(Object2) {
4
+ function get() {
5
+ const e = this || self;
6
+ e.globalThis = e, delete Object2.prototype._T_;
7
+ }
8
+ typeof globalThis != "object" && (this ? get() : (Object2.defineProperty(Object2.prototype, "_T_", { configurable: true, get }), _T_));
9
+ })(Object);
10
+ return typeof globalThis === "object" ? globalThis : {};
11
+ })())();
12
+ var ARGV = /* @__PURE__ */ (() => {
13
+ var _a, _b, _c, _d;
14
+ return typeof process === "undefined" ? typeof scriptArgs !== "undefined" ? scriptArgs : [] : (_d = (GLOBAL_THIS == null ? undefined : GLOBAL_THIS["Deno"]) ? (_c = (_a = GLOBAL_THIS == null ? undefined : GLOBAL_THIS["Deno"]) == null ? undefined : _a.args) != null ? _c : ((_b = process["args"]) == null ? undefined : _b.length) ? process["args"] : process["argv"] : process["argv"]) != null ? _d : [];
15
+ })();
16
+ var ENV = /* @__PURE__ */ (() => {
17
+ var _a, _b, _c, _d;
18
+ return typeof process === "undefined" ? typeof ((_a = GLOBAL_THIS == null ? undefined : GLOBAL_THIS["std"]) == null ? undefined : _a.getenviron) === "function" ? (_d = (_c = (_b = GLOBAL_THIS["std"]).getenviron) == null ? undefined : _c.call(_b)) != null ? _d : {} : {} : !(GLOBAL_THIS == null ? undefined : GLOBAL_THIS["Deno"]) ? process["env"] : (() => {
19
+ var _a2, _b2, _c2, _d2, _e, _f;
20
+ try {
21
+ return (_f = (_c2 = (_b2 = (_a2 = GLOBAL_THIS == null ? undefined : GLOBAL_THIS["Deno"]) == null ? undefined : _a2.env) == null ? undefined : _b2.toObject) == null ? undefined : _c2.call(_b2)) != null ? _f : ((_d2 = process["env"]) == null ? undefined : _d2.toObject) ? (_e = process["env"]) == null ? undefined : _e.toObject() : process["env"];
22
+ } catch (_err) {}
23
+ return {};
24
+ })();
25
+ })();
26
+ var quoteNorm = (val) => /^['"]/.test(val) ? val?.replace(/^(['"])(.*)(['"])$/, (m, q1, body, q2) => q1 === q2 ? quoteNorm(body) : m) : val;
27
+ var isFlag = (val) => /^-+\w/.test(val ?? "") && Number.isNaN(Number(val));
28
+ var isTerm = (val) => val?.trim() === "--";
29
+ var toArgvArray = (key, strict = false, _keys = Array.isArray(key) ? key : [key]) => strict ? _keys : _keys.map((item) => [
30
+ item,
31
+ item.replaceAll(...item.includes("_") ? ["_", "-"] : ["-", "_"])
32
+ ]).flat();
33
+ var cliReap = (argv = ARGV, env = ENV, gthis = GLOBAL_THIS, strict = false) => {
34
+ const slice = argv[0] === "node" ? 2 : argv[1] === "run" ? 3 : isFlag(argv[0]) ? 0 : 1;
35
+ const cur = argv.map(String).slice(slice);
36
+ const cmd = argv.map(String).slice(0, slice);
37
+ const end = !!cur.find(isTerm);
38
+ const getArgv = (keys, optValue = false) => {
39
+ const keyList = toArgvArray(keys, strict);
40
+ for (let i = 0;i < cur.length; i++) {
41
+ const token = cur[i];
42
+ if (isTerm(token)) {
43
+ break;
44
+ }
45
+ if (!token || !isFlag(token)) {
46
+ continue;
47
+ }
48
+ const hasEq = /=/.test(token);
49
+ const part = keyList.map((key) => {
50
+ const [k, ...parts] = token.replace(isFlag(key) ? /(?!)/ : /^\s*?-+/, "").split(hasEq && optValue ? `${key}=` : new RegExp(`^${key}$`, strict ? "" : "i"));
51
+ return !k?.length ? parts.join(key) : k === key ? key : null;
52
+ }).find((v) => v !== null) ?? 0;
53
+ if (part === 0) {
54
+ continue;
55
+ }
56
+ if (!optValue) {
57
+ cur.splice(i, 1);
58
+ return true;
59
+ }
60
+ if (hasEq) {
61
+ cur.splice(i, 1);
62
+ return quoteNorm(part);
63
+ }
64
+ const next = cur[i + 1];
65
+ if (next !== undefined && !isTerm(next) && !isFlag(next)) {
66
+ cur.splice(i, 2);
67
+ return quoteNorm(next);
68
+ }
69
+ }
70
+ return null;
71
+ };
72
+ const getEnv = (keys) => toArgvArray(keys, strict).map((key) => (key in env) ? env[key] : (key in gthis) ? gthis[key] : null).filter(Boolean)[0] ?? null;
73
+ const getFlag = (keys) => getArgv(keys, false) !== null ? true : null;
74
+ const getOpt = (keys) => getArgv(keys, true);
75
+ const getAny = (keys, defaultValue) => getOpt(keys) ?? getFlag(keys) ?? getEnv(keys) ?? (defaultValue !== undefined ? defaultValue : null);
76
+ const getPos = () => {
77
+ const result = [];
78
+ for (let i = 0;i < cur.length; i++) {
79
+ const token = cur[i];
80
+ if (!token) {
81
+ continue;
82
+ }
83
+ if (isTerm(token)) {
84
+ return [...result, ...cur.slice(i + 1)];
85
+ }
86
+ if (isFlag(token)) {
87
+ continue;
88
+ }
89
+ result.push(token);
90
+ }
91
+ return result;
92
+ };
93
+ return {
94
+ any: getAny,
95
+ cmd: () => cmd,
96
+ cur: () => cur,
97
+ end: () => end,
98
+ env: getEnv,
99
+ flag: getFlag,
100
+ opt: getOpt,
101
+ pos: getPos
102
+ };
103
+ };
104
+ var src_default = cliReap;
105
+
106
+ // node_modules/globables/dist/index.js
107
+ var GLOBAL_THIS2 = /* @__PURE__ */ (() => typeof globalThis === "object" ? globalThis : (() => {
108
+ (function(Object2) {
109
+ function get() {
110
+ const e = this || self;
111
+ e.globalThis = e, delete Object2.prototype._T_;
112
+ }
113
+ typeof globalThis != "object" && (this ? get() : (Object2.defineProperty(Object2.prototype, "_T_", { configurable: true, get }), _T_));
114
+ })(Object);
115
+ return typeof globalThis === "object" ? globalThis : {};
116
+ })())();
117
+ var ENV2 = /* @__PURE__ */ (() => {
118
+ var _a, _b, _c, _d;
119
+ return typeof process === "undefined" ? typeof ((_a = GLOBAL_THIS2 == null ? undefined : GLOBAL_THIS2["std"]) == null ? undefined : _a.getenviron) === "function" ? (_d = (_c = (_b = GLOBAL_THIS2["std"]).getenviron) == null ? undefined : _c.call(_b)) != null ? _d : {} : {} : !(GLOBAL_THIS2 == null ? undefined : GLOBAL_THIS2["Deno"]) ? process["env"] : (() => {
120
+ var _a2, _b2, _c2, _d2, _e, _f;
121
+ try {
122
+ return (_f = (_c2 = (_b2 = (_a2 = GLOBAL_THIS2 == null ? undefined : GLOBAL_THIS2["Deno"]) == null ? undefined : _a2.env) == null ? undefined : _b2.toObject) == null ? undefined : _c2.call(_b2)) != null ? _f : ((_d2 = process["env"]) == null ? undefined : _d2.toObject) ? (_e = process["env"]) == null ? undefined : _e.toObject() : process["env"];
123
+ } catch (_err) {}
124
+ return {};
125
+ })();
126
+ })();
127
+
128
+ // src/constants.ts
129
+ var ESC = "\x1B";
130
+ var RESET = "\x1B[0m";
131
+ var COLOR_DEF = {
132
+ black: 30,
133
+ iblack: 90,
134
+ red: 31,
135
+ ired: 91,
136
+ green: 32,
137
+ igreen: 92,
138
+ yellow: 33,
139
+ iyellow: 93,
140
+ blue: 34,
141
+ iblue: 94,
142
+ purple: 35,
143
+ ipurple: 95,
144
+ cyan: 36,
145
+ icyan: 96,
146
+ white: 37,
147
+ iwhite: 97
148
+ };
149
+ var XTERM_DEF = Object.fromEntries(Array(256).fill(0).map((_v, i) => [`x${i}`, i]));
150
+ var COLOR_ALL = { ...COLOR_DEF, ...XTERM_DEF };
151
+ var COLOR_SPACE = /* @__PURE__ */ (() => {
152
+ try {
153
+ const reap = src_default();
154
+ const forceColor = reap.any("FORCE_COLOR");
155
+ if (forceColor === "" || forceColor && !isNaN(Number(forceColor)) && Number(forceColor) > 0) {
156
+ return 1;
157
+ }
158
+ if (typeof process === "undefined") {
159
+ return 0;
160
+ }
161
+ if (reap.any("NO_COLOR") !== null || reap.any("NODE_DISABLE_COLORS") !== null || /-mono|dumb/i.test(ENV2["TERM"] ?? "")) {
162
+ return 0;
163
+ }
164
+ if (!(!!process.stdout?.isTTY || !!ENV2["PM2_HOME"] && !!ENV2["pm_id"] || (GLOBAL_THIS2?.["Deno"] ? GLOBAL_THIS2?.["Deno"]?.isatty(1) : !!process.stdout?.isTTY))) {
165
+ return 0;
166
+ }
167
+ if (/^(false|never|no|0)$/i.test(`${reap.opt("color") ?? ""}`.trim())) {
168
+ return 0;
169
+ }
170
+ return 1;
171
+ } catch (_err) {}
172
+ return 0;
173
+ })();
174
+
175
+ // src/index.ts
176
+ var escStain = (str, open, close, fontReplace) => {
177
+ str = typeof str !== "string" ? String(str) : str;
178
+ const openStr = ESC + `[${open}m`;
179
+ const closeStr = ESC + `[${close}m`;
180
+ const closeLen = closeStr.length;
181
+ const parts = [];
182
+ let cursor = 0;
183
+ let seqCount = 0;
184
+ let resetCount = 0;
185
+ while (true) {
186
+ const idxClose = str.indexOf(closeStr, cursor);
187
+ const idxReset = open === 0 ? -1 : str.indexOf(RESET, cursor);
188
+ let idx = -1;
189
+ let isReset = false;
190
+ if (idxClose >= 0) {
191
+ if (idxReset >= 0 && idxReset < idxClose) {
192
+ idx = idxReset;
193
+ isReset = true;
194
+ } else {
195
+ idx = idxClose;
196
+ }
197
+ } else if (idxReset >= 0) {
198
+ idx = idxReset;
199
+ isReset = true;
200
+ } else {
201
+ break;
202
+ }
203
+ parts.push(str.substring(cursor, idx));
204
+ if (isReset) {
205
+ parts.push(RESET);
206
+ resetCount++;
207
+ if (resetCount % 2 === 0) {
208
+ parts.push(openStr);
209
+ }
210
+ cursor = idx + RESET.length;
211
+ continue;
212
+ }
213
+ const segment = str.substring(cursor, idx);
214
+ const openInSeg = segment.split(openStr).length;
215
+ const closeInSeg = segment.split(closeStr).length;
216
+ let rep = openStr;
217
+ if (fontReplace !== undefined && openInSeg <= closeInSeg) {
218
+ seqCount++;
219
+ const on = ESC + `[${fontReplace}m`;
220
+ const off = ESC + `[${close}m`;
221
+ rep = seqCount % 2 === 1 ? on + off : off + on;
222
+ }
223
+ parts.push(rep);
224
+ cursor = idx + closeLen;
225
+ }
226
+ parts.push(str.substring(cursor));
227
+ return openStr + parts.join("") + closeStr;
228
+ };
229
+ var escStainSimple = (str, open, close, _fontReplace) => `${ESC}[${open}m` + (typeof str !== "string" ? String(str) : str) + `${ESC}[${close}m`;
230
+ function createStain(opts = {}) {
231
+ const {
232
+ colors,
233
+ xterm,
234
+ format = (...args) => args.length > 1 ? args.join(" ") : typeof args[0] !== "string" ? JSON.stringify(args[0]) : args[0],
235
+ noColor = COLOR_SPACE === 0,
236
+ simpleEscape = false
237
+ } = opts;
238
+ const colorAll = colors ? { ...xterm ? COLOR_ALL : COLOR_DEF, ...colors } : xterm ? COLOR_ALL : COLOR_DEF;
239
+ if (noColor) {
240
+ const ncFormat = opts?.format ? (...args) => format(...args) : format;
241
+ for (const prop of Object.keys(colorAll).concat(["bg", "bold", "dim", "normal", "reset", "underline"])) {
242
+ ncFormat[prop] = ncFormat;
243
+ }
244
+ return ncFormat;
245
+ }
246
+ const escFn = simpleEscape ? escStainSimple : escStain;
247
+ const color256 = colors ? xterm ? { ...XTERM_DEF, ...colors } : colors : xterm ? XTERM_DEF : {};
248
+ const colorProxy = (cur = {}) => new Proxy((text) => text, {
249
+ get: (_target, prop) => {
250
+ const nxt = { ...cur };
251
+ const fg = nxt.fg;
252
+ if (colorAll[prop] !== undefined) {
253
+ nxt.pr = [
254
+ fg?.[0] ?? colorAll[prop],
255
+ 39,
256
+ fg?.[2] ?? (color256[prop] !== undefined ? 1 : 0)
257
+ ];
258
+ nxt.fg = [colorAll[prop], 39, color256[prop] !== undefined ? 1 : 0];
259
+ } else if (prop === "bg" && fg) {
260
+ nxt.bg = [fg[0] + (fg[2] || fg[1] === 49 ? 0 : 10), 49, fg[2]];
261
+ if (nxt.pr?.[1] === 39) {
262
+ nxt.fg = fg[0] === nxt.pr[0] ? undefined : [...nxt.pr];
263
+ }
264
+ } else {
265
+ const fo = prop === "bold" ? 1 : prop === "dim" ? 2 : prop === "normal" ? 22 : null;
266
+ if (fo) {
267
+ nxt.ft = [fo, 22, 0];
268
+ } else if (prop === "underline") {
269
+ nxt.ue = [4, 24, 0];
270
+ } else if (prop === "inverse") {
271
+ nxt.ie = [7, 27, 0];
272
+ } else if (prop === "reset") {
273
+ nxt.re = [0, 0, 0];
274
+ }
275
+ }
276
+ return colorProxy(nxt);
277
+ },
278
+ apply: (_target, _thisArg, args) => {
279
+ let res = format(...args);
280
+ if (cur.re) {
281
+ return escFn(res, 0, 0);
282
+ }
283
+ if (cur.fg) {
284
+ res = escFn(res, (cur.fg[2] ? "38;5;" : "") + cur.fg[0], cur.fg[1]);
285
+ }
286
+ if (cur.bg) {
287
+ res = escFn(res, (cur.bg[2] ? "48;5;" : "") + cur.bg[0], cur.bg[1]);
288
+ }
289
+ if (cur.ft) {
290
+ res = escFn(res, cur.ft[0], cur.ft[1], cur.ft[0]);
291
+ }
292
+ if (cur.ue) {
293
+ res = escFn(res, cur.ue[0], cur.ue[1]);
294
+ }
295
+ if (cur.ie) {
296
+ res = escFn(res, cur.ie[0], cur.ie[1]);
297
+ }
298
+ return res;
299
+ }
300
+ });
301
+ return colorProxy();
302
+ }
303
+ var stain = /* @__PURE__ */ (() => createStain({ xterm: true }))();
304
+ var src_default2 = createStain;
305
+ export {
306
+ stain,
307
+ src_default2 as default,
308
+ createStain
309
+ };
310
+
311
+ //# debugId=923294455343402064756E2164756E21
312
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../node_modules/cli-reap/dist/index.js", "../node_modules/globables/dist/index.js", "../src/constants.ts", "../src/index.ts"],
4
+ "sourcesContent": [
5
+ "// node_modules/globables/dist/index.js\nvar GLOBAL_THIS = /* @__PURE__ */ (() => typeof globalThis === \"object\" ? globalThis : (() => {\n (function(Object2) {\n function get() {\n const e = this || self;\n e.globalThis = e, delete Object2.prototype._T_;\n }\n typeof globalThis != \"object\" && (this ? get() : (Object2.defineProperty(Object2.prototype, \"_T_\", { configurable: true, get }), _T_));\n })(Object);\n return typeof globalThis === \"object\" ? globalThis : {};\n})())();\nvar ARGV = /* @__PURE__ */ (() => {\n var _a, _b, _c, _d;\n return typeof process === \"undefined\" ? typeof scriptArgs !== \"undefined\" ? scriptArgs : [] : (_d = (GLOBAL_THIS == null ? undefined : GLOBAL_THIS[\"Deno\"]) ? (_c = (_a = GLOBAL_THIS == null ? undefined : GLOBAL_THIS[\"Deno\"]) == null ? undefined : _a.args) != null ? _c : ((_b = process[\"args\"]) == null ? undefined : _b.length) ? process[\"args\"] : process[\"argv\"] : process[\"argv\"]) != null ? _d : [];\n})();\nvar ENV = /* @__PURE__ */ (() => {\n var _a, _b, _c, _d;\n return typeof process === \"undefined\" ? typeof ((_a = GLOBAL_THIS == null ? undefined : GLOBAL_THIS[\"std\"]) == null ? undefined : _a.getenviron) === \"function\" ? (_d = (_c = (_b = GLOBAL_THIS[\"std\"]).getenviron) == null ? undefined : _c.call(_b)) != null ? _d : {} : {} : !(GLOBAL_THIS == null ? undefined : GLOBAL_THIS[\"Deno\"]) ? process[\"env\"] : (() => {\n var _a2, _b2, _c2, _d2, _e, _f;\n try {\n return (_f = (_c2 = (_b2 = (_a2 = GLOBAL_THIS == null ? undefined : GLOBAL_THIS[\"Deno\"]) == null ? undefined : _a2.env) == null ? undefined : _b2.toObject) == null ? undefined : _c2.call(_b2)) != null ? _f : ((_d2 = process[\"env\"]) == null ? undefined : _d2.toObject) ? (_e = process[\"env\"]) == null ? undefined : _e.toObject() : process[\"env\"];\n } catch (_err) {}\n return {};\n })();\n})();\n\n// src/index.ts\nvar hasArgv = (keys, argv = ARGV) => !argv?.length ? false : !![keys].flat().filter(Boolean).find((key) => new RegExp(`(^|[^\\\\S])(?:--|-)${key}(=|\\\\s|$)`, \"i\").test(argv.join(\" \")));\nvar quoteNorm = (val) => /^['\"]/.test(val) ? val?.replace(/^(['\"])(.*)(['\"])$/, (m, q1, body, q2) => q1 === q2 ? quoteNorm(body) : m) : val;\nvar isFlag = (val) => /^-+\\w/.test(val ?? \"\") && Number.isNaN(Number(val));\nvar isTerm = (val) => val?.trim() === \"--\";\nvar toArgvArray = (key, strict = false, _keys = Array.isArray(key) ? key : [key]) => strict ? _keys : _keys.map((item) => [\n item,\n item.replaceAll(...item.includes(\"_\") ? [\"_\", \"-\"] : [\"-\", \"_\"])\n]).flat();\nvar cliReap = (argv = ARGV, env = ENV, gthis = GLOBAL_THIS, strict = false) => {\n const slice = argv[0] === \"node\" ? 2 : argv[1] === \"run\" ? 3 : isFlag(argv[0]) ? 0 : 1;\n const cur = argv.map(String).slice(slice);\n const cmd = argv.map(String).slice(0, slice);\n const end = !!cur.find(isTerm);\n const getArgv = (keys, optValue = false) => {\n const keyList = toArgvArray(keys, strict);\n for (let i = 0;i < cur.length; i++) {\n const token = cur[i];\n if (isTerm(token)) {\n break;\n }\n if (!token || !isFlag(token)) {\n continue;\n }\n const hasEq = /=/.test(token);\n const part = keyList.map((key) => {\n const [k, ...parts] = token.replace(isFlag(key) ? /(?!)/ : /^\\s*?-+/, \"\").split(hasEq && optValue ? `${key}=` : new RegExp(`^${key}$`, strict ? \"\" : \"i\"));\n return !k?.length ? parts.join(key) : k === key ? key : null;\n }).find((v) => v !== null) ?? 0;\n if (part === 0) {\n continue;\n }\n if (!optValue) {\n cur.splice(i, 1);\n return true;\n }\n if (hasEq) {\n cur.splice(i, 1);\n return quoteNorm(part);\n }\n const next = cur[i + 1];\n if (next !== undefined && !isTerm(next) && !isFlag(next)) {\n cur.splice(i, 2);\n return quoteNorm(next);\n }\n }\n return null;\n };\n const getEnv = (keys) => toArgvArray(keys, strict).map((key) => (key in env) ? env[key] : (key in gthis) ? gthis[key] : null).filter(Boolean)[0] ?? null;\n const getFlag = (keys) => getArgv(keys, false) !== null ? true : null;\n const getOpt = (keys) => getArgv(keys, true);\n const getAny = (keys, defaultValue) => getOpt(keys) ?? getFlag(keys) ?? getEnv(keys) ?? (defaultValue !== undefined ? defaultValue : null);\n const getPos = () => {\n const result = [];\n for (let i = 0;i < cur.length; i++) {\n const token = cur[i];\n if (!token) {\n continue;\n }\n if (isTerm(token)) {\n return [...result, ...cur.slice(i + 1)];\n }\n if (isFlag(token)) {\n continue;\n }\n result.push(token);\n }\n return result;\n };\n return {\n any: getAny,\n cmd: () => cmd,\n cur: () => cur,\n end: () => end,\n env: getEnv,\n flag: getFlag,\n opt: getOpt,\n pos: getPos\n };\n};\nvar cliReapStrict = (argv = ARGV, procEnv = ENV, gthis = GLOBAL_THIS) => cliReap(argv, procEnv, gthis, true);\nvar src_default = cliReap;\nexport {\n quoteNorm,\n isFlag,\n hasArgv,\n src_default as default,\n cliReapStrict,\n cliReap,\n ENV,\n ARGV\n};\n\n//# debugId=D346F45C437553B064756E2164756E21\n//# sourceMappingURL=index.js.map\n",
6
+ "// src/index.ts\nvar GLOBAL_THIS = /* @__PURE__ */ (() => typeof globalThis === \"object\" ? globalThis : (() => {\n !(function(Object2) {\n function get() {\n const e = this || self;\n e.globalThis = e, delete Object2.prototype._T_;\n }\n \"object\" != typeof globalThis && (this ? get() : (Object2.defineProperty(Object2.prototype, \"_T_\", { configurable: true, get }), _T_));\n })(Object);\n return typeof globalThis === \"object\" ? globalThis : {};\n})())();\nvar ARGV = /* @__PURE__ */ (() => {\n var _a, _b, _c, _d;\n return typeof process === \"undefined\" ? typeof scriptArgs !== \"undefined\" ? scriptArgs : [] : (_d = (GLOBAL_THIS == null ? void 0 : GLOBAL_THIS[\"Deno\"]) ? (_c = (_a = GLOBAL_THIS == null ? void 0 : GLOBAL_THIS[\"Deno\"]) == null ? void 0 : _a.args) != null ? _c : ((_b = process[\"args\"]) == null ? void 0 : _b.length) ? process[\"args\"] : process[\"argv\"] : process[\"argv\"]) != null ? _d : [];\n})();\nvar ARGS = ARGV;\nvar ENV = /* @__PURE__ */ (() => {\n var _a, _b, _c, _d;\n return typeof process === \"undefined\" ? typeof ((_a = GLOBAL_THIS == null ? void 0 : GLOBAL_THIS[\"std\"]) == null ? void 0 : _a.getenviron) === \"function\" ? (_d = (_c = (_b = GLOBAL_THIS[\"std\"]).getenviron) == null ? void 0 : _c.call(_b)) != null ? _d : {} : {} : !(GLOBAL_THIS == null ? void 0 : GLOBAL_THIS[\"Deno\"]) ? process[\"env\"] : (() => {\n var _a2, _b2, _c2, _d2, _e, _f;\n try {\n return (_f = (_c2 = (_b2 = (_a2 = GLOBAL_THIS == null ? void 0 : GLOBAL_THIS[\"Deno\"]) == null ? void 0 : _a2.env) == null ? void 0 : _b2.toObject) == null ? void 0 : _c2.call(_b2)) != null ? _f : ((_d2 = process[\"env\"]) == null ? void 0 : _d2.toObject) ? (_e = process[\"env\"]) == null ? void 0 : _e.toObject() : process[\"env\"];\n } catch (_err) {\n }\n return {};\n })();\n})();\nexport {\n ARGS,\n ARGV,\n ENV,\n GLOBAL_THIS\n};\n//# sourceMappingURL=index.js.map\n",
7
+ "import cliReap from 'cli-reap';\nimport {\n ENV,\n GLOBAL_THIS,\n} from 'globables';\n\nexport const ESC = '\\x1B';\nexport const RESET = '\\x1B[0m';\n\nexport const COLOR_DEF = {\n black: 30,\n iblack: 90,\n red: 31,\n ired: 91,\n green: 32,\n igreen: 92,\n yellow: 33,\n iyellow: 93,\n blue: 34,\n iblue: 94,\n purple: 35,\n ipurple: 95,\n cyan: 36,\n icyan: 96,\n white: 37,\n iwhite: 97,\n};\nexport const XTERM_DEF = Object.fromEntries(\n Array(256).fill(0).map((_v, i) => [`x${i}`, i] as [string, number]),\n);\nexport const COLOR_ALL = {...COLOR_DEF, ...XTERM_DEF};\n\n\n/**\n * color support level\n * @default 3\n * @see {@link https://nodejs.org/api/cli.html#force_color1-2-3|Node.js FORCE_COLOR docs}\n */\ntype ColorSpace = 0 | 1;\n\n\n/**\n * COLOR_SPACE - covers all reasonable and most un-reasonable cases\n * @implements nodejs.org/api/cli.html#force_color1-2-3\n * 0=no-color, 1=16, 2=256, 3=true-color\n */\nexport const COLOR_SPACE: ColorSpace = /* @__PURE__ */ (() => {\n try {\n const reap = cliReap();\n const forceColor = reap.any('FORCE_COLOR');\n // force colors\n if (forceColor === '' || (forceColor && !isNaN(Number(forceColor)) && Number(forceColor) > 0)) {\n return 1;\n }\n // no proc\n if (typeof process === 'undefined') { return 0; }\n\n // no color var\n if (reap.any('NO_COLOR') !== null\n || reap.any('NODE_DISABLE_COLORS') !== null\n || (/-mono|dumb/i).test(ENV['TERM'] ?? '')) { return 0; }\n\n // no tty\n if (!(!!process.stdout?.isTTY\n || (!!ENV['PM2_HOME'] && !!ENV['pm_id'])\n || ((GLOBAL_THIS as never)?.['Deno']\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ? (GLOBAL_THIS as any)?.['Deno']?.isatty(1)\n : !!process.stdout?.isTTY))) { return 0; }\n\n // cli\n if ((/^(false|never|no|0)$/i).test(`${reap.opt('color') ?? ''}`.trim())) {\n return 0;\n }\n return 1;\n } catch (_err) { /* ignore */ }\n // catch/error/fallthrough; plays it safe with no colors\n return 0;\n})();\n\n",
8
+ "import {\n COLOR_SPACE,\n ESC,\n RESET,\n COLOR_DEF,\n XTERM_DEF,\n COLOR_ALL,\n} from './constants.ts';\n\ntype EmptyObject = Record<never, never>;\ntype StrNum = string | number;\n\n// fg=foreground\n// bg=background\n// ft=font\n// ue=underline\n// ie=inverse\n// re=reset\n// pr=previous (internal state)\ntype StyleKeys = 'fg' | 'bg' | 'ft' | 'ue' | 'ie' | 're' | 'pr';\ntype AnsiCodeTuple = [on: number, off: number, isCustom?: number];\ntype StyleState = Partial<Record<StyleKeys, AnsiCodeTuple>>;\ntype StainBase = 'black' | 'blue' | 'cyan' | 'green' | 'purple' | 'red' | 'white' | 'yellow';\nexport type StainAnsi = StainBase | `i${StainBase}`;\n\n// generate xterms: x0 to x255\ntype XtermKeysFactory<N extends number, Acc extends string[] = []> =\n Acc['length'] extends N\n ? Acc[number]\n : XtermKeysFactory<N, [...Acc, `x${Acc['length']}`]>;\nexport type StainXterm = XtermKeysFactory<256>;\n\nexport type Stain<\n C extends Record<string, number> = EmptyObject,\n X extends boolean = false,\n> =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ((...args: any[])=> string) &\n {\n bg: Stain<C, X>;\n bold: Stain<C, X>;\n dim: Stain<C, X>;\n normal: Stain<C, X>;\n reset: Stain<C, X>;\n underline: Stain<C, X>;\n inverse: Stain<C, X>;\n } &\n // built-in named colors\n { [K in StainAnsi]: Stain<C, X> } &\n // xterm colors if enabled\n (X extends true ? { [K in StainXterm]: Stain<C, X> } : EmptyObject) &\n // custom colors from opts.colors\n (keyof C extends never ? EmptyObject : { [K in keyof C]: Stain<C, X> });\n\nexport type StainOpts<C extends Record<string, number> = EmptyObject> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n format?: (...args: any[])=> string;\n noColor?: boolean;\n xterm?: boolean;\n colors?: C;\n simpleEscape?: boolean;\n};\n\n\n/**\n * ansi escape-er\n * @note -> without handlin/escapin nesting it simplifies to: `\\x1b[${open}m${str}\\x1b[${close}m`\n * @param {string} str\n * @param {StrNum} open\n * @param {StrNum} close\n * @param {StrNum} fontReplace\n * @return {[type]}\n */\nconst escStain = (str: string, open: StrNum, close: StrNum, fontReplace?: StrNum) => {\n str = typeof str !== 'string' ? String(str) : str; // just in case\n const openStr = ESC + `[${open}m`;\n const closeStr = ESC + `[${close}m`;\n const closeLen = closeStr.length;\n const parts: string[] = [];\n let cursor = 0;\n let seqCount = 0; // count of close sequences for alternating styles\n let resetCount = 0;\n while (true) {\n const idxClose = str.indexOf(closeStr, cursor);\n // next global reset unless it is the reset style\n const idxReset = open === 0 ? -1 : str.indexOf(RESET, cursor);\n let idx = -1;\n let isReset = false;\n // which comes first, cur close sequence or a global reset\n if (idxClose >= 0) {\n if (idxReset >= 0 && idxReset < idxClose) {\n idx = idxReset;\n isReset = true;\n } else {\n idx = idxClose;\n }\n } else if (idxReset >= 0) {\n idx = idxReset;\n isReset = true;\n } else {\n break;\n }\n parts.push(str.substring(cursor, idx));\n\n if (isReset) {\n parts.push(RESET);\n resetCount++;\n // after every second reset restore style\n // e.g: stain.red(`text ${stain.reset('reset')} text`)\n if (resetCount % 2 === 0) { parts.push(openStr); }\n cursor = idx + RESET.length;\n continue;\n }\n\n // a closing sequence; need to determine the correct replacement\n const segment = str.substring(cursor, idx);\n const openInSeg = segment.split(openStr).length;\n const closeInSeg = segment.split(closeStr).length;\n\n let rep = openStr;\n // this roundabout logic is for font styles nesting\n // e.g: stain.bold(`bold ${stain.normal('norm')} bold`)\n if (fontReplace !== undefined && openInSeg <= closeInSeg) {\n // use seqCount to treat the first closeStr as an 'opener' and the second as the 'closer'\n seqCount++;\n const on = ESC + `[${fontReplace}m`; // outer style's open code\n const off = ESC + `[${close}m`; // inner style's open/close code\n rep = (seqCount % 2 === 1) ? on + off : off + on;\n }\n\n parts.push(rep);\n cursor = idx + closeLen;\n }\n parts.push(str.substring(cursor));\n return openStr + parts.join('') + closeStr;\n};\n\n/**\n * simple escape that doesn't handle nested ansi; 1.5-4x+ faster depending on style complexity\n * nested example: stain.red.bold('Bold ' + stain.green.normal('normal') + ' Bold')\n * @param {string} str\n * @param {StrNum} open\n * @param {StrNum} close\n * @param {StrNum} _fontReplace\n * @return {[type]}\n */\nconst escStainSimple = (str: string, open: StrNum, close: StrNum, _fontReplace?: StrNum) =>\n `${ESC}[${open}m` + (typeof str !== 'string' ? String(str) : str) + `${ESC}[${close}m`;\n\n\n/**\n * a nice node typed color api, that isn't \"slow\" at\n * @perf ~6million iter/s - NO_COLOR=~186million iter/s\n */\nfunction createStain<C extends Record<string, number> = EmptyObject>(\n opts?: StainOpts<C> & { xterm?: false }\n): Stain<C, false>;\nfunction createStain<C extends Record<string, number> = EmptyObject>(\n opts: StainOpts<C> & { xterm: true }\n): Stain<C, true>;\nfunction createStain<C extends Record<string, number> = EmptyObject>(\n opts: StainOpts<C> = {},\n): Stain<C, boolean> {\n const {\n colors,\n xterm,\n format = (...args) => args.length > 1\n ? args.join(' ')\n : typeof args[0] !== 'string' ? JSON.stringify(args[0]) : args[0],\n noColor = COLOR_SPACE === 0,\n simpleEscape = false,\n } = opts;\n\n const colorAll: Record<string, number> = colors\n ? {...(xterm ? COLOR_ALL : COLOR_DEF), ...colors}\n : (xterm ? COLOR_ALL : COLOR_DEF);\n\n // provies the same api, but doesn't add color, and much, much, much, faster\n if (noColor) {\n // wrapped to avoid poluting the proto on passed in format\n const ncFormat = opts?.format ? (...args: unknown[]) => format(...args) : format;\n for (const prop of Object.keys(colorAll)\n .concat(['bg', 'bold', 'dim', 'normal', 'reset', 'underline'])) {\n // @ts-expect-error not typable\n ncFormat[prop] = ncFormat;\n }\n return ncFormat as Stain<C, boolean>;\n }\n const escFn = simpleEscape ? escStainSimple : escStain;\n // xterm look-up map to determin if xterm\n // @see {@link https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit}\n const color256: Record<string, number> = colors\n ? (xterm ? {...XTERM_DEF, ...colors} : colors)\n : (xterm ? XTERM_DEF : {});\n\n // our main stain\n const colorProxy = (cur: StyleState = {}) =>\n new Proxy((text: string) => text, {\n get: (_target, prop: string) => {\n const nxt = {...cur};\n const fg = nxt.fg;\n if (colorAll[prop] !== undefined) { // xterm logic\n // keeps track of previous for bg logic\n nxt.pr = [\n fg?.[0] ?? colorAll[prop],\n 39,\n fg?.[2] ?? (color256[prop] !== undefined ? 1 : 0),\n ];\n nxt.fg = [colorAll[prop], 39, color256[prop] !== undefined ? 1 : 0];\n } else if (prop === 'bg' && fg) { // bg/fg logic\n nxt.bg = [fg[0] + (fg[2] || fg[1] === 49 ? 0 : 10), 49, fg[2]] as AnsiCodeTuple;\n // @ts-expect-error to make this type easier we ignore undefined\n if (nxt.pr?.[1] === 39) { nxt.fg = fg[0] === nxt.pr[0] ? undefined : [...nxt.pr]; }\n } else { // font style logic\n const fo = prop === 'bold' ? 1 : prop === 'dim' ? 2 : prop === 'normal' ? 22 : null;\n if (fo) {\n nxt.ft = [fo, 22, 0];\n } else if (prop === 'underline') {\n nxt.ue = [4, 24, 0];\n } else if (prop === 'inverse') {\n nxt.ie = [7, 27, 0];\n } else if (prop === 'reset') {\n nxt.re = [0, 0, 0];\n }\n }\n return colorProxy(nxt);\n },\n apply: (_target, _thisArg, args: string[]) => {\n let res = format(...args);\n // a loop here will dec perf by 6x\n if (cur.re) { return escFn(res, 0, 0); }\n if (cur.fg) { res = escFn(res, (cur.fg[2] ? '38;5;' : '') + cur.fg[0], cur.fg[1]); }\n if (cur.bg) { res = escFn(res, (cur.bg[2] ? '48;5;' : '') + cur.bg[0], cur.bg[1]); }\n if (cur.ft) { res = escFn(res, cur.ft[0], cur.ft[1], cur.ft[0]); }\n if (cur.ue) { res = escFn(res, cur.ue[0], cur.ue[1]); }\n if (cur.ie) { res = escFn(res, cur.ie[0], cur.ie[1]); }\n return res;\n },\n });\n return colorProxy() as Stain<C, boolean>;\n}\n\nconst stain = /* @__PURE__ */ (() => createStain({ xterm: true }))();\n\nexport default createStain;\nexport {\n stain,\n createStain,\n};\n"
9
+ ],
10
+ "mappings": "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",
11
+ "debugId": "923294455343402064756E2164756E21",
12
+ "names": []
13
+ }
@@ -0,0 +1 @@
1
+ var{defineProperty:v,getOwnPropertyNames:u,getOwnPropertyDescriptor:i}=Object,l=Object.prototype.hasOwnProperty;var y=new WeakMap,_=(z)=>{var J=y.get(z),Q;if(J)return J;if(J=v({},"__esModule",{value:!0}),z&&typeof z==="object"||typeof z==="function")u(z).map((Y)=>!l.call(J,Y)&&v(J,Y,{get:()=>z[Y],enumerable:!(Q=i(z,Y))||Q.enumerable}));return y.set(z,J),J};var p=(z,J)=>{for(var Q in J)v(z,Q,{get:J[Q],enumerable:!0,configurable:!0,set:(Y)=>J[Q]=()=>Y})};var r={};p(r,{stain:()=>e,default:()=>zz,createStain:()=>O});module.exports=_(r);var h=(()=>typeof globalThis==="object"?globalThis:(()=>{return function(z){function J(){let Q=this||self;Q.globalThis=Q,delete z.prototype._T_}typeof globalThis!="object"&&(this?J():(z.defineProperty(z.prototype,"_T_",{configurable:!0,get:J}),_T_))}(Object),typeof globalThis==="object"?globalThis:{}})())(),a=(()=>{var z,J,Q,Y;return typeof process==="undefined"?typeof scriptArgs!=="undefined"?scriptArgs:[]:(Y=(h==null?void 0:h.Deno)?(Q=(z=h==null?void 0:h.Deno)==null?void 0:z.args)!=null?Q:((J=process.args)==null?void 0:J.length)?process.args:process.argv:process.argv)!=null?Y:[]})(),c=(()=>{var z,J,Q,Y;return typeof process==="undefined"?typeof((z=h==null?void 0:h.std)==null?void 0:z.getenviron)==="function"?(Y=(Q=(J=h.std).getenviron)==null?void 0:Q.call(J))!=null?Y:{}:{}:!(h==null?void 0:h.Deno)?process.env:(()=>{var M,Z,D,w,P,N;try{return(N=(D=(Z=(M=h==null?void 0:h.Deno)==null?void 0:M.env)==null?void 0:Z.toObject)==null?void 0:D.call(Z))!=null?N:((w=process.env)==null?void 0:w.toObject)?(P=process.env)==null?void 0:P.toObject():process.env}catch(W){}return{}})()})();var x=(z)=>/^['"]/.test(z)?z?.replace(/^(['"])(.*)(['"])$/,(J,Q,Y,M)=>Q===M?x(Y):J):z,m=(z)=>/^-+\w/.test(z??"")&&Number.isNaN(Number(z)),f=(z)=>z?.trim()==="--",k=(z,J=!1,Q=Array.isArray(z)?z:[z])=>J?Q:Q.map((Y)=>[Y,Y.replaceAll(...Y.includes("_")?["_","-"]:["-","_"])]).flat(),o=(z=a,J=c,Q=h,Y=!1)=>{let M=z[0]==="node"?2:z[1]==="run"?3:m(z[0])?0:1,Z=z.map(String).slice(M),D=z.map(String).slice(0,M),w=!!Z.find(f),P=(K,U=!1)=>{let F=k(K,Y);for(let V=0;V<Z.length;V++){let C=Z[V];if(f(C))break;if(!C||!m(C))continue;let I=/=/.test(C),b=F.map((B)=>{let[S,...n]=C.replace(m(B)?/(?!)/:/^\s*?-+/,"").split(I&&U?`${B}=`:new RegExp(`^${B}$`,Y?"":"i"));return!S?.length?n.join(B):S===B?B:null}).find((B)=>B!==null)??0;if(b===0)continue;if(!U)return Z.splice(V,1),!0;if(I)return Z.splice(V,1),x(b);let G=Z[V+1];if(G!==void 0&&!f(G)&&!m(G))return Z.splice(V,2),x(G)}return null},N=(K)=>k(K,Y).map((U)=>(U in J)?J[U]:(U in Q)?Q[U]:null).filter(Boolean)[0]??null,W=(K)=>P(K,!1)!==null?!0:null,q=(K)=>P(K,!0);return{any:(K,U)=>q(K)??W(K)??N(K)??(U!==void 0?U:null),cmd:()=>D,cur:()=>Z,end:()=>w,env:N,flag:W,opt:q,pos:()=>{let K=[];for(let U=0;U<Z.length;U++){let F=Z[U];if(!F)continue;if(f(F))return[...K,...Z.slice(U+1)];if(m(F))continue;K.push(F)}return K}}};var L=o;var j=(()=>typeof globalThis==="object"?globalThis:(()=>{return function(z){function J(){let Q=this||self;Q.globalThis=Q,delete z.prototype._T_}typeof globalThis!="object"&&(this?J():(z.defineProperty(z.prototype,"_T_",{configurable:!0,get:J}),_T_))}(Object),typeof globalThis==="object"?globalThis:{}})())();var E=(()=>{var z,J,Q,Y;return typeof process==="undefined"?typeof((z=j==null?void 0:j.std)==null?void 0:z.getenviron)==="function"?(Y=(Q=(J=j.std).getenviron)==null?void 0:Q.call(J))!=null?Y:{}:{}:!(j==null?void 0:j.Deno)?process.env:(()=>{var M,Z,D,w,P,N;try{return(N=(D=(Z=(M=j==null?void 0:j.Deno)==null?void 0:M.env)==null?void 0:Z.toObject)==null?void 0:D.call(Z))!=null?N:((w=process.env)==null?void 0:w.toObject)?(P=process.env)==null?void 0:P.toObject():process.env}catch(W){}return{}})()})();var H="\x1B",T="\x1B[0m",d={black:30,iblack:90,red:31,ired:91,green:32,igreen:92,yellow:33,iyellow:93,blue:34,iblue:94,purple:35,ipurple:95,cyan:36,icyan:96,white:37,iwhite:97},R=Object.fromEntries(Array(256).fill(0).map((z,J)=>[`x${J}`,J])),A={...d,...R},g=(()=>{try{let z=L(),J=z.any("FORCE_COLOR");if(J===""||J&&!isNaN(Number(J))&&Number(J)>0)return 1;if(typeof process==="undefined")return 0;if(z.any("NO_COLOR")!==null||z.any("NODE_DISABLE_COLORS")!==null||/-mono|dumb/i.test(E.TERM??""))return 0;if(!(!!process.stdout?.isTTY||!!E.PM2_HOME&&!!E.pm_id||(j?.Deno?j?.Deno?.isatty(1):!!process.stdout?.isTTY)))return 0;if(/^(false|never|no|0)$/i.test(`${z.opt("color")??""}`.trim()))return 0;return 1}catch(z){}return 0})();var s=(z,J,Q,Y)=>{z=typeof z!=="string"?String(z):z;let M=H+`[${J}m`,Z=H+`[${Q}m`,D=Z.length,w=[],P=0,N=0,W=0;while(!0){let q=z.indexOf(Z,P),X=J===0?-1:z.indexOf(T,P),$=-1,K=!1;if(q>=0)if(X>=0&&X<q)$=X,K=!0;else $=q;else if(X>=0)$=X,K=!0;else break;if(w.push(z.substring(P,$)),K){if(w.push(T),W++,W%2===0)w.push(M);P=$+T.length;continue}let U=z.substring(P,$),F=U.split(M).length,V=U.split(Z).length,C=M;if(Y!==void 0&&F<=V){N++;let I=H+`[${Y}m`,b=H+`[${Q}m`;C=N%2===1?I+b:b+I}w.push(C),P=$+D}return w.push(z.substring(P)),M+w.join("")+Z},t=(z,J,Q,Y)=>`${H}[${J}m`+(typeof z!=="string"?String(z):z)+`${H}[${Q}m`;function O(z={}){let{colors:J,xterm:Q,format:Y=(...W)=>W.length>1?W.join(" "):typeof W[0]!=="string"?JSON.stringify(W[0]):W[0],noColor:M=g===0,simpleEscape:Z=!1}=z,D=J?{...Q?A:d,...J}:Q?A:d;if(M){let W=z?.format?(...q)=>Y(...q):Y;for(let q of Object.keys(D).concat(["bg","bold","dim","normal","reset","underline"]))W[q]=W;return W}let w=Z?t:s,P=J?Q?{...R,...J}:J:Q?R:{},N=(W={})=>new Proxy((q)=>q,{get:(q,X)=>{let $={...W},K=$.fg;if(D[X]!==void 0)$.pr=[K?.[0]??D[X],39,K?.[2]??(P[X]!==void 0?1:0)],$.fg=[D[X],39,P[X]!==void 0?1:0];else if(X==="bg"&&K){if($.bg=[K[0]+(K[2]||K[1]===49?0:10),49,K[2]],$.pr?.[1]===39)$.fg=K[0]===$.pr[0]?void 0:[...$.pr]}else{let U=X==="bold"?1:X==="dim"?2:X==="normal"?22:null;if(U)$.ft=[U,22,0];else if(X==="underline")$.ue=[4,24,0];else if(X==="inverse")$.ie=[7,27,0];else if(X==="reset")$.re=[0,0,0]}return N($)},apply:(q,X,$)=>{let K=Y(...$);if(W.re)return w(K,0,0);if(W.fg)K=w(K,(W.fg[2]?"38;5;":"")+W.fg[0],W.fg[1]);if(W.bg)K=w(K,(W.bg[2]?"48;5;":"")+W.bg[0],W.bg[1]);if(W.ft)K=w(K,W.ft[0],W.ft[1],W.ft[0]);if(W.ue)K=w(K,W.ue[0],W.ue[1]);if(W.ie)K=w(K,W.ie[0],W.ie[1]);return K}});return N()}var e=(()=>O({xterm:!0}))(),zz=O;
@@ -0,0 +1 @@
1
+ var h=(()=>typeof globalThis==="object"?globalThis:(()=>{return function(z){function K(){let W=this||self;W.globalThis=W,delete z.prototype._T_}typeof globalThis!="object"&&(this?K():(z.defineProperty(z.prototype,"_T_",{configurable:!0,get:K}),_T_))}(Object),typeof globalThis==="object"?globalThis:{}})())(),g=(()=>{var z,K,W,Y;return typeof process==="undefined"?typeof scriptArgs!=="undefined"?scriptArgs:[]:(Y=(h==null?void 0:h.Deno)?(W=(z=h==null?void 0:h.Deno)==null?void 0:z.args)!=null?W:((K=process.args)==null?void 0:K.length)?process.args:process.argv:process.argv)!=null?Y:[]})(),n=(()=>{var z,K,W,Y;return typeof process==="undefined"?typeof((z=h==null?void 0:h.std)==null?void 0:z.getenviron)==="function"?(Y=(W=(K=h.std).getenviron)==null?void 0:W.call(K))!=null?Y:{}:{}:!(h==null?void 0:h.Deno)?process.env:(()=>{var M,Z,D,w,P,N;try{return(N=(D=(Z=(M=h==null?void 0:h.Deno)==null?void 0:M.env)==null?void 0:Z.toObject)==null?void 0:D.call(Z))!=null?N:((w=process.env)==null?void 0:w.toObject)?(P=process.env)==null?void 0:P.toObject():process.env}catch(Q){}return{}})()})();var v=(z)=>/^['"]/.test(z)?z?.replace(/^(['"])(.*)(['"])$/,(K,W,Y,M)=>W===M?v(Y):K):z,m=(z)=>/^-+\w/.test(z??"")&&Number.isNaN(Number(z)),f=(z)=>z?.trim()==="--",O=(z,K=!1,W=Array.isArray(z)?z:[z])=>K?W:W.map((Y)=>[Y,Y.replaceAll(...Y.includes("_")?["_","-"]:["-","_"])]).flat(),u=(z=g,K=n,W=h,Y=!1)=>{let M=z[0]==="node"?2:z[1]==="run"?3:m(z[0])?0:1,Z=z.map(String).slice(M),D=z.map(String).slice(0,M),w=!!Z.find(f),P=(J,U=!1)=>{let F=O(J,Y);for(let V=0;V<Z.length;V++){let C=Z[V];if(f(C))break;if(!C||!m(C))continue;let I=/=/.test(C),b=F.map((B)=>{let[A,...L]=C.replace(m(B)?/(?!)/:/^\s*?-+/,"").split(I&&U?`${B}=`:new RegExp(`^${B}$`,Y?"":"i"));return!A?.length?L.join(B):A===B?B:null}).find((B)=>B!==null)??0;if(b===0)continue;if(!U)return Z.splice(V,1),!0;if(I)return Z.splice(V,1),v(b);let G=Z[V+1];if(G!==void 0&&!f(G)&&!m(G))return Z.splice(V,2),v(G)}return null},N=(J)=>O(J,Y).map((U)=>(U in K)?K[U]:(U in W)?W[U]:null).filter(Boolean)[0]??null,Q=(J)=>P(J,!1)!==null?!0:null,q=(J)=>P(J,!0);return{any:(J,U)=>q(J)??Q(J)??N(J)??(U!==void 0?U:null),cmd:()=>D,cur:()=>Z,end:()=>w,env:N,flag:Q,opt:q,pos:()=>{let J=[];for(let U=0;U<Z.length;U++){let F=Z[U];if(!F)continue;if(f(F))return[...J,...Z.slice(U+1)];if(m(F))continue;J.push(F)}return J}}};var S=u;var j=(()=>typeof globalThis==="object"?globalThis:(()=>{return function(z){function K(){let W=this||self;W.globalThis=W,delete z.prototype._T_}typeof globalThis!="object"&&(this?K():(z.defineProperty(z.prototype,"_T_",{configurable:!0,get:K}),_T_))}(Object),typeof globalThis==="object"?globalThis:{}})())();var E=(()=>{var z,K,W,Y;return typeof process==="undefined"?typeof((z=j==null?void 0:j.std)==null?void 0:z.getenviron)==="function"?(Y=(W=(K=j.std).getenviron)==null?void 0:W.call(K))!=null?Y:{}:{}:!(j==null?void 0:j.Deno)?process.env:(()=>{var M,Z,D,w,P,N;try{return(N=(D=(Z=(M=j==null?void 0:j.Deno)==null?void 0:M.env)==null?void 0:Z.toObject)==null?void 0:D.call(Z))!=null?N:((w=process.env)==null?void 0:w.toObject)?(P=process.env)==null?void 0:P.toObject():process.env}catch(Q){}return{}})()})();var H="\x1B",T="\x1B[0m",d={black:30,iblack:90,red:31,ired:91,green:32,igreen:92,yellow:33,iyellow:93,blue:34,iblue:94,purple:35,ipurple:95,cyan:36,icyan:96,white:37,iwhite:97},R=Object.fromEntries(Array(256).fill(0).map((z,K)=>[`x${K}`,K])),x={...d,...R},y=(()=>{try{let z=S(),K=z.any("FORCE_COLOR");if(K===""||K&&!isNaN(Number(K))&&Number(K)>0)return 1;if(typeof process==="undefined")return 0;if(z.any("NO_COLOR")!==null||z.any("NODE_DISABLE_COLORS")!==null||/-mono|dumb/i.test(E.TERM??""))return 0;if(!(!!process.stdout?.isTTY||!!E.PM2_HOME&&!!E.pm_id||(j?.Deno?j?.Deno?.isatty(1):!!process.stdout?.isTTY)))return 0;if(/^(false|never|no|0)$/i.test(`${z.opt("color")??""}`.trim()))return 0;return 1}catch(z){}return 0})();var i=(z,K,W,Y)=>{z=typeof z!=="string"?String(z):z;let M=H+`[${K}m`,Z=H+`[${W}m`,D=Z.length,w=[],P=0,N=0,Q=0;while(!0){let q=z.indexOf(Z,P),X=K===0?-1:z.indexOf(T,P),$=-1,J=!1;if(q>=0)if(X>=0&&X<q)$=X,J=!0;else $=q;else if(X>=0)$=X,J=!0;else break;if(w.push(z.substring(P,$)),J){if(w.push(T),Q++,Q%2===0)w.push(M);P=$+T.length;continue}let U=z.substring(P,$),F=U.split(M).length,V=U.split(Z).length,C=M;if(Y!==void 0&&F<=V){N++;let I=H+`[${Y}m`,b=H+`[${W}m`;C=N%2===1?I+b:b+I}w.push(C),P=$+D}return w.push(z.substring(P)),M+w.join("")+Z},l=(z,K,W,Y)=>`${H}[${K}m`+(typeof z!=="string"?String(z):z)+`${H}[${W}m`;function k(z={}){let{colors:K,xterm:W,format:Y=(...Q)=>Q.length>1?Q.join(" "):typeof Q[0]!=="string"?JSON.stringify(Q[0]):Q[0],noColor:M=y===0,simpleEscape:Z=!1}=z,D=K?{...W?x:d,...K}:W?x:d;if(M){let Q=z?.format?(...q)=>Y(...q):Y;for(let q of Object.keys(D).concat(["bg","bold","dim","normal","reset","underline"]))Q[q]=Q;return Q}let w=Z?l:i,P=K?W?{...R,...K}:K:W?R:{},N=(Q={})=>new Proxy((q)=>q,{get:(q,X)=>{let $={...Q},J=$.fg;if(D[X]!==void 0)$.pr=[J?.[0]??D[X],39,J?.[2]??(P[X]!==void 0?1:0)],$.fg=[D[X],39,P[X]!==void 0?1:0];else if(X==="bg"&&J){if($.bg=[J[0]+(J[2]||J[1]===49?0:10),49,J[2]],$.pr?.[1]===39)$.fg=J[0]===$.pr[0]?void 0:[...$.pr]}else{let U=X==="bold"?1:X==="dim"?2:X==="normal"?22:null;if(U)$.ft=[U,22,0];else if(X==="underline")$.ue=[4,24,0];else if(X==="inverse")$.ie=[7,27,0];else if(X==="reset")$.re=[0,0,0]}return N($)},apply:(q,X,$)=>{let J=Y(...$);if(Q.re)return w(J,0,0);if(Q.fg)J=w(J,(Q.fg[2]?"38;5;":"")+Q.fg[0],Q.fg[1]);if(Q.bg)J=w(J,(Q.bg[2]?"48;5;":"")+Q.bg[0],Q.bg[1]);if(Q.ft)J=w(J,Q.ft[0],Q.ft[1],Q.ft[0]);if(Q.ue)J=w(J,Q.ue[0],Q.ue[1]);if(Q.ie)J=w(J,Q.ie[0],Q.ie[1]);return J}});return N()}var t=(()=>k({xterm:!0}))(),r=k;export{t as stain,r as default,k as createStain};
@@ -0,0 +1,13 @@
1
+ export type EmptyObject = Record<never, never>;
2
+ /**
3
+ * color support level with cache control (negative=disable caching)
4
+ * @NOTE negatives == positive, but a neg disables caching to force a plugin to always re-run
5
+ * @nsole param:5
6
+ * @default 3
7
+ * @see {@link https://nodejs.org/api/cli.html#force_color1-2-3|Node.js FORCE_COLOR docs}
8
+ */
9
+ export type ColorSpace = -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3;
10
+ type StainBaseColors = 'black' | 'blue' | 'cyan' | 'green' | 'purple' | 'red' | 'white' | 'yellow';
11
+ export type StainColors = StainBaseColors | `i${StainBaseColors}`;
12
+ export {};
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,13 @@
1
+ export type EmptyObject = Record<never, never>;
2
+ /**
3
+ * color support level with cache control (negative=disable caching)
4
+ * @NOTE negatives == positive, but a neg disables caching to force a plugin to always re-run
5
+ * @nsole param:5
6
+ * @default 3
7
+ * @see {@link https://nodejs.org/api/cli.html#force_color1-2-3|Node.js FORCE_COLOR docs}
8
+ */
9
+ export type ColorSpace = -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3;
10
+ type StainBaseColors = 'black' | 'blue' | 'cyan' | 'green' | 'purple' | 'red' | 'white' | 'yellow';
11
+ export type StainColors = StainBaseColors | `i${StainBaseColors}`;
12
+ export {};
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,13 @@
1
+ export type EmptyObject = Record<never, never>;
2
+ /**
3
+ * color support level with cache control (negative=disable caching)
4
+ * @NOTE negatives == positive, but a neg disables caching to force a plugin to always re-run
5
+ * @nsole param:5
6
+ * @default 3
7
+ * @see {@link https://nodejs.org/api/cli.html#force_color1-2-3|Node.js FORCE_COLOR docs}
8
+ */
9
+ export type ColorSpace = -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3;
10
+ type StainBaseColors = 'black' | 'blue' | 'cyan' | 'green' | 'purple' | 'red' | 'white' | 'yellow';
11
+ export type StainColors = StainBaseColors | `i${StainBaseColors}`;
12
+ export {};
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testBin/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AA8L3D,KAAK,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AACnG,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type EmptyObject = Record<never, never>;
2
+ /**
3
+ * color support level with cache control (negative=disable caching)
4
+ * @NOTE negatives == positive, but a neg disables caching to force a plugin to always re-run
5
+ * @nsole param:5
6
+ * @default 3
7
+ * @see {@link https://nodejs.org/api/cli.html#force_color1-2-3|Node.js FORCE_COLOR docs}
8
+ */
9
+ export type ColorSpace = -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3;
10
+ type StainBaseColors = 'black' | 'blue' | 'cyan' | 'green' | 'purple' | 'red' | 'white' | 'yellow';
11
+ export type StainColors = StainBaseColors | `i${StainBaseColors}`;
12
+ export {};
13
+ //# sourceMappingURL=tmp.d.ts.map
@@ -0,0 +1,13 @@
1
+ export type EmptyObject = Record<never, never>;
2
+ /**
3
+ * color support level with cache control (negative=disable caching)
4
+ * @NOTE negatives == positive, but a neg disables caching to force a plugin to always re-run
5
+ * @nsole param:5
6
+ * @default 3
7
+ * @see {@link https://nodejs.org/api/cli.html#force_color1-2-3|Node.js FORCE_COLOR docs}
8
+ */
9
+ export type ColorSpace = -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3;
10
+ type StainBaseColors = 'black' | 'blue' | 'cyan' | 'green' | 'purple' | 'red' | 'white' | 'yellow';
11
+ export type StainColors = StainBaseColors | `i${StainBaseColors}`;
12
+ export {};
13
+ //# sourceMappingURL=tmp.d.ts.map
@@ -0,0 +1,13 @@
1
+ export type EmptyObject = Record<never, never>;
2
+ /**
3
+ * color support level with cache control (negative=disable caching)
4
+ * @NOTE negatives == positive, but a neg disables caching to force a plugin to always re-run
5
+ * @nsole param:5
6
+ * @default 3
7
+ * @see {@link https://nodejs.org/api/cli.html#force_color1-2-3|Node.js FORCE_COLOR docs}
8
+ */
9
+ export type ColorSpace = -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3;
10
+ type StainBaseColors = 'black' | 'blue' | 'cyan' | 'green' | 'purple' | 'red' | 'white' | 'yellow';
11
+ export type StainColors = StainBaseColors | `i${StainBaseColors}`;
12
+ export {};
13
+ //# sourceMappingURL=tmp.d.ts.map