@visulima/colorize 1.0.0 → 1.1.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## @visulima/colorize [1.1.0](https://github.com/visulima/visulima/compare/@visulima/colorize@1.0.1...@visulima/colorize@1.1.0) (2024-02-13)
2
+
3
+
4
+ ### Features
5
+
6
+ * add supports the argument as number and tests for it ([47cff3e](https://github.com/visulima/visulima/commit/47cff3e579f664cf11230cfcc5315b71bdc9fb2e))
7
+
8
+ ## @visulima/colorize [1.0.1](https://github.com/visulima/visulima/compare/@visulima/colorize@1.0.0...@visulima/colorize@1.0.1) (2024-01-31)
9
+
10
+
11
+
12
+ ### Dependencies
13
+
14
+ * **@visulima/is-ansi-color-supported:** upgraded to 1.1.0
15
+
1
16
  ## @visulima/colorize 1.0.0 (2024-01-28)
2
17
 
3
18
 
package/README.md CHANGED
@@ -49,7 +49,7 @@ For instance, you can use `green` to make `` green`Hello World!` `` pop, `` red`
49
49
  - Supports **Deno**, **Next.JS** runtimes and **Browser**
50
50
  - Expressive API
51
51
  - Doesn't extend `String.prototype`
52
- - Up to **x3 faster** than **chalk**, [see benchmarks](#benchmark) and only **4.43 KB** dist code
52
+ - Up to **x3 faster** than **chalk**, [see benchmarks](#benchmark)
53
53
  - **Auto detects** color support
54
54
  - **TypeScript** support out of the box
55
55
  - Clean and focused
@@ -403,17 +403,17 @@ If you're on Windows, do yourself a favor and use [Windows Terminal](https://git
403
403
 
404
404
  ## Comparison of most popular libraries
405
405
 
406
- | Library<br>**\*\***\_\_**\*\***<br> - name<br> - named import | Code size | Naming colors | ANSI 256<br>colors | True-<br>color | Chained<br>syntax | Nested<br>template strings | New<br>Line | Supports<br>CLI params |
407
- | :---------------------------------------------------------------- | :----------------------------------------------------------------------------- | :----------------------------------------: | :----------------: | :------------: | :---------------: | :------------------------: | :---------: | :------------------------------------------------------- |
406
+ | Library<br>**\*\***\_\_**\*\***<br> - name<br> - named import | Code size | Naming colors | ANSI 256<br>colors | True-<br>color | Chained<br>syntax | Nested<br>template strings | New<br>Line | Supports<br>CLI params |
407
+ | :---------------------------------------------------------------- | :----------------------------------------------------------------------------- | :----------------------------------------: | :----------------: | :------------: | :---------------: | :------------------------: | :---------: | :------------------------------------------------------: |
408
408
  | [`@visulima/colorize`][npm-url]<br><nobr>`✅ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/@visulima/colorize) | **standard**<br>`16` colors | ✅ | ✅ | ✅ | ✅ | ✅ | `NO_COLOR`<br>`FORCE_COLOR`<br>`--no-color`<br>`--color` |
409
- | [`ansi-colors`][ansi-colors]<br><nobr>`❌ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/ansi-colors) | **standard**<br>`16` colors | ❌ | ❌ | ✅ | ❌ | ✅ | only<br>`FORCE_COLOR` |
409
+ | [`ansi-colors`][ansi-colors]<br><nobr>`❌ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/ansi-colors) | **standard**<br>`16` colors | ❌ | ❌ | ✅ | ❌ | ✅ | only<br>`FORCE_COLOR` |
410
410
  | [`ansis`][ansis]<br><nobr>`✅ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/ansis) | **standard**<br>`16` colors | ✅ | ✅ | ✅ | ✅ | ✅ | `NO_COLOR`<br>`FORCE_COLOR`<br>`--no-color`<br>`--color` |
411
411
  | [`chalk`][chalk]<br><nobr>`❌ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/chalk) | **standard**<br>`16` colors | ✅ | ✅ | ✅ | ❌ | ✅ | `NO_COLOR`<br>`FORCE_COLOR`<br>`--no-color`<br>`--color` |
412
- | [`cli-color`][cli-color]<br><nobr>`❌ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/cli-color) | **standard**<br>`16` colors | ✅ | ❌ | ✅ | ❌ | ❌ | only<br>`NO_COLOR` |
412
+ | [`cli-color`][cli-color]<br><nobr>`❌ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/cli-color) | **standard**<br>`16` colors | ✅ | ❌ | ✅ | ❌ | ❌ | only<br>`NO_COLOR` |
413
413
  | [`colorette`][colorette]<br><nobr>`✅ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/colorette) | **standard**<br>`16` colors | ❌ | ❌ | ❌ | ❌ | ❌ | `NO_COLOR`<br>`FORCE_COLOR`<br>`--no-color`<br>`--color` |
414
- | [`colors-cli`][colors-cli]<br><nobr>`❌ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/colors-cli) | <nobr>_non-standard_</nobr><br>`16` colors | ✅ | ❌ | ✅ | ❌ | ✅ | only<br>`--no-color`<br>`--color` |
415
- | [`colors.js`][colors.js]<br><nobr>`❌ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/colors.js) | <nobr>_non-standard_</nobr><br>`16` colors | ❌ | ❌ | ✅ | ❌ | ✅ | only<br>`FORCE_COLOR`<br>`--no-color`<br>`--color` |
416
- | [`kleur`][kleur]<br><nobr>`✅ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/kleur) | **standard**<br>`8` colors | ❌ | ❌ | ✅ | ❌ | ❌ | only<br>`NO_COLOR`<br>`FORCE_COLOR` |
414
+ | [`colors-cli`][colors-cli]<br><nobr>`❌ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/colors-cli) | <nobr>_non-standard_</nobr><br>`16` colors | ✅ | ❌ | ✅ | ❌ | ✅ | only<br>`--no-color`<br>`--color` |
415
+ | [`colors.js`][colors.js]<br><nobr>`❌ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/colors.js) | <nobr>_non-standard_</nobr><br>`16` colors | ❌ | ❌ | ✅ | ❌ | ✅ | only<br>`FORCE_COLOR`<br>`--no-color`<br>`--color` |
416
+ | [`kleur`][kleur]<br><nobr>`✅ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/kleur) | **standard**<br>`8` colors | ❌ | ❌ | ✅ | ❌ | ❌ | only<br>`NO_COLOR`<br>`FORCE_COLOR` |
417
417
  | [`picocolors`][picocolors]<br><nobr>`❌ named import`</nobr> | ![npm bundle size](https://img.shields.io/bundlephobia/min/picocolors) | **standard**<br>`8` colors | ❌ | ❌ | ❌ | ❌ | ❌ | `NO_COLOR`<br>`FORCE_COLOR`<br>`--no-color`<br>`--color` |
418
418
 
419
419
  > **Note**
package/dist/index.cjs CHANGED
@@ -4,10 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var isAnsiColorSupported = require('@visulima/is-ansi-color-supported');
6
6
 
7
- function c({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}var b=e=>{let t=e.replace("#","");if(t.length===3)t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2];else if(t.length!==6)return [0,0,0];let o=Number.parseInt(t,16);return [o>>16&255,o>>8&255,o&255]},l=(e,t,o)=>t>e?t:e>o?o:e,C=(e,t,o)=>{if(t==="")return e;let n=e.indexOf(t);if(n<0)return e;let i=t.length,s=0,g="";for(;~n;)g+=e.slice(s,n)+o,s=n+i,n=e.indexOf(t,s);return g+e.slice(s)};var r=isAnsiColorSupported.isColorSupported()>0?(e,t)=>({close:"\x1B["+t+"m",open:"\x1B["+e+"m"}):()=>({close:"",open:""}),R=e=>r("38;5;"+e,39),x=e=>r("48;5;"+e,49),h=(e,t,o)=>r("38;2;"+e+";"+t+";"+o,39),k=(e,t,o)=>r("48;2;"+e+";"+t+";"+o,49),p={bold:r(1,22),dim:r(2,22),hidden:r(8,28),inverse:r(7,27),italic:r(3,23),overline:r(53,55),reset:r(0,0),strike:r(9,29),strikethrough:r(9,29),underline:r(4,24),visible:{close:"",open:""}},y={bgBlack:r(40,49),bgBlackBright:r(100,49),bgBlue:r(44,49),bgBlueBright:r(104,49),bgCyan:r(46,49),bgCyanBright:r(106,49),bgGray:r(100,49),bgGreen:r(42,49),bgGreenBright:r(102,49),bgGrey:r(100,49),bgMagenta:r(45,49),bgMagentaBright:r(105,49),bgRed:r(41,49),bgRedBright:r(101,49),bgWhite:r(47,49),bgWhiteBright:r(107,49),bgYellow:r(43,49),bgYellowBright:r(103,49),black:r(30,39),blackBright:r(90,39),blue:r(34,39),blueBright:r(94,39),cyan:r(36,39),cyanBright:r(96,39),gray:r(90,39),green:r(32,39),greenBright:r(92,39),grey:r(90,39),magenta:r(35,39),magentaBright:r(95,39),red:r(31,39),redBright:r(91,39),white:r(37,39),whiteBright:r(97,39),yellow:r(33,39),yellowBright:r(93,39)},u={bg:e=>x(l(e,0,255)),bgHex:e=>k(...b(e)),bgRgb:(e,t,o)=>k(l(e,0,255),l(t,0,255),l(o,0,255)),fg:e=>R(l(e,0,255)),hex:e=>h(...b(e)),rgb:(e,t,o)=>h(l(e,0,255),l(t,0,255),l(o,0,255))};var a={},m=null,S=(e,t,o)=>{if(!e)return "";let n=e.raw==null?e:String.raw(e,...t);if(n.includes("\x1B"))for(let i=o;i;i=i.props)n=C(n,i.close,i.open);return n.includes(`
8
- `)&&(n=n.replace(/(\r*\n)/g,o.closeStack+"$1"+o.openStack)),o.openStack+n+o.closeStack},f=({props:e},{close:t,open:o})=>{let n=(e?.openStack??"")+o,i=t+(e?.closeStack??""),s=(g,...A)=>S(g,A,s.props);return Object.setPrototypeOf(s,m),s.props={close:t,closeStack:i,open:o,openStack:n,props:e},s.open=n,s.close=i,s},z=function(){let e=t=>t;e.strip=t=>t.replaceAll(c(),"");for(let t in y)a[t]={get(){let o=f(this,y[t]);return Object.defineProperty(this,t,{value:o}),o}};for(let t in p)a[t]={get(){let o=f(this,p[t]);return Object.defineProperty(this,t,{value:o}),o}};return m=Object.defineProperties({},a),Object.setPrototypeOf(e,m),e};for(let e in u)a[e]={get(){return (...t)=>f(this,u[e](...t))}};a.ansi256=a.fg;a.bgAnsi256=a.bg;var d=z;var D=new d,q=D,H=d;
7
+ function c({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}var b=e=>{let t=e.replace("#","");if(t.length===3)t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2];else if(t.length!==6)return [0,0,0];let o=Number.parseInt(t,16);return [o>>16&255,o>>8&255,o&255]},l=(e,t,o)=>t>e?t:e>o?o:e,C=(e,t,o)=>{if(t==="")return e;let n=e.indexOf(t);if(n<0)return e;let i=t.length,s=0,g="";for(;~n;)g+=e.slice(s,n)+o,s=n+i,n=e.indexOf(t,s);return g+e.slice(s)};var r=isAnsiColorSupported.isColorSupported()>0?(e,t)=>({close:"\x1B["+t+"m",open:"\x1B["+e+"m"}):()=>({close:"",open:""}),R=e=>r("38;5;"+e,39),x=e=>r("48;5;"+e,49),h=(e,t,o)=>r("38;2;"+e+";"+t+";"+o,39),k=(e,t,o)=>r("48;2;"+e+";"+t+";"+o,49),p={bold:r(1,22),dim:r(2,22),hidden:r(8,28),inverse:r(7,27),italic:r(3,23),overline:r(53,55),reset:r(0,0),strike:r(9,29),strikethrough:r(9,29),underline:r(4,24),visible:{close:"",open:""}},u={bgBlack:r(40,49),bgBlackBright:r(100,49),bgBlue:r(44,49),bgBlueBright:r(104,49),bgCyan:r(46,49),bgCyanBright:r(106,49),bgGray:r(100,49),bgGreen:r(42,49),bgGreenBright:r(102,49),bgGrey:r(100,49),bgMagenta:r(45,49),bgMagentaBright:r(105,49),bgRed:r(41,49),bgRedBright:r(101,49),bgWhite:r(47,49),bgWhiteBright:r(107,49),bgYellow:r(43,49),bgYellowBright:r(103,49),black:r(30,39),blackBright:r(90,39),blue:r(34,39),blueBright:r(94,39),cyan:r(36,39),cyanBright:r(96,39),gray:r(90,39),green:r(32,39),greenBright:r(92,39),grey:r(90,39),magenta:r(35,39),magentaBright:r(95,39),red:r(31,39),redBright:r(91,39),white:r(37,39),whiteBright:r(97,39),yellow:r(33,39),yellowBright:r(93,39)},y={bg:e=>x(l(e,0,255)),bgHex:e=>k(...b(e)),bgRgb:(e,t,o)=>k(l(e,0,255),l(t,0,255),l(o,0,255)),fg:e=>R(l(e,0,255)),hex:e=>h(...b(e)),rgb:(e,t,o)=>h(l(e,0,255),l(t,0,255),l(o,0,255))};var a={},m=null,S=(e,t,o)=>{if(!e)return "";let n=e.raw==null?`${e}`:String.raw(e,...t);if(n.includes("\x1B"))for(let i=o;i;i=i.props)n=C(n,i.close,i.open);return n.includes(`
8
+ `)&&(n=n.replace(/(\r*\n)/g,o.closeStack+"$1"+o.openStack)),o.openStack+n+o.closeStack},f=({props:e},{close:t,open:o})=>{let n=(e?.openStack??"")+o,i=t+(e?.closeStack??""),s=(g,...A)=>S(g,A,s.props);return Object.setPrototypeOf(s,m),s.props={close:t,closeStack:i,open:o,openStack:n,props:e},s.open=n,s.close=i,s},z=function(){let e=t=>`${t}`;e.strip=t=>t.replaceAll(c(),"");for(let t in u)a[t]={get(){let o=f(this,u[t]);return Object.defineProperty(this,t,{value:o}),o}};for(let t in p)a[t]={get(){let o=f(this,p[t]);return Object.defineProperty(this,t,{value:o}),o}};return m=Object.defineProperties({},a),Object.setPrototypeOf(e,m),e};for(let e in y)a[e]={get(){return (...t)=>f(this,y[e](...t))}};a.ansi256=a.fg;a.bgAnsi256=a.bg;var d=z;var D=new d,q=D,$=d;
9
9
 
10
10
  module.exports = q;
11
- module.exports.Colorize = H;
11
+ module.exports.Colorize = $;
12
12
  //# sourceMappingURL=out.js.map
13
13
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/ansi-regex@6.0.1/node_modules/ansi-regex/index.js","../src/ansi-codes.ts","../src/utils.ts","../src/colorize.ts","../src/index.cts"],"names":["ansiRegex","onlyFirst","pattern","isColorSupported","hexToRgb","hex","color","number_","clamp","min","max","stringReplaceAll","string_","searchValue","replaceValue","pos","substringLength","lastPos","result","esc","open","close","createAnsi256","code","createBgAnsi256","createRgb","r","g","b","createBgRgb","baseStyles","baseColors","styleMethods","styles","stylePrototype","wrapText","strings","values","properties","string","currentProperties","createStyle","props","openStack","closeStack","style","Colorize","self","value","name","arguments_","colorize_default","colorize","src_default"],"mappings":"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","sourcesContent":["export default function ansiRegex({onlyFirst = false} = {}) {\n\tconst pattern = [\n\t '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","/**\n * Modified copy of https://github.com/webdiscus/ansis/blob/master/src/ansi-codes.js\n *\n * ISC License\n *\n * Copyright (c) 2023, webdiscus\n */\n\nimport { isColorSupported } from \"@visulima/is-ansi-color-supported\";\n\nimport type { AnsiColors, AnsiStyles, ColorData } from \"./types\";\nimport { clamp, hexToRgb } from \"./utils\";\n\nconst esc: (open: number | string, close: number | string) => ColorData =\n isColorSupported() > 0\n ? (open: number | string, close: number | string): ColorData => {\n // eslint-disable-next-line prefer-template\n return { close: \"\\u001B[\" + close + \"m\", open: \"\\u001B[\" + open + \"m\" };\n }\n : (): ColorData => {\n return { close: \"\", open: \"\" };\n };\n\n// eslint-disable-next-line prefer-template\nconst createAnsi256 = (code: number | string): ColorData => esc(\"38;5;\" + code, 39);\n// eslint-disable-next-line prefer-template\nconst createBgAnsi256 = (code: number | string): ColorData => esc(\"48;5;\" + code, 49);\n// eslint-disable-next-line prefer-template\nconst createRgb = (r: number | string, g: number | string, b: number | string): ColorData => esc(\"38;2;\" + r + \";\" + g + \";\" + b, 39);\n// eslint-disable-next-line prefer-template\nconst createBgRgb = (r: number | string, g: number | string, b: number | string): ColorData => esc(\"48;2;\" + r + \";\" + g + \";\" + b, 49);\n\nexport const baseStyles: Required<Record<AnsiStyles, ColorData>> = {\n // 21 isn't widely supported and 22 does the same thing\n bold: esc(1, 22),\n dim: esc(2, 22),\n hidden: esc(8, 28),\n inverse: esc(7, 27),\n italic: esc(3, 23),\n overline: esc(53, 55),\n reset: esc(0, 0),\n strike: esc(9, 29), // alias for strikethrough\n strikethrough: esc(9, 29),\n underline: esc(4, 24),\n visible: { close: \"\", open: \"\" },\n};\n\nexport const baseColors: Required<Record<AnsiColors, ColorData>> = {\n bgBlack: esc(40, 49),\n bgBlackBright: esc(100, 49),\n bgBlue: esc(44, 49),\n bgBlueBright: esc(104, 49),\n bgCyan: esc(46, 49),\n bgCyanBright: esc(106, 49),\n bgGray: esc(100, 49), // US spelling alias for bgBlackBright\n bgGreen: esc(42, 49),\n bgGreenBright: esc(102, 49),\n bgGrey: esc(100, 49), // UK spelling alias for bgBlackBright\n bgMagenta: esc(45, 49),\n bgMagentaBright: esc(105, 49),\n bgRed: esc(41, 49),\n bgRedBright: esc(101, 49),\n bgWhite: esc(47, 49),\n bgWhiteBright: esc(107, 49),\n bgYellow: esc(43, 49),\n bgYellowBright: esc(103, 49),\n black: esc(30, 39),\n blackBright: esc(90, 39),\n blue: esc(34, 39),\n blueBright: esc(94, 39),\n cyan: esc(36, 39),\n cyanBright: esc(96, 39),\n gray: esc(90, 39), // US spelling alias for blackBright\n green: esc(32, 39),\n greenBright: esc(92, 39),\n grey: esc(90, 39), // UK spelling alias for blackBright\n magenta: esc(35, 39),\n magentaBright: esc(95, 39),\n red: esc(31, 39),\n redBright: esc(91, 39),\n white: esc(37, 39),\n whiteBright: esc(97, 39),\n yellow: esc(33, 39),\n yellowBright: esc(93, 39),\n};\n\nexport const styleMethods: {\n bg: (code: number) => ColorData;\n bgHex: (hex: string) => ColorData;\n bgRgb: (r: number, g: number, b: number) => ColorData;\n fg: (code: number) => ColorData;\n hex: (hex: string) => ColorData;\n rgb: (r: number, g: number, b: number) => ColorData;\n} = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n bg: (code) => createBgAnsi256(clamp(code, 0, 255)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n bgHex: (hex) => createBgRgb(...hexToRgb(hex)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n bgRgb: (r, g, b) => createBgRgb(clamp(r, 0, 255), clamp(g, 0, 255), clamp(b, 0, 255)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n fg: (code) => createAnsi256(clamp(code, 0, 255)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n hex: (hex) => createRgb(...hexToRgb(hex)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n rgb: (r, g, b) => createRgb(clamp(r, 0, 255), clamp(g, 0, 255), clamp(b, 0, 255)),\n};\n","/**\n * Modified copy of https://github.com/webdiscus/ansis/blob/master/src/utils.js\n *\n * ISC License\n *\n * Copyright (c) 2023, webdiscus\n */\n\n/**\n * Convert hex color string to RGB values.\n *\n * A hexadecimal color code can be 3 or 6 digits with an optional \"#\" prefix.\n *\n * The 3 digits specifies an RGB doublet data as a fully opaque color.\n * For example, \"#123\" specifies the color that is represented by \"#112233\".\n *\n * The 6 digits specifies a fully opaque color.\n * For example, \"#112233\".\n *\n * @param {string} hex A string that contains the hexadecimal RGB color representation.\n * @return {[number, number, number]} The red, green, blue values in range [0, 255] .\n */\nexport const hexToRgb = (hex: string): [number, number, number] => {\n let color: string = hex.replace(\"#\", \"\");\n\n if (color.length === 3) {\n color = (color[0] as string) + (color[0] as string) + (color[1] as string) + (color[1] as string) + (color[2] as string) + (color[2] as string);\n } else if (color.length !== 6) {\n return [0, 0, 0];\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const number_ = Number.parseInt(color, 16);\n\n // eslint-disable-next-line no-bitwise\n return [(number_ >> 16) & 255, (number_ >> 8) & 255, number_ & 255];\n};\n\n/**\n * Clamp a number within the inclusive range specified by min and max.\n * @note: The ternary operator is a tick quicker than Math.min(Math.max(num, min), max).\n */\nexport const clamp = (number_: number, min: number, max: number): number => (min > number_ ? min : number_ > max ? max : number_);\n\n/**\n * Replace all matched strings.\n * Note: this implementation is over 30% faster than String.replaceAll().\n */\nexport const stringReplaceAll = (string_: string, searchValue: string, replaceValue: string): string => {\n // visible style has empty open/close props\n if (searchValue === \"\") {\n return string_;\n }\n\n let pos = string_.indexOf(searchValue);\n if (pos < 0) {\n return string_;\n }\n\n const substringLength = searchValue.length;\n let lastPos = 0;\n let result = \"\";\n\n // eslint-disable-next-line no-loops/no-loops,no-bitwise\n while (~pos) {\n result += string_.slice(lastPos, pos) + replaceValue;\n lastPos = pos + substringLength;\n pos = string_.indexOf(searchValue, lastPos);\n }\n\n return result + string_.slice(lastPos);\n};\n","/**\n * Modified copy of https://github.com/webdiscus/ansis/blob/master/src/index.js\n *\n * ISC License\n *\n * Copyright (c) 2023, webdiscus\n */\n\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport ansiRegex from \"ansi-regex\";\n\nimport { baseColors, baseStyles, styleMethods } from \"./ansi-codes\";\nimport type { ColorData, ColorizeType } from \"./types\";\nimport { stringReplaceAll } from \"./utils\";\n\nconst styles: Record<string, object> = {};\n\nlet stylePrototype: object | null = null;\n\nconst wrapText = (\n strings: ArrayLike<string> | ReadonlyArray<string> | string | { raw: ArrayLike<string> | ReadonlyArray<string> },\n values: string[],\n properties: ColorizeProperties,\n) => {\n if (!strings) {\n return \"\";\n }\n\n let string =\n (strings as { raw?: ArrayLike<string> | ReadonlyArray<string> | null }).raw == null\n ? (strings as string)\n : String.raw(strings as { raw: ArrayLike<string> | ReadonlyArray<string> }, ...values);\n\n if (string.includes(\"\\u001B\")) {\n // eslint-disable-next-line no-loops/no-loops,@typescript-eslint/no-unnecessary-condition\n for (let currentProperties = properties; currentProperties; currentProperties = currentProperties.props) {\n string = stringReplaceAll(string, currentProperties.close, currentProperties.open);\n }\n }\n\n if (string.includes(\"\\n\")) {\n // eslint-disable-next-line prefer-template,unicorn/prefer-string-replace-all\n string = string.replace(/(\\r*\\n)/g, properties.closeStack + \"$1\" + properties.openStack);\n }\n\n return properties.openStack + string + properties.closeStack;\n};\n\ntype ColorizeProperties = { close: string; closeStack: string; open: string; openStack: string; props: ColorizeProperties };\n\nconst createStyle = (\n { props }: { props?: ColorizeProperties },\n { close, open }: ColorData,\n): {\n (strings: ArrayLike<string> | ReadonlyArray<string> | string, ...values: string[]): string;\n close: string;\n open: string;\n props: { close: string; closeStack: string; open: string; openStack: string; props?: ColorizeProperties };\n} => {\n const openStack: string = (props?.openStack ?? \"\") + open;\n const closeStack: string = close + (props?.closeStack ?? \"\");\n\n const style = (strings: ArrayLike<string> | ReadonlyArray<string> | string, ...values: string[]) => wrapText(strings, values, style.props);\n\n Object.setPrototypeOf(style, stylePrototype);\n\n style.props = { close, closeStack, open, openStack, props } as ColorizeProperties;\n style.open = openStack;\n style.close = closeStack;\n\n return style;\n};\n\n// eslint-disable-next-line func-names\nconst Colorize = function () {\n const self = (string_: string) => string_;\n\n self.strip = (value: string): string => value.replaceAll(ansiRegex(), \"\");\n\n // eslint-disable-next-line guard-for-in,no-loops/no-loops,no-restricted-syntax\n for (const name in baseColors) {\n // eslint-disable-next-line security/detect-object-injection\n styles[name] = {\n get() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const style = createStyle(this, baseColors[name as keyof typeof baseColors]);\n\n Object.defineProperty(this, name, { value: style });\n\n return style;\n },\n };\n }\n\n // eslint-disable-next-line guard-for-in,no-loops/no-loops,no-restricted-syntax\n for (const name in baseStyles) {\n // eslint-disable-next-line security/detect-object-injection\n styles[name] = {\n get() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const style = createStyle(this, baseStyles[name as keyof typeof baseStyles]);\n\n Object.defineProperty(this, name, { value: style });\n\n return style;\n },\n };\n }\n\n // This needs to be the last thing we do, so that the prototype is fully populated.\n stylePrototype = Object.defineProperties({}, styles);\n\n Object.setPrototypeOf(self, stylePrototype);\n\n return self;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n} as any as new () => ColorizeType;\n\n// eslint-disable-next-line guard-for-in,no-loops/no-loops,no-restricted-syntax\nfor (const name in styleMethods) {\n styles[name as keyof typeof styleMethods] = {\n get() {\n return (...arguments_: (number | string)[]) =>\n // @ts-expect-error: TODO: fix typing of `arguments_`\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n createStyle(this, styleMethods[name as keyof typeof styleMethods](...arguments_));\n },\n };\n}\n\nstyles[\"ansi256\"] = styles[\"fg\"] as object;\nstyles[\"bgAnsi256\"] = styles[\"bg\"] as object;\n\n// eslint-disable-next-line import/no-default-export\nexport default Colorize;\n","import ColorizeImpl from \"./colorize\";\nimport type { ColorizeType } from \"./types\";\n\nconst colorize: ColorizeType = new ColorizeImpl() as ColorizeType;\n\n// eslint-disable-next-line import/no-default-export,import/no-unused-modules\nexport default colorize as ColorizeType;\n\n// eslint-disable-next-line unicorn/prefer-export-from,import/no-unused-modules\nexport const Colorize = ColorizeImpl;\n\n// eslint-disable-next-line import/no-unused-modules\nexport type { AnsiColors, AnsiStyles, ColorizeType } from \"./types\";\n"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/ansi-regex@6.0.1/node_modules/ansi-regex/index.js","../src/ansi-codes.ts","../src/utils.ts","../src/colorize.ts","../src/index.cts"],"names":["ansiRegex","onlyFirst","pattern","isColorSupported","hexToRgb","hex","color","number_","clamp","min","max","stringReplaceAll","string_","searchValue","replaceValue","pos","substringLength","lastPos","result","esc","open","close","createAnsi256","code","createBgAnsi256","createRgb","r","g","b","createBgRgb","baseStyles","baseColors","styleMethods","styles","stylePrototype","wrapText","strings","values","properties","string","currentProperties","createStyle","props","openStack","closeStack","style","Colorize","self","value","name","arguments_","colorize_default","colorize","src_default"],"mappings":"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","sourcesContent":["export default function ansiRegex({onlyFirst = false} = {}) {\n\tconst pattern = [\n\t '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","/**\n * Modified copy of https://github.com/webdiscus/ansis/blob/master/src/ansi-codes.js\n *\n * ISC License\n *\n * Copyright (c) 2023, webdiscus\n */\n\nimport { isColorSupported } from \"@visulima/is-ansi-color-supported\";\n\nimport type { AnsiColors, AnsiStyles, ColorData } from \"./types\";\nimport { clamp, hexToRgb } from \"./utils\";\n\nconst esc: (open: number | string, close: number | string) => ColorData =\n isColorSupported() > 0\n ? (open: number | string, close: number | string): ColorData => {\n // eslint-disable-next-line prefer-template\n return { close: \"\\u001B[\" + close + \"m\", open: \"\\u001B[\" + open + \"m\" };\n }\n : (): ColorData => {\n return { close: \"\", open: \"\" };\n };\n\n// eslint-disable-next-line prefer-template\nconst createAnsi256 = (code: number | string): ColorData => esc(\"38;5;\" + code, 39);\n// eslint-disable-next-line prefer-template\nconst createBgAnsi256 = (code: number | string): ColorData => esc(\"48;5;\" + code, 49);\n// eslint-disable-next-line prefer-template\nconst createRgb = (r: number | string, g: number | string, b: number | string): ColorData => esc(\"38;2;\" + r + \";\" + g + \";\" + b, 39);\n// eslint-disable-next-line prefer-template\nconst createBgRgb = (r: number | string, g: number | string, b: number | string): ColorData => esc(\"48;2;\" + r + \";\" + g + \";\" + b, 49);\n\nexport const baseStyles: Required<Record<AnsiStyles, ColorData>> = {\n // 21 isn't widely supported and 22 does the same thing\n bold: esc(1, 22),\n dim: esc(2, 22),\n hidden: esc(8, 28),\n inverse: esc(7, 27),\n italic: esc(3, 23),\n overline: esc(53, 55),\n reset: esc(0, 0),\n strike: esc(9, 29), // alias for strikethrough\n strikethrough: esc(9, 29),\n underline: esc(4, 24),\n visible: { close: \"\", open: \"\" },\n};\n\nexport const baseColors: Required<Record<AnsiColors, ColorData>> = {\n bgBlack: esc(40, 49),\n bgBlackBright: esc(100, 49),\n bgBlue: esc(44, 49),\n bgBlueBright: esc(104, 49),\n bgCyan: esc(46, 49),\n bgCyanBright: esc(106, 49),\n bgGray: esc(100, 49), // US spelling alias for bgBlackBright\n bgGreen: esc(42, 49),\n bgGreenBright: esc(102, 49),\n bgGrey: esc(100, 49), // UK spelling alias for bgBlackBright\n bgMagenta: esc(45, 49),\n bgMagentaBright: esc(105, 49),\n bgRed: esc(41, 49),\n bgRedBright: esc(101, 49),\n bgWhite: esc(47, 49),\n bgWhiteBright: esc(107, 49),\n bgYellow: esc(43, 49),\n bgYellowBright: esc(103, 49),\n black: esc(30, 39),\n blackBright: esc(90, 39),\n blue: esc(34, 39),\n blueBright: esc(94, 39),\n cyan: esc(36, 39),\n cyanBright: esc(96, 39),\n gray: esc(90, 39), // US spelling alias for blackBright\n green: esc(32, 39),\n greenBright: esc(92, 39),\n grey: esc(90, 39), // UK spelling alias for blackBright\n magenta: esc(35, 39),\n magentaBright: esc(95, 39),\n red: esc(31, 39),\n redBright: esc(91, 39),\n white: esc(37, 39),\n whiteBright: esc(97, 39),\n yellow: esc(33, 39),\n yellowBright: esc(93, 39),\n};\n\nexport const styleMethods: {\n bg: (code: number) => ColorData;\n bgHex: (hex: string) => ColorData;\n bgRgb: (r: number, g: number, b: number) => ColorData;\n fg: (code: number) => ColorData;\n hex: (hex: string) => ColorData;\n rgb: (r: number, g: number, b: number) => ColorData;\n} = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n bg: (code) => createBgAnsi256(clamp(code, 0, 255)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n bgHex: (hex) => createBgRgb(...hexToRgb(hex)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n bgRgb: (r, g, b) => createBgRgb(clamp(r, 0, 255), clamp(g, 0, 255), clamp(b, 0, 255)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n fg: (code) => createAnsi256(clamp(code, 0, 255)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n hex: (hex) => createRgb(...hexToRgb(hex)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n rgb: (r, g, b) => createRgb(clamp(r, 0, 255), clamp(g, 0, 255), clamp(b, 0, 255)),\n};\n","/**\n * Modified copy of https://github.com/webdiscus/ansis/blob/master/src/utils.js\n *\n * ISC License\n *\n * Copyright (c) 2023, webdiscus\n */\n\n/**\n * Convert hex color string to RGB values.\n *\n * A hexadecimal color code can be 3 or 6 digits with an optional \"#\" prefix.\n *\n * The 3 digits specifies an RGB doublet data as a fully opaque color.\n * For example, \"#123\" specifies the color that is represented by \"#112233\".\n *\n * The 6 digits specifies a fully opaque color.\n * For example, \"#112233\".\n *\n * @param {string} hex A string that contains the hexadecimal RGB color representation.\n * @return {[number, number, number]} The red, green, blue values in range [0, 255] .\n */\nexport const hexToRgb = (hex: string): [number, number, number] => {\n let color: string = hex.replace(\"#\", \"\");\n\n if (color.length === 3) {\n color = (color[0] as string) + (color[0] as string) + (color[1] as string) + (color[1] as string) + (color[2] as string) + (color[2] as string);\n } else if (color.length !== 6) {\n return [0, 0, 0];\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const number_ = Number.parseInt(color, 16);\n\n // eslint-disable-next-line no-bitwise\n return [(number_ >> 16) & 255, (number_ >> 8) & 255, number_ & 255];\n};\n\n/**\n * Clamp a number within the inclusive range specified by min and max.\n * @note: The ternary operator is a tick quicker than Math.min(Math.max(num, min), max).\n */\nexport const clamp = (number_: number, min: number, max: number): number => (min > number_ ? min : number_ > max ? max : number_);\n\n/**\n * Replace all matched strings.\n * Note: this implementation is over 30% faster than String.replaceAll().\n */\nexport const stringReplaceAll = (string_: string, searchValue: string, replaceValue: string): string => {\n // visible style has empty open/close props\n if (searchValue === \"\") {\n return string_;\n }\n\n let pos = string_.indexOf(searchValue);\n if (pos < 0) {\n return string_;\n }\n\n const substringLength = searchValue.length;\n let lastPos = 0;\n let result = \"\";\n\n // eslint-disable-next-line no-loops/no-loops,no-bitwise\n while (~pos) {\n result += string_.slice(lastPos, pos) + replaceValue;\n lastPos = pos + substringLength;\n pos = string_.indexOf(searchValue, lastPos);\n }\n\n return result + string_.slice(lastPos);\n};\n","/**\n * Modified copy of https://github.com/webdiscus/ansis/blob/master/src/index.js\n *\n * ISC License\n *\n * Copyright (c) 2023, webdiscus\n */\n\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport ansiRegex from \"ansi-regex\";\n\nimport { baseColors, baseStyles, styleMethods } from \"./ansi-codes\";\nimport type { ColorData, ColorizeType } from \"./types\";\nimport { stringReplaceAll } from \"./utils\";\n\nconst styles: Record<string, object> = {};\n\nlet stylePrototype: object | null = null;\n\nconst wrapText = (\n strings: ArrayLike<string> | ReadonlyArray<string> | number | string | { raw: ArrayLike<string> | ReadonlyArray<string> },\n values: string[],\n properties: ColorizeProperties,\n) => {\n if (!strings) {\n return \"\";\n }\n\n let string =\n (strings as { raw?: ArrayLike<string> | ReadonlyArray<string> | null }).raw == null\n ? `${strings as string}`\n : String.raw(strings as { raw: ArrayLike<string> | ReadonlyArray<string> }, ...values);\n\n if (string.includes(\"\\u001B\")) {\n // eslint-disable-next-line no-loops/no-loops,@typescript-eslint/no-unnecessary-condition\n for (let currentProperties = properties; currentProperties; currentProperties = currentProperties.props) {\n string = stringReplaceAll(string, currentProperties.close, currentProperties.open);\n }\n }\n\n if (string.includes(\"\\n\")) {\n // eslint-disable-next-line prefer-template,unicorn/prefer-string-replace-all\n string = string.replace(/(\\r*\\n)/g, properties.closeStack + \"$1\" + properties.openStack);\n }\n\n return properties.openStack + string + properties.closeStack;\n};\n\ntype ColorizeProperties = { close: string; closeStack: string; open: string; openStack: string; props: ColorizeProperties };\n\nconst createStyle = (\n { props }: { props?: ColorizeProperties },\n { close, open }: ColorData,\n): {\n (strings: ArrayLike<string> | ReadonlyArray<string> | string, ...values: string[]): string;\n close: string;\n open: string;\n props: { close: string; closeStack: string; open: string; openStack: string; props?: ColorizeProperties };\n} => {\n const openStack: string = (props?.openStack ?? \"\") + open;\n const closeStack: string = close + (props?.closeStack ?? \"\");\n\n const style = (strings: ArrayLike<string> | ReadonlyArray<string> | string, ...values: string[]) => wrapText(strings, values, style.props);\n\n Object.setPrototypeOf(style, stylePrototype);\n\n style.props = { close, closeStack, open, openStack, props } as ColorizeProperties;\n style.open = openStack;\n style.close = closeStack;\n\n return style;\n};\n\n// eslint-disable-next-line func-names\nconst Colorize = function () {\n const self = (string_: number | string) => `${string_}`;\n\n self.strip = (value: string): string => value.replaceAll(ansiRegex(), \"\");\n\n // eslint-disable-next-line guard-for-in,no-loops/no-loops,no-restricted-syntax\n for (const name in baseColors) {\n // eslint-disable-next-line security/detect-object-injection\n styles[name] = {\n get() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const style = createStyle(this, baseColors[name as keyof typeof baseColors]);\n\n Object.defineProperty(this, name, { value: style });\n\n return style;\n },\n };\n }\n\n // eslint-disable-next-line guard-for-in,no-loops/no-loops,no-restricted-syntax\n for (const name in baseStyles) {\n // eslint-disable-next-line security/detect-object-injection\n styles[name] = {\n get() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const style = createStyle(this, baseStyles[name as keyof typeof baseStyles]);\n\n Object.defineProperty(this, name, { value: style });\n\n return style;\n },\n };\n }\n\n // This needs to be the last thing we do, so that the prototype is fully populated.\n stylePrototype = Object.defineProperties({}, styles);\n\n Object.setPrototypeOf(self, stylePrototype);\n\n return self;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n} as any as new () => ColorizeType;\n\n// eslint-disable-next-line guard-for-in,no-loops/no-loops,no-restricted-syntax\nfor (const name in styleMethods) {\n styles[name as keyof typeof styleMethods] = {\n get() {\n return (...arguments_: (number | string)[]) =>\n // @ts-expect-error: TODO: fix typing of `arguments_`\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n createStyle(this, styleMethods[name as keyof typeof styleMethods](...arguments_));\n },\n };\n}\n\nstyles[\"ansi256\"] = styles[\"fg\"] as object;\nstyles[\"bgAnsi256\"] = styles[\"bg\"] as object;\n\n// eslint-disable-next-line import/no-default-export\nexport default Colorize;\n","import ColorizeImpl from \"./colorize\";\nimport type { ColorizeType } from \"./types\";\n\nconst colorize: ColorizeType = new ColorizeImpl() as ColorizeType;\n\n// eslint-disable-next-line import/no-default-export,import/no-unused-modules\nexport default colorize as ColorizeType;\n\n// eslint-disable-next-line unicorn/prefer-export-from,import/no-unused-modules\nexport const Colorize = ColorizeImpl;\n\n// eslint-disable-next-line import/no-unused-modules\nexport type { AnsiColors, AnsiStyles, ColorizeType } from \"./types\";\n"]}
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  interface ColorizeType {
2
- (string: string): string;
2
+ (string: number | string): string;
3
3
  (string: TemplateStringsArray, ...parameters: string[]): string;
4
4
  ansi256: (code: number) => this;
5
5
  bg: (code: number) => this;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  interface ColorizeType {
2
- (string: string): string;
2
+ (string: number | string): string;
3
3
  (string: TemplateStringsArray, ...parameters: string[]): string;
4
4
  ansi256: (code: number) => this;
5
5
  bg: (code: number) => this;
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { isColorSupported } from '@visulima/is-ansi-color-supported';
2
2
 
3
- function b({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}var c=e=>{let t=e.replace("#","");if(t.length===3)t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2];else if(t.length!==6)return [0,0,0];let o=Number.parseInt(t,16);return [o>>16&255,o>>8&255,o&255]},g=(e,t,o)=>t>e?t:e>o?o:e,f=(e,t,o)=>{if(t==="")return e;let n=e.indexOf(t);if(n<0)return e;let i=t.length,s=0,a="";for(;~n;)a+=e.slice(s,n)+o,s=n+i,n=e.indexOf(t,s);return a+e.slice(s)};var r=isColorSupported()>0?(e,t)=>({close:"\x1B["+t+"m",open:"\x1B["+e+"m"}):()=>({close:"",open:""}),x=e=>r("38;5;"+e,39),w=e=>r("48;5;"+e,49),B=(e,t,o)=>r("38;2;"+e+";"+t+";"+o,39),C=(e,t,o)=>r("48;2;"+e+";"+t+";"+o,49),p={bold:r(1,22),dim:r(2,22),hidden:r(8,28),inverse:r(7,27),italic:r(3,23),overline:r(53,55),reset:r(0,0),strike:r(9,29),strikethrough:r(9,29),underline:r(4,24),visible:{close:"",open:""}},y={bgBlack:r(40,49),bgBlackBright:r(100,49),bgBlue:r(44,49),bgBlueBright:r(104,49),bgCyan:r(46,49),bgCyanBright:r(106,49),bgGray:r(100,49),bgGreen:r(42,49),bgGreenBright:r(102,49),bgGrey:r(100,49),bgMagenta:r(45,49),bgMagentaBright:r(105,49),bgRed:r(41,49),bgRedBright:r(101,49),bgWhite:r(47,49),bgWhiteBright:r(107,49),bgYellow:r(43,49),bgYellowBright:r(103,49),black:r(30,39),blackBright:r(90,39),blue:r(34,39),blueBright:r(94,39),cyan:r(36,39),cyanBright:r(96,39),gray:r(90,39),green:r(32,39),greenBright:r(92,39),grey:r(90,39),magenta:r(35,39),magentaBright:r(95,39),red:r(31,39),redBright:r(91,39),white:r(37,39),whiteBright:r(97,39),yellow:r(33,39),yellowBright:r(93,39)},u={bg:e=>w(g(e,0,255)),bgHex:e=>C(...c(e)),bgRgb:(e,t,o)=>C(g(e,0,255),g(t,0,255),g(o,0,255)),fg:e=>x(g(e,0,255)),hex:e=>B(...c(e)),rgb:(e,t,o)=>B(g(e,0,255),g(t,0,255),g(o,0,255))};var l={},h=null,S=(e,t,o)=>{if(!e)return "";let n=e.raw==null?e:String.raw(e,...t);if(n.includes("\x1B"))for(let i=o;i;i=i.props)n=f(n,i.close,i.open);return n.includes(`
4
- `)&&(n=n.replace(/(\r*\n)/g,o.closeStack+"$1"+o.openStack)),o.openStack+n+o.closeStack},m=({props:e},{close:t,open:o})=>{let n=(e?.openStack??"")+o,i=t+(e?.closeStack??""),s=(a,...A)=>S(a,A,s.props);return Object.setPrototypeOf(s,h),s.props={close:t,closeStack:i,open:o,openStack:n,props:e},s.open=n,s.close=i,s},z=function(){let e=t=>t;e.strip=t=>t.replaceAll(b(),"");for(let t in y)l[t]={get(){let o=m(this,y[t]);return Object.defineProperty(this,t,{value:o}),o}};for(let t in p)l[t]={get(){let o=m(this,p[t]);return Object.defineProperty(this,t,{value:o}),o}};return h=Object.defineProperties({},l),Object.setPrototypeOf(e,h),e};for(let e in u)l[e]={get(){return (...t)=>m(this,u[e](...t))}};l.ansi256=l.fg;l.bgAnsi256=l.bg;var d=z;var k=new d,Y=k,{ansi256:Z,bg:q,bgAnsi256:H,bgBlack:I,bgBlackBright:E,bgBlue:N,bgBlueBright:$,bgCyan:F,bgCyanBright:J,bgGray:K,bgGreen:Q,bgGreenBright:U,bgGrey:X,bgHex:V,bgMagenta:_,bgMagentaBright:ee,bgRed:re,bgRedBright:te,bgRgb:oe,bgWhite:ne,bgWhiteBright:se,bgYellow:ie,bgYellowBright:ge,black:le,blackBright:ae,blue:be,blueBright:ce,bold:pe,cyan:ye,cyanBright:ue,dim:he,fg:me,gray:de,green:fe,greenBright:Be,grey:Ce,hex:ke,hidden:Ae,inverse:Re,italic:xe,magenta:we,magentaBright:Se,overline:ze,red:De,redBright:Pe,reset:Te,rgb:je,strike:ve,strikethrough:Oe,strip:Ge,underline:Me,visible:Le,white:We,whiteBright:Ye,yellow:Ze,yellowBright:qe}=k;
3
+ function b({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}var c=e=>{let t=e.replace("#","");if(t.length===3)t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2];else if(t.length!==6)return [0,0,0];let o=Number.parseInt(t,16);return [o>>16&255,o>>8&255,o&255]},g=(e,t,o)=>t>e?t:e>o?o:e,f=(e,t,o)=>{if(t==="")return e;let n=e.indexOf(t);if(n<0)return e;let i=t.length,s=0,a="";for(;~n;)a+=e.slice(s,n)+o,s=n+i,n=e.indexOf(t,s);return a+e.slice(s)};var r=isColorSupported()>0?(e,t)=>({close:"\x1B["+t+"m",open:"\x1B["+e+"m"}):()=>({close:"",open:""}),x=e=>r("38;5;"+e,39),w=e=>r("48;5;"+e,49),B=(e,t,o)=>r("38;2;"+e+";"+t+";"+o,39),C=(e,t,o)=>r("48;2;"+e+";"+t+";"+o,49),p={bold:r(1,22),dim:r(2,22),hidden:r(8,28),inverse:r(7,27),italic:r(3,23),overline:r(53,55),reset:r(0,0),strike:r(9,29),strikethrough:r(9,29),underline:r(4,24),visible:{close:"",open:""}},y={bgBlack:r(40,49),bgBlackBright:r(100,49),bgBlue:r(44,49),bgBlueBright:r(104,49),bgCyan:r(46,49),bgCyanBright:r(106,49),bgGray:r(100,49),bgGreen:r(42,49),bgGreenBright:r(102,49),bgGrey:r(100,49),bgMagenta:r(45,49),bgMagentaBright:r(105,49),bgRed:r(41,49),bgRedBright:r(101,49),bgWhite:r(47,49),bgWhiteBright:r(107,49),bgYellow:r(43,49),bgYellowBright:r(103,49),black:r(30,39),blackBright:r(90,39),blue:r(34,39),blueBright:r(94,39),cyan:r(36,39),cyanBright:r(96,39),gray:r(90,39),green:r(32,39),greenBright:r(92,39),grey:r(90,39),magenta:r(35,39),magentaBright:r(95,39),red:r(31,39),redBright:r(91,39),white:r(37,39),whiteBright:r(97,39),yellow:r(33,39),yellowBright:r(93,39)},u={bg:e=>w(g(e,0,255)),bgHex:e=>C(...c(e)),bgRgb:(e,t,o)=>C(g(e,0,255),g(t,0,255),g(o,0,255)),fg:e=>x(g(e,0,255)),hex:e=>B(...c(e)),rgb:(e,t,o)=>B(g(e,0,255),g(t,0,255),g(o,0,255))};var l={},h=null,S=(e,t,o)=>{if(!e)return "";let n=e.raw==null?`${e}`:String.raw(e,...t);if(n.includes("\x1B"))for(let i=o;i;i=i.props)n=f(n,i.close,i.open);return n.includes(`
4
+ `)&&(n=n.replace(/(\r*\n)/g,o.closeStack+"$1"+o.openStack)),o.openStack+n+o.closeStack},m=({props:e},{close:t,open:o})=>{let n=(e?.openStack??"")+o,i=t+(e?.closeStack??""),s=(a,...A)=>S(a,A,s.props);return Object.setPrototypeOf(s,h),s.props={close:t,closeStack:i,open:o,openStack:n,props:e},s.open=n,s.close=i,s},z=function(){let e=t=>`${t}`;e.strip=t=>t.replaceAll(b(),"");for(let t in y)l[t]={get(){let o=m(this,y[t]);return Object.defineProperty(this,t,{value:o}),o}};for(let t in p)l[t]={get(){let o=m(this,p[t]);return Object.defineProperty(this,t,{value:o}),o}};return h=Object.defineProperties({},l),Object.setPrototypeOf(e,h),e};for(let e in u)l[e]={get(){return (...t)=>m(this,u[e](...t))}};l.ansi256=l.fg;l.bgAnsi256=l.bg;var d=z;var k=new d,Y=k,{ansi256:Z,bg:q,bgAnsi256:H,bgBlack:$,bgBlackBright:I,bgBlue:E,bgBlueBright:N,bgCyan:F,bgCyanBright:J,bgGray:K,bgGreen:Q,bgGreenBright:U,bgGrey:X,bgHex:V,bgMagenta:_,bgMagentaBright:ee,bgRed:re,bgRedBright:te,bgRgb:oe,bgWhite:ne,bgWhiteBright:se,bgYellow:ie,bgYellowBright:ge,black:le,blackBright:ae,blue:be,blueBright:ce,bold:pe,cyan:ye,cyanBright:ue,dim:he,fg:me,gray:de,green:fe,greenBright:Be,grey:Ce,hex:ke,hidden:Ae,inverse:Re,italic:xe,magenta:we,magentaBright:Se,overline:ze,red:De,redBright:Pe,reset:Te,rgb:je,strike:ve,strikethrough:Oe,strip:Ge,underline:Me,visible:Le,white:We,whiteBright:Ye,yellow:Ze,yellowBright:qe}=k;
5
5
 
6
- export { d as Colorize, Z as ansi256, q as bg, H as bgAnsi256, I as bgBlack, E as bgBlackBright, N as bgBlue, $ as bgBlueBright, F as bgCyan, J as bgCyanBright, K as bgGray, Q as bgGreen, U as bgGreenBright, X as bgGrey, V as bgHex, _ as bgMagenta, ee as bgMagentaBright, re as bgRed, te as bgRedBright, oe as bgRgb, ne as bgWhite, se as bgWhiteBright, ie as bgYellow, ge as bgYellowBright, le as black, ae as blackBright, be as blue, ce as blueBright, pe as bold, ye as cyan, ue as cyanBright, Y as default, he as dim, me as fg, de as gray, fe as green, Be as greenBright, Ce as grey, ke as hex, Ae as hidden, Re as inverse, xe as italic, we as magenta, Se as magentaBright, ze as overline, De as red, Pe as redBright, Te as reset, je as rgb, ve as strike, Oe as strikethrough, Ge as strip, Me as underline, Le as visible, We as white, Ye as whiteBright, Ze as yellow, qe as yellowBright };
6
+ export { d as Colorize, Z as ansi256, q as bg, H as bgAnsi256, $ as bgBlack, I as bgBlackBright, E as bgBlue, N as bgBlueBright, F as bgCyan, J as bgCyanBright, K as bgGray, Q as bgGreen, U as bgGreenBright, X as bgGrey, V as bgHex, _ as bgMagenta, ee as bgMagentaBright, re as bgRed, te as bgRedBright, oe as bgRgb, ne as bgWhite, se as bgWhiteBright, ie as bgYellow, ge as bgYellowBright, le as black, ae as blackBright, be as blue, ce as blueBright, pe as bold, ye as cyan, ue as cyanBright, Y as default, he as dim, me as fg, de as gray, fe as green, Be as greenBright, Ce as grey, ke as hex, Ae as hidden, Re as inverse, xe as italic, we as magenta, Se as magentaBright, ze as overline, De as red, Pe as redBright, Te as reset, je as rgb, ve as strike, Oe as strikethrough, Ge as strip, Me as underline, Le as visible, We as white, Ye as whiteBright, Ze as yellow, qe as yellowBright };
7
7
  //# sourceMappingURL=out.js.map
8
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/ansi-regex@6.0.1/node_modules/ansi-regex/index.js","../src/ansi-codes.ts","../src/utils.ts","../src/colorize.ts","../src/index.mts"],"names":["ansiRegex","onlyFirst","pattern","isColorSupported","hexToRgb","hex","color","number_","clamp","min","max","stringReplaceAll","string_","searchValue","replaceValue","pos","substringLength","lastPos","result","esc","open","close","createAnsi256","code","createBgAnsi256","createRgb","r","g","b","createBgRgb","baseStyles","baseColors","styleMethods","styles","stylePrototype","wrapText","strings","values","properties","string","currentProperties","createStyle","props","openStack","closeStack","style","Colorize","self","value","name","arguments_","colorize_default","colorize","src_default","ansi256","bg","bgAnsi256","bgBlack","bgBlackBright","bgBlue","bgBlueBright","bgCyan","bgCyanBright","bgGray","bgGreen","bgGreenBright","bgGrey","bgHex","bgMagenta","bgMagentaBright","bgRed","bgRedBright","bgRgb","bgWhite","bgWhiteBright","bgYellow","bgYellowBright","black","blackBright","blue","blueBright","bold","cyan","cyanBright","dim","fg","gray","green","greenBright","grey","hidden","inverse","italic","magenta","magentaBright","overline","red","redBright","reset","rgb","strike","strikethrough","strip","underline","visible","white","whiteBright","yellow","yellowBright"],"mappings":"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","sourcesContent":["export default function ansiRegex({onlyFirst = false} = {}) {\n\tconst pattern = [\n\t '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","/**\n * Modified copy of https://github.com/webdiscus/ansis/blob/master/src/ansi-codes.js\n *\n * ISC License\n *\n * Copyright (c) 2023, webdiscus\n */\n\nimport { isColorSupported } from \"@visulima/is-ansi-color-supported\";\n\nimport type { AnsiColors, AnsiStyles, ColorData } from \"./types\";\nimport { clamp, hexToRgb } from \"./utils\";\n\nconst esc: (open: number | string, close: number | string) => ColorData =\n isColorSupported() > 0\n ? (open: number | string, close: number | string): ColorData => {\n // eslint-disable-next-line prefer-template\n return { close: \"\\u001B[\" + close + \"m\", open: \"\\u001B[\" + open + \"m\" };\n }\n : (): ColorData => {\n return { close: \"\", open: \"\" };\n };\n\n// eslint-disable-next-line prefer-template\nconst createAnsi256 = (code: number | string): ColorData => esc(\"38;5;\" + code, 39);\n// eslint-disable-next-line prefer-template\nconst createBgAnsi256 = (code: number | string): ColorData => esc(\"48;5;\" + code, 49);\n// eslint-disable-next-line prefer-template\nconst createRgb = (r: number | string, g: number | string, b: number | string): ColorData => esc(\"38;2;\" + r + \";\" + g + \";\" + b, 39);\n// eslint-disable-next-line prefer-template\nconst createBgRgb = (r: number | string, g: number | string, b: number | string): ColorData => esc(\"48;2;\" + r + \";\" + g + \";\" + b, 49);\n\nexport const baseStyles: Required<Record<AnsiStyles, ColorData>> = {\n // 21 isn't widely supported and 22 does the same thing\n bold: esc(1, 22),\n dim: esc(2, 22),\n hidden: esc(8, 28),\n inverse: esc(7, 27),\n italic: esc(3, 23),\n overline: esc(53, 55),\n reset: esc(0, 0),\n strike: esc(9, 29), // alias for strikethrough\n strikethrough: esc(9, 29),\n underline: esc(4, 24),\n visible: { close: \"\", open: \"\" },\n};\n\nexport const baseColors: Required<Record<AnsiColors, ColorData>> = {\n bgBlack: esc(40, 49),\n bgBlackBright: esc(100, 49),\n bgBlue: esc(44, 49),\n bgBlueBright: esc(104, 49),\n bgCyan: esc(46, 49),\n bgCyanBright: esc(106, 49),\n bgGray: esc(100, 49), // US spelling alias for bgBlackBright\n bgGreen: esc(42, 49),\n bgGreenBright: esc(102, 49),\n bgGrey: esc(100, 49), // UK spelling alias for bgBlackBright\n bgMagenta: esc(45, 49),\n bgMagentaBright: esc(105, 49),\n bgRed: esc(41, 49),\n bgRedBright: esc(101, 49),\n bgWhite: esc(47, 49),\n bgWhiteBright: esc(107, 49),\n bgYellow: esc(43, 49),\n bgYellowBright: esc(103, 49),\n black: esc(30, 39),\n blackBright: esc(90, 39),\n blue: esc(34, 39),\n blueBright: esc(94, 39),\n cyan: esc(36, 39),\n cyanBright: esc(96, 39),\n gray: esc(90, 39), // US spelling alias for blackBright\n green: esc(32, 39),\n greenBright: esc(92, 39),\n grey: esc(90, 39), // UK spelling alias for blackBright\n magenta: esc(35, 39),\n magentaBright: esc(95, 39),\n red: esc(31, 39),\n redBright: esc(91, 39),\n white: esc(37, 39),\n whiteBright: esc(97, 39),\n yellow: esc(33, 39),\n yellowBright: esc(93, 39),\n};\n\nexport const styleMethods: {\n bg: (code: number) => ColorData;\n bgHex: (hex: string) => ColorData;\n bgRgb: (r: number, g: number, b: number) => ColorData;\n fg: (code: number) => ColorData;\n hex: (hex: string) => ColorData;\n rgb: (r: number, g: number, b: number) => ColorData;\n} = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n bg: (code) => createBgAnsi256(clamp(code, 0, 255)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n bgHex: (hex) => createBgRgb(...hexToRgb(hex)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n bgRgb: (r, g, b) => createBgRgb(clamp(r, 0, 255), clamp(g, 0, 255), clamp(b, 0, 255)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n fg: (code) => createAnsi256(clamp(code, 0, 255)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n hex: (hex) => createRgb(...hexToRgb(hex)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n rgb: (r, g, b) => createRgb(clamp(r, 0, 255), clamp(g, 0, 255), clamp(b, 0, 255)),\n};\n","/**\n * Modified copy of https://github.com/webdiscus/ansis/blob/master/src/utils.js\n *\n * ISC License\n *\n * Copyright (c) 2023, webdiscus\n */\n\n/**\n * Convert hex color string to RGB values.\n *\n * A hexadecimal color code can be 3 or 6 digits with an optional \"#\" prefix.\n *\n * The 3 digits specifies an RGB doublet data as a fully opaque color.\n * For example, \"#123\" specifies the color that is represented by \"#112233\".\n *\n * The 6 digits specifies a fully opaque color.\n * For example, \"#112233\".\n *\n * @param {string} hex A string that contains the hexadecimal RGB color representation.\n * @return {[number, number, number]} The red, green, blue values in range [0, 255] .\n */\nexport const hexToRgb = (hex: string): [number, number, number] => {\n let color: string = hex.replace(\"#\", \"\");\n\n if (color.length === 3) {\n color = (color[0] as string) + (color[0] as string) + (color[1] as string) + (color[1] as string) + (color[2] as string) + (color[2] as string);\n } else if (color.length !== 6) {\n return [0, 0, 0];\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const number_ = Number.parseInt(color, 16);\n\n // eslint-disable-next-line no-bitwise\n return [(number_ >> 16) & 255, (number_ >> 8) & 255, number_ & 255];\n};\n\n/**\n * Clamp a number within the inclusive range specified by min and max.\n * @note: The ternary operator is a tick quicker than Math.min(Math.max(num, min), max).\n */\nexport const clamp = (number_: number, min: number, max: number): number => (min > number_ ? min : number_ > max ? max : number_);\n\n/**\n * Replace all matched strings.\n * Note: this implementation is over 30% faster than String.replaceAll().\n */\nexport const stringReplaceAll = (string_: string, searchValue: string, replaceValue: string): string => {\n // visible style has empty open/close props\n if (searchValue === \"\") {\n return string_;\n }\n\n let pos = string_.indexOf(searchValue);\n if (pos < 0) {\n return string_;\n }\n\n const substringLength = searchValue.length;\n let lastPos = 0;\n let result = \"\";\n\n // eslint-disable-next-line no-loops/no-loops,no-bitwise\n while (~pos) {\n result += string_.slice(lastPos, pos) + replaceValue;\n lastPos = pos + substringLength;\n pos = string_.indexOf(searchValue, lastPos);\n }\n\n return result + string_.slice(lastPos);\n};\n","/**\n * Modified copy of https://github.com/webdiscus/ansis/blob/master/src/index.js\n *\n * ISC License\n *\n * Copyright (c) 2023, webdiscus\n */\n\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport ansiRegex from \"ansi-regex\";\n\nimport { baseColors, baseStyles, styleMethods } from \"./ansi-codes\";\nimport type { ColorData, ColorizeType } from \"./types\";\nimport { stringReplaceAll } from \"./utils\";\n\nconst styles: Record<string, object> = {};\n\nlet stylePrototype: object | null = null;\n\nconst wrapText = (\n strings: ArrayLike<string> | ReadonlyArray<string> | string | { raw: ArrayLike<string> | ReadonlyArray<string> },\n values: string[],\n properties: ColorizeProperties,\n) => {\n if (!strings) {\n return \"\";\n }\n\n let string =\n (strings as { raw?: ArrayLike<string> | ReadonlyArray<string> | null }).raw == null\n ? (strings as string)\n : String.raw(strings as { raw: ArrayLike<string> | ReadonlyArray<string> }, ...values);\n\n if (string.includes(\"\\u001B\")) {\n // eslint-disable-next-line no-loops/no-loops,@typescript-eslint/no-unnecessary-condition\n for (let currentProperties = properties; currentProperties; currentProperties = currentProperties.props) {\n string = stringReplaceAll(string, currentProperties.close, currentProperties.open);\n }\n }\n\n if (string.includes(\"\\n\")) {\n // eslint-disable-next-line prefer-template,unicorn/prefer-string-replace-all\n string = string.replace(/(\\r*\\n)/g, properties.closeStack + \"$1\" + properties.openStack);\n }\n\n return properties.openStack + string + properties.closeStack;\n};\n\ntype ColorizeProperties = { close: string; closeStack: string; open: string; openStack: string; props: ColorizeProperties };\n\nconst createStyle = (\n { props }: { props?: ColorizeProperties },\n { close, open }: ColorData,\n): {\n (strings: ArrayLike<string> | ReadonlyArray<string> | string, ...values: string[]): string;\n close: string;\n open: string;\n props: { close: string; closeStack: string; open: string; openStack: string; props?: ColorizeProperties };\n} => {\n const openStack: string = (props?.openStack ?? \"\") + open;\n const closeStack: string = close + (props?.closeStack ?? \"\");\n\n const style = (strings: ArrayLike<string> | ReadonlyArray<string> | string, ...values: string[]) => wrapText(strings, values, style.props);\n\n Object.setPrototypeOf(style, stylePrototype);\n\n style.props = { close, closeStack, open, openStack, props } as ColorizeProperties;\n style.open = openStack;\n style.close = closeStack;\n\n return style;\n};\n\n// eslint-disable-next-line func-names\nconst Colorize = function () {\n const self = (string_: string) => string_;\n\n self.strip = (value: string): string => value.replaceAll(ansiRegex(), \"\");\n\n // eslint-disable-next-line guard-for-in,no-loops/no-loops,no-restricted-syntax\n for (const name in baseColors) {\n // eslint-disable-next-line security/detect-object-injection\n styles[name] = {\n get() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const style = createStyle(this, baseColors[name as keyof typeof baseColors]);\n\n Object.defineProperty(this, name, { value: style });\n\n return style;\n },\n };\n }\n\n // eslint-disable-next-line guard-for-in,no-loops/no-loops,no-restricted-syntax\n for (const name in baseStyles) {\n // eslint-disable-next-line security/detect-object-injection\n styles[name] = {\n get() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const style = createStyle(this, baseStyles[name as keyof typeof baseStyles]);\n\n Object.defineProperty(this, name, { value: style });\n\n return style;\n },\n };\n }\n\n // This needs to be the last thing we do, so that the prototype is fully populated.\n stylePrototype = Object.defineProperties({}, styles);\n\n Object.setPrototypeOf(self, stylePrototype);\n\n return self;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n} as any as new () => ColorizeType;\n\n// eslint-disable-next-line guard-for-in,no-loops/no-loops,no-restricted-syntax\nfor (const name in styleMethods) {\n styles[name as keyof typeof styleMethods] = {\n get() {\n return (...arguments_: (number | string)[]) =>\n // @ts-expect-error: TODO: fix typing of `arguments_`\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n createStyle(this, styleMethods[name as keyof typeof styleMethods](...arguments_));\n },\n };\n}\n\nstyles[\"ansi256\"] = styles[\"fg\"] as object;\nstyles[\"bgAnsi256\"] = styles[\"bg\"] as object;\n\n// eslint-disable-next-line import/no-default-export\nexport default Colorize;\n","import ColorizeImpl from \"./colorize\";\nimport type { ColorizeType } from \"./types\";\n\nconst colorize: ColorizeType = new ColorizeImpl() as ColorizeType;\n\n// eslint-disable-next-line import/no-default-export\nexport default colorize as ColorizeType;\n\n// eslint-disable-next-line import/no-unused-modules\nexport const {\n ansi256,\n bg,\n bgAnsi256,\n bgBlack,\n bgBlackBright,\n bgBlue,\n bgBlueBright,\n bgCyan,\n bgCyanBright,\n bgGray,\n bgGreen,\n bgGreenBright,\n bgGrey,\n bgHex,\n bgMagenta,\n bgMagentaBright,\n bgRed,\n bgRedBright,\n bgRgb,\n bgWhite,\n bgWhiteBright,\n bgYellow,\n bgYellowBright,\n black,\n blackBright,\n blue,\n blueBright,\n bold,\n cyan,\n cyanBright,\n dim,\n fg,\n gray,\n green,\n greenBright,\n grey,\n hex,\n hidden,\n inverse,\n italic,\n magenta,\n magentaBright,\n overline,\n red,\n redBright,\n reset,\n rgb,\n strike,\n strikethrough,\n strip,\n underline,\n visible,\n white,\n whiteBright,\n yellow,\n yellowBright,\n} = colorize;\n\nexport { default as Colorize } from \"./colorize\";\n\n// eslint-disable-next-line import/no-unused-modules\nexport type { AnsiColors, AnsiStyles, ColorizeType } from \"./types\";\n"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/ansi-regex@6.0.1/node_modules/ansi-regex/index.js","../src/ansi-codes.ts","../src/utils.ts","../src/colorize.ts","../src/index.mts"],"names":["ansiRegex","onlyFirst","pattern","isColorSupported","hexToRgb","hex","color","number_","clamp","min","max","stringReplaceAll","string_","searchValue","replaceValue","pos","substringLength","lastPos","result","esc","open","close","createAnsi256","code","createBgAnsi256","createRgb","r","g","b","createBgRgb","baseStyles","baseColors","styleMethods","styles","stylePrototype","wrapText","strings","values","properties","string","currentProperties","createStyle","props","openStack","closeStack","style","Colorize","self","value","name","arguments_","colorize_default","colorize","src_default","ansi256","bg","bgAnsi256","bgBlack","bgBlackBright","bgBlue","bgBlueBright","bgCyan","bgCyanBright","bgGray","bgGreen","bgGreenBright","bgGrey","bgHex","bgMagenta","bgMagentaBright","bgRed","bgRedBright","bgRgb","bgWhite","bgWhiteBright","bgYellow","bgYellowBright","black","blackBright","blue","blueBright","bold","cyan","cyanBright","dim","fg","gray","green","greenBright","grey","hidden","inverse","italic","magenta","magentaBright","overline","red","redBright","reset","rgb","strike","strikethrough","strip","underline","visible","white","whiteBright","yellow","yellowBright"],"mappings":"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","sourcesContent":["export default function ansiRegex({onlyFirst = false} = {}) {\n\tconst pattern = [\n\t '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","/**\n * Modified copy of https://github.com/webdiscus/ansis/blob/master/src/ansi-codes.js\n *\n * ISC License\n *\n * Copyright (c) 2023, webdiscus\n */\n\nimport { isColorSupported } from \"@visulima/is-ansi-color-supported\";\n\nimport type { AnsiColors, AnsiStyles, ColorData } from \"./types\";\nimport { clamp, hexToRgb } from \"./utils\";\n\nconst esc: (open: number | string, close: number | string) => ColorData =\n isColorSupported() > 0\n ? (open: number | string, close: number | string): ColorData => {\n // eslint-disable-next-line prefer-template\n return { close: \"\\u001B[\" + close + \"m\", open: \"\\u001B[\" + open + \"m\" };\n }\n : (): ColorData => {\n return { close: \"\", open: \"\" };\n };\n\n// eslint-disable-next-line prefer-template\nconst createAnsi256 = (code: number | string): ColorData => esc(\"38;5;\" + code, 39);\n// eslint-disable-next-line prefer-template\nconst createBgAnsi256 = (code: number | string): ColorData => esc(\"48;5;\" + code, 49);\n// eslint-disable-next-line prefer-template\nconst createRgb = (r: number | string, g: number | string, b: number | string): ColorData => esc(\"38;2;\" + r + \";\" + g + \";\" + b, 39);\n// eslint-disable-next-line prefer-template\nconst createBgRgb = (r: number | string, g: number | string, b: number | string): ColorData => esc(\"48;2;\" + r + \";\" + g + \";\" + b, 49);\n\nexport const baseStyles: Required<Record<AnsiStyles, ColorData>> = {\n // 21 isn't widely supported and 22 does the same thing\n bold: esc(1, 22),\n dim: esc(2, 22),\n hidden: esc(8, 28),\n inverse: esc(7, 27),\n italic: esc(3, 23),\n overline: esc(53, 55),\n reset: esc(0, 0),\n strike: esc(9, 29), // alias for strikethrough\n strikethrough: esc(9, 29),\n underline: esc(4, 24),\n visible: { close: \"\", open: \"\" },\n};\n\nexport const baseColors: Required<Record<AnsiColors, ColorData>> = {\n bgBlack: esc(40, 49),\n bgBlackBright: esc(100, 49),\n bgBlue: esc(44, 49),\n bgBlueBright: esc(104, 49),\n bgCyan: esc(46, 49),\n bgCyanBright: esc(106, 49),\n bgGray: esc(100, 49), // US spelling alias for bgBlackBright\n bgGreen: esc(42, 49),\n bgGreenBright: esc(102, 49),\n bgGrey: esc(100, 49), // UK spelling alias for bgBlackBright\n bgMagenta: esc(45, 49),\n bgMagentaBright: esc(105, 49),\n bgRed: esc(41, 49),\n bgRedBright: esc(101, 49),\n bgWhite: esc(47, 49),\n bgWhiteBright: esc(107, 49),\n bgYellow: esc(43, 49),\n bgYellowBright: esc(103, 49),\n black: esc(30, 39),\n blackBright: esc(90, 39),\n blue: esc(34, 39),\n blueBright: esc(94, 39),\n cyan: esc(36, 39),\n cyanBright: esc(96, 39),\n gray: esc(90, 39), // US spelling alias for blackBright\n green: esc(32, 39),\n greenBright: esc(92, 39),\n grey: esc(90, 39), // UK spelling alias for blackBright\n magenta: esc(35, 39),\n magentaBright: esc(95, 39),\n red: esc(31, 39),\n redBright: esc(91, 39),\n white: esc(37, 39),\n whiteBright: esc(97, 39),\n yellow: esc(33, 39),\n yellowBright: esc(93, 39),\n};\n\nexport const styleMethods: {\n bg: (code: number) => ColorData;\n bgHex: (hex: string) => ColorData;\n bgRgb: (r: number, g: number, b: number) => ColorData;\n fg: (code: number) => ColorData;\n hex: (hex: string) => ColorData;\n rgb: (r: number, g: number, b: number) => ColorData;\n} = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n bg: (code) => createBgAnsi256(clamp(code, 0, 255)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n bgHex: (hex) => createBgRgb(...hexToRgb(hex)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n bgRgb: (r, g, b) => createBgRgb(clamp(r, 0, 255), clamp(g, 0, 255), clamp(b, 0, 255)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n fg: (code) => createAnsi256(clamp(code, 0, 255)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n hex: (hex) => createRgb(...hexToRgb(hex)),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n rgb: (r, g, b) => createRgb(clamp(r, 0, 255), clamp(g, 0, 255), clamp(b, 0, 255)),\n};\n","/**\n * Modified copy of https://github.com/webdiscus/ansis/blob/master/src/utils.js\n *\n * ISC License\n *\n * Copyright (c) 2023, webdiscus\n */\n\n/**\n * Convert hex color string to RGB values.\n *\n * A hexadecimal color code can be 3 or 6 digits with an optional \"#\" prefix.\n *\n * The 3 digits specifies an RGB doublet data as a fully opaque color.\n * For example, \"#123\" specifies the color that is represented by \"#112233\".\n *\n * The 6 digits specifies a fully opaque color.\n * For example, \"#112233\".\n *\n * @param {string} hex A string that contains the hexadecimal RGB color representation.\n * @return {[number, number, number]} The red, green, blue values in range [0, 255] .\n */\nexport const hexToRgb = (hex: string): [number, number, number] => {\n let color: string = hex.replace(\"#\", \"\");\n\n if (color.length === 3) {\n color = (color[0] as string) + (color[0] as string) + (color[1] as string) + (color[1] as string) + (color[2] as string) + (color[2] as string);\n } else if (color.length !== 6) {\n return [0, 0, 0];\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const number_ = Number.parseInt(color, 16);\n\n // eslint-disable-next-line no-bitwise\n return [(number_ >> 16) & 255, (number_ >> 8) & 255, number_ & 255];\n};\n\n/**\n * Clamp a number within the inclusive range specified by min and max.\n * @note: The ternary operator is a tick quicker than Math.min(Math.max(num, min), max).\n */\nexport const clamp = (number_: number, min: number, max: number): number => (min > number_ ? min : number_ > max ? max : number_);\n\n/**\n * Replace all matched strings.\n * Note: this implementation is over 30% faster than String.replaceAll().\n */\nexport const stringReplaceAll = (string_: string, searchValue: string, replaceValue: string): string => {\n // visible style has empty open/close props\n if (searchValue === \"\") {\n return string_;\n }\n\n let pos = string_.indexOf(searchValue);\n if (pos < 0) {\n return string_;\n }\n\n const substringLength = searchValue.length;\n let lastPos = 0;\n let result = \"\";\n\n // eslint-disable-next-line no-loops/no-loops,no-bitwise\n while (~pos) {\n result += string_.slice(lastPos, pos) + replaceValue;\n lastPos = pos + substringLength;\n pos = string_.indexOf(searchValue, lastPos);\n }\n\n return result + string_.slice(lastPos);\n};\n","/**\n * Modified copy of https://github.com/webdiscus/ansis/blob/master/src/index.js\n *\n * ISC License\n *\n * Copyright (c) 2023, webdiscus\n */\n\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport ansiRegex from \"ansi-regex\";\n\nimport { baseColors, baseStyles, styleMethods } from \"./ansi-codes\";\nimport type { ColorData, ColorizeType } from \"./types\";\nimport { stringReplaceAll } from \"./utils\";\n\nconst styles: Record<string, object> = {};\n\nlet stylePrototype: object | null = null;\n\nconst wrapText = (\n strings: ArrayLike<string> | ReadonlyArray<string> | number | string | { raw: ArrayLike<string> | ReadonlyArray<string> },\n values: string[],\n properties: ColorizeProperties,\n) => {\n if (!strings) {\n return \"\";\n }\n\n let string =\n (strings as { raw?: ArrayLike<string> | ReadonlyArray<string> | null }).raw == null\n ? `${strings as string}`\n : String.raw(strings as { raw: ArrayLike<string> | ReadonlyArray<string> }, ...values);\n\n if (string.includes(\"\\u001B\")) {\n // eslint-disable-next-line no-loops/no-loops,@typescript-eslint/no-unnecessary-condition\n for (let currentProperties = properties; currentProperties; currentProperties = currentProperties.props) {\n string = stringReplaceAll(string, currentProperties.close, currentProperties.open);\n }\n }\n\n if (string.includes(\"\\n\")) {\n // eslint-disable-next-line prefer-template,unicorn/prefer-string-replace-all\n string = string.replace(/(\\r*\\n)/g, properties.closeStack + \"$1\" + properties.openStack);\n }\n\n return properties.openStack + string + properties.closeStack;\n};\n\ntype ColorizeProperties = { close: string; closeStack: string; open: string; openStack: string; props: ColorizeProperties };\n\nconst createStyle = (\n { props }: { props?: ColorizeProperties },\n { close, open }: ColorData,\n): {\n (strings: ArrayLike<string> | ReadonlyArray<string> | string, ...values: string[]): string;\n close: string;\n open: string;\n props: { close: string; closeStack: string; open: string; openStack: string; props?: ColorizeProperties };\n} => {\n const openStack: string = (props?.openStack ?? \"\") + open;\n const closeStack: string = close + (props?.closeStack ?? \"\");\n\n const style = (strings: ArrayLike<string> | ReadonlyArray<string> | string, ...values: string[]) => wrapText(strings, values, style.props);\n\n Object.setPrototypeOf(style, stylePrototype);\n\n style.props = { close, closeStack, open, openStack, props } as ColorizeProperties;\n style.open = openStack;\n style.close = closeStack;\n\n return style;\n};\n\n// eslint-disable-next-line func-names\nconst Colorize = function () {\n const self = (string_: number | string) => `${string_}`;\n\n self.strip = (value: string): string => value.replaceAll(ansiRegex(), \"\");\n\n // eslint-disable-next-line guard-for-in,no-loops/no-loops,no-restricted-syntax\n for (const name in baseColors) {\n // eslint-disable-next-line security/detect-object-injection\n styles[name] = {\n get() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const style = createStyle(this, baseColors[name as keyof typeof baseColors]);\n\n Object.defineProperty(this, name, { value: style });\n\n return style;\n },\n };\n }\n\n // eslint-disable-next-line guard-for-in,no-loops/no-loops,no-restricted-syntax\n for (const name in baseStyles) {\n // eslint-disable-next-line security/detect-object-injection\n styles[name] = {\n get() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const style = createStyle(this, baseStyles[name as keyof typeof baseStyles]);\n\n Object.defineProperty(this, name, { value: style });\n\n return style;\n },\n };\n }\n\n // This needs to be the last thing we do, so that the prototype is fully populated.\n stylePrototype = Object.defineProperties({}, styles);\n\n Object.setPrototypeOf(self, stylePrototype);\n\n return self;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n} as any as new () => ColorizeType;\n\n// eslint-disable-next-line guard-for-in,no-loops/no-loops,no-restricted-syntax\nfor (const name in styleMethods) {\n styles[name as keyof typeof styleMethods] = {\n get() {\n return (...arguments_: (number | string)[]) =>\n // @ts-expect-error: TODO: fix typing of `arguments_`\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n createStyle(this, styleMethods[name as keyof typeof styleMethods](...arguments_));\n },\n };\n}\n\nstyles[\"ansi256\"] = styles[\"fg\"] as object;\nstyles[\"bgAnsi256\"] = styles[\"bg\"] as object;\n\n// eslint-disable-next-line import/no-default-export\nexport default Colorize;\n","import ColorizeImpl from \"./colorize\";\nimport type { ColorizeType } from \"./types\";\n\nconst colorize: ColorizeType = new ColorizeImpl() as ColorizeType;\n\n// eslint-disable-next-line import/no-default-export\nexport default colorize as ColorizeType;\n\n// eslint-disable-next-line import/no-unused-modules\nexport const {\n ansi256,\n bg,\n bgAnsi256,\n bgBlack,\n bgBlackBright,\n bgBlue,\n bgBlueBright,\n bgCyan,\n bgCyanBright,\n bgGray,\n bgGreen,\n bgGreenBright,\n bgGrey,\n bgHex,\n bgMagenta,\n bgMagentaBright,\n bgRed,\n bgRedBright,\n bgRgb,\n bgWhite,\n bgWhiteBright,\n bgYellow,\n bgYellowBright,\n black,\n blackBright,\n blue,\n blueBright,\n bold,\n cyan,\n cyanBright,\n dim,\n fg,\n gray,\n green,\n greenBright,\n grey,\n hex,\n hidden,\n inverse,\n italic,\n magenta,\n magentaBright,\n overline,\n red,\n redBright,\n reset,\n rgb,\n strike,\n strikethrough,\n strip,\n underline,\n visible,\n white,\n whiteBright,\n yellow,\n yellowBright,\n} = colorize;\n\nexport { default as Colorize } from \"./colorize\";\n\n// eslint-disable-next-line import/no-unused-modules\nexport type { AnsiColors, AnsiStyles, ColorizeType } from \"./types\";\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/colorize",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Terminal and Console string styling done right.",
5
5
  "keywords": [
6
6
  "256",
@@ -107,23 +107,23 @@
107
107
  "test:watch": "vitest"
108
108
  },
109
109
  "dependencies": {
110
- "@visulima/is-ansi-color-supported": "1.0.0"
110
+ "@visulima/is-ansi-color-supported": "1.1.0"
111
111
  },
112
112
  "devDependencies": {
113
113
  "@anolilab/eslint-config": "^15.0.3",
114
114
  "@anolilab/prettier-config": "^5.0.14",
115
115
  "@anolilab/semantic-release-preset": "^8.0.3",
116
- "@babel/core": "^7.23.7",
116
+ "@babel/core": "^7.23.9",
117
117
  "@rushstack/eslint-plugin-security": "^0.8.0",
118
- "@secretlint/secretlint-rule-preset-recommend": "^8.1.0",
118
+ "@secretlint/secretlint-rule-preset-recommend": "^8.1.1",
119
119
  "@types/micromatch": "^4.0.6",
120
120
  "@types/node": "18.18.8",
121
- "@vitest/coverage-v8": "^1.2.1",
122
- "@vitest/ui": "^1.2.1",
121
+ "@vitest/coverage-v8": "^1.2.2",
122
+ "@vitest/ui": "^1.2.2",
123
123
  "ansi-colors": "4.1.3",
124
124
  "ansi-regex": "^6.0.1",
125
125
  "ansi-styles": "^6.2.1",
126
- "ansis": "2.0.3",
126
+ "ansis": "2.2.0",
127
127
  "benchmark": "2.1.4",
128
128
  "chalk": "5.3.0",
129
129
  "cli-color": "2.0.3",
@@ -136,19 +136,19 @@
136
136
  "eslint-plugin-etc": "^2.0.3",
137
137
  "eslint-plugin-import": "npm:eslint-plugin-i@^2.29.1",
138
138
  "eslint-plugin-mdx": "^3.1.5",
139
- "eslint-plugin-vitest": "^0.3.20",
139
+ "eslint-plugin-vitest": "^0.3.22",
140
140
  "eslint-plugin-vitest-globals": "^1.4.0",
141
141
  "kleur": "4.1.5",
142
142
  "picocolors": "1.0.0",
143
- "prettier": "^3.2.4",
143
+ "prettier": "^3.2.5",
144
144
  "rimraf": "^5.0.5",
145
- "secretlint": "8.1.0",
146
- "semantic-release": "^23.0.0",
147
- "sort-package-json": "^2.6.0",
148
- "tsup": "^8.0.1",
149
- "type-fest": "^4.9.0",
145
+ "secretlint": "8.1.1",
146
+ "semantic-release": "^23.0.2",
147
+ "sort-package-json": "^2.7.0",
148
+ "tsup": "^8.0.2",
149
+ "type-fest": "^4.10.2",
150
150
  "typescript": "^5.3.3",
151
- "vitest": "^1.2.1"
151
+ "vitest": "^1.2.2"
152
152
  },
153
153
  "engines": {
154
154
  "node": ">=18.* <=21.*"