@baicie/ncu 0.1.16 → 0.1.21

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/build/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{a as e,c as t,d as n,i as r,l as i,n as a,o,s,u as c}from"./chunks/src.js";import l from"semver";import{Help as u,Option as d,program as f}from"commander";import p from"rfdc";const m=`Output the version number of npm-check-updates.`,h=e=>e.replace(/`/g,``),g=p();(async()=>{let{default:p}=await import(`update-notifier`),_=p({pkg:c});if(_.update&&_.update.latest!==n){let{default:e}=await import(`./chunks/source.js`),t=l.parse(_.update.current)?.major,n=l.parse(_.update.latest)?.major,r=(t&&n&&n>=t?Array(n-t).fill(0).map((e,n)=>t+n+1):[]).map(e=>`${i??``}/releases/tag/v${e}.0.0`),a=`${i??``}/compare/v${_.update.current}...v${_.update.latest}`;_.notify({defer:!1,isGlobal:!0,message:`Update available ${e.dim(`{currentVersion}`)}${e.reset(` → `)}${_.update.type===`major`?e.red(`{latestVersion}`):_.update.type===`minor`?e.yellow(`{latestVersion}`):e.green(`{latestVersion}`)}
2
+ import{a as e,c as t,d as n,i as r,l as i,n as a,o,s,u as c}from"./chunks/src.js";import l from"semver";import{Help as u,Option as d,program as f}from"commander";import p from"rfdc";const m=`Output the version number of npm-check-updates.`,h=e=>e.replace(/`/g,``),g=p();(async()=>{let{default:p}=await import(`update-notifier`),_=p({pkg:c});if(_.update&&_.update.latest!==n){let{default:e}=await import(`chalk`),t=l.parse(_.update.current)?.major,n=l.parse(_.update.latest)?.major,r=(t&&n&&n>=t?Array(n-t).fill(0).map((e,n)=>t+n+1):[]).map(e=>`${i??``}/releases/tag/v${e}.0.0`),a=`${i??``}/compare/v${_.update.current}...v${_.update.latest}`;_.notify({defer:!1,isGlobal:!0,message:`Update available ${e.dim(`{currentVersion}`)}${e.reset(` → `)}${_.update.type===`major`?e.red(`{latestVersion}`):_.update.type===`minor`?e.yellow(`{latestVersion}`):e.green(`{latestVersion}`)}
3
3
  Run ${e.cyan(`{updateCommand}`)} to update
4
4
  ${e.dim.underline(_.update.type===`major`?r.map(t=>e.dim.underline(t)).join(`
5
5
  `):a)}`})}let v=process.argv.slice(2),y=v.findIndex(e=>e===`--help`||e===`-h`);if(y!==-1&&v[y+1]){let e=v[y+1].replace(/^-*/,``);e===`help`||e===`h`?console.info(`Would you like some help with your help?`):(await t(),[...v.slice(0,y),...v.slice(y+1)].forEach(e=>{let t=e.replace(/^-*/,``),n=o.find(e=>t===e.long||t===e.short||t===`no-${e.long}`&&e.type===`boolean`);n?console.info(s(n)+`
package/build/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","names":["pkg.version","pkg.homepage","cliOptions","option","getNcuRc"],"sources":["../src/bin/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { Help, Option, program } from 'commander'\nimport createCloneDeep from 'rfdc'\nimport semver from 'semver'\nimport pkg from '../../package.json'\nimport cliOptions, { renderExtendedHelp } from '../cli-options'\nimport ncu from '../index'\nimport { chalkInit } from '../lib/chalk'\n// async global contexts are only available in esm modules -> function\nimport getNcuRc from '../lib/getNcuRc'\nimport { pickBy } from '../lib/pick'\n\nconst optionVersionDescription = 'Output the version number of npm-check-updates.'\n\n/** Removes inline code ticks. */\nconst uncode = (s: string) => s.replace(/`/g, '')\n\nconst cloneDeep = createCloneDeep()\n\n;(async () => {\n // importing update-notifier dynamically as esm modules are only allowed to be dynamically imported inside of cjs modules\n const { default: updateNotifier } = await import('update-notifier')\n\n // check if a new version of ncu is available and print an update notification\n //\n // For testing from specific versions, use:\n //\n // updateNotifier({\n // pkg: {\n // name: 'npm-check-updates',\n // version: x.y.z\n // },\n // updateCheckInterval: 0\n // })\n\n const notifier = updateNotifier({ pkg })\n if (notifier.update && notifier.update.latest !== pkg.version) {\n const { default: chalk } = await import('chalk')\n\n // generate release urls for all the major versions from the current version up to the latest\n const currentMajor = semver.parse(notifier.update.current)?.major\n const latestMajor = semver.parse(notifier.update.latest)?.major\n const majorVersions =\n // Greater than or equal to (>=) will always return false if either operant is NaN or undefined.\n // Without this condition, it can result in a RangeError: Invalid array length.\n // See: https://github.com/raineorshine/npm-check-updates/issues/1200\n currentMajor && latestMajor && latestMajor >= currentMajor\n ? new Array(latestMajor - currentMajor).fill(0).map((x, i) => currentMajor + i + 1)\n : []\n const releaseUrls = majorVersions.map(majorVersion => `${pkg.homepage ?? ''}/releases/tag/v${majorVersion}.0.0`)\n\n // for non-major updates, generate a URL to view all commits since the current version\n const compareUrl = `${pkg.homepage ?? ''}/compare/v${notifier.update.current}...v${notifier.update.latest}`\n\n notifier.notify({\n defer: false,\n isGlobal: true,\n message: `Update available ${chalk.dim('{currentVersion}')}${chalk.reset(' → ')}${\n notifier.update.type === 'major'\n ? chalk.red('{latestVersion}')\n : notifier.update.type === 'minor'\n ? chalk.yellow('{latestVersion}')\n : chalk.green('{latestVersion}')\n }\nRun ${chalk.cyan('{updateCommand}')} to update\n${chalk.dim.underline(\n notifier.update.type === 'major' ? releaseUrls.map(url => chalk.dim.underline(url)).join('\\n') : compareUrl,\n)}`,\n })\n }\n\n // manually detect option-specific help\n // https://github.com/raineorshine/npm-check-updates/issues/787\n const rawArgs = process.argv.slice(2)\n const indexHelp = rawArgs.findIndex(arg => arg === '--help' || arg === '-h')\n if (indexHelp !== -1 && rawArgs[indexHelp + 1]) {\n const helpOption = rawArgs[indexHelp + 1].replace(/^-*/, '')\n if (helpOption === 'help' || helpOption === 'h') {\n console.info('Would you like some help with your help?')\n } else {\n await chalkInit()\n const nonHelpArgs = [...rawArgs.slice(0, indexHelp), ...rawArgs.slice(indexHelp + 1)]\n nonHelpArgs.forEach(arg => {\n // match option by long or short\n const query = arg.replace(/^-*/, '')\n const option = cliOptions.find(\n option =>\n query === option.long ||\n query === option.short ||\n (query === `no-${option.long}` && option.type === 'boolean'),\n )\n if (option) {\n console.info(renderExtendedHelp(option) + '\\n')\n } else if (query === 'version' || query === 'v' || query === 'V') {\n console.info(\n renderExtendedHelp({\n long: 'version',\n short: 'v',\n description: optionVersionDescription,\n // do not pass boolean or it will print --no-version\n type: 'string',\n }) + '\\n',\n )\n } else {\n console.info(`Unknown option: ${arg}`)\n }\n })\n }\n process.exit(0)\n }\n\n // a set of options that only work in an rc config file, not on the command line\n const noCli = new Set(cliOptions.filter(option => option.cli === false).map(option => `--${option.long}`))\n\n // start commander program\n program\n .description('[filter] is a list or regex of package names to check (all others will be ignored).')\n .usage('[options] [filter]')\n // See: boolean optional arg below\n .configureHelp({\n optionTerm: option =>\n option.long && noCli.has(option.long)\n ? option.long.replace('--', '') + '*'\n : option.long === '--version'\n ? // add -v to version help to cover the alias added below\n '-v, -V, --version'\n : option.flags.replace('[bool]', ''),\n optionDescription: option =>\n option.long === '--version'\n ? optionVersionDescription\n : option.long === '--help'\n ? `You're lookin' at it. Run \"ncu --help <option>\" for a specific option.`\n : Help.prototype.optionDescription(option),\n })\n // add hidden -v alias for --V/--version\n .addOption(new Option('-v, --versionAlias').hideHelp())\n .on('option:versionAlias', () => {\n console.info(pkg.version)\n process.exit(0)\n })\n\n // add cli options\n cliOptions.forEach(({ long, short, arg, description, default: defaultValue, help, parse, type }) => {\n const flags = `${short ? `-${short}, ` : ''}--${long}${arg ? ` <${arg}>` : ''}`\n // format description for cli by removing inline code ticks\n // point to help in description if extended help text is available\n const descriptionFormatted = `${uncode(description)}${help ? ` Run \"ncu --help ${long}\" for details.` : ''}`\n\n // handle 3rd/4th argument polymorphism\n program.option(flags, descriptionFormatted, parse || defaultValue, parse ? defaultValue : undefined)\n\n // add --no- prefixed boolean options\n // necessary for overriding booleans set to true in the ncurc\n if (type === 'boolean') {\n program.addOption(new Option(`--no-${long}`).default(false).hideHelp())\n }\n })\n\n // set version option at the end\n program.version(pkg.version)\n\n // commander mutates its optionValues with program.parse\n // In order to call program.parse again and parse the rc file options, we need to clear commander's internal optionValues\n // Otherwise array options will be duplicated\n const defaultOptionValues = cloneDeep((program as any)._optionValues)\n program.allowExcessArguments(true)\n program.parse(process.argv)\n\n const programOpts = program.opts()\n const programArgs = process.argv.slice(2)\n\n const { color, configFileName, configFilePath, global, packageFile, mergeConfig } = programOpts\n\n // Force color on all chalk instances.\n // See: /src/lib/chalk.ts\n await chalkInit(color)\n\n // load .ncurc\n // Do not load when tests are running (can be overridden if configFilePath is set explicitly, or --mergeConfig option specified)\n const rcResult =\n !process.env.NCU_TESTS || configFilePath || mergeConfig\n ? await getNcuRc({\n configFileName,\n configFilePath,\n global,\n packageFile,\n options: { ...programOpts, cli: true },\n })\n : null\n\n // override rc args with program args\n const rcArgs = (rcResult?.args || []).filter(\n (arg, i, args) =>\n (typeof arg !== 'string' || !arg.startsWith('-') || !programArgs.includes(arg)) &&\n (typeof args[i - 1] !== 'string' || !args[i - 1].startsWith('-') || !programArgs.includes(args[i - 1])),\n )\n\n // insert config arguments into command line arguments so they can all be parsed by commander\n const combinedArguments = [...process.argv.slice(0, 2), ...rcArgs, ...programArgs]\n\n // See defaultOptionValues comment above\n ;(program as any)._optionValues = defaultOptionValues\n program.parse(combinedArguments)\n const combinedProgramOpts = program.opts()\n\n // filter out undefined program options and combine cli options with config file options\n const options = {\n ...(rcResult && Object.keys(rcResult.config).length > 0 ? { rcConfigPath: rcResult.filePath } : null),\n ...pickBy(program.opts(), (value: unknown) => value !== undefined),\n args: program.args,\n ...(combinedProgramOpts.filter ? { filter: combinedProgramOpts.filter } : null),\n ...(combinedProgramOpts.reject ? { reject: combinedProgramOpts.reject } : null),\n }\n\n // NOTE: Options handling and defaults go in initOptions in index.js\n\n ncu(options, { cli: true })\n})()\n"],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","names":["pkg.version","pkg.homepage","cliOptions","option","getNcuRc"],"sources":["../src/bin/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { Help, Option, program } from 'commander'\nimport createCloneDeep from 'rfdc'\nimport semver from 'semver'\nimport pkg from '../../package.json'\nimport cliOptions, { renderExtendedHelp } from '../cli-options'\nimport ncu from '../index'\nimport { chalkInit } from '../lib/chalk'\n// async global contexts are only available in esm modules -> function\nimport getNcuRc from '../lib/getNcuRc'\nimport { pickBy } from '../lib/pick'\n\nconst optionVersionDescription = 'Output the version number of npm-check-updates.'\n\n/** Removes inline code ticks. */\nconst uncode = (s: string) => s.replace(/`/g, '')\n\nconst cloneDeep = createCloneDeep()\n\n;(async () => {\n // importing update-notifier dynamically as esm modules are only allowed to be dynamically imported inside of cjs modules\n const { default: updateNotifier } = await import('update-notifier')\n\n // check if a new version of ncu is available and print an update notification\n //\n // For testing from specific versions, use:\n //\n // updateNotifier({\n // pkg: {\n // name: 'npm-check-updates',\n // version: x.y.z\n // },\n // updateCheckInterval: 0\n // })\n\n const notifier = updateNotifier({ pkg })\n if (notifier.update && notifier.update.latest !== pkg.version) {\n const { default: chalk } = await import('chalk')\n\n // generate release urls for all the major versions from the current version up to the latest\n const currentMajor = semver.parse(notifier.update.current)?.major\n const latestMajor = semver.parse(notifier.update.latest)?.major\n const majorVersions =\n // Greater than or equal to (>=) will always return false if either operant is NaN or undefined.\n // Without this condition, it can result in a RangeError: Invalid array length.\n // See: https://github.com/raineorshine/npm-check-updates/issues/1200\n currentMajor && latestMajor && latestMajor >= currentMajor\n ? new Array(latestMajor - currentMajor).fill(0).map((x, i) => currentMajor + i + 1)\n : []\n const releaseUrls = majorVersions.map(majorVersion => `${pkg.homepage ?? ''}/releases/tag/v${majorVersion}.0.0`)\n\n // for non-major updates, generate a URL to view all commits since the current version\n const compareUrl = `${pkg.homepage ?? ''}/compare/v${notifier.update.current}...v${notifier.update.latest}`\n\n notifier.notify({\n defer: false,\n isGlobal: true,\n message: `Update available ${chalk.dim('{currentVersion}')}${chalk.reset(' → ')}${\n notifier.update.type === 'major'\n ? chalk.red('{latestVersion}')\n : notifier.update.type === 'minor'\n ? chalk.yellow('{latestVersion}')\n : chalk.green('{latestVersion}')\n }\nRun ${chalk.cyan('{updateCommand}')} to update\n${chalk.dim.underline(\n notifier.update.type === 'major' ? releaseUrls.map(url => chalk.dim.underline(url)).join('\\n') : compareUrl,\n)}`,\n })\n }\n\n // manually detect option-specific help\n // https://github.com/raineorshine/npm-check-updates/issues/787\n const rawArgs = process.argv.slice(2)\n const indexHelp = rawArgs.findIndex(arg => arg === '--help' || arg === '-h')\n if (indexHelp !== -1 && rawArgs[indexHelp + 1]) {\n const helpOption = rawArgs[indexHelp + 1].replace(/^-*/, '')\n if (helpOption === 'help' || helpOption === 'h') {\n console.info('Would you like some help with your help?')\n } else {\n await chalkInit()\n const nonHelpArgs = [...rawArgs.slice(0, indexHelp), ...rawArgs.slice(indexHelp + 1)]\n nonHelpArgs.forEach(arg => {\n // match option by long or short\n const query = arg.replace(/^-*/, '')\n const option = cliOptions.find(\n option =>\n query === option.long ||\n query === option.short ||\n (query === `no-${option.long}` && option.type === 'boolean'),\n )\n if (option) {\n console.info(renderExtendedHelp(option) + '\\n')\n } else if (query === 'version' || query === 'v' || query === 'V') {\n console.info(\n renderExtendedHelp({\n long: 'version',\n short: 'v',\n description: optionVersionDescription,\n // do not pass boolean or it will print --no-version\n type: 'string',\n }) + '\\n',\n )\n } else {\n console.info(`Unknown option: ${arg}`)\n }\n })\n }\n process.exit(0)\n }\n\n // a set of options that only work in an rc config file, not on the command line\n const noCli = new Set(cliOptions.filter(option => option.cli === false).map(option => `--${option.long}`))\n\n // start commander program\n program\n .description('[filter] is a list or regex of package names to check (all others will be ignored).')\n .usage('[options] [filter]')\n // See: boolean optional arg below\n .configureHelp({\n optionTerm: option =>\n option.long && noCli.has(option.long)\n ? option.long.replace('--', '') + '*'\n : option.long === '--version'\n ? // add -v to version help to cover the alias added below\n '-v, -V, --version'\n : option.flags.replace('[bool]', ''),\n optionDescription: option =>\n option.long === '--version'\n ? optionVersionDescription\n : option.long === '--help'\n ? `You're lookin' at it. Run \"ncu --help <option>\" for a specific option.`\n : Help.prototype.optionDescription(option),\n })\n // add hidden -v alias for --V/--version\n .addOption(new Option('-v, --versionAlias').hideHelp())\n .on('option:versionAlias', () => {\n console.info(pkg.version)\n process.exit(0)\n })\n\n // add cli options\n cliOptions.forEach(({ long, short, arg, description, default: defaultValue, help, parse, type }) => {\n const flags = `${short ? `-${short}, ` : ''}--${long}${arg ? ` <${arg}>` : ''}`\n // format description for cli by removing inline code ticks\n // point to help in description if extended help text is available\n const descriptionFormatted = `${uncode(description)}${help ? ` Run \"ncu --help ${long}\" for details.` : ''}`\n\n // handle 3rd/4th argument polymorphism\n program.option(flags, descriptionFormatted, parse || defaultValue, parse ? defaultValue : undefined)\n\n // add --no- prefixed boolean options\n // necessary for overriding booleans set to true in the ncurc\n if (type === 'boolean') {\n program.addOption(new Option(`--no-${long}`).default(false).hideHelp())\n }\n })\n\n // set version option at the end\n program.version(pkg.version)\n\n // commander mutates its optionValues with program.parse\n // In order to call program.parse again and parse the rc file options, we need to clear commander's internal optionValues\n // Otherwise array options will be duplicated\n const defaultOptionValues = cloneDeep((program as any)._optionValues)\n program.allowExcessArguments(true)\n program.parse(process.argv)\n\n const programOpts = program.opts()\n const programArgs = process.argv.slice(2)\n\n const { color, configFileName, configFilePath, global, packageFile, mergeConfig } = programOpts\n\n // Force color on all chalk instances.\n // See: /src/lib/chalk.ts\n await chalkInit(color)\n\n // load .ncurc\n // Do not load when tests are running (can be overridden if configFilePath is set explicitly, or --mergeConfig option specified)\n const rcResult =\n !process.env.NCU_TESTS || configFilePath || mergeConfig\n ? await getNcuRc({\n configFileName,\n configFilePath,\n global,\n packageFile,\n options: { ...programOpts, cli: true },\n })\n : null\n\n // override rc args with program args\n const rcArgs = (rcResult?.args || []).filter(\n (arg, i, args) =>\n (typeof arg !== 'string' || !arg.startsWith('-') || !programArgs.includes(arg)) &&\n (typeof args[i - 1] !== 'string' || !args[i - 1].startsWith('-') || !programArgs.includes(args[i - 1])),\n )\n\n // insert config arguments into command line arguments so they can all be parsed by commander\n const combinedArguments = [...process.argv.slice(0, 2), ...rcArgs, ...programArgs]\n\n // See defaultOptionValues comment above\n ;(program as any)._optionValues = defaultOptionValues\n program.parse(combinedArguments)\n const combinedProgramOpts = program.opts()\n\n // filter out undefined program options and combine cli options with config file options\n const options = {\n ...(rcResult && Object.keys(rcResult.config).length > 0 ? { rcConfigPath: rcResult.filePath } : null),\n ...pickBy(program.opts(), (value: unknown) => value !== undefined),\n args: program.args,\n ...(combinedProgramOpts.filter ? { filter: combinedProgramOpts.filter } : null),\n ...(combinedProgramOpts.reject ? { reject: combinedProgramOpts.reject } : null),\n }\n\n // NOTE: Options handling and defaults go in initOptions in index.js\n\n ncu(options, { cli: true })\n})()\n"],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -139,7 +139,7 @@ interface RunOptions {
139
139
  /** Customize how packages are divided into groups when using `--format group`. Run "ncu --help --groupFunction" for details. */
140
140
  groupFunction?: GroupFunction;
141
141
  /** Ignore directories containing package.json files (comma-delimited). */
142
- ignoreDirs?: string | readonly string[];
142
+ ignore?: string | readonly string[];
143
143
  /** Control the auto-install behavior: always, never, prompt. Run "ncu --help --install" for details.
144
144
  *
145
145
  * @default "prompt"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baicie/ncu",
3
- "version": "0.1.16",
3
+ "version": "0.1.21",
4
4
  "author": "Tomas Junnonen <tomas1@gmail.com>",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -29,9 +29,9 @@
29
29
  },
30
30
  "repository": {
31
31
  "type": "git",
32
- "url": "git+https://github.com/raineorshine/npm-check-updates.git"
32
+ "url": "git+https://github.com/baicie/npm-check-updates.git"
33
33
  },
34
- "homepage": "https://github.com/raineorshine/npm-check-updates",
34
+ "homepage": "https://github.com/baicie/npm-check-updates",
35
35
  "bugs": {
36
36
  "url": "https://github.com/raineorshine/npm-check-updates/issues"
37
37
  },
@@ -42,6 +42,7 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "camelcase": "^9.0.0",
45
+ "chalk": "^5.6.2",
45
46
  "cli-table3": "^0.6.5",
46
47
  "commander": "^14.0.2",
47
48
  "dequal": "^2.0.3",
@@ -99,7 +100,6 @@
99
100
  "chai": "^6.2.2",
100
101
  "chai-as-promised": "^8.0.2",
101
102
  "chai-string": "^1.6.0",
102
- "chalk": "^5.6.2",
103
103
  "cross-env": "^10.1.0",
104
104
  "eslint": "^9.39.2",
105
105
  "eslint-config-prettier": "^10.1.8",
@@ -1,6 +0,0 @@
1
- const e=(e=0)=>t=>`\u001B[${t+e}m`,t=(e=0)=>t=>`\u001B[${38+e};5;${t}m`,n=(e=0)=>(t,n,r)=>`\u001B[${38+e};2;${t};${n};${r}m`,r={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(r.modifier);const i=Object.keys(r.color),a=Object.keys(r.bgColor);[...i,...a];function o(){let i=new Map;for(let[e,t]of Object.entries(r)){for(let[e,n]of Object.entries(t))r[e]={open:`\u001B[${n[0]}m`,close:`\u001B[${n[1]}m`},t[e]=r[e],i.set(n[0],n[1]);Object.defineProperty(r,e,{value:t,enumerable:!1})}return Object.defineProperty(r,`codes`,{value:i,enumerable:!1}),r.color.close=`\x1B[39m`,r.bgColor.close=`\x1B[49m`,r.color.ansi=e(),r.color.ansi256=t(),r.color.ansi16m=n(),r.bgColor.ansi=e(10),r.bgColor.ansi256=t(10),r.bgColor.ansi16m=n(10),Object.defineProperties(r,{rgbToAnsi256:{value(e,t,n){return e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(e){let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[n]=t;n.length===3&&(n=[...n].map(e=>e+e).join(``));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:e=>r.rgbToAnsi256(...r.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,n,r;if(e>=232)t=((e-232)*10+8)/255,n=t,r=t;else{e-=16;let i=e%36;t=Math.floor(e/36)/5,n=Math.floor(i/6)/5,r=i%6/5}let i=Math.max(t,n,r)*2;if(i===0)return 30;let a=30+(Math.round(r)<<2|Math.round(n)<<1|Math.round(t));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(e,t,n)=>r.ansi256ToAnsi(r.rgbToAnsi256(e,t,n)),enumerable:!1},hexToAnsi:{value:e=>r.ansi256ToAnsi(r.hexToAnsi256(e)),enumerable:!1}}),r}var s=o();const c=(()=>{if(!(`navigator`in globalThis))return 0;if(globalThis.navigator.userAgentData){let e=navigator.userAgentData.brands.find(({brand:e})=>e===`Chromium`);if(e&&e.version>93)return 3}return/\b(Chrome|Chromium)\//.test(globalThis.navigator.userAgent)?1:0})(),l=c!==0&&{level:c,hasBasic:!0,has256:c>=2,has16m:c>=3};var u={stdout:l,stderr:l};function d(e,t,n){let r=e.indexOf(t);if(r===-1)return e;let i=t.length,a=0,o=``;do o+=e.slice(a,r)+t+n,a=r+i,r=e.indexOf(t,a);while(r!==-1);return o+=e.slice(a),o}function f(e,t,n,r){let i=0,a=``;do{let o=e[r-1]===`\r`;a+=e.slice(i,o?r-1:r)+t+(o?`\r
2
- `:`
3
- `)+n,i=r+1,r=e.indexOf(`
4
- `,i)}while(r!==-1);return a+=e.slice(i),a}const{stdout:p,stderr:m}=u,h=Symbol(`GENERATOR`),g=Symbol(`STYLER`),_=Symbol(`IS_EMPTY`),v=[`ansi`,`ansi`,`ansi256`,`ansi16m`],y=Object.create(null),b=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let n=p?p.level:0;e.level=t.level===void 0?n:t.level};var x=class{constructor(e){return S(e)}};const S=e=>{let t=(...e)=>e.join(` `);return b(t,e),Object.setPrototypeOf(t,C.prototype),t};function C(e){return S(e)}Object.setPrototypeOf(C.prototype,Function.prototype);for(let[e,t]of Object.entries(s))y[e]={get(){let n=D(this,E(t.open,t.close,this[g]),this[_]);return Object.defineProperty(this,e,{value:n}),n}};y.visible={get(){let e=D(this,this[g],!0);return Object.defineProperty(this,`visible`,{value:e}),e}};const w=(e,t,n,...r)=>e===`rgb`?t===`ansi16m`?s[n].ansi16m(...r):t===`ansi256`?s[n].ansi256(s.rgbToAnsi256(...r)):s[n].ansi(s.rgbToAnsi(...r)):e===`hex`?w(`rgb`,t,n,...s.hexToRgb(...r)):s[n][e](...r);for(let e of[`rgb`,`hex`,`ansi256`]){y[e]={get(){let{level:t}=this;return function(...n){let r=E(w(e,v[t],`color`,...n),s.color.close,this[g]);return D(this,r,this[_])}}};let t=`bg`+e[0].toUpperCase()+e.slice(1);y[t]={get(){let{level:t}=this;return function(...n){let r=E(w(e,v[t],`bgColor`,...n),s.bgColor.close,this[g]);return D(this,r,this[_])}}}}const T=Object.defineProperties(()=>{},{...y,level:{enumerable:!0,get(){return this[h].level},set(e){this[h].level=e}}}),E=(e,t,n)=>{let r,i;return n===void 0?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},D=(e,t,n)=>{let r=(...e)=>O(r,e.length===1?``+e[0]:e.join(` `));return Object.setPrototypeOf(r,T),r[h]=e,r[g]=t,r[_]=n,r},O=(e,t)=>{if(e.level<=0||!t)return e[_]?``:t;let n=e[g];if(n===void 0)return t;let{openAll:r,closeAll:i}=n;if(t.includes(`\x1B`))for(;n!==void 0;)t=d(t,n.close,n.open),n=n.parent;let a=t.indexOf(`
5
- `);return a!==-1&&(t=f(t,i,r,a)),r+t+i};Object.defineProperties(C.prototype,y);const k=C();C({level:m?m.level:0});var A=k;export{x as Chalk,A as default};
6
- //# sourceMappingURL=source.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source.js","names":["styles","brand","supportsColor","chalk","ansiStyles","level"],"sources":["../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js","../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/browser.js","../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/utilities.js","../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/index.js"],"sourcesContent":["const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","/* eslint-env browser */\n\nconst level = (() => {\n\tif (!('navigator' in globalThis)) {\n\t\treturn 0;\n\t}\n\n\tif (globalThis.navigator.userAgentData) {\n\t\tconst brand = navigator.userAgentData.brands.find(({brand}) => brand === 'Chromium');\n\t\tif (brand && brand.version > 93) {\n\t\t\treturn 3;\n\t\t}\n\t}\n\n\tif (/\\b(Chrome|Chromium)\\//.test(globalThis.navigator.userAgent)) {\n\t\treturn 1;\n\t}\n\n\treturn 0;\n})();\n\nconst colorSupport = level !== 0 && {\n\tlevel,\n\thasBasic: true,\n\thas256: level >= 2,\n\thas16m: level >= 3,\n};\n\nconst supportsColor = {\n\tstdout: colorSupport,\n\tstderr: colorSupport,\n};\n\nexport default supportsColor;\n","// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function stringReplaceAll(string, substring, replacer) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.slice(endIndex, (gotCR ? index - 1 : index)) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n","import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m',\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nexport class Chalk {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t},\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this[STYLER], true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t},\n};\n\nconst getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this[GENERATOR].level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis[GENERATOR].level = level;\n\t\t},\n\t},\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent,\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder[GENERATOR] = self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : string;\n\t}\n\n\tlet styler = self[STYLER];\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.includes('\\u001B')) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}