{
  "manifest": {
    "name": "react-dev-utils",
    "version": "12.0.1",
    "description": "webpack utilities used by Create React App",
    "repository": {
      "type": "git",
      "url": "https://github.com/facebook/create-react-app.git",
      "directory": "packages/react-dev-utils"
    },
    "license": "MIT",
    "bugs": {
      "url": "https://github.com/facebook/create-react-app/issues"
    },
    "engines": {
      "node": ">=14"
    },
    "files": [
      "browsersHelper.js",
      "chalk.js",
      "checkRequiredFiles.js",
      "clearConsole.js",
      "crossSpawn.js",
      "errorOverlayMiddleware.js",
      "eslintFormatter.js",
      "evalSourceMapMiddleware.js",
      "FileSizeReporter.js",
      "ForkTsCheckerWebpackPlugin.js",
      "ForkTsCheckerWarningWebpackPlugin.js",
      "formatWebpackMessages.js",
      "getCacheIdentifier.js",
      "getCSSModuleLocalIdent.js",
      "getProcessForPort.js",
      "getPublicUrlOrPath.js",
      "globby.js",
      "ignoredFiles.js",
      "immer.js",
      "InlineChunkHtmlPlugin.js",
      "InterpolateHtmlPlugin.js",
      "launchEditor.js",
      "launchEditorEndpoint.js",
      "ModuleNotFoundPlugin.js",
      "ModuleScopePlugin.js",
      "noopServiceWorkerMiddleware.js",
      "openBrowser.js",
      "openChrome.applescript",
      "printBuildError.js",
      "printHostingInstructions.js",
      "redirectServedPathMiddleware.js",
      "refreshOverlayInterop.js",
      "typescriptFormatter.js",
      "WebpackDevServerUtils.js",
      "webpackHotDevClient.js"
    ],
    "dependencies": {
      "@babel/code-frame": "^7.16.0",
      "address": "^1.1.2",
      "browserslist": "^4.18.1",
      "chalk": "^4.1.2",
      "cross-spawn": "^7.0.3",
      "detect-port-alt": "^1.1.6",
      "escape-string-regexp": "^4.0.0",
      "filesize": "^8.0.6",
      "find-up": "^5.0.0",
      "fork-ts-checker-webpack-plugin": "^6.5.0",
      "global-modules": "^2.0.0",
      "globby": "^11.0.4",
      "gzip-size": "^6.0.0",
      "immer": "^9.0.7",
      "is-root": "^2.1.0",
      "loader-utils": "^3.2.0",
      "open": "^8.4.0",
      "pkg-up": "^3.1.0",
      "prompts": "^2.4.2",
      "react-error-overlay": "^6.0.11",
      "recursive-readdir": "^2.2.2",
      "shell-quote": "^1.7.3",
      "strip-ansi": "^6.0.1",
      "text-table": "^0.2.0"
    },
    "devDependencies": {
      "cross-env": "^7.0.3",
      "jest": "^27.4.3"
    },
    "scripts": {
      "test": "cross-env FORCE_COLOR=true jest"
    },
    "gitHead": "19fa58d527ae74f2b6baa0867463eea1d290f9a5",
    "_registry": "npm",
    "_loc": "/homez.1033/heliovt/.cache/yarn/v6/npm-react-dev-utils-12.0.1-ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73-integrity/node_modules/react-dev-utils/package.json",
    "readmeFilename": "README.md",
    "readme": "# react-dev-utils\n\nThis package includes some utilities used by [Create React App](https://github.com/facebook/create-react-app).<br>\nPlease refer to its documentation:\n\n- [Getting Started](https://facebook.github.io/create-react-app/docs/getting-started) – How to create a new app.\n- [User Guide](https://facebook.github.io/create-react-app/) – How to develop apps bootstrapped with Create React App.\n\n## Usage in Create React App Projects\n\nThese utilities come by default with [Create React App](https://github.com/facebook/create-react-app). **You don’t need to install it separately in Create React App projects.**\n\n## Usage Outside of Create React App\n\nIf you don’t use Create React App, or if you [ejected](https://facebook.github.io/create-react-app/docs/available-scripts#npm-run-eject), you may keep using these utilities. Their development will be aligned with Create React App, so major versions of these utilities may come out relatively often. Feel free to fork or copy and paste them into your projects if you’d like to have more control over them, or feel free to use the old versions. Not all of them are React-specific, but we might make some of them more React-specific in the future.\n\n### Entry Points\n\nThere is no single entry point. You can only import individual top-level modules.\n\n#### `new InterpolateHtmlPlugin(htmlWebpackPlugin: HtmlWebpackPlugin, replacements: {[key:string]: string})`\n\nThis webpack plugin lets us interpolate custom variables into `index.html`.<br>\nIt works in tandem with [HtmlWebpackPlugin](https://github.com/ampedandwired/html-webpack-plugin) 2.x via its [events](https://github.com/ampedandwired/html-webpack-plugin#events).\n\n```js\nvar path = require('path');\nvar HtmlWebpackPlugin = require('html-webpack-plugin');\nvar InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin');\n\n// webpack config\nvar publicUrl = '/my-custom-url';\n\nmodule.exports = {\n  output: {\n    // ...\n    publicPath: publicUrl + '/',\n  },\n  // ...\n  plugins: [\n    // Generates an `index.html` file with the <script> injected.\n    new HtmlWebpackPlugin({\n      inject: true,\n      template: path.resolve('public/index.html'),\n    }),\n    // Makes the public URL available as %PUBLIC_URL% in index.html, e.g.:\n    // <link rel=\"icon\" href=\"%PUBLIC_URL%/favicon.ico\">\n    new InterpolateHtmlPlugin(HtmlWebpackPlugin, {\n      PUBLIC_URL: publicUrl,\n      // You can pass any key-value pairs, this was just an example.\n      // WHATEVER: 42 will replace %WHATEVER% with 42 in index.html.\n    }),\n    // ...\n  ],\n  // ...\n};\n```\n\n#### `new InlineChunkHtmlPlugin(htmlWebpackPlugin: HtmlWebpackPlugin, tests: Regex[])`\n\nThis webpack plugin inlines script chunks into `index.html`.<br>\nIt works in tandem with [HtmlWebpackPlugin](https://github.com/ampedandwired/html-webpack-plugin) 4.x.\n\n```js\nvar path = require('path');\nvar HtmlWebpackPlugin = require('html-webpack-plugin');\nvar InlineChunkHtmlPlugin = require('react-dev-utils/InlineChunkHtmlPlugin');\n\n// webpack config\nvar publicUrl = '/my-custom-url';\n\nmodule.exports = {\n  output: {\n    // ...\n    publicPath: publicUrl + '/',\n  },\n  // ...\n  plugins: [\n    // Generates an `index.html` file with the <script> injected.\n    new HtmlWebpackPlugin({\n      inject: true,\n      template: path.resolve('public/index.html'),\n    }),\n    // Inlines chunks with `runtime` in the name\n    new InlineChunkHtmlPlugin(HtmlWebpackPlugin, [/runtime/]),\n    // ...\n  ],\n  // ...\n};\n```\n\n#### `new ModuleScopePlugin(appSrc: string | string[], allowedFiles?: string[])`\n\nThis webpack plugin ensures that relative imports from app's source directories don't reach outside of it.\n\n```js\nvar path = require('path');\nvar ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin');\n\nmodule.exports = {\n  // ...\n  resolve: {\n    // ...\n    plugins: [\n      new ModuleScopePlugin(paths.appSrc, [paths.appPackageJson]),\n      // ...\n    ],\n    // ...\n  },\n  // ...\n};\n```\n\n#### `checkRequiredFiles(files: Array<string>): boolean`\n\nMakes sure that all passed files exist.<br>\nFilenames are expected to be absolute.<br>\nIf a file is not found, prints a warning message and returns `false`.\n\n```js\nvar path = require('path');\nvar checkRequiredFiles = require('react-dev-utils/checkRequiredFiles');\n\nif (\n  !checkRequiredFiles([\n    path.resolve('public/index.html'),\n    path.resolve('src/index.js'),\n  ])\n) {\n  process.exit(1);\n}\n```\n\n#### `clearConsole(): void`\n\nClears the console, hopefully in a cross-platform way.\n\n```js\nvar clearConsole = require('react-dev-utils/clearConsole');\n\nclearConsole();\nconsole.log('Just cleared the screen!');\n```\n\n#### `eslintFormatter(results: Object): string`\n\nThis is our custom ESLint formatter that integrates well with Create React App console output.<br>\nYou can use the default one instead if you prefer so.\n\n```js\nconst eslintFormatter = require('react-dev-utils/eslintFormatter');\n\n// In your webpack config:\n// ...\nmodule: {\n  rules: [\n    {\n      test: /\\.(js|jsx)$/,\n      include: paths.appSrc,\n      enforce: 'pre',\n      use: [\n        {\n          loader: 'eslint-loader',\n          options: {\n            // Pass the formatter:\n            formatter: eslintFormatter,\n          },\n        },\n      ],\n    },\n  ];\n}\n```\n\n#### `FileSizeReporter`\n\n##### `measureFileSizesBeforeBuild(buildFolder: string): Promise<OpaqueFileSizes>`\n\nCaptures JS and CSS asset sizes inside the passed `buildFolder`. Save the result value to compare it after the build.\n\n##### `printFileSizesAfterBuild(webpackStats: WebpackStats, previousFileSizes: OpaqueFileSizes, buildFolder: string, maxBundleGzipSize?: number, maxChunkGzipSize?: number)`\n\nPrints the JS and CSS asset sizes after the build, and includes a size comparison with `previousFileSizes` that were captured earlier using `measureFileSizesBeforeBuild()`. `maxBundleGzipSize` and `maxChunkGzipSizemay` may optionally be specified to display a warning when the main bundle or a chunk exceeds the specified size (in bytes).\n\n```js\nvar {\n  measureFileSizesBeforeBuild,\n  printFileSizesAfterBuild,\n} = require('react-dev-utils/FileSizeReporter');\n\nmeasureFileSizesBeforeBuild(buildFolder).then(previousFileSizes => {\n  return cleanAndRebuild().then(webpackStats => {\n    printFileSizesAfterBuild(webpackStats, previousFileSizes, buildFolder);\n  });\n});\n```\n\n#### `formatWebpackMessages({errors: Array<string>, warnings: Array<string>}): {errors: Array<string>, warnings: Array<string>}`\n\nExtracts and prettifies warning and error messages from webpack [stats](https://github.com/webpack/docs/wiki/node.js-api#stats) object.\n\n```js\nvar webpack = require('webpack');\nvar config = require('../config/webpack.config.dev');\nvar formatWebpackMessages = require('react-dev-utils/formatWebpackMessages');\n\nvar compiler = webpack(config);\n\ncompiler.hooks.invalid.tap('invalid', function () {\n  console.log('Compiling...');\n});\n\ncompiler.hooks.done.tap('done', function (stats) {\n  var rawMessages = stats.toJson({}, true);\n  var messages = formatWebpackMessages(rawMessages);\n  if (!messages.errors.length && !messages.warnings.length) {\n    console.log('Compiled successfully!');\n  }\n  if (messages.errors.length) {\n    console.log('Failed to compile.');\n    messages.errors.forEach(e => console.log(e));\n    return;\n  }\n  if (messages.warnings.length) {\n    console.log('Compiled with warnings.');\n    messages.warnings.forEach(w => console.log(w));\n  }\n});\n```\n\n#### `printBuildError(error: Object): void`\n\nPrettify some known build errors.\nPass an Error object to log a prettified error message in the console.\n\n```\n  const printBuildError = require('react-dev-utils/printBuildError')\n  try {\n    build()\n  } catch(e) {\n    printBuildError(e) // logs prettified message\n  }\n```\n\n#### `getProcessForPort(port: number): string`\n\nFinds the currently running process on `port`.\nReturns a string containing the name and directory, e.g.,\n\n```\ncreate-react-app\nin /Users/developer/create-react-app\n```\n\n```js\nvar getProcessForPort = require('react-dev-utils/getProcessForPort');\n\ngetProcessForPort(3000);\n```\n\n#### `launchEditor(fileName: string, lineNumber: number): void`\n\nOn macOS, tries to find a known running editor process and opens the file in it. It can also be explicitly configured by `REACT_EDITOR`, `VISUAL`, or `EDITOR` environment variables. For example, you can put `REACT_EDITOR=atom` in your `.env.local` file, and Create React App will respect that.\n\n#### `noopServiceWorkerMiddleware(servedPath: string): ExpressMiddleware`\n\nReturns Express middleware that serves a `${servedPath}/service-worker.js` that resets any previously set service worker configuration. Useful for development.\n\n#### `redirectServedPathMiddleware(servedPath: string): ExpressMiddleware`\n\nReturns Express middleware that redirects to `${servedPath}/${req.path}`, if `req.url`\ndoes not start with `servedPath`. Useful for development.\n\n#### `openBrowser(url: string): boolean`\n\nAttempts to open the browser with a given URL.<br>\nOn Mac OS X, attempts to reuse an existing Chrome tab via AppleScript.<br>\nOtherwise, falls back to [opn](https://github.com/sindresorhus/opn) behavior.\n\n```js\nvar path = require('path');\nvar openBrowser = require('react-dev-utils/openBrowser');\n\nif (openBrowser('http://localhost:3000')) {\n  console.log('The browser tab has been opened!');\n}\n```\n\n#### `printHostingInstructions(appPackage: Object, publicUrl: string, publicPath: string, buildFolder: string, useYarn: boolean): void`\n\nPrints hosting instructions after the project is built.\n\nPass your parsed `package.json` object as `appPackage`, your URL where you plan to host the app as `publicUrl`, `output.publicPath` from your webpack configuration as `publicPath`, the `buildFolder` name, and whether to `useYarn` in instructions.\n\n```js\nconst appPackage = require(paths.appPackageJson);\nconst publicUrl = paths.publicUrlOrPath;\nconst publicPath = config.output.publicPath;\nprintHostingInstructions(appPackage, publicUrl, publicPath, 'build', true);\n```\n\n#### `WebpackDevServerUtils`\n\n##### `choosePort(host: string, defaultPort: number): Promise<number | null>`\n\nReturns a Promise resolving to either `defaultPort` or next available port if the user confirms it is okay to do. If the port is taken and the user has refused to use another port, or if the terminal is not interactive and can’t present user with the choice, resolves to `null`.\n\n##### `createCompiler(args: Object): WebpackCompiler`\n\nCreates a webpack compiler instance for WebpackDevServer with built-in helpful messages.\n\nThe `args` object accepts a number of properties:\n\n- **appName** `string`: The name that will be printed to the terminal.\n- **config** `Object`: The webpack configuration options to be provided to the webpack constructor.\n- **urls** `Object`: To provide the `urls` argument, use `prepareUrls()` described below.\n- **useYarn** `boolean`: If `true`, yarn instructions will be emitted in the terminal instead of npm.\n- **useTypeScript** `boolean`: If `true`, TypeScript type checking will be enabled. Be sure to provide the `devSocket` argument above if this is set to `true`.\n- **webpack** `function`: A reference to the webpack constructor.\n\n##### `prepareProxy(proxySetting: string, appPublicFolder: string, servedPathname: string): Object`\n\nCreates a WebpackDevServer `proxy` configuration object from the `proxy` setting in `package.json`.\n\n##### `prepareUrls(protocol: string, host: string, port: number, pathname: string = '/'): Object`\n\nReturns an object with local and remote URLs for the development server. Pass this object to `createCompiler()` described above.\n\n#### `webpackHotDevClient`\n\nThis is an alternative client for [WebpackDevServer](https://github.com/webpack/webpack-dev-server) that shows a syntax error overlay.\n\nIt currently supports only webpack 3.x.\n\n```js\n// webpack development config\nmodule.exports = {\n  // ...\n  entry: [\n    // You can replace the line below with these two lines if you prefer the\n    // stock client:\n    // require.resolve('webpack-dev-server/client') + '?/',\n    // require.resolve('webpack/hot/dev-server'),\n    'react-dev-utils/webpackHotDevClient',\n    'src/index',\n  ],\n  // ...\n};\n```\n\n#### `getCSSModuleLocalIdent(context: Object, localIdentName: String, localName: String, options: Object): string`\n\nCreates a class name for CSS Modules that uses either the filename or folder name if named `index.module.css`.\n\nFor `MyFolder/MyComponent.module.css` and class `MyClass` the output will be `MyComponent.module_MyClass__[hash]`\nFor `MyFolder/index.module.css` and class `MyClass` the output will be `MyFolder_MyClass__[hash]`\n\n```js\nconst getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent');\n\n// In your webpack config:\n// ...\nmodule: {\n  rules: [\n    {\n      test: /\\.module\\.css$/,\n      use: [\n        require.resolve('style-loader'),\n        {\n          loader: require.resolve('css-loader'),\n          options: {\n            importLoaders: 1,\n            modules: {\n              getLocalIdent: getCSSModuleLocalIdent,\n            },\n          },\n        },\n        {\n          loader: require.resolve('postcss-loader'),\n          options: postCSSLoaderOptions,\n        },\n      ],\n    },\n  ];\n}\n```\n\n#### `getCacheIdentifier(environment: string, packages: string[]): string`\n\nReturns a cache identifier (string) consisting of the specified environment and related package versions, e.g.,\n\n```js\nvar getCacheIdentifier = require('react-dev-utils/getCacheIdentifier');\n\ngetCacheIdentifier('prod', ['react-dev-utils', 'chalk']); // # => 'prod:react-dev-utils@5.0.0:chalk@3.0.0'\n```\n",
    "licenseText": "MIT License\n\nCopyright (c) 2013-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  "artifacts": [],
  "remote": {
    "resolved": "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73",
    "type": "tarball",
    "reference": "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
    "hash": "ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73",
    "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==",
    "registry": "npm",
    "packageName": "react-dev-utils",
    "cacheIntegrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== sha1-upLttKHzeb1GzNa81Oe8OY3zPnM="
  },
  "registry": "npm",
  "hash": "ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73"
}