diff --git a/.github/workflows/bundler-friendly.yml b/.github/workflows/bundler-friendly.yml index 710e16fcd..063b2cfa7 100644 --- a/.github/workflows/bundler-friendly.yml +++ b/.github/workflows/bundler-friendly.yml @@ -30,7 +30,7 @@ jobs: run: yarn build - name: Upload Artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: dist path: dist @@ -50,7 +50,7 @@ jobs: uses: actions/setup-node@v2.5.1 - name: Download Artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: dist path: dist diff --git a/.github/workflows/dev-test.yml b/.github/workflows/dev-test.yml index 0b14f7932..74698ecda 100644 --- a/.github/workflows/dev-test.yml +++ b/.github/workflows/dev-test.yml @@ -19,20 +19,21 @@ jobs: - "macos-latest" - "windows-latest" node: + - "18" - "16" - "14" include: # only enable coverage on the fastest job - os: "ubuntu-latest" - node: "16" + node: "18" ENABLE_CODE_COVERAGE: true FULL_TEST: true CHECK_TEST_PARSERS: true - # exclude: - # - os: "macos-latest" - # node: "14" - # - os: "windows-latest" - # node: "14" + exclude: + - os: "macos-latest" + node: "16" + - os: "windows-latest" + node: "16" env: ENABLE_CODE_COVERAGE: ${{ matrix.ENABLE_CODE_COVERAGE }} FULL_TEST: ${{ matrix.FULL_TEST }} @@ -75,7 +76,7 @@ jobs: run: yarn c8 yarn test:format --maxWorkers=2 - name: Upload Coverage - uses: codecov/codecov-action@v2.1.0 + uses: codecov/codecov-action@v3.1.0 if: ${{ matrix.ENABLE_CODE_COVERAGE }} with: fail_ci_if_error: true @@ -87,7 +88,7 @@ jobs: # PRETTIER_FALLBACK_RESOLVE: true # - name: Upload Coverage (PRETTIER_FALLBACK_RESOLVE) - # uses: codecov/codecov-action@v2.1.0 + # uses: codecov/codecov-action@v3.1.0 # if: ${{ matrix.ENABLE_CODE_COVERAGE }} # with: # fail_ci_if_error: true diff --git a/.github/workflows/prod-test.yml b/.github/workflows/prod-test.yml index 4e5382a17..3ad75d3c2 100644 --- a/.github/workflows/prod-test.yml +++ b/.github/workflows/prod-test.yml @@ -28,7 +28,7 @@ jobs: run: yarn build - name: Upload Artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: dist path: dist @@ -50,7 +50,7 @@ jobs: run: yarn install --frozen-lockfile - name: Download Artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: dist path: dist @@ -68,16 +68,21 @@ jobs: - "macos-latest" - "windows-latest" node: + - "18" - "16" - "14" - "12" include: - os: "ubuntu-latest" - node: "16" + node: "18" FULL_TEST: true exclude: + - os: "macos-latest" + node: "16" - os: "macos-latest" node: "14" + - os: "windows-latest" + node: "16" - os: "windows-latest" node: "14" env: @@ -103,7 +108,7 @@ jobs: run: yarn install --frozen-lockfile - name: Download Artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: dist path: dist @@ -145,7 +150,7 @@ jobs: node-version: "0.10.48" - name: Download Artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: dist path: dist diff --git a/changelog_unreleased/cli/12561.md b/changelog_unreleased/cli/12561.md new file mode 100644 index 000000000..625656768 --- /dev/null +++ b/changelog_unreleased/cli/12561.md @@ -0,0 +1,21 @@ +#### Print the number of files need change (#12561 by @Harry-Hopkinson) + +```console +# Prettier stable +$ prettier src --check +Checking formatting... +[warn] src/fileA.js +[warn] Code style issues found in the above file(s). Forgot to run Prettier? + +# Prettier main +$ prettier src --check +Checking formatting... +[warn] src/fileA.js +[warn] src/fileB.js +[warn] Code style issues found in 2 files. Forgot to run Prettier? + +$ prettier src --check +Checking formatting... +[warn] src/fileA.js +[warn] Code style issues found in the above file. Forgot to run Prettier? +``` diff --git a/changelog_unreleased/cli/12603.md b/changelog_unreleased/cli/12603.md new file mode 100644 index 000000000..4316858da --- /dev/null +++ b/changelog_unreleased/cli/12603.md @@ -0,0 +1,3 @@ +#### Infer parser for `.importmap` files (#12603 by @fisker) + +Format [`.importmap`](https://github.com/WICG/import-maps#import-map-processing) files as a JSON files. diff --git a/changelog_unreleased/cli/12682.md b/changelog_unreleased/cli/12682.md new file mode 100644 index 000000000..135d87bb8 --- /dev/null +++ b/changelog_unreleased/cli/12682.md @@ -0,0 +1,3 @@ +#### Skip print code or write file when performance flags found (#12682 by @fisker) + +When `--debug-benchmark` or `--debug-repeat` is used, the CLI will skip print the formatted code to the screen or write files. diff --git a/changelog_unreleased/graphql/12608.md b/changelog_unreleased/graphql/12608.md new file mode 100644 index 000000000..3e6c2ac4c --- /dev/null +++ b/changelog_unreleased/graphql/12608.md @@ -0,0 +1,59 @@ +#### Fix single line and empty description formatting (#12608 by @chimurai, @fisker) + + +```graphql +# Input +""" Customer """ +type Person { + name: String +} + +"""""" +type Person { + name: String +} + +# Prettier 2.6.2 +""" + Customer +""" +type Person { + name: String +} + +""" + +""" +type Person { + name: String +} + +# Prettier 2.6.2 (second format) +""" +Customer +""" +type Person { + name: String +} + +""" + +""" +type Person { + name: String +} + +# Prettier main +""" +Customer +""" +type Person { + name: String +} + +""" +""" +type Person { + name: String +} +``` diff --git a/changelog_unreleased/vue/12584.md b/changelog_unreleased/vue/12584.md new file mode 100644 index 000000000..1bada237f --- /dev/null +++ b/changelog_unreleased/vue/12584.md @@ -0,0 +1,31 @@ +#### Allow formatting for Vue template expression written in TypeScript (#12584 by @sosukesuzuki) + + +```vue + + + + + + + + + + + + + + +``` diff --git a/docs/cli.md b/docs/cli.md index 49535d52a..f72895ebd 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -69,7 +69,7 @@ Console output if some of the files require re-formatting: Checking formatting... [warn] src/fileA.js [warn] src/fileB.js -[warn] Code style issues found in the above file(s). Forgot to run Prettier? +[warn] Code style issues found in 2 files. Forgot to run Prettier? ``` The command will return exit code `1` in the second case, which is helpful inside the CI pipelines. diff --git a/docs/ignore.md b/docs/ignore.md index 1cca65e41..2b5b7504f 100644 --- a/docs/ignore.md +++ b/docs/ignore.md @@ -24,6 +24,27 @@ coverage It’s recommended to have a `.prettierignore` in your project! This way you can run `prettier --write .` to make sure that everything is formatted (without mangling files you don’t want, or choking on generated files). And – your editor will know which files _not_ to format! +By default prettier ignores files in version control systems directories (".git", ".svn" and ".hg") and `node_modules` (if [`--with-node-modules` CLI option](cli.md#--with-node-modules) not specified) + +So by default it will be + +```js +**/.git +**/.svn +**/.hg +**/node_modules +``` + +and + +```js +**/.git +**/.svn +**/.hg +``` + +if [`--with-node-modules` CLI option](cli.md#--with-node-modules) provided + (See also the [`--ignore-path` CLI option](cli.md#--ignore-path).) ## JavaScript diff --git a/jest.config.mjs b/jest.config.mjs index f2095aa20..8390ce816 100644 --- a/jest.config.mjs +++ b/jest.config.mjs @@ -7,6 +7,7 @@ const isProduction = process.env.NODE_ENV === "production"; const ENABLE_CODE_COVERAGE = Boolean(process.env.ENABLE_CODE_COVERAGE); const TEST_STANDALONE = Boolean(process.env.TEST_STANDALONE); const INSTALL_PACKAGE = Boolean(process.env.INSTALL_PACKAGE); +const SKIP_TESTS_WITH_NEW_SYNTAX = process.versions.node.startsWith("12."); let PRETTIER_DIR = isProduction ? path.join(PROJECT_ROOT, "dist") @@ -26,16 +27,27 @@ if (!isProduction) { "/tests/integration/__tests__/bundle.js" ); } +if (SKIP_TESTS_WITH_NEW_SYNTAX) { + testPathIgnorePatterns.push( + "/tests/integration/__tests__/help-options.js" + ); +} + const config = { projects: [ "/jest-format-test.config.mjs", isProduction && "/jest-integration-test.config.mjs", ].filter(Boolean), + setupFiles: ["/tests/config/setup.js"], snapshotSerializers: [ "jest-snapshot-serializer-raw", "jest-snapshot-serializer-ansi", ], + snapshotFormat: { + escapeString: false, + }, + testRegex: "jsfmt\\.spec\\.js$|__tests__/.*\\.js$", testPathIgnorePatterns, collectCoverage: ENABLE_CODE_COVERAGE, collectCoverageFrom: ["/src/**/*.js", "/bin/**/*.js"], diff --git a/package.json b/package.json index d0683b64d..7d80148d4 100644 --- a/package.json +++ b/package.json @@ -24,10 +24,10 @@ "dependencies": { "@angular/compiler": "12.2.16", "@babel/code-frame": "7.16.7", - "@babel/parser": "7.17.8", - "@glimmer/syntax": "0.84.1", + "@babel/parser": "7.17.9", + "@glimmer/syntax": "0.84.2", "@iarna/toml": "2.2.5", - "@typescript-eslint/typescript-estree": "5.17.0", + "@typescript-eslint/typescript-estree": "5.20.0", "acorn": "8.7.0", "acorn-jsx": "5.3.2", "angular-estree-parser": "2.5.0", @@ -38,7 +38,7 @@ "ci-info": "3.3.0", "cjk-regex": "2.0.1", "cosmiconfig": "7.0.1", - "css-units-list": "0.0.5", + "css-units-list": "1.1.0", "dashify": "2.0.0", "diff": "5.0.0", "editorconfig": "0.15.3", @@ -49,7 +49,7 @@ "fast-glob": "3.2.11", "fast-json-stable-stringify": "2.1.0", "find-parent-dir": "0.3.1", - "flow-parser": "0.175.0", + "flow-parser": "0.176.3", "get-stdin": "8.0.0", "graphql": "15.6.1", "html-element-attributes": "3.1.0", @@ -62,7 +62,6 @@ "leven": "4.0.0", "lines-and-columns": "2.0.3", "linguist-languages": "7.15.0", - "lodash-es": "4.17.21", "mem": "9.0.2", "meriyah": "4.2.1", "micromatch": "4.0.5", @@ -82,7 +81,7 @@ "remark-math": "3.0.1", "remark-parse": "8.0.3", "resolve": "1.22.0", - "semver": "7.3.5", + "semver": "7.3.7", "string-width": "5.0.1", "strip-ansi": "7.0.1", "typescript": "4.6.3", @@ -93,34 +92,20 @@ "yaml-unist-parser": "1.3.1" }, "devDependencies": { - "@babel/core": "7.17.8", + "@babel/core": "7.17.9", "@babel/preset-env": "7.16.11", "@babel/types": "7.17.0", "@esbuild-plugins/node-modules-polyfill": "0.1.4", - "@glimmer/reference": "0.84.1", + "@glimmer/reference": "0.84.2", "@jest/globals": "27.4.2", "@types/estree": "0.0.51", "@types/jest": "27.4.1", - "@typescript-eslint/eslint-plugin": "5.17.0", + "@typescript-eslint/eslint-plugin": "5.20.0", "babel-jest": "27.5.1", "benchmark": "2.1.4", "browserslist-to-esbuild": "1.1.1", - "cross-env": "7.0.3", - "cspell": "5.19.5", - "enquirer": "2.3.6", - "esbuild": "0.14.30", - "esbuild-visualizer": "0.3.1", - "eslint": "8.12.0", - "eslint-config-prettier": "8.5.0", - "eslint-formatter-friendly": "7.0.0", - "eslint-plugin-compat": "4.0.2", - "eslint-plugin-import": "2.25.4", - "eslint-plugin-jest": "26.1.3", - "eslint-plugin-prettier-internal-rules": "2.0.1", - "eslint-plugin-react": "7.29.4", - "eslint-plugin-regexp": "1.6.0", + "core-js": "3.22.2", "eslint-plugin-unicorn": "42.0.0", - "esm-utils": "3.0.0", "execa": "6.1.0", "jest": "27.5.1", "jest-light-runner": "0.1.1", @@ -134,7 +119,7 @@ "prettier": "2.6.2", "pretty-bytes": "6.0.0", "rimraf": "3.0.2", - "rollup-plugin-license": "2.6.1", + "rollup-plugin-license": "2.7.0", "snapshot-diff": "0.9.0", "tempy": "2.0.0" }, diff --git a/scripts/release/package.json b/scripts/release/package.json index ea33a56c3..a1bd2cdfc 100644 --- a/scripts/release/package.json +++ b/scripts/release/package.json @@ -11,7 +11,7 @@ "minimist": "1.2.6", "node-fetch": "3.2.3", "outdent": "0.8.0", - "semver": "7.3.5", + "semver": "7.3.7", "string-width": "5.1.2" }, "devDependencies": { diff --git a/scripts/release/yarn.lock b/scripts/release/yarn.lock index 96914c343..c74d948b0 100644 --- a/scripts/release/yarn.lock +++ b/scripts/release/yarn.lock @@ -2261,10 +2261,10 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -semver@7.3.5, semver@^7.3.2: - version "7.3.5" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== +semver@7.3.7, semver@^7.3.2: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" diff --git a/src/cli/format.js b/src/cli/format.js index 3182d259b..7aa1f00c8 100644 --- a/src/cli/format.js +++ b/src/cli/format.js @@ -101,6 +101,16 @@ function listDifferent(context, input, options, filename) { return true; } +function getPerformanceTestFlag(context) { + if (context.argv.debugBenchmark) { + return "--debug-benchmark"; + } + + if (context.argv.debugRepeat > 0) { + return "--debug-repeat"; + } +} + async function format(context, input, opt) { if (!opt.parser && !opt.filepath) { throw new errors.UndefinedParserError( @@ -266,7 +276,17 @@ async function formatStdin(context) { return; } - writeOutput(context, await format(context, input, options), options); + const formatted = await format(context, input, options); + + const performanceTestFlag = getPerformanceTestFlag(context); + if (performanceTestFlag) { + context.logger.log( + `'${performanceTestFlag}' option found, skipped print code to screen.` + ); + return; + } + + writeOutput(context, formatted, options); } catch (error) { handleError(context, relativeFilepath || "stdin", error); } @@ -279,7 +299,7 @@ async function formatFiles(context) { let numberOfUnformattedFilesFound = 0; - if (context.argv.check) { + if (context.argv.check && !getPerformanceTestFlag(context)) { context.logger.log("Checking formatting..."); } @@ -368,6 +388,14 @@ async function formatFiles(context) { printedFilename.clear(); } + const performanceTestFlag = getPerformanceTestFlag(context); + if (performanceTestFlag) { + context.logger.log( + `'${performanceTestFlag}' option found, skipped print code or write files.` + ); + return; + } + if (context.argv.write) { // Don't write the file if it won't change in order not to invalidate // mtime based caches. @@ -416,11 +444,21 @@ async function formatFiles(context) { if (context.argv.check) { if (numberOfUnformattedFilesFound === 0) { context.logger.log("All matched files use Prettier code style!"); + } else if (numberOfUnformattedFilesFound === 1) { + context.logger.warn( + context.argv.write + ? "Code style issues fixed in the above file." + : "Code style issues found in the above file. Forgot to run Prettier?" + ); } else { context.logger.warn( context.argv.write - ? "Code style issues fixed in the above file(s)." - : "Code style issues found in the above file(s). Forgot to run Prettier?" + ? "Code style issues found in " + + numberOfUnformattedFilesFound + + " files." + : "Code style issues found in " + + numberOfUnformattedFilesFound + + " files. Forgot to run Prettier?" ); } } diff --git a/src/cli/options/create-minimist-options.js b/src/cli/options/create-minimist-options.js index c323a0c6c..9355d1b76 100644 --- a/src/cli/options/create-minimist-options.js +++ b/src/cli/options/create-minimist-options.js @@ -1,4 +1,8 @@ -import { partition } from "lodash-es"; +import prettierInteral from "../prettier-internal.js"; + +const { + utils: { partition }, +} = prettierInteral export default function createMinimistOptions(detailedOptions) { const [boolean, string] = partition( diff --git a/src/cli/options/parse-cli-arguments.js b/src/cli/options/parse-cli-arguments.js index c4f01ea7c..1f7e313fa 100644 --- a/src/cli/options/parse-cli-arguments.js +++ b/src/cli/options/parse-cli-arguments.js @@ -1,5 +1,5 @@ -import { pick } from "lodash-es"; import camelCase from "camelcase"; +import { pick } from "../utils.js"; import getContextOptions from "./get-context-options.js"; import minimist from "./minimist.js"; import createMinimistOptions from "./create-minimist-options.js"; diff --git a/src/cli/usage.js b/src/cli/usage.js index 939afc697..a458babe6 100644 --- a/src/cli/usage.js +++ b/src/cli/usage.js @@ -1,6 +1,6 @@ -import { groupBy } from "lodash-es"; import camelCase from "camelcase"; import * as constant from "./constant.js"; +import { groupBy } from "./utils.js"; const OPTION_USAGE_THRESHOLD = 25; const CHOICE_USAGE_MARGIN = 3; diff --git a/src/cli/utils.js b/src/cli/utils.js index 3f5b08129..b763e6166 100644 --- a/src/cli/utils.js +++ b/src/cli/utils.js @@ -1,4 +1,39 @@ // eslint-disable-next-line no-console const printToScreen = console.log.bind(console); -export { printToScreen }; +/** + * @template Obj + * @template Key + * @param {Array} array + * @param {(value: Obj) => Key} iteratee + * @returns {{[p in Key]: T}} + */ +function groupBy(array, iteratee) { + const result = Object.create(null); + + for (const value of array) { + const key = iteratee(value); + + if (Array.isArray(result[key])) { + result[key].push(value); + } else { + result[key] = [value]; + } + } + + return result; +} + +/** + * @template Obj + * @template {keyof Obj} Keys + * @param {Obj} object + * @param {Array} keys + * @returns {{[key in Keys]: Obj[key]}} + */ +function pick(object, keys) { + const entries = keys.map((key) => [key, object[key]]); + return Object.fromEntries(entries); +} + +export { printToScreen, groupBy, pick }; diff --git a/src/common/get-file-info.js b/src/common/get-file-info.js index 631fc6fc7..3b1b3ef38 100644 --- a/src/common/get-file-info.js +++ b/src/common/get-file-info.js @@ -4,7 +4,7 @@ import * as config from "../config/resolve-config.js"; import createIgnorer from "./create-ignorer.js"; /** - * @typedef {{ ignorePath?: string, withNodeModules?: boolean, plugins: object }} FileInfoOptions + * @typedef {{ ignorePath?: string, withNodeModules?: boolean, plugins: object, resolveConfig?: boolean }} FileInfoOptions * @typedef {{ ignored: boolean, inferredParser: string | null }} FileInfoResult */ diff --git a/src/common/load-plugins.js b/src/common/load-plugins.js index 8f0b21304..4ee7e1134 100644 --- a/src/common/load-plugins.js +++ b/src/common/load-plugins.js @@ -2,9 +2,10 @@ import { createRequire } from "node:module"; import fs from "node:fs"; import path from "node:path"; import { fileURLToPath } from "node:url"; -import { uniqBy, partition } from "lodash-es"; import fastGlob from "fast-glob"; import mem, { memClear } from "mem"; +import partition from "../utils/partition.js" +import uniqByKey from "../utils/uniq-by-key.js" import thirdParty from "./third-party.cjs"; import resolve from "./resolve.js"; @@ -92,7 +93,7 @@ function load(plugins, pluginSearchDirs) { ); const externalPlugins = [ - ...uniqBy( + ...uniqByKey( [...externalManualLoadPluginInfos, ...externalAutoLoadPluginInfos], "requirePath" ).map((externalPluginInfo) => ({ diff --git a/src/config/resolve-config.js b/src/config/resolve-config.js index fd14ee718..9ac3278dc 100644 --- a/src/config/resolve-config.js +++ b/src/config/resolve-config.js @@ -3,19 +3,22 @@ import path from "node:path"; import micromatch from "micromatch"; import mem, { memClear } from "mem"; import thirdParty from "../common/third-party.cjs"; - import loadToml from "../utils/load-toml.js"; import loadJson5 from "../utils/load-json5.js"; import resolve from "../common/resolve.js"; +import partition from "../utils/partition.js"; import * as resolveEditorConfig from "./resolve-config-editorconfig.js"; /** - * @typedef {import("cosmiconfig/dist/Explorer").Explorer} Explorer - * @typedef {{sync: boolean; cache: boolean }} Options + * @typedef {ReturnType} Explorer + * @typedef {ReturnType} SyncExplorer + * @typedef {{sync?: boolean; cache?: boolean }} Options */ /** - * @type {(opts: Options) => Explorer} + * @template {Options} Opts + * @param {Opts} opts + * @return {Opts["sync"] extends true ? SyncExplorer : Explorer} */ const getExplorerMemoized = mem( (opts) => { @@ -67,8 +70,9 @@ const getExplorerMemoized = mem( ); /** - * @param {Options} opts - * @return {Explorer} + * @template {Options} Opts + * @param {Opts} opts + * @return {Opts["sync"] extends true ? SyncExplorer : Explorer} */ function getExplorer(opts) { // Normalize opts before passing to a memoized function @@ -85,6 +89,7 @@ function _resolveConfig(filePath, opts, sync) { }; const { load, search } = getExplorer(loadOpts); const loadEditorConfig = resolveEditorConfig.getLoadFunction(loadOpts); + /** @type {[any, any]} */ const arr = [ opts.config ? load(opts.config) : search(filePath), loadEditorConfig(filePath), @@ -169,15 +174,10 @@ function pathMatchesGlobs(filePath, patterns, excludedPatterns) { const patternList = Array.isArray(patterns) ? patterns : [patterns]; // micromatch always matches against basename when the option is enabled // use only patterns without slashes with it to match minimatch behavior - const withSlashes = []; - const withoutSlashes = []; - for (const pattern of patternList) { - if (pattern.includes("/")) { - withSlashes.push(pattern); - } else { - withoutSlashes.push(pattern); - } - } + const [withSlashes, withoutSlashes] = partition(patternList, (pattern) => + pattern.includes("/") + ); + return ( micromatch.isMatch(filePath, withoutSlashes, { ignore: excludedPatterns, diff --git a/src/index.js b/src/index.js index acfdbec2f..c3034e93b 100644 --- a/src/index.js +++ b/src/index.js @@ -22,6 +22,7 @@ import * as optionsModule from "./main/options.js"; import * as optionsNormalizer from "./main/options-normalizer.js"; import arrayify from "./utils/arrayify.js"; import getLast from "./utils/get-last.js"; +import partition from "./utils/partition.js"; import { isNonEmptyArray } from "./common/util.js"; const require = createRequire(import.meta.url); @@ -45,6 +46,11 @@ function _withPlugins( }; } +/** + * @param {*} fn + * @param {*} optsArgIdx + * @returns {*} + */ function withPlugins(fn, optsArgIdx) { const resultingFn = _withPlugins(fn, optsArgIdx); if (fn.sync) { @@ -97,6 +103,7 @@ const prettier = { arrayify, getLast, isNonEmptyArray, + partition, }, }, diff --git a/src/language-graphql/printer-graphql.js b/src/language-graphql/printer-graphql.js index c8852cbe4..3ed524ab4 100644 --- a/src/language-graphql/printer-graphql.js +++ b/src/language-graphql/printer-graphql.js @@ -125,13 +125,15 @@ function genericPrint(path, options, print) { } case "StringValue": { if (node.block) { - return [ - '"""', + const lines = node.value.replace(/"""/g, "\\$&").split("\n"); + if (lines.length === 1) { + lines[0] = lines[0].trim(); + } + + return join( hardline, - join(hardline, node.value.replace(/"""/g, "\\$&").split("\n")), - hardline, - '"""', - ]; + ['"""', ...(lines.length > 0 ? lines : []), '"""'].filter(Boolean) + ); } return [ '"', @@ -572,15 +574,19 @@ function printInterfaces(path, options, print) { return parts; } -function clean(/*node, newNode , parent*/) {} +function clean(node, newNode /* , parent */) { + // We print single line `""" string """` as multiple line string, + // and the parser ignores space in multiple line string + if (node.kind === "StringValue" && node.block && !node.value.includes("\n")) { + newNode.value = newNode.value.trim(); + } +} clean.ignoredProperties = new Set(["loc", "comments"]); function hasPrettierIgnore(path) { const node = path.getValue(); - return ( - node && - Array.isArray(node.comments) && - node.comments.some((comment) => comment.value.trim() === "prettier-ignore") + return node?.comments?.some( + (comment) => comment.value.trim() === "prettier-ignore" ); } diff --git a/src/language-handlebars/parser-glimmer.js b/src/language-handlebars/parser-glimmer.js index 23c285cce..4432c391d 100644 --- a/src/language-handlebars/parser-glimmer.js +++ b/src/language-handlebars/parser-glimmer.js @@ -14,7 +14,7 @@ function addBackslash(/* options*/) { name: "addBackslash", visitor: { All(node) { - const childrenOrBody = node.children || node.body; + const childrenOrBody = node.children ?? node.body; if (childrenOrBody) { for (let i = 0; i < childrenOrBody.length - 1; i++) { if ( diff --git a/src/language-handlebars/printer-glimmer.js b/src/language-handlebars/printer-glimmer.js index 09d25e20f..b59cab437 100644 --- a/src/language-handlebars/printer-glimmer.js +++ b/src/language-handlebars/printer-glimmer.js @@ -735,14 +735,14 @@ function needsOppositeQuote(path) { /* SubExpression print helpers */ function printSubExpressionPathAndParams(path, print) { - const p = printPath(path, print); + const printed = printPath(path, print); const params = printParams(path, print); if (!params) { - return p; + return printed; } - return indent([p, line, group(params)]); + return indent([printed, line, group(params)]); } /* misc. print helpers */ diff --git a/src/language-handlebars/utils.js b/src/language-handlebars/utils.js index 02911b4d8..148060b6f 100644 --- a/src/language-handlebars/utils.js +++ b/src/language-handlebars/utils.js @@ -30,7 +30,7 @@ function isGlimmerComponent(node) { return ( isNodeOfSomeType(node, ["ElementNode"]) && typeof node.tag === "string" && - node.tag[0] !== ":" && + !node.tag.startsWith(":") && (isUppercase(node.tag[0]) || node.tag.includes(".")) ); } @@ -38,9 +38,9 @@ function isGlimmerComponent(node) { const voidTags = new Set(htmlVoidElements); function isVoid(node) { return ( + voidTags.has(node.tag) || (isGlimmerComponent(node) && - node.children.every((node) => isWhitespaceNode(node))) || - voidTags.has(node.tag) + node.children.every((node) => isWhitespaceNode(node))) ); } @@ -69,9 +69,9 @@ function isNextNodeOfSomeType(path, types) { function getSiblingNode(path, offset) { const node = path.getValue(); - const parentNode = path.getParentNode(0) || {}; + const parentNode = path.getParentNode(0) ?? {}; const children = - parentNode.children || parentNode.body || parentNode.parts || []; + parentNode.children ?? parentNode.body ?? parentNode.parts ?? []; const index = children.indexOf(node); return index !== -1 && children[index + offset]; } diff --git a/src/language-html/ast.js b/src/language-html/ast.js index 20bcc15f6..96f6d5ad6 100644 --- a/src/language-html/ast.js +++ b/src/language-html/ast.js @@ -6,38 +6,45 @@ const NODES_KEYS = { children: true, }; +const NON_ENUMERABLE_PROPERTIES = new Set(["parent"]); + // TODO: typechecking is problematic for this class because of this issue: // https://github.com/microsoft/TypeScript/issues/26811 class Node { - constructor(props = {}) { - for (const [key, value] of Object.entries(props)) { - if (key in NODES_KEYS) { - this._setNodes(key, value); - } else { - this[key] = value; - } + constructor(nodeOrProperties = {}) { + for (const property of new Set([ + ...NON_ENUMERABLE_PROPERTIES, + ...Object.keys(nodeOrProperties), + ])) { + this.setProperty(property, nodeOrProperties[property]); } } - _setNodes(key, nodes) { - if (nodes !== this[key]) { - this[key] = cloneAndUpdateNodes(nodes, this); - if (key === "attrs") { - setNonEnumerableProperty( - this, - "attrMap", - Object.fromEntries( - this[key].map((attr) => [attr.fullName, attr.value]) - ) - ); - } + setProperty(property, value) { + if (this[property] === value) { + return; } + + if (property in NODES_KEYS) { + value = value.map((node) => this.createChild(node)); + } + + if (!NON_ENUMERABLE_PROPERTIES.has(property)) { + this[property] = value; + return; + } + + Object.defineProperty(this, property, { + value, + enumerable: false, + configurable: true, + }); } map(fn) { /** @type{any} */ - let newNode = null; + let newNode; for (const NODES_KEY in NODES_KEYS) { const nodes = this[NODES_KEY]; @@ -48,7 +55,7 @@ class Node { // @ts-expect-error newNode = new Node({ parent: this.parent }); } - newNode._setNodes(NODES_KEY, mappedNodes); + newNode.setProperty(NODES_KEY, mappedNodes); } } } @@ -76,15 +83,27 @@ class Node { fn(this); } + createChild(nodeOrProperties) { + const node = + nodeOrProperties instanceof Node + ? nodeOrProperties.clone() + : new Node(nodeOrProperties); + node.setProperty("parent", this); + return node; + } + /** * @param {Node} [target] * @param {Object} [node] */ insertChildBefore(target, node) { - const newNode = new Node({ ...node, parent: this }); - // @ts-expect-error - this.children.splice(this.children.indexOf(target), 0, newNode); + this.children.splice( + // @ts-expect-error + this.children.indexOf(target), + 0, + this.createChild(node) + ); } /** @@ -100,49 +119,32 @@ class Node { * @param {Object} [node] */ replaceChild(target, node) { - const newNode = new Node({ ...node, parent: this }); - // @ts-expect-error - this.children[this.children.indexOf(target)] = newNode; + this.children[this.children.indexOf(target)] = this.createChild(node); } clone() { return new Node(this); } - /** - * @param {Array} [children] - */ - setChildren(children) { - this._setNodes("children", children); - } - get firstChild() { // @ts-expect-error - return isNonEmptyArray(this.children) ? this.children[0] : null; + return this.children?.[0]; } get lastChild() { // @ts-expect-error - return isNonEmptyArray(this.children) ? getLast(this.children) : null; + return this.children?.[this.children.length - 1]; } get prev() { // @ts-expect-error - if (!this.parent) { - return null; - } - // @ts-expect-error - return this.parent.children[this.parent.children.indexOf(this) - 1]; + return this.parent?.children[this.parent.children.indexOf(this) - 1]; } get next() { // @ts-expect-error - if (!this.parent) { - return null; - } - // @ts-expect-error - return this.parent.children[this.parent.children.indexOf(this) + 1]; + return this.parent?.children[this.parent.children.indexOf(this) + 1]; } // for element and attribute @@ -150,10 +152,18 @@ class Node { // @ts-expect-error return this.hasExplicitNamespace ? this.fullName : this.name; } + get fullName() { // @ts-expect-error return this.namespace ? this.namespace + ":" + this.name : this.name; } + + get attrMap() { + return Object.fromEntries( + // @ts-expect-error + this.attrs.map((attr) => [attr.fullName, attr.value]) + ); + } } function mapNodesIfChanged(nodes, fn) { @@ -163,20 +173,4 @@ function mapNodesIfChanged(nodes, fn) { : nodes; } -function cloneAndUpdateNodes(nodes, parent) { - const siblings = nodes.map((node) => - node instanceof Node ? node.clone() : new Node({ ...node, parent }) - ); - - for (const sibling of siblings) { - sibling.parent = parent; - } - - return siblings; -} - -function setNonEnumerableProperty(obj, key, value) { - Object.defineProperty(obj, key, { value, enumerable: false }); -} - export { Node }; diff --git a/src/language-html/clean.js b/src/language-html/clean.js index 4efdbcb6c..ad2769c76 100644 --- a/src/language-html/clean.js +++ b/src/language-html/clean.js @@ -6,7 +6,6 @@ const ignoredProperties = new Set([ "endSourceSpan", "nameSpan", "valueSpan", - "parent", ]); function clean(ast, newNode) { diff --git a/src/language-html/embed.js b/src/language-html/embed.js index 1800d3afe..fe68310c0 100644 --- a/src/language-html/embed.js +++ b/src/language-html/embed.js @@ -127,11 +127,14 @@ function printEmbeddedAttributeValue(node, htmlTextToDoc, options) { if (isKeyMatched(vueEventBindingPatterns)) { const value = getValue(); + const parser = isVueEventBindingExpression(value) + ? "__js_expression" + : options.__should_parse_vue_template_with_ts + ? "__vue_ts_event_binding" + : "__vue_event_binding"; return printMaybeHug( attributeTextToDoc(value, { - parser: isVueEventBindingExpression(value) - ? "__js_expression" - : "__vue_event_binding", + parser, }) ); } @@ -318,7 +321,9 @@ function embed(path, print, textToDoc, options) { textToDocOptions.parser = "__ng_interpolation"; textToDocOptions.trailingComma = "none"; } else if (options.parser === "vue") { - textToDocOptions.parser = "__vue_expression"; + textToDocOptions.parser = options.__should_parse_vue_template_with_ts + ? "__vue_ts_expression" + : "__vue_expression"; } else { textToDocOptions.parser = "__js_expression"; } diff --git a/src/language-html/print-preprocess.js b/src/language-html/print-preprocess.js index 42a68cb72..074f73da3 100644 --- a/src/language-html/print-preprocess.js +++ b/src/language-html/print-preprocess.js @@ -10,6 +10,7 @@ import { isLeadingSpaceSensitiveNode, isTrailingSpaceSensitiveNode, isWhitespaceSensitiveNode, + isVueScriptTag, } from "./utils/index.js"; const PREPROCESS_PIPELINE = [ @@ -23,6 +24,7 @@ const PREPROCESS_PIPELINE = [ addHasHtmComponentClosingTag, addIsSpaceSensitive, mergeSimpleElementIntoText, + markTsScript, ]; function preprocess(ast, options) { @@ -404,4 +406,19 @@ function addIsSpaceSensitive(ast, options) { }); } +function markTsScript(ast, options) { + if (options.parser === "vue") { + const vueScriptTag = ast.children.find((child) => + isVueScriptTag(child, options) + ); + if (!vueScriptTag) { + return; + } + const { lang } = vueScriptTag.attrMap; + if (lang === "ts" || lang === "typescript") { + options.__should_parse_vue_template_with_ts = true; + } + } +} + export default preprocess; diff --git a/src/language-html/utils/index.js b/src/language-html/utils/index.js index 2a23ad38b..8cf76e4ee 100644 --- a/src/language-html/utils/index.js +++ b/src/language-html/utils/index.js @@ -635,6 +635,11 @@ function getTextValueParts(node, value = node.value) { : getDocParts(join(line, splitByHtmlWhitespace(value))); } + +function isVueScriptTag(node, options) { + return isVueSfcBlock(node, options) && node.name === "script"; +} + export { htmlTrim, htmlTrimPreserveIndentation, @@ -654,6 +659,7 @@ export { inferScriptParser, isVueCustomBlock, isVueNonHtmlBlock, + isVueScriptTag, isVueSlotAttribute, isVueSfcBindingsAttribute, isDanglingSpaceSensitiveNode, diff --git a/src/language-js/clean.js b/src/language-js/clean.js index e1f4f1eb2..10111d886 100644 --- a/src/language-js/clean.js +++ b/src/language-js/clean.js @@ -175,15 +175,13 @@ function clean(ast, newObj, parent) { // we will not trim the comment value and we will expect exactly one space on // either side of the GraphQL string // Also see ./embed.js - const hasLanguageComment = - ast.leadingComments && - ast.leadingComments.some( - (comment) => - isBlockComment(comment) && - ["GraphQL", "HTML"].some( - (languageName) => comment.value === ` ${languageName} ` - ) - ); + const hasLanguageComment = ast.leadingComments?.some( + (comment) => + isBlockComment(comment) && + ["GraphQL", "HTML"].some( + (languageName) => comment.value === ` ${languageName} ` + ) + ); if ( hasLanguageComment || (parent.type === "CallExpression" && parent.callee.name === "graphql") || diff --git a/src/language-js/index.js b/src/language-js/index.js index 1d2817938..0acdeaefc 100644 --- a/src/language-js/index.js +++ b/src/language-js/index.js @@ -88,7 +88,7 @@ const languages = [ since: "1.13.0", parsers: ["json-stringify"], vscodeLanguageIds: ["json"], - extensions: [], // .json file defaults to json instead of json-stringify + extensions: [".importmap"], // .json file defaults to json instead of json-stringify filenames: ["package.json", "package-lock.json", "composer.json"], })), createLanguage(require("linguist-languages/data/JSON.json"), (data) => ({ diff --git a/src/language-js/parse/babel.js b/src/language-js/parse/babel.js index 5af60a1ee..c8915cb07 100644 --- a/src/language-js/parse/babel.js +++ b/src/language-js/parse/babel.js @@ -171,6 +171,11 @@ const parseEstree = createParse( ); const parseExpression = createParse("parseExpression", appendPlugins(["jsx"])); +const parseTSExpression = createParse( + "parseExpression", + appendPlugins(["typescript"]) +); + // Error codes are defined in // - https://github.com/babel/babel/blob/v7.14.0/packages/babel-parser/src/parser/error-message.js // - https://github.com/babel/babel/blob/v7.14.0/packages/babel-parser/src/plugins/typescript/index.js#L69-L153 @@ -229,21 +234,27 @@ const allowedMessageCodes = new Set([ ]); const babel = createParser(parse); +const babelTs = createParser(parseTypeScript); const babelExpression = createParser(parseExpression); +const babelTSExpression = createParser(parseTSExpression); // Export as a plugin so we can reuse the same bundle for UMD loading const parser = { parsers: { babel, "babel-flow": createParser(parseFlow), - "babel-ts": createParser(parseTypeScript), + "babel-ts": babelTs, ...jsonParsers, /** @internal */ __js_expression: babelExpression, /** for vue filter */ __vue_expression: babelExpression, + /** for vue filter written in TS */ + __vue_ts_expression: babelTSExpression, /** for vue event binding to handle semicolon */ __vue_event_binding: babel, + /** for vue event binding written in TS to handle semicolon */ + __vue_ts_event_binding: babelTs, /** verify that we can print this AST */ __babel_estree: createParser(parseEstree), }, diff --git a/src/language-js/parse/parsers.js b/src/language-js/parse/parsers.js index 16220aae7..e0a4c7c2c 100644 --- a/src/language-js/parse/parsers.js +++ b/src/language-js/parse/parsers.js @@ -31,9 +31,15 @@ const parsers = { get __vue_expression() { return babel.parsers.__vue_expression; }, + get __vue_ts_expression() { + return require("./babel.js").parsers.__vue_ts_expression; + }, get __vue_event_binding() { return babel.parsers.__vue_event_binding; }, + get __vue_ts_event_binding() { + return require("./babel.js").parsers.__vue_ts_event_binding; + }, // JS - Flow get flow() { return flow.parsers.flow; diff --git a/src/language-js/print-preprocess.js b/src/language-js/print-preprocess.js index f609fe8f2..6f784d66c 100644 --- a/src/language-js/print-preprocess.js +++ b/src/language-js/print-preprocess.js @@ -5,6 +5,7 @@ function preprocess(ast, options) { case "json-stringify": case "__js_expression": case "__vue_expression": + case "__vue_ts_expression": return { ...ast, type: options.parser.startsWith("__") ? "JsExpressionRoot" : "JsonRoot", diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js index ab9585155..3bf466210 100644 --- a/src/language-js/printer-estree.js +++ b/src/language-js/printer-estree.js @@ -218,7 +218,10 @@ function printPathNoParens(path, options, print, args) { return [printDirective(node.expression, options), semi]; } - if (options.parser === "__vue_event_binding") { + if ( + options.parser === "__vue_event_binding" || + options.parser === "__vue_ts_event_binding" + ) { const parent = path.getParentNode(); if ( parent.type === "Program" && diff --git a/src/language-js/utils/index.js b/src/language-js/utils/index.js index 229415241..ec3a8301f 100644 --- a/src/language-js/utils/index.js +++ b/src/language-js/utils/index.js @@ -53,10 +53,8 @@ function hasFlowShorthandAnnotationComment(node) { // Syntax example: const r = new (window.Request /*: Class */)(""); return ( - node.extra && - node.extra.parenthesized && - isNonEmptyArray(node.trailingComments) && - isBlockComment(node.trailingComments[0]) && + node.extra?.parenthesized && + isBlockComment(node.trailingComments?.[0]) && FLOW_SHORTHAND_ANNOTATION.test(node.trailingComments[0].value) ); } @@ -66,10 +64,9 @@ function hasFlowShorthandAnnotationComment(node) { * @returns {boolean} */ function hasFlowAnnotationComment(comments) { + const firstComment = comments?.[0]; return ( - isNonEmptyArray(comments) && - isBlockComment(comments[0]) && - FLOW_ANNOTATION.test(comments[0].value) + isBlockComment(firstComment) && FLOW_ANNOTATION.test(firstComment.value) ); } @@ -118,12 +115,12 @@ function getLeftSide(node) { return node.expressions[0]; } return ( - node.left || - node.test || - node.callee || - node.object || - node.tag || - node.argument || + node.left ?? + node.test ?? + node.callee ?? + node.object ?? + node.tag ?? + node.argument ?? node.expression ); } @@ -156,37 +153,36 @@ function getLeftSidePathName(path, node) { throw new Error("Unexpected node has no left side."); } +function createTypeCheckFunction(types) { + types = new Set(types); + return (node) => types.has(node?.type); +} + /** * @param {Comment} comment * @returns {boolean} */ -function isLineComment(comment) { - return ( - comment.type === "Line" || - comment.type === "CommentLine" || - // `meriyah` has `SingleLine`, `HashbangComment`, `HTMLOpen`, and `HTMLClose` - comment.type === "SingleLine" || - comment.type === "HashbangComment" || - comment.type === "HTMLOpen" || - comment.type === "HTMLClose" - ); -} - -const exportDeclarationTypes = new Set([ - "ExportDefaultDeclaration", - "ExportDefaultSpecifier", - "DeclareExportDeclaration", - "ExportNamedDeclaration", - "ExportAllDeclaration", +const isLineComment = createTypeCheckFunction([ + "Line", + "CommentLine", + // `meriyah` has `SingleLine`, `HashbangComment`, `HTMLOpen`, and `HTMLClose` + "SingleLine", + "HashbangComment", + "HTMLOpen", + "HTMLClose", ]); /** * @param {Node} node * @returns {boolean} */ -function isExportDeclaration(node) { - return node && exportDeclarationTypes.has(node.type); -} +const isExportDeclaration = createTypeCheckFunction([ + "ExportDefaultDeclaration", + "ExportDefaultSpecifier", + "DeclareExportDeclaration", + "ExportNamedDeclaration", + "ExportAllDeclaration", +]); /** * @param {AstPath} path @@ -205,22 +201,20 @@ function getParentExportDeclaration(path) { * @param {Node} node * @returns {boolean} */ -function isLiteral(node) { - return ( - node.type === "BooleanLiteral" || - node.type === "DirectiveLiteral" || - node.type === "Literal" || - node.type === "NullLiteral" || - node.type === "NumericLiteral" || - node.type === "BigIntLiteral" || - node.type === "DecimalLiteral" || - node.type === "RegExpLiteral" || - node.type === "StringLiteral" || - node.type === "TemplateLiteral" || - node.type === "TSTypeLiteral" || - node.type === "JSXText" - ); -} +const isLiteral = createTypeCheckFunction([ + "BooleanLiteral", + "DirectiveLiteral", + "Literal", + "NullLiteral", + "NumericLiteral", + "BigIntLiteral", + "DecimalLiteral", + "RegExpLiteral", + "StringLiteral", + "TemplateLiteral", + "TSTypeLiteral", + "JSXText", +]); /** * @param {Node} node @@ -256,24 +250,20 @@ function isStringLiteral(node) { * @param {Node} node * @returns {boolean} */ -function isObjectType(node) { - return ( - node.type === "ObjectTypeAnnotation" || - node.type === "TSTypeLiteral" || - node.type === "TSMappedType" - ); -} +const isObjectType = createTypeCheckFunction([ + "ObjectTypeAnnotation", + "TSTypeLiteral", + "TSMappedType", +]); /** * @param {Node} node * @returns {boolean} */ -function isFunctionOrArrowExpression(node) { - return ( - node.type === "FunctionExpression" || - node.type === "ArrowFunctionExpression" - ); -} +const isFunctionOrArrowExpression = createTypeCheckFunction([ + "FunctionExpression", + "ArrowFunctionExpression", +]); /** * @param {Node} node @@ -287,14 +277,6 @@ function isFunctionOrArrowExpressionWithBody(node) { ); } -/** - * @param {Node} node - * @returns {boolean} - */ -function isTemplateLiteral(node) { - return node.type === "TemplateLiteral"; -} - /** * Note: `inject` is used in AngularJS 1.x, `async` and `fakeAsync` in * Angular 2+, although `async` is deprecated and replaced by `waitForAsync` @@ -317,9 +299,7 @@ function isAngularTestWrapper(node) { * @param {Node} node * @returns {boolean} */ -function isJsxNode(node) { - return node.type === "JSXElement" || node.type === "JSXFragment"; -} +const isJsxNode = createTypeCheckFunction(["JSXElement", "JSXFragment"]); function isTheOnlyJsxElementInMarkdown(options, path) { if (options.parentParser !== "markdown" && options.parentParser !== "mdx") { @@ -376,19 +356,15 @@ function isTypeAnnotationAFunction(node) { ); } -const binaryishNodeTypes = new Set([ - "BinaryExpression", - "LogicalExpression", - "NGPipeExpression", -]); - /** * @param {Node} node * @returns {boolean} */ -function isBinaryish(node) { - return binaryishNodeTypes.has(node.type); -} +const isBinaryish = createTypeCheckFunction([ + "BinaryExpression", + "LogicalExpression", + "NGPipeExpression", +]); /** * @param {Node} node @@ -517,7 +493,7 @@ function isTestCall(node, parent) { ((node.callee.type === "Identifier" && unitTestRe.test(node.callee.name)) || isSkipOrOnlyBlock(node)) && - (isTemplateLiteral(node.arguments[0]) || + (node.arguments[0].type === "TemplateLiteral" || isStringLiteral(node.arguments[0])) ) { // it("name", () => { ... }, 2500) @@ -540,24 +516,19 @@ function isTestCall(node, parent) { * @param {Node} node * @returns {boolean} */ -function isCallExpression(node) { - return ( - node && - (node.type === "CallExpression" || node.type === "OptionalCallExpression") - ); -} +const isCallExpression = createTypeCheckFunction([ + "CallExpression", + "OptionalCallExpression", +]); /** * @param {Node} node * @returns {boolean} */ -function isMemberExpression(node) { - return ( - node && - (node.type === "MemberExpression" || - node.type === "OptionalMemberExpression") - ); -} +const isMemberExpression = createTypeCheckFunction([ + "MemberExpression", + "OptionalMemberExpression", +]); /** * @@ -621,12 +592,8 @@ function isSimpleTemplateLiteral(node) { * @returns {string} */ function getTypeScriptMappedTypeModifier(tokenNode, keyword) { - if (tokenNode === "+") { - return "+" + keyword; - } - - if (tokenNode === "-") { - return "-" + keyword; + if (tokenNode === "+" || tokenNode === "-") { + return tokenNode + keyword; } return keyword; @@ -919,7 +886,7 @@ function isSimpleCallArgument(node, depth) { } function rawText(node) { - return node.extra ? node.extra.raw : node.raw; + return node.extra?.raw ?? node.raw; } function identity(x) { @@ -1072,29 +1039,27 @@ function shouldFlatten(parentOp, nodeOp) { return true; } -const PRECEDENCE = {}; -for (const [i, tier] of [ - ["|>"], - ["??"], - ["||"], - ["&&"], - ["|"], - ["^"], - ["&"], - ["==", "===", "!=", "!=="], - ["<", ">", "<=", ">=", "in", "instanceof"], - [">>", "<<", ">>>"], - ["+", "-"], - ["*", "/", "%"], - ["**"], -].entries()) { - for (const op of tier) { - PRECEDENCE[op] = i; - } -} - -function getPrecedence(op) { - return PRECEDENCE[op]; +const PRECEDENCE = new Map( + [ + ["|>"], + ["??"], + ["||"], + ["&&"], + ["|"], + ["^"], + ["&"], + ["==", "===", "!=", "!=="], + ["<", ">", "<=", ">=", "in", "instanceof"], + [">>", "<<", ">>>"], + ["+", "-"], + ["*", "/", "%"], + ["**"], + ].flatMap((operators, index) => + operators.map((operator) => [operator, index]) + ) +); +function getPrecedence(operator) { + return PRECEDENCE.get(operator); } function getLeftMost(node) { @@ -1118,7 +1083,7 @@ function hasRestParameter(node) { return true; } const parameters = getFunctionParameters(node); - return parameters.length > 0 && getLast(parameters).type === "RestElement"; + return getLast(parameters)?.type === "RestElement"; } const functionParametersCache = new WeakMap(); @@ -1256,7 +1221,7 @@ const getCommentTestFunction = (flags, fn) => { * @returns {boolean} */ function hasComment(node, flags, fn) { - if (!node || !isNonEmptyArray(node.comments)) { + if (!isNonEmptyArray(node?.comments)) { return false; } const test = getCommentTestFunction(flags, fn); @@ -1270,7 +1235,7 @@ function hasComment(node, flags, fn) { * @returns {Comment[]} */ function getComments(node, flags, fn) { - if (!node || !Array.isArray(node.comments)) { + if (!Array.isArray(node?.comments)) { return []; } const test = getCommentTestFunction(flags, fn); diff --git a/src/language-js/utils/is-block-comment.js b/src/language-js/utils/is-block-comment.js index b50f9926e..65f49df09 100644 --- a/src/language-js/utils/is-block-comment.js +++ b/src/language-js/utils/is-block-comment.js @@ -2,17 +2,16 @@ * @typedef {import("../types/estree").Comment} Comment */ +const BLOCK_COMMENT_TYPES = new Set([ + "Block", + "CommentBlock", + // `meriyah` + "MultiLine", +]); /** * @param {Comment} comment * @returns {boolean} */ -function isBlockComment(comment) { - return ( - comment.type === "Block" || - comment.type === "CommentBlock" || - // `meriyah` - comment.type === "MultiLine" - ); -} +const isBlockComment = (comment) => BLOCK_COMMENT_TYPES.has(comment?.type); export default isBlockComment; diff --git a/src/language-markdown/pragma.js b/src/language-markdown/pragma.js index e985e2a8c..f804cd2b7 100644 --- a/src/language-markdown/pragma.js +++ b/src/language-markdown/pragma.js @@ -13,7 +13,7 @@ function startWithPragma(text) { "m" ); const matched = text.match(regex); - return matched && matched.index === 0; + return matched?.index === 0; } const hasPragma = (text) => diff --git a/src/language-markdown/printer-markdown.js b/src/language-markdown/printer-markdown.js index 3d4d92232..48975d1bc 100644 --- a/src/language-markdown/printer-markdown.js +++ b/src/language-markdown/printer-markdown.js @@ -782,7 +782,7 @@ function isPrettierIgnore(node) { } } - return match ? (match[1] ? match[1] : "next") : false; + return match ? match[1] || "next" : false; } function shouldPrePrintHardline(node, data) { @@ -804,21 +804,19 @@ function shouldPrePrintDoubleHardline(node, data) { data.parentNode.type === "listItem" && !data.parentNode.loose; const isPrevNodeLooseListItem = - data.prevNode && data.prevNode.type === "listItem" && data.prevNode.loose; + data.prevNode?.type === "listItem" && data.prevNode.loose; const isPrevNodePrettierIgnore = isPrettierIgnore(data.prevNode) === "next"; const isBlockHtmlWithoutBlankLineBetweenPrevHtml = node.type === "html" && - data.prevNode && - data.prevNode.type === "html" && + data.prevNode?.type === "html" && data.prevNode.position.end.line + 1 === node.position.start.line; const isHtmlDirectAfterListItem = node.type === "html" && data.parentNode.type === "listItem" && - data.prevNode && - data.prevNode.type === "paragraph" && + data.prevNode?.type === "paragraph" && data.prevNode.position.end.line + 1 === node.position.start.line; return ( diff --git a/src/language-markdown/utils.js b/src/language-markdown/utils.js index f907a4079..c8561376b 100644 --- a/src/language-markdown/utils.js +++ b/src/language-markdown/utils.js @@ -219,15 +219,11 @@ function mapAst(ast, handler) { } function isAutolink(node) { - if (!node || node.type !== "link" || node.children.length !== 1) { + if (node?.type !== "link" || node.children.length !== 1) { return false; } - const child = node.children[0]; - return ( - child && - locStart(node) === locStart(child) && - locEnd(node) === locEnd(child) - ); + const [child] = node.children; + return locStart(node) === locStart(child) && locEnd(node) === locEnd(child); } export { diff --git a/src/language-yaml/parser-yaml.js b/src/language-yaml/parser-yaml.js index d4f6068d5..245d92160 100644 --- a/src/language-yaml/parser-yaml.js +++ b/src/language-yaml/parser-yaml.js @@ -21,7 +21,7 @@ function parse(text) { return root; } catch (error) { - if (error && error.position) { + if (error?.position) { throw createError(error.message, error.position); } diff --git a/src/language-yaml/printer-yaml.js b/src/language-yaml/printer-yaml.js index 2beedc6ba..18ecfed72 100644 --- a/src/language-yaml/printer-yaml.js +++ b/src/language-yaml/printer-yaml.js @@ -329,7 +329,7 @@ function printNode(node, parentNode, path, options, print) { case "sequence": return join(hardline, path.map(print, "children")); case "sequenceItem": - return ["- ", alignWithSpaces(2, !node.content ? "" : print("content"))]; + return ["- ", alignWithSpaces(2, node.content ? print("content") : "")]; case "mappingKey": case "mappingValue": return !node.content ? "" : print("content"); diff --git a/src/language-yaml/utils.js b/src/language-yaml/utils.js index b9cc5fd41..31b635d6a 100644 --- a/src/language-yaml/utils.js +++ b/src/language-yaml/utils.js @@ -136,23 +136,23 @@ function hasComments(node) { } function hasLeadingComments(node) { - return node && isNonEmptyArray(node.leadingComments); + return isNonEmptyArray(node?.leadingComments); } function hasMiddleComments(node) { - return node && isNonEmptyArray(node.middleComments); + return isNonEmptyArray(node?.middleComments); } function hasIndicatorComment(node) { - return node && node.indicatorComment; + return node?.indicatorComment; } function hasTrailingComment(node) { - return node && node.trailingComment; + return node?.trailingComment; } function hasEndComments(node) { - return node && isNonEmptyArray(node.endComments); + return isNonEmptyArray(node?.endComments); } /** diff --git a/src/main/comments.js b/src/main/comments.js index e374e946c..ee31a373a 100644 --- a/src/main/comments.js +++ b/src/main/comments.js @@ -200,7 +200,8 @@ function attach(comments, ast, text, options) { options.parser === "json" || options.parser === "json5" || options.parser === "__js_expression" || - options.parser === "__vue_expression" + options.parser === "__vue_expression" || + options.parser === "__vue_ts_expression" ) { if (locStart(comment) - locStart(ast) <= 0) { addLeadingComment(ast, comment); diff --git a/src/main/core-options.js b/src/main/core-options.js index 30587e79c..48c881074 100644 --- a/src/main/core-options.js +++ b/src/main/core-options.js @@ -12,7 +12,7 @@ const CATEGORY_SPECIAL = "Special"; * @typedef {Object} OptionInfo * @property {string} [since] - available since version * @property {string} category - * @property {'int' | 'boolean' | 'choice' | 'path'} type + * @property {'int' | 'boolean' | 'choice' | 'path' | 'string' | 'flag'} type * @property {boolean} [array] - indicate it's an array of the specified type * @property {OptionValueInfo} [default] * @property {OptionRangeInfo} [range] - for type int diff --git a/src/main/multiparser.js b/src/main/multiparser.js index f40c66865..dab8bc33e 100644 --- a/src/main/multiparser.js +++ b/src/main/multiparser.js @@ -50,7 +50,9 @@ function textToDoc( const astComments = ast.comments; delete ast.comments; attach(astComments, ast, text, nextOptions); + // @ts-expect-error -- Casting to `unique symbol` isn't allowed in JSDoc comment nextOptions[Symbol.for("comments")] = astComments || []; + // @ts-expect-error -- Casting to `unique symbol` isn't allowed in JSDoc comment nextOptions[Symbol.for("tokens")] = ast.tokens || []; const doc = printAstToDoc(ast, nextOptions); diff --git a/src/main/options-normalizer.js b/src/main/options-normalizer.js index 6b92b2cd3..7183038b6 100644 --- a/src/main/options-normalizer.js +++ b/src/main/options-normalizer.js @@ -1,6 +1,10 @@ import vnopts from "vnopts"; import getLast from "../utils/get-last.js"; +/** + * @typedef {import("./support").NamedOptionInfo} NamedOptionInfo + */ + const cliDescriptor = { key: (key) => (key.length === 1 ? `-${key}` : `--${key}`), value: (value) => vnopts.apiDescriptor.value(value), @@ -53,15 +57,20 @@ const getFlagSchema = ({ colorsModule, levenshteinDistance }) => let hasDeprecationWarned; +/** + * @param {*} options + * @param {*} optionInfos + * @param {{ logger?: false; isCLI?: boolean; passThrough?: boolean; colorsModule?: any; levenshteinDistance?: any }} param2 + */ function normalizeOptions( options, optionInfos, { - logger, + logger = false, isCLI = false, passThrough = false, - colorsModule, - levenshteinDistance, + colorsModule = null, + levenshteinDistance = null, } = {} ) { const unknown = !passThrough @@ -93,12 +102,14 @@ function normalizeOptions( const shouldSuppressDuplicateDeprecationWarnings = logger !== false; if (shouldSuppressDuplicateDeprecationWarnings && hasDeprecationWarned) { + // @ts-expect-error normalizer._hasDeprecationWarned = hasDeprecationWarned; } const normalized = normalizer.normalize(options); if (shouldSuppressDuplicateDeprecationWarnings) { + // @ts-expect-error hasDeprecationWarned = normalizer._hasDeprecationWarned; } @@ -132,6 +143,7 @@ function optionInfosToSchemas( if (optionInfo.alias && isCLI) { schemas.push( vnopts.AliasSchema.create({ + // @ts-expect-error name: optionInfo.alias, sourceName: optionInfo.name, }) @@ -142,6 +154,11 @@ function optionInfosToSchemas( return schemas; } +/** + * @param {NamedOptionInfo} optionInfo + * @param {any} param1 + * @returns + */ function optionInfoToSchema( optionInfo, { isCLI, optionInfos, colorsModule, levenshteinDistance } @@ -150,6 +167,7 @@ function optionInfoToSchema( if (name === "plugin-search-dir" || name === "pluginSearchDirs") { return vnopts.AnySchema.create({ + // @ts-expect-error name, preprocess(value) { if (value === false) { @@ -158,6 +176,9 @@ function optionInfoToSchema( value = Array.isArray(value) ? value : [value]; return value; }, + /** + * @param {Array | false} value + */ validate(value) { if (value === false) { return true; @@ -258,6 +279,7 @@ function optionInfoToSchema( ? vnopts.ArraySchema.create({ ...(isCLI ? { preprocess: (v) => (Array.isArray(v) ? v : [v]) } : {}), ...handlers, + // @ts-expect-error valueSchema: SchemaConstructor.create(parameters), }) : SchemaConstructor.create({ ...parameters, ...handlers }); diff --git a/src/main/support.js b/src/main/support.js index c5128a293..bb19498cd 100644 --- a/src/main/support.js +++ b/src/main/support.js @@ -9,6 +9,11 @@ const require = createRequire(import.meta.url); const currentVersion = require("../../package.json").version; +/** + * @typedef {import("./core-options").OptionInfo} OptionInfo + * @typedef {{ name: string; pluginDefaults: Array } & OptionInfo} NamedOptionInfo + */ + /** * Strings in `plugins` and `pluginSearchDirs` are handled by a wrapped version * of this function created by `withPlugins`. Don't pass them here directly. @@ -18,6 +23,7 @@ const currentVersion = require("../../package.json").version; * @param {boolean=} param0.showUnreleased * @param {boolean=} param0.showDeprecated * @param {boolean=} param0.showInternal + * @return {{ languages: Array, options: Array }} */ function getSupportInfo({ plugins = [], diff --git a/src/utils/partition.js b/src/utils/partition.js new file mode 100644 index 000000000..4d6b92a46 --- /dev/null +++ b/src/utils/partition.js @@ -0,0 +1,20 @@ +"use strict"; + +/** + * @template Element + * @param {Array} array + * @param {(value: Element) => boolean} predicate + * @returns {[Array, Array]} + */ +function partition(array, predicate) { + /** @type {[Array, Array]} */ + const result = [[], []]; + + for (const value of array) { + result[predicate(value) ? 0 : 1].push(value); + } + + return result; +} + +module.exports = partition; diff --git a/src/utils/uniq-by-key.js b/src/utils/uniq-by-key.js new file mode 100644 index 000000000..ad8b249c0 --- /dev/null +++ b/src/utils/uniq-by-key.js @@ -0,0 +1,24 @@ +"use strict"; + +/** + * @template {object} Element + * @param {Array} array + * @param {string | number | symbol} key + * @returns + */ +function uniqByKey(array, key) { + const result = []; + const seen = new Set(); + + for (const element of array) { + const value = element[key]; + if (!seen.has(value)) { + seen.add(value); + result.push(element); + } + } + + return result; +} + +module.exports = uniqByKey; diff --git a/tests/format/graphql/string/__snapshots__/jsfmt.spec.js.snap b/tests/format/graphql/string/__snapshots__/jsfmt.spec.js.snap index 0ecf89041..c33b4febc 100644 --- a/tests/format/graphql/string/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/graphql/string/__snapshots__/jsfmt.spec.js.snap @@ -1,5 +1,82 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`description.graphql format 1`] = ` +====================================options===================================== +parsers: ["graphql"] +printWidth: 80 + | printWidth +=====================================input====================================== +""" Customer """ +type Person {name: String} + +""" Customer """ +type Person {name: String} + +""" + + Customer + + +""" +type Person {name: String} + +"""""" +type Person {name: String} + +""" """ +type Person {name: String} + +""" + 1 + 2 +""" +type Person {name: String} + +=====================================output===================================== +""" +Customer +""" +type Person { + name: String +} + +""" +Customer +""" +type Person { + name: String +} + +""" +Customer +""" +type Person { + name: String +} + +""" +""" +type Person { + name: String +} + +""" +""" +type Person { + name: String +} + +""" + 1 +2 +""" +type Person { + name: String +} + +================================================================================ +`; + exports[`string.graphql format 1`] = ` ====================================options===================================== parsers: ["graphql"] @@ -59,6 +136,14 @@ one: string foo(input: {multiline: "ab\\ncd"}) { id } } +{ + foo(input: {multiline: """ foo """}) { id } +} + +{ + foo(input: {multiline: """ """}) { id } +} + =====================================output===================================== query X($a: Int) @relay(meta: "{\\"lowPri\\": true}") { a @@ -129,5 +214,28 @@ input Input { } } +{ + foo( + input: { + multiline: """ + foo + """ + } + ) { + id + } +} + +{ + foo( + input: { + multiline: """ + """ + } + ) { + id + } +} + ================================================================================ `; diff --git a/tests/format/graphql/string/description.graphql b/tests/format/graphql/string/description.graphql new file mode 100644 index 000000000..c4f44850a --- /dev/null +++ b/tests/format/graphql/string/description.graphql @@ -0,0 +1,25 @@ +""" Customer """ +type Person {name: String} + +""" Customer """ +type Person {name: String} + +""" + + Customer + + +""" +type Person {name: String} + +"""""" +type Person {name: String} + +""" """ +type Person {name: String} + +""" + 1 + 2 +""" +type Person {name: String} diff --git a/tests/format/graphql/string/string.graphql b/tests/format/graphql/string/string.graphql index edf808a7b..d6b8ceb44 100644 --- a/tests/format/graphql/string/string.graphql +++ b/tests/format/graphql/string/string.graphql @@ -50,3 +50,11 @@ one: string { foo(input: {multiline: "ab\ncd"}) { id } } + +{ + foo(input: {multiline: """ foo """}) { id } +} + +{ + foo(input: {multiline: """ """}) { id } +} diff --git a/tests/format/js/babel-plugins/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/babel-plugins/__snapshots__/jsfmt.spec.js.snap index c7d338bb5..2e11f5dbf 100644 --- a/tests/format/js/babel-plugins/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/babel-plugins/__snapshots__/jsfmt.spec.js.snap @@ -1017,9 +1017,9 @@ exports[`function-sent.js [acorn] format 1`] = ` "Unexpected token (4:33) 2 | 3 | function* generator() { -> 4 | console.log(\\"Sent\\", function.sent); +> 4 | console.log("Sent", function.sent); | ^ - 5 | console.log(\\"Yield\\", yield); + 5 | console.log("Yield", yield); 6 | } 7 |" `; @@ -1028,9 +1028,9 @@ exports[`function-sent.js [espree] format 1`] = ` "Unexpected token . (4:33) 2 | 3 | function* generator() { -> 4 | console.log(\\"Sent\\", function.sent); +> 4 | console.log("Sent", function.sent); | ^ - 5 | console.log(\\"Yield\\", yield); + 5 | console.log("Yield", yield); 6 | } 7 |" `; @@ -1039,9 +1039,9 @@ exports[`function-sent.js [meriyah] format 1`] = ` "Expected '(' (4:33) 2 | 3 | function* generator() { -> 4 | console.log(\\"Sent\\", function.sent); +> 4 | console.log("Sent", function.sent); | ^ - 5 | console.log(\\"Yield\\", yield); + 5 | console.log("Yield", yield); 6 | } 7 |" `; @@ -1080,21 +1080,21 @@ iterator.next(2); // Logs "Yield 2" exports[`import-assertions-dynamic.js [acorn] format 1`] = ` "Unexpected token (1:20) -> 1 | import(\\"./foo.json\\", { assert: { type: \\"json\\" } }); +> 1 | import("./foo.json", { assert: { type: "json" } }); | ^ 2 |" `; exports[`import-assertions-dynamic.js [espree] format 1`] = ` "Unexpected token , (1:20) -> 1 | import(\\"./foo.json\\", { assert: { type: \\"json\\" } }); +> 1 | import("./foo.json", { assert: { type: "json" } }); | ^ 2 |" `; exports[`import-assertions-dynamic.js [meriyah] format 1`] = ` "Expected ')' (1:20) -> 1 | import(\\"./foo.json\\", { assert: { type: \\"json\\" } }); +> 1 | import("./foo.json", { assert: { type: "json" } }); | ^ 2 |" `; @@ -1115,21 +1115,21 @@ import("./foo.json", { assert: { type: "json" } }); exports[`import-assertions-static.js [acorn] format 1`] = ` "Unexpected token (1:31) -> 1 | import json from \\"./foo.json\\" assert { type: \\"json\\" }; +> 1 | import json from "./foo.json" assert { type: "json" }; | ^ 2 |" `; exports[`import-assertions-static.js [espree] format 1`] = ` "Unexpected token assert (1:31) -> 1 | import json from \\"./foo.json\\" assert { type: \\"json\\" }; +> 1 | import json from "./foo.json" assert { type: "json" }; | ^ 2 |" `; exports[`import-assertions-static.js [meriyah] format 1`] = ` "Unexpected token: 'identifier' (1:36) -> 1 | import json from \\"./foo.json\\" assert { type: \\"json\\" }; +> 1 | import json from "./foo.json" assert { type: "json" }; | ^ 2 |" `; @@ -1297,9 +1297,9 @@ let m = module { exports[`module-string-names.js [meriyah] format 1`] = ` "Expected '}' (1:13) -> 1 | import { \\"😄\\" as smile } from \\"./emojis.js\\"; +> 1 | import { "😄" as smile } from "./emojis.js"; | ^ - 2 | export { smile as \\"😄\\" } from \\"./emojis.js\\"; + 2 | export { smile as "😄" } from "./emojis.js"; 3 |" `; @@ -1884,9 +1884,9 @@ return list |> take(prefix.length, %) |> equals(%, prefix); exports[`pipeline-operator-minimal.js [acorn] format 1`] = ` "Identifier 'result' has already been declared (7:5) - 5 | result //=> \\"Hello, hello!\\" + 5 | result //=> "Hello, hello!" 6 | -> 7 | let result = \\"hello\\" +> 7 | let result = "hello" | ^ 8 | |> doubleSay 9 | |> capitalize @@ -1895,9 +1895,9 @@ exports[`pipeline-operator-minimal.js [acorn] format 1`] = ` exports[`pipeline-operator-minimal.js [espree] format 1`] = ` "Identifier 'result' has already been declared (7:5) - 5 | result //=> \\"Hello, hello!\\" + 5 | result //=> "Hello, hello!" 6 | -> 7 | let result = \\"hello\\" +> 7 | let result = "hello" | ^ 8 | |> doubleSay 9 | |> capitalize @@ -1907,7 +1907,7 @@ exports[`pipeline-operator-minimal.js [espree] format 1`] = ` exports[`pipeline-operator-minimal.js [meriyah] format 1`] = ` "Unexpected token: '>' (8:4) 6 | - 7 | let result = \\"hello\\" + 7 | let result = "hello" > 8 | |> doubleSay | ^ 9 | |> capitalize diff --git a/tests/format/js/call/invalid/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/call/invalid/__snapshots__/jsfmt.spec.js.snap index 2c2ef6537..44dad6613 100644 --- a/tests/format/js/call/invalid/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/call/invalid/__snapshots__/jsfmt.spec.js.snap @@ -5,7 +5,7 @@ exports[`null-arguments-item.js [__babel_estree] format 1`] = ` > 1 | foor('a', , 'b'); | ^ 2 | foo('looooooooooooooooooooooooooooooooooooooooooooooong', , 'looooooooooooooooooooooooooooooooooooooooooooooong'); - 3 | foo(\\"a\\", + 3 | foo("a", 4 | //1" `; @@ -14,7 +14,7 @@ exports[`null-arguments-item.js [acorn] format 1`] = ` > 1 | foor('a', , 'b'); | ^ 2 | foo('looooooooooooooooooooooooooooooooooooooooooooooong', , 'looooooooooooooooooooooooooooooooooooooooooooooong'); - 3 | foo(\\"a\\", + 3 | foo("a", 4 | //1" `; @@ -23,7 +23,7 @@ exports[`null-arguments-item.js [babel] format 1`] = ` > 1 | foor('a', , 'b'); | ^ 2 | foo('looooooooooooooooooooooooooooooooooooooooooooooong', , 'looooooooooooooooooooooooooooooooooooooooooooooong'); - 3 | foo(\\"a\\", + 3 | foo("a", 4 | //1" `; @@ -32,7 +32,7 @@ exports[`null-arguments-item.js [espree] format 1`] = ` > 1 | foor('a', , 'b'); | ^ 2 | foo('looooooooooooooooooooooooooooooooooooooooooooooong', , 'looooooooooooooooooooooooooooooooooooooooooooooong'); - 3 | foo(\\"a\\", + 3 | foo("a", 4 | //1" `; @@ -41,6 +41,6 @@ exports[`null-arguments-item.js [meriyah] format 1`] = ` > 1 | foor('a', , 'b'); | ^ 2 | foo('looooooooooooooooooooooooooooooooooooooooooooooong', , 'looooooooooooooooooooooooooooooooooooooooooooooong'); - 3 | foo(\\"a\\", + 3 | foo("a", 4 | //1" `; diff --git a/tests/format/js/classes/top-level-super/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/classes/top-level-super/__snapshots__/jsfmt.spec.js.snap index 2900df233..37af8ce7c 100644 --- a/tests/format/js/classes/top-level-super/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/classes/top-level-super/__snapshots__/jsfmt.spec.js.snap @@ -15,7 +15,7 @@ exports[`example.js [espree] format 1`] = ` `; exports[`example.js [meriyah] format 1`] = ` -"Calls to super must be in the \\"constructor\\" method of a class expression or class declaration that has a superclass (1:6) +"Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass (1:6) > 1 | super(); | ^ 2 |" diff --git a/tests/format/js/decorator-auto-accessors/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/decorator-auto-accessors/__snapshots__/jsfmt.spec.js.snap index 128e914c1..c8cbc76bb 100644 --- a/tests/format/js/decorator-auto-accessors/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/decorator-auto-accessors/__snapshots__/jsfmt.spec.js.snap @@ -76,7 +76,7 @@ class Foo { exports[`computed.js [acorn] format 1`] = ` "Unexpected token (2:12) 1 | class Foo { -> 2 | accessor [\\"bar\\"]; +> 2 | accessor ["bar"]; | ^ 3 | } 4 |" @@ -85,7 +85,7 @@ exports[`computed.js [acorn] format 1`] = ` exports[`computed.js [espree] format 1`] = ` "Unexpected token [ (2:12) 1 | class Foo { -> 2 | accessor [\\"bar\\"]; +> 2 | accessor ["bar"]; | ^ 3 | } 4 |" @@ -94,7 +94,7 @@ exports[`computed.js [espree] format 1`] = ` exports[`computed.js - {"semi":false} [acorn] format 1`] = ` "Unexpected token (2:12) 1 | class Foo { -> 2 | accessor [\\"bar\\"]; +> 2 | accessor ["bar"]; | ^ 3 | } 4 |" @@ -103,7 +103,7 @@ exports[`computed.js - {"semi":false} [acorn] format 1`] = ` exports[`computed.js - {"semi":false} [espree] format 1`] = ` "Unexpected token [ (2:12) 1 | class Foo { -> 2 | accessor [\\"bar\\"]; +> 2 | accessor ["bar"]; | ^ 3 | } 4 |" @@ -410,7 +410,7 @@ class Foo { exports[`static-computed.js [acorn] format 1`] = ` "Unexpected token (2:19) 1 | class Foo { -> 2 | static accessor [\\"bar\\"]; +> 2 | static accessor ["bar"]; | ^ 3 | } 4 |" @@ -419,7 +419,7 @@ exports[`static-computed.js [acorn] format 1`] = ` exports[`static-computed.js [espree] format 1`] = ` "Unexpected token [ (2:19) 1 | class Foo { -> 2 | static accessor [\\"bar\\"]; +> 2 | static accessor ["bar"]; | ^ 3 | } 4 |" @@ -428,7 +428,7 @@ exports[`static-computed.js [espree] format 1`] = ` exports[`static-computed.js - {"semi":false} [acorn] format 1`] = ` "Unexpected token (2:19) 1 | class Foo { -> 2 | static accessor [\\"bar\\"]; +> 2 | static accessor ["bar"]; | ^ 3 | } 4 |" @@ -437,7 +437,7 @@ exports[`static-computed.js - {"semi":false} [acorn] format 1`] = ` exports[`static-computed.js - {"semi":false} [espree] format 1`] = ` "Unexpected token [ (2:19) 1 | class Foo { -> 2 | static accessor [\\"bar\\"]; +> 2 | static accessor ["bar"]; | ^ 3 | } 4 |" @@ -638,7 +638,7 @@ class Foo { exports[`with-semicolon-1.js [acorn] format 1`] = ` "Unexpected token (2:12) 1 | class C { -> 2 | accessor clicked = \\"value\\"; +> 2 | accessor clicked = "value"; | ^ 3 | [foo]() {} 4 | } @@ -648,7 +648,7 @@ exports[`with-semicolon-1.js [acorn] format 1`] = ` exports[`with-semicolon-1.js [espree] format 1`] = ` "Unexpected token clicked (2:12) 1 | class C { -> 2 | accessor clicked = \\"value\\"; +> 2 | accessor clicked = "value"; | ^ 3 | [foo]() {} 4 | } @@ -658,7 +658,7 @@ exports[`with-semicolon-1.js [espree] format 1`] = ` exports[`with-semicolon-1.js - {"semi":false} [acorn] format 1`] = ` "Unexpected token (2:12) 1 | class C { -> 2 | accessor clicked = \\"value\\"; +> 2 | accessor clicked = "value"; | ^ 3 | [foo]() {} 4 | } @@ -668,7 +668,7 @@ exports[`with-semicolon-1.js - {"semi":false} [acorn] format 1`] = ` exports[`with-semicolon-1.js - {"semi":false} [espree] format 1`] = ` "Unexpected token clicked (2:12) 1 | class C { -> 2 | accessor clicked = \\"value\\"; +> 2 | accessor clicked = "value"; | ^ 3 | [foo]() {} 4 | } @@ -719,7 +719,7 @@ class C { exports[`with-semicolon-2.js [acorn] format 1`] = ` "Unexpected token (2:12) 1 | class C { -> 2 | accessor clicked = \\"value\\"; +> 2 | accessor clicked = "value"; | ^ 3 | *foo() {} 4 | } @@ -729,7 +729,7 @@ exports[`with-semicolon-2.js [acorn] format 1`] = ` exports[`with-semicolon-2.js [espree] format 1`] = ` "Unexpected token clicked (2:12) 1 | class C { -> 2 | accessor clicked = \\"value\\"; +> 2 | accessor clicked = "value"; | ^ 3 | *foo() {} 4 | } @@ -739,7 +739,7 @@ exports[`with-semicolon-2.js [espree] format 1`] = ` exports[`with-semicolon-2.js - {"semi":false} [acorn] format 1`] = ` "Unexpected token (2:12) 1 | class C { -> 2 | accessor clicked = \\"value\\"; +> 2 | accessor clicked = "value"; | ^ 3 | *foo() {} 4 | } @@ -749,7 +749,7 @@ exports[`with-semicolon-2.js - {"semi":false} [acorn] format 1`] = ` exports[`with-semicolon-2.js - {"semi":false} [espree] format 1`] = ` "Unexpected token clicked (2:12) 1 | class C { -> 2 | accessor clicked = \\"value\\"; +> 2 | accessor clicked = "value"; | ^ 3 | *foo() {} 4 | } diff --git a/tests/format/js/decorators/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/decorators/__snapshots__/jsfmt.spec.js.snap index 62aab4d14..913adbb6d 100644 --- a/tests/format/js/decorators/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/decorators/__snapshots__/jsfmt.spec.js.snap @@ -166,22 +166,22 @@ exports[`methods.js [acorn] format 1`] = ` "Unexpected character '@' (3:3) 1 | 2 | class Yo { -> 3 | @foo(\\"hello\\") +> 3 | @foo("hello") | ^ 4 | async plop() {} 5 | - 6 | @anotherDecoratorWithALongName(\\"and a very long string as a first argument\\")" + 6 | @anotherDecoratorWithALongName("and a very long string as a first argument")" `; exports[`methods.js [espree] format 1`] = ` "Unexpected character '@' (3:3) 1 | 2 | class Yo { -> 3 | @foo(\\"hello\\") +> 3 | @foo("hello") | ^ 4 | async plop() {} 5 | - 6 | @anotherDecoratorWithALongName(\\"and a very long string as a first argument\\")" + 6 | @anotherDecoratorWithALongName("and a very long string as a first argument")" `; exports[`methods.js format 1`] = ` @@ -266,7 +266,7 @@ export default class MyComponent { exports[`mobx.js [acorn] format 1`] = ` "Unexpected character '@' (3:1) - 1 | import {observable} from \\"mobx\\"; + 1 | import {observable} from "mobx"; 2 | > 3 | @observer class OrderLine { | ^ @@ -277,7 +277,7 @@ exports[`mobx.js [acorn] format 1`] = ` exports[`mobx.js [espree] format 1`] = ` "Unexpected character '@' (3:1) - 1 | import {observable} from \\"mobx\\"; + 1 | import {observable} from "mobx"; 2 | > 3 | @observer class OrderLine { | ^ diff --git a/tests/format/js/do/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/do/__snapshots__/jsfmt.spec.js.snap index b73a8ff8c..e975afc7e 100644 --- a/tests/format/js/do/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/do/__snapshots__/jsfmt.spec.js.snap @@ -6,9 +6,9 @@ exports[`call-arguments.js [acorn] format 1`] = ` 2 | expect( > 3 | do { | ^ - 4 | var bar = \\"foo\\"; + 4 | var bar = "foo"; 5 | if (!bar) throw new Error( - 6 | \\"unreachable\\"" + 6 | "unreachable"" `; exports[`call-arguments.js [espree] format 1`] = ` @@ -17,9 +17,9 @@ exports[`call-arguments.js [espree] format 1`] = ` 2 | expect( > 3 | do { | ^ - 4 | var bar = \\"foo\\"; + 4 | var bar = "foo"; 5 | if (!bar) throw new Error( - 6 | \\"unreachable\\"" + 6 | "unreachable"" `; exports[`call-arguments.js [meriyah] format 1`] = ` @@ -28,9 +28,9 @@ exports[`call-arguments.js [meriyah] format 1`] = ` 2 | expect( > 3 | do { | ^ - 4 | var bar = \\"foo\\"; + 4 | var bar = "foo"; 5 | if (!bar) throw new Error( - 6 | \\"unreachable\\"" + 6 | "unreachable"" `; exports[`call-arguments.js format 1`] = ` diff --git a/tests/format/js/dynamic-import/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/dynamic-import/__snapshots__/jsfmt.spec.js.snap index f4d7d3870..2f14318ed 100644 --- a/tests/format/js/dynamic-import/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/dynamic-import/__snapshots__/jsfmt.spec.js.snap @@ -2,28 +2,28 @@ exports[`assertions.js [acorn] format 1`] = ` "Unexpected token (1:20) -> 1 | import(\\"./foo.json\\", { assert: { type: \\"json\\" } }); +> 1 | import("./foo.json", { assert: { type: "json" } }); | ^ 2 |" `; exports[`assertions.js [espree] format 1`] = ` "Unexpected token , (1:20) -> 1 | import(\\"./foo.json\\", { assert: { type: \\"json\\" } }); +> 1 | import("./foo.json", { assert: { type: "json" } }); | ^ 2 |" `; exports[`assertions.js [flow] format 1`] = ` "Unexpected token \`,\`, expected the token \`)\` (1:20) -> 1 | import(\\"./foo.json\\", { assert: { type: \\"json\\" } }); +> 1 | import("./foo.json", { assert: { type: "json" } }); | ^ 2 |" `; exports[`assertions.js [meriyah] format 1`] = ` "Expected ')' (1:20) -> 1 | import(\\"./foo.json\\", { assert: { type: \\"json\\" } }); +> 1 | import("./foo.json", { assert: { type: "json" } }); | ^ 2 |" `; diff --git a/tests/format/js/export-default/escaped/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/export-default/escaped/__snapshots__/jsfmt.spec.js.snap index 1763a573f..e45c64b19 100644 --- a/tests/format/js/export-default/escaped/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/export-default/escaped/__snapshots__/jsfmt.spec.js.snap @@ -2,22 +2,22 @@ exports[`default-escaped.js [acorn] format 1`] = ` "Unexpected token (2:8) - 1 | // export asyn\\\\u{63} from \\"async\\"; -> 2 | export n\\\\u{63} from \\"async\\"; + 1 | // export asyn\\u{63} from "async"; +> 2 | export n\\u{63} from "async"; | ^" `; exports[`default-escaped.js [espree] format 1`] = ` -"Unexpected token n\\\\u{63} (2:8) - 1 | // export asyn\\\\u{63} from \\"async\\"; -> 2 | export n\\\\u{63} from \\"async\\"; +"Unexpected token n\\u{63} (2:8) + 1 | // export asyn\\u{63} from "async"; +> 2 | export n\\u{63} from "async"; | ^" `; exports[`default-escaped.js [meriyah] format 1`] = ` "Unexpected token: 'identifier' (2:12) - 1 | // export asyn\\\\u{63} from \\"async\\"; -> 2 | export n\\\\u{63} from \\"async\\"; + 1 | // export asyn\\u{63} from "async"; +> 2 | export n\\u{63} from "async"; | ^" `; diff --git a/tests/format/js/export-star/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/export-star/__snapshots__/jsfmt.spec.js.snap index 9562c0d9d..c0b2eac46 100644 --- a/tests/format/js/export-star/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/export-star/__snapshots__/jsfmt.spec.js.snap @@ -81,14 +81,14 @@ export * as "foo" from "foo"; exports[`export-star-as-string2.js [flow] format 1`] = ` "Unexpected string, expected an identifier (1:13) -> 1 | export * as \\"foo\\" from 'foo' +> 1 | export * as "foo" from 'foo' | ^^^^^ 2 |" `; exports[`export-star-as-string2.js [typescript] format 1`] = ` "Identifier expected. (1:13) -> 1 | export * as \\"foo\\" from 'foo' +> 1 | export * as "foo" from 'foo' | ^ 2 |" `; diff --git a/tests/format/js/exports/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/exports/__snapshots__/jsfmt.spec.js.snap index eeab830d1..711cd20ba 100644 --- a/tests/format/js/exports/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/exports/__snapshots__/jsfmt.spec.js.snap @@ -2,34 +2,34 @@ exports[`test.js [acorn] format 1`] = ` "Unexpected token (3:8) - 1 | export { value1, value2 as value2_renamed, value3, value4 as value4_renamed, value5 } from \\"exports\\"; + 1 | export { value1, value2 as value2_renamed, value3, value4 as value4_renamed, value5 } from "exports"; 2 | -> 3 | export a,{b} from \\"./baz\\"; +> 3 | export a,{b} from "./baz"; | ^ 4 | - 5 | export * as ns from \\"mod\\"; + 5 | export * as ns from "mod"; 6 |" `; exports[`test.js [espree] format 1`] = ` "Unexpected token a (3:8) - 1 | export { value1, value2 as value2_renamed, value3, value4 as value4_renamed, value5 } from \\"exports\\"; + 1 | export { value1, value2 as value2_renamed, value3, value4 as value4_renamed, value5 } from "exports"; 2 | -> 3 | export a,{b} from \\"./baz\\"; +> 3 | export a,{b} from "./baz"; | ^ 4 | - 5 | export * as ns from \\"mod\\"; + 5 | export * as ns from "mod"; 6 |" `; exports[`test.js [meriyah] format 1`] = ` "Unexpected token: 'identifier' (3:8) - 1 | export { value1, value2 as value2_renamed, value3, value4 as value4_renamed, value5 } from \\"exports\\"; + 1 | export { value1, value2 as value2_renamed, value3, value4 as value4_renamed, value5 } from "exports"; 2 | -> 3 | export a,{b} from \\"./baz\\"; +> 3 | export a,{b} from "./baz"; | ^ 4 | - 5 | export * as ns from \\"mod\\"; + 5 | export * as ns from "mod"; 6 |" `; diff --git a/tests/format/js/import-assertions/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/import-assertions/__snapshots__/jsfmt.spec.js.snap index b92499e61..df7c21072 100644 --- a/tests/format/js/import-assertions/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/import-assertions/__snapshots__/jsfmt.spec.js.snap @@ -2,21 +2,21 @@ exports[`dynamic-import.js [acorn] format 1`] = ` "Unexpected token (1:20) -> 1 | import(\\"./foo.json\\", { assert: { type: \\"json\\" } }); +> 1 | import("./foo.json", { assert: { type: "json" } }); | ^ 2 |" `; exports[`dynamic-import.js [espree] format 1`] = ` "Unexpected token , (1:20) -> 1 | import(\\"./foo.json\\", { assert: { type: \\"json\\" } }); +> 1 | import("./foo.json", { assert: { type: "json" } }); | ^ 2 |" `; exports[`dynamic-import.js [meriyah] format 1`] = ` "Expected ')' (1:20) -> 1 | import(\\"./foo.json\\", { assert: { type: \\"json\\" } }); +> 1 | import("./foo.json", { assert: { type: "json" } }); | ^ 2 |" `; @@ -37,32 +37,32 @@ import("./foo.json", { assert: { type: "json" } }); exports[`empty.js [acorn] format 1`] = ` "Unexpected token (2:33) - 1 | export * as foo from \\"foo.json\\" -> 2 | export * as bar from \\"bar.json\\" assert { } + 1 | export * as foo from "foo.json" +> 2 | export * as bar from "bar.json" assert { } | ^ - 3 | export * as baz from \\"baz.json\\" assert { /* comment */ } + 3 | export * as baz from "baz.json" assert { /* comment */ } 4 | - 5 | import * as foo from \\"foo.json\\"" + 5 | import * as foo from "foo.json"" `; exports[`empty.js [espree] format 1`] = ` "Unexpected token assert (2:33) - 1 | export * as foo from \\"foo.json\\" -> 2 | export * as bar from \\"bar.json\\" assert { } + 1 | export * as foo from "foo.json" +> 2 | export * as bar from "bar.json" assert { } | ^ - 3 | export * as baz from \\"baz.json\\" assert { /* comment */ } + 3 | export * as baz from "baz.json" assert { /* comment */ } 4 | - 5 | import * as foo from \\"foo.json\\"" + 5 | import * as foo from "foo.json"" `; exports[`empty.js [meriyah] format 1`] = ` "Unexpected token: 'identifier' (2:38) - 1 | export * as foo from \\"foo.json\\" -> 2 | export * as bar from \\"bar.json\\" assert { } + 1 | export * as foo from "foo.json" +> 2 | export * as bar from "bar.json" assert { } | ^ - 3 | export * as baz from \\"baz.json\\" assert { /* comment */ } + 3 | export * as baz from "baz.json" assert { /* comment */ } 4 | - 5 | import * as foo from \\"foo.json\\"" + 5 | import * as foo from "foo.json"" `; exports[`empty.js format 1`] = ` @@ -92,21 +92,21 @@ import * as baz from "baz.json" /* comment */; exports[`multi-types.js [acorn] format 1`] = ` "Unexpected token (1:31) -> 1 | import json from \\"./foo.json\\" assert { type: \\"json\\", type: \\"bar\\" }; +> 1 | import json from "./foo.json" assert { type: "json", type: "bar" }; | ^ 2 |" `; exports[`multi-types.js [espree] format 1`] = ` "Unexpected token assert (1:31) -> 1 | import json from \\"./foo.json\\" assert { type: \\"json\\", type: \\"bar\\" }; +> 1 | import json from "./foo.json" assert { type: "json", type: "bar" }; | ^ 2 |" `; exports[`multi-types.js [meriyah] format 1`] = ` "Unexpected token: 'identifier' (1:36) -> 1 | import json from \\"./foo.json\\" assert { type: \\"json\\", type: \\"bar\\" }; +> 1 | import json from "./foo.json" assert { type: "json", type: "bar" }; | ^ 2 |" `; @@ -127,21 +127,21 @@ import json from "./foo.json" assert { type: "json", type: "bar" }; exports[`non-type.js [acorn] format 1`] = ` "Unexpected token (1:28) -> 1 | import foo from \\"foo.json\\" assert { lazy: \\"true\\" }; +> 1 | import foo from "foo.json" assert { lazy: "true" }; | ^ 2 |" `; exports[`non-type.js [espree] format 1`] = ` "Unexpected token assert (1:28) -> 1 | import foo from \\"foo.json\\" assert { lazy: \\"true\\" }; +> 1 | import foo from "foo.json" assert { lazy: "true" }; | ^ 2 |" `; exports[`non-type.js [meriyah] format 1`] = ` "Unexpected token: 'identifier' (1:33) -> 1 | import foo from \\"foo.json\\" assert { lazy: \\"true\\" }; +> 1 | import foo from "foo.json" assert { lazy: "true" }; | ^ 2 |" `; @@ -178,28 +178,28 @@ assert({ type: "json" }); exports[`re-export.js [acorn] format 1`] = ` "Unexpected token (1:33) -> 1 | export { foo2 } from \\"foo.json\\" assert { type: \\"json\\" }; +> 1 | export { foo2 } from "foo.json" assert { type: "json" }; | ^ - 2 | export * from \\"foo.json\\" assert { type: \\"json\\" }; - 3 | export * as foo3 from \\"foo.json\\" assert { type: \\"json\\" }; + 2 | export * from "foo.json" assert { type: "json" }; + 3 | export * as foo3 from "foo.json" assert { type: "json" }; 4 |" `; exports[`re-export.js [espree] format 1`] = ` "Unexpected token assert (1:33) -> 1 | export { foo2 } from \\"foo.json\\" assert { type: \\"json\\" }; +> 1 | export { foo2 } from "foo.json" assert { type: "json" }; | ^ - 2 | export * from \\"foo.json\\" assert { type: \\"json\\" }; - 3 | export * as foo3 from \\"foo.json\\" assert { type: \\"json\\" }; + 2 | export * from "foo.json" assert { type: "json" }; + 3 | export * as foo3 from "foo.json" assert { type: "json" }; 4 |" `; exports[`re-export.js [meriyah] format 1`] = ` "Unexpected token: 'identifier' (1:38) -> 1 | export { foo2 } from \\"foo.json\\" assert { type: \\"json\\" }; +> 1 | export { foo2 } from "foo.json" assert { type: "json" }; | ^ - 2 | export * from \\"foo.json\\" assert { type: \\"json\\" }; - 3 | export * as foo3 from \\"foo.json\\" assert { type: \\"json\\" }; + 2 | export * from "foo.json" assert { type: "json" }; + 3 | export * as foo3 from "foo.json" assert { type: "json" }; 4 |" `; @@ -223,21 +223,21 @@ export * as foo3 from "foo.json" assert { type: "json" }; exports[`static-import.js [acorn] format 1`] = ` "Unexpected token (1:31) -> 1 | import json from \\"./foo.json\\" assert { type: \\"json\\" }; +> 1 | import json from "./foo.json" assert { type: "json" }; | ^ 2 |" `; exports[`static-import.js [espree] format 1`] = ` "Unexpected token assert (1:31) -> 1 | import json from \\"./foo.json\\" assert { type: \\"json\\" }; +> 1 | import json from "./foo.json" assert { type: "json" }; | ^ 2 |" `; exports[`static-import.js [meriyah] format 1`] = ` "Unexpected token: 'identifier' (1:36) -> 1 | import json from \\"./foo.json\\" assert { type: \\"json\\" }; +> 1 | import json from "./foo.json" assert { type: "json" }; | ^ 2 |" `; @@ -258,21 +258,21 @@ import json from "./foo.json" assert { type: "json" }; exports[`without-from.js [acorn] format 1`] = ` "Unexpected token (1:14) -> 1 | import \\"foo\\" assert { type: \\"json\\" } +> 1 | import "foo" assert { type: "json" } | ^ 2 |" `; exports[`without-from.js [espree] format 1`] = ` "Unexpected token assert (1:14) -> 1 | import \\"foo\\" assert { type: \\"json\\" } +> 1 | import "foo" assert { type: "json" } | ^ 2 |" `; exports[`without-from.js [meriyah] format 1`] = ` "Unexpected token: 'identifier' (1:19) -> 1 | import \\"foo\\" assert { type: \\"json\\" } +> 1 | import "foo" assert { type: "json" } | ^ 2 |" `; diff --git a/tests/format/js/import-assertions/bracket-spacing/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/import-assertions/bracket-spacing/__snapshots__/jsfmt.spec.js.snap index 26fa4d66e..70b4ed781 100644 --- a/tests/format/js/import-assertions/bracket-spacing/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/import-assertions/bracket-spacing/__snapshots__/jsfmt.spec.js.snap @@ -2,21 +2,21 @@ exports[`dynamic-import.js - {"bracketSpacing":false} [acorn] format 1`] = ` "Unexpected token (1:20) -> 1 | import(\\"./foo.json\\", { assert: { type: \\"json\\" } }); +> 1 | import("./foo.json", { assert: { type: "json" } }); | ^ 2 |" `; exports[`dynamic-import.js - {"bracketSpacing":false} [espree] format 1`] = ` "Unexpected token , (1:20) -> 1 | import(\\"./foo.json\\", { assert: { type: \\"json\\" } }); +> 1 | import("./foo.json", { assert: { type: "json" } }); | ^ 2 |" `; exports[`dynamic-import.js - {"bracketSpacing":false} [meriyah] format 1`] = ` "Expected ')' (1:20) -> 1 | import(\\"./foo.json\\", { assert: { type: \\"json\\" } }); +> 1 | import("./foo.json", { assert: { type: "json" } }); | ^ 2 |" `; @@ -38,19 +38,19 @@ import("./foo.json", {assert: {type: "json"}}); exports[`empty.js - {"bracketSpacing":false} [acorn] format 1`] = ` "Unexpected token (1:33) -> 1 | export * as bar from \\"bar.json\\" assert { } +> 1 | export * as bar from "bar.json" assert { } | ^" `; exports[`empty.js - {"bracketSpacing":false} [espree] format 1`] = ` "Unexpected token assert (1:33) -> 1 | export * as bar from \\"bar.json\\" assert { } +> 1 | export * as bar from "bar.json" assert { } | ^" `; exports[`empty.js - {"bracketSpacing":false} [meriyah] format 1`] = ` "Unexpected token: 'identifier' (1:38) -> 1 | export * as bar from \\"bar.json\\" assert { } +> 1 | export * as bar from "bar.json" assert { } | ^" `; @@ -70,21 +70,21 @@ export * as bar from "bar.json"; exports[`re-export.js - {"bracketSpacing":false} [acorn] format 1`] = ` "Unexpected token (1:33) -> 1 | export { foo2 } from \\"foo.json\\" assert { type: \\"json\\" }; +> 1 | export { foo2 } from "foo.json" assert { type: "json" }; | ^ 2 |" `; exports[`re-export.js - {"bracketSpacing":false} [espree] format 1`] = ` "Unexpected token assert (1:33) -> 1 | export { foo2 } from \\"foo.json\\" assert { type: \\"json\\" }; +> 1 | export { foo2 } from "foo.json" assert { type: "json" }; | ^ 2 |" `; exports[`re-export.js - {"bracketSpacing":false} [meriyah] format 1`] = ` "Unexpected token: 'identifier' (1:38) -> 1 | export { foo2 } from \\"foo.json\\" assert { type: \\"json\\" }; +> 1 | export { foo2 } from "foo.json" assert { type: "json" }; | ^ 2 |" `; @@ -106,21 +106,21 @@ export {foo2} from "foo.json" assert {type: "json"}; exports[`static-import.js - {"bracketSpacing":false} [acorn] format 1`] = ` "Unexpected token (1:31) -> 1 | import json from \\"./foo.json\\" assert { type: \\"json\\" }; +> 1 | import json from "./foo.json" assert { type: "json" }; | ^ 2 |" `; exports[`static-import.js - {"bracketSpacing":false} [espree] format 1`] = ` "Unexpected token assert (1:31) -> 1 | import json from \\"./foo.json\\" assert { type: \\"json\\" }; +> 1 | import json from "./foo.json" assert { type: "json" }; | ^ 2 |" `; exports[`static-import.js - {"bracketSpacing":false} [meriyah] format 1`] = ` "Unexpected token: 'identifier' (1:36) -> 1 | import json from \\"./foo.json\\" assert { type: \\"json\\" }; +> 1 | import json from "./foo.json" assert { type: "json" }; | ^ 2 |" `; diff --git a/tests/format/js/module-blocks/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/module-blocks/__snapshots__/jsfmt.spec.js.snap index 439ae2c5d..541e7ff44 100644 --- a/tests/format/js/module-blocks/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/module-blocks/__snapshots__/jsfmt.spec.js.snap @@ -5,7 +5,7 @@ exports[`comments.js [acorn] format 1`] = ` > 1 | const m = /*A1*/ module /*A2*/ { /*A3*/ | ^ 2 | /*A4*/ - 3 | export const foo = \\"foo\\"; + 3 | export const foo = "foo"; 4 | export { foo }; /*A5*/" `; @@ -14,7 +14,7 @@ exports[`comments.js [espree] format 1`] = ` > 1 | const m = /*A1*/ module /*A2*/ { /*A3*/ | ^ 2 | /*A4*/ - 3 | export const foo = \\"foo\\"; + 3 | export const foo = "foo"; 4 | export { foo }; /*A5*/" `; @@ -23,7 +23,7 @@ exports[`comments.js [meriyah] format 1`] = ` > 1 | const m = /*A1*/ module /*A2*/ { /*A3*/ | ^ 2 | /*A4*/ - 3 | export const foo = \\"foo\\"; + 3 | export const foo = "foo"; 4 | export { foo }; /*A5*/" `; @@ -211,7 +211,7 @@ exports[`range.js [acorn] format 1`] = ` | ^ 2 | }; 3 | - 4 | foo(module { export let foo = \\"foo\\"; })" + 4 | foo(module { export let foo = "foo"; })" `; exports[`range.js [espree] format 1`] = ` @@ -220,7 +220,7 @@ exports[`range.js [espree] format 1`] = ` | ^ 2 | }; 3 | - 4 | foo(module { export let foo = \\"foo\\"; })" + 4 | foo(module { export let foo = "foo"; })" `; exports[`range.js [meriyah] format 1`] = ` @@ -229,7 +229,7 @@ exports[`range.js [meriyah] format 1`] = ` | ^ 2 | }; 3 | - 4 | foo(module { export let foo = \\"foo\\"; })" + 4 | foo(module { export let foo = "foo"; })" `; exports[`range.js format 1`] = ` diff --git a/tests/format/js/module-string-names/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/module-string-names/__snapshots__/jsfmt.spec.js.snap index 084e2f09d..59fca2ebe 100644 --- a/tests/format/js/module-string-names/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/module-string-names/__snapshots__/jsfmt.spec.js.snap @@ -2,11 +2,11 @@ exports[`module-string-names-export.js [meriyah] format 1`] = ` "Only a identifier can be used to indicate alias (1:26) -> 1 | export { smile as \\"smile1\\" } from \\"./emojis.js\\"; +> 1 | export { smile as "smile1" } from "./emojis.js"; | ^ - 2 | export { \\"smile\\" as smile2 } from \\"./emojis.js\\"; - 3 | export { \\"smile\\" as \\"smile3\\" } from \\"./emojis.js\\"; - 4 | export { foo1, bar as \\"foo2\\" } from \\"./emojis.js\\";" + 2 | export { "smile" as smile2 } from "./emojis.js"; + 3 | export { "smile" as "smile3" } from "./emojis.js"; + 4 | export { foo1, bar as "foo2" } from "./emojis.js";" `; exports[`module-string-names-export.js format 1`] = ` @@ -38,10 +38,10 @@ export { "smile4" } from "./emojis.js"; exports[`module-string-names-import.js [meriyah] format 1`] = ` "Expected '}' (1:18) -> 1 | import { \\"default\\" as quotation1 } from \\"Confucius\\"; +> 1 | import { "default" as quotation1 } from "Confucius"; | ^ - 2 | import { \\"foo\\" as bar, \\"default\\" as qux } from \\"module-a\\"; - 3 | import { \\"學而時習之,不亦說乎?\\" as quotation2 } from \\"Confucius\\"; + 2 | import { "foo" as bar, "default" as qux } from "module-a"; + 3 | import { "學而時習之,不亦說乎?" as quotation2 } from "Confucius"; 4 |" `; diff --git a/tests/format/js/multiparser-invalid/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/multiparser-invalid/__snapshots__/jsfmt.spec.js.snap index b60f0193a..9d80b4ef6 100644 --- a/tests/format/js/multiparser-invalid/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/multiparser-invalid/__snapshots__/jsfmt.spec.js.snap @@ -2,53 +2,53 @@ exports[`text.js [acorn] format 1`] = ` "Bad escape sequence in untagged template literal (6:18) - 4 | foo = markdown\`\\\\u{prettier}\\\\u{0065}\`; - 5 | foo = css\`\\\\u{prettier}\\\\u{0065}\`; -> 6 | foo = /* HTML */\`\\\\u{prettier}\\\\u{0065}\`; + 4 | foo = markdown\`\\u{prettier}\\u{0065}\`; + 5 | foo = css\`\\u{prettier}\\u{0065}\`; +> 6 | foo = /* HTML */\`\\u{prettier}\\u{0065}\`; | ^ - 7 | foo = /* GraphQL */\`\\\\u{prettier}\\\\u{0065}\`; + 7 | foo = /* GraphQL */\`\\u{prettier}\\u{0065}\`; 8 | - 9 | foo = foo\`\\\\u{prettier}\${foo}pr\\\\u{0065}ttier\`;" + 9 | foo = foo\`\\u{prettier}\${foo}pr\\u{0065}ttier\`;" `; exports[`text.js [espree] format 1`] = ` "Bad escape sequence in untagged template literal (6:18) - 4 | foo = markdown\`\\\\u{prettier}\\\\u{0065}\`; - 5 | foo = css\`\\\\u{prettier}\\\\u{0065}\`; -> 6 | foo = /* HTML */\`\\\\u{prettier}\\\\u{0065}\`; + 4 | foo = markdown\`\\u{prettier}\\u{0065}\`; + 5 | foo = css\`\\u{prettier}\\u{0065}\`; +> 6 | foo = /* HTML */\`\\u{prettier}\\u{0065}\`; | ^ - 7 | foo = /* GraphQL */\`\\\\u{prettier}\\\\u{0065}\`; + 7 | foo = /* GraphQL */\`\\u{prettier}\\u{0065}\`; 8 | - 9 | foo = foo\`\\\\u{prettier}\${foo}pr\\\\u{0065}ttier\`;" + 9 | foo = foo\`\\u{prettier}\${foo}pr\\u{0065}ttier\`;" `; exports[`text.js [flow] format 1`] = ` "Unexpected token ILLEGAL (1:12) -> 1 | foo = foo\`\\\\u{prettier}\\\\u{0065}\`; +> 1 | foo = foo\`\\u{prettier}\\u{0065}\`; | ^ - 2 | foo = html\`\\\\u{prettier}\\\\u{0065}\`; - 3 | foo = graphql\`\\\\u{prettier}\\\\u{0065}\`; - 4 | foo = markdown\`\\\\u{prettier}\\\\u{0065}\`;" + 2 | foo = html\`\\u{prettier}\\u{0065}\`; + 3 | foo = graphql\`\\u{prettier}\\u{0065}\`; + 4 | foo = markdown\`\\u{prettier}\\u{0065}\`;" `; exports[`text.js [meriyah] format 1`] = ` "Invalid hexadecimal escape sequence (6:20) - 4 | foo = markdown\`\\\\u{prettier}\\\\u{0065}\`; - 5 | foo = css\`\\\\u{prettier}\\\\u{0065}\`; -> 6 | foo = /* HTML */\`\\\\u{prettier}\\\\u{0065}\`; + 4 | foo = markdown\`\\u{prettier}\\u{0065}\`; + 5 | foo = css\`\\u{prettier}\\u{0065}\`; +> 6 | foo = /* HTML */\`\\u{prettier}\\u{0065}\`; | ^ - 7 | foo = /* GraphQL */\`\\\\u{prettier}\\\\u{0065}\`; + 7 | foo = /* GraphQL */\`\\u{prettier}\\u{0065}\`; 8 | - 9 | foo = foo\`\\\\u{prettier}\${foo}pr\\\\u{0065}ttier\`;" + 9 | foo = foo\`\\u{prettier}\${foo}pr\\u{0065}ttier\`;" `; exports[`text.js [typescript] format 1`] = ` "Hexadecimal digit expected. (1:14) -> 1 | foo = foo\`\\\\u{prettier}\\\\u{0065}\`; +> 1 | foo = foo\`\\u{prettier}\\u{0065}\`; | ^ - 2 | foo = html\`\\\\u{prettier}\\\\u{0065}\`; - 3 | foo = graphql\`\\\\u{prettier}\\\\u{0065}\`; - 4 | foo = markdown\`\\\\u{prettier}\\\\u{0065}\`;" + 2 | foo = html\`\\u{prettier}\\u{0065}\`; + 3 | foo = graphql\`\\u{prettier}\\u{0065}\`; + 4 | foo = markdown\`\\u{prettier}\\u{0065}\`;" `; exports[`text.js format 1`] = ` diff --git a/tests/format/js/record/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/record/__snapshots__/jsfmt.spec.js.snap index 4a848e587..066838221 100644 --- a/tests/format/js/record/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/record/__snapshots__/jsfmt.spec.js.snap @@ -2,7 +2,7 @@ exports[`computed.js [acorn] format 1`] = ` "Unexpected character '{' (2:9) - 1 | const key = \\"a\\"; + 1 | const key = "a"; > 2 | assert(#{ [key]: 1 } === #{ a: 1 }) | ^ 3 | assert(#{ [key.toUpperCase()]: 1 } === #{ A: 1 }) @@ -12,7 +12,7 @@ exports[`computed.js [acorn] format 1`] = ` exports[`computed.js [espree] format 1`] = ` "Unexpected character '{' (2:9) - 1 | const key = \\"a\\"; + 1 | const key = "a"; > 2 | assert(#{ [key]: 1 } === #{ a: 1 }) | ^ 3 | assert(#{ [key.toUpperCase()]: 1 } === #{ A: 1 }) @@ -22,7 +22,7 @@ exports[`computed.js [espree] format 1`] = ` exports[`computed.js [meriyah] format 1`] = ` "'#' not followed by identifier (2:8) - 1 | const key = \\"a\\"; + 1 | const key = "a"; > 2 | assert(#{ [key]: 1 } === #{ a: 1 }) | ^ 3 | assert(#{ [key.toUpperCase()]: 1 } === #{ A: 1 }) @@ -190,7 +190,7 @@ assert(record1.d?.a === undefined); exports[`shorthand.js [acorn] format 1`] = ` "Unexpected character '{' (2:17) - 1 | const url = \\"https://github.com/tc39/proposal-record-tuple\\"; + 1 | const url = "https://github.com/tc39/proposal-record-tuple"; > 2 | const record = #{ url } | ^ 3 | console.log(record.url) // https://github.com/tc39/proposal-record-tuple @@ -199,7 +199,7 @@ exports[`shorthand.js [acorn] format 1`] = ` exports[`shorthand.js [espree] format 1`] = ` "Unexpected character '{' (2:17) - 1 | const url = \\"https://github.com/tc39/proposal-record-tuple\\"; + 1 | const url = "https://github.com/tc39/proposal-record-tuple"; > 2 | const record = #{ url } | ^ 3 | console.log(record.url) // https://github.com/tc39/proposal-record-tuple @@ -208,7 +208,7 @@ exports[`shorthand.js [espree] format 1`] = ` exports[`shorthand.js [meriyah] format 1`] = ` "'#' not followed by identifier (2:16) - 1 | const url = \\"https://github.com/tc39/proposal-record-tuple\\"; + 1 | const url = "https://github.com/tc39/proposal-record-tuple"; > 2 | const record = #{ url } | ^ 3 | console.log(record.url) // https://github.com/tc39/proposal-record-tuple @@ -235,28 +235,28 @@ console.log(record.url); // https://github.com/tc39/proposal-record-tuple exports[`spread.js [acorn] format 1`] = ` "Unexpected character '{' (1:19) -> 1 | const formData = #{ title: \\"Implement all the things\\" } +> 1 | const formData = #{ title: "Implement all the things" } | ^ - 2 | const taskNow = #{ id: 42, status: \\"WIP\\", ...formData } - 3 | const taskLater = #{ ...taskNow, status: \\"DONE\\" } + 2 | const taskNow = #{ id: 42, status: "WIP", ...formData } + 3 | const taskLater = #{ ...taskNow, status: "DONE" } 4 |" `; exports[`spread.js [espree] format 1`] = ` "Unexpected character '{' (1:19) -> 1 | const formData = #{ title: \\"Implement all the things\\" } +> 1 | const formData = #{ title: "Implement all the things" } | ^ - 2 | const taskNow = #{ id: 42, status: \\"WIP\\", ...formData } - 3 | const taskLater = #{ ...taskNow, status: \\"DONE\\" } + 2 | const taskNow = #{ id: 42, status: "WIP", ...formData } + 3 | const taskLater = #{ ...taskNow, status: "DONE" } 4 |" `; exports[`spread.js [meriyah] format 1`] = ` "'#' not followed by identifier (1:18) -> 1 | const formData = #{ title: \\"Implement all the things\\" } +> 1 | const formData = #{ title: "Implement all the things" } | ^ - 2 | const taskNow = #{ id: 42, status: \\"WIP\\", ...formData } - 3 | const taskLater = #{ ...taskNow, status: \\"DONE\\" } + 2 | const taskNow = #{ id: 42, status: "WIP", ...formData } + 3 | const taskLater = #{ ...taskNow, status: "DONE" } 4 |" `; diff --git a/tests/format/js/strings/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/strings/__snapshots__/jsfmt.spec.js.snap index 115e2a3c6..dc97633de 100644 --- a/tests/format/js/strings/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/strings/__snapshots__/jsfmt.spec.js.snap @@ -4,44 +4,44 @@ exports[`non-octal-eight-and-nine.js [acorn] format 1`] = ` "Invalid escape sequence (3:3) 1 | // https://github.com/babel/babel/pull/11852 2 | -> 3 | \\"\\\\8\\",\\"\\\\9\\"; +> 3 | "\\8","\\9"; | ^ 4 | () => { - 5 | \\"use strict\\"; - 6 | \\"\\\\8\\", \\"\\\\9\\";" + 5 | "use strict"; + 6 | "\\8", "\\9";" `; exports[`non-octal-eight-and-nine.js [espree] format 1`] = ` "Invalid escape sequence (3:3) 1 | // https://github.com/babel/babel/pull/11852 2 | -> 3 | \\"\\\\8\\",\\"\\\\9\\"; +> 3 | "\\8","\\9"; | ^ 4 | () => { - 5 | \\"use strict\\"; - 6 | \\"\\\\8\\", \\"\\\\9\\";" + 5 | "use strict"; + 6 | "\\8", "\\9";" `; exports[`non-octal-eight-and-nine.js - {"trailingComma":"all"} [acorn] format 1`] = ` "Invalid escape sequence (3:3) 1 | // https://github.com/babel/babel/pull/11852 2 | -> 3 | \\"\\\\8\\",\\"\\\\9\\"; +> 3 | "\\8","\\9"; | ^ 4 | () => { - 5 | \\"use strict\\"; - 6 | \\"\\\\8\\", \\"\\\\9\\";" + 5 | "use strict"; + 6 | "\\8", "\\9";" `; exports[`non-octal-eight-and-nine.js - {"trailingComma":"all"} [espree] format 1`] = ` "Invalid escape sequence (3:3) 1 | // https://github.com/babel/babel/pull/11852 2 | -> 3 | \\"\\\\8\\",\\"\\\\9\\"; +> 3 | "\\8","\\9"; | ^ 4 | () => { - 5 | \\"use strict\\"; - 6 | \\"\\\\8\\", \\"\\\\9\\";" + 5 | "use strict"; + 6 | "\\8", "\\9";" `; exports[`non-octal-eight-and-nine.js - {"trailingComma":"all"} format 1`] = ` diff --git a/tests/format/js/throw_expressions/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/throw_expressions/__snapshots__/jsfmt.spec.js.snap index 7c47a75fc..301a291c6 100644 --- a/tests/format/js/throw_expressions/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/throw_expressions/__snapshots__/jsfmt.spec.js.snap @@ -2,29 +2,29 @@ exports[`throw_expression.js [acorn] format 1`] = ` "Unexpected token (1:26) -> 1 | function save(filename = throw new TypeError(\\"Argument required\\")) {} +> 1 | function save(filename = throw new TypeError("Argument required")) {} | ^ 2 | 3 | lint(ast, { - 4 | with: () => throw new Error(\\"avoid using 'with' statements.\\")" + 4 | with: () => throw new Error("avoid using 'with' statements.")" `; exports[`throw_expression.js [espree] format 1`] = ` "Unexpected token throw (1:26) -> 1 | function save(filename = throw new TypeError(\\"Argument required\\")) {} +> 1 | function save(filename = throw new TypeError("Argument required")) {} | ^ 2 | 3 | lint(ast, { - 4 | with: () => throw new Error(\\"avoid using 'with' statements.\\")" + 4 | with: () => throw new Error("avoid using 'with' statements.")" `; exports[`throw_expression.js [meriyah] format 1`] = ` "Unexpected token: 'throw' (1:30) -> 1 | function save(filename = throw new TypeError(\\"Argument required\\")) {} +> 1 | function save(filename = throw new TypeError("Argument required")) {} | ^ 2 | 3 | lint(ast, { - 4 | with: () => throw new Error(\\"avoid using 'with' statements.\\")" + 4 | with: () => throw new Error("avoid using 'with' statements.")" `; exports[`throw_expression.js format 1`] = ` diff --git a/tests/format/js/trailing-whitespace/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/trailing-whitespace/__snapshots__/jsfmt.spec.js.snap index 4b1c18496..f002c2f49 100644 --- a/tests/format/js/trailing-whitespace/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/trailing-whitespace/__snapshots__/jsfmt.spec.js.snap @@ -2,7 +2,7 @@ exports[`trailing.js [acorn] format 1`] = ` "Unexpected token (1:8) -> 1 | export type Result = | { kind: \\"not-test-editor1\\" } | { kind: \\"not-test-editor2\\" }; +> 1 | export type Result = | { kind: "not-test-editor1" } | { kind: "not-test-editor2" }; | ^ 2 | 3 | // Note: there are trailing whitespace in this file @@ -11,7 +11,7 @@ exports[`trailing.js [acorn] format 1`] = ` exports[`trailing.js [espree] format 1`] = ` "Unexpected token type (1:8) -> 1 | export type Result = | { kind: \\"not-test-editor1\\" } | { kind: \\"not-test-editor2\\" }; +> 1 | export type Result = | { kind: "not-test-editor1" } | { kind: "not-test-editor2" }; | ^ 2 | 3 | // Note: there are trailing whitespace in this file @@ -20,7 +20,7 @@ exports[`trailing.js [espree] format 1`] = ` exports[`trailing.js [meriyah] format 1`] = ` "Unexpected token: 'identifier' (1:11) -> 1 | export type Result = | { kind: \\"not-test-editor1\\" } | { kind: \\"not-test-editor2\\" }; +> 1 | export type Result = | { kind: "not-test-editor1" } | { kind: "not-test-editor2" }; | ^ 2 | 3 | // Note: there are trailing whitespace in this file diff --git a/tests/format/misc/errors/babel-ts/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/babel-ts/__snapshots__/jsfmt.spec.js.snap index efda7f5ab..db1946abe 100644 --- a/tests/format/misc/errors/babel-ts/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/errors/babel-ts/__snapshots__/jsfmt.spec.js.snap @@ -46,7 +46,7 @@ exports[`parenthesized-decorators-tagged-template.ts [babel-ts] format 1`] = ` 1 | class Test { > 2 | @foo\`bar\` | ^ - 3 | text: string = \\"text\\" + 3 | text: string = "text" 4 | } 5 |" `; diff --git a/tests/format/misc/errors/broken-plugin/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/broken-plugin/__snapshots__/jsfmt.spec.js.snap index d305d8102..c192ba24b 100644 --- a/tests/format/misc/errors/broken-plugin/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/errors/broken-plugin/__snapshots__/jsfmt.spec.js.snap @@ -1,3 +1,3 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`snippet: #0 [missing-comments] format 1`] = `"Comment \\"comment\\" was not printed. Please report this error!"`; +exports[`snippet: #0 [missing-comments] format 1`] = `"Comment "comment" was not printed. Please report this error!"`; diff --git a/tests/format/misc/errors/flow/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/flow/__snapshots__/jsfmt.spec.js.snap index c781f4850..763008391 100644 --- a/tests/format/misc/errors/flow/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/errors/flow/__snapshots__/jsfmt.spec.js.snap @@ -10,7 +10,7 @@ exports[`async-arrow-invalid.js [flow] format 1`] = ` exports[`default-escaped.js [flow] format 1`] = ` "Unexpected identifier, expected the token \`{\` (1:8) -> 1 | export asyn\\\\u{63} from \\"async\\"; +> 1 | export asyn\\u{63} from "async"; | ^^^^^^^^^^ 2 |" `; @@ -31,14 +31,14 @@ exports[`function-async.js [flow] format 1`] = ` exports[`module-attributes-dynamic.js [flow] format 1`] = ` "Unexpected token \`,\`, expected the token \`)\` (1:18) -> 1 | import(\\"foo.json\\", { with: { type: \\"json\\" } }) +> 1 | import("foo.json", { with: { type: "json" } }) | ^ 2 |" `; exports[`module-attributes-static.js [flow] format 1`] = ` "Unexpected token \`with\`, expected the token \`;\` (1:28) -> 1 | import foo from \\"foo.json\\" with type: \\"json\\"; +> 1 | import foo from "foo.json" with type: "json"; | ^^^^ 2 |" `; diff --git a/tests/format/misc/errors/graphql/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/graphql/__snapshots__/jsfmt.spec.js.snap index 0e7fd398c..063d84267 100644 --- a/tests/format/misc/errors/graphql/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/errors/graphql/__snapshots__/jsfmt.spec.js.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`type-interfaces.graphql [graphql] format 1`] = ` -"Syntax Error: Unexpected \\"|\\". (5:21) +"Syntax Error: Unexpected "|". (5:21) 3 | # which will break seperator detection added in #7305 4 | > 5 | type A implements A | B { diff --git a/tests/format/misc/errors/invalid/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/invalid/__snapshots__/jsfmt.spec.js.snap index 4d8238bde..62bb784b9 100644 --- a/tests/format/misc/errors/invalid/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/errors/invalid/__snapshots__/jsfmt.spec.js.snap @@ -7,7 +7,7 @@ exports[`snippet: #0 [acorn] format 1`] = ` `; exports[`snippet: #0 [babel] format 1`] = ` -"Unexpected token, expected \\"(\\" (1:5) +"Unexpected token, expected "(" (1:5) > 1 | for each (a in b) {} | ^" `; @@ -19,7 +19,7 @@ exports[`snippet: #0 [babel] format 2`] = ` `; exports[`snippet: #0 [babel-flow] format 1`] = ` -"Unexpected token, expected \\"(\\" (1:5) +"Unexpected token, expected "(" (1:5) > 1 | for each (a in b) {} | ^" `; @@ -31,7 +31,7 @@ exports[`snippet: #0 [babel-flow] format 2`] = ` `; exports[`snippet: #0 [babel-ts] format 1`] = ` -"Unexpected token, expected \\"(\\" (1:5) +"Unexpected token, expected "(" (1:5) > 1 | for each (a in b) {} | ^" `; diff --git a/tests/format/misc/errors/js/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/js/__snapshots__/jsfmt.spec.js.snap index e63c49c23..7ab7d242e 100644 --- a/tests/format/misc/errors/js/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/errors/js/__snapshots__/jsfmt.spec.js.snap @@ -13,42 +13,42 @@ exports[`html-like-comments.js [babel] format 1`] = ` exports[`import-assertions-for-export-without-from.js [babel] format 1`] = ` "Missing semicolon. (1:15) -> 1 | export { foo } assert { type: \\"json\\" }; +> 1 | export { foo } assert { type: "json" }; | ^ 2 |" `; exports[`import-assertions-with-parens.js [babel] format 1`] = ` "Unexpected token (1:19) -> 1 | import \\"x\\" assert ({type: 'json'}); +> 1 | import "x" assert ({type: 'json'}); | ^ 2 |" `; exports[`invalid-escape-in-identifier.js [babel] format 1`] = ` "Invalid Unicode escape. (1:7) -> 1 | const \\\\u{20} = 1 +> 1 | const \\u{20} = 1 | ^ - 2 | const \\\\u{3000} = 1 + 2 | const \\u{3000} = 1 3 |" `; exports[`invalid-escape-in-identifier-2.js [babel] format 1`] = ` -"Expecting Unicode escape sequence \\\\uXXXX. (1:3) -> 1 | a\\\\ = a +"Expecting Unicode escape sequence \\uXXXX. (1:3) +> 1 | a\\ = a | ^ 2 |" `; exports[`module-attributes.js [babel] format 1`] = ` -"Unexpected token, expected \\"(\\" (1:33) -> 1 | import foo from \\"foo.json\\" with type: \\"json\\"; +"Unexpected token, expected "(" (1:33) +> 1 | import foo from "foo.json" with type: "json"; | ^ 2 |" `; exports[`no-for-in-init-concise-binary-in.js [babel] format 1`] = ` -"Unexpected token, expected \\")\\" (3:18) +"Unexpected token, expected ")" (3:18) 1 | // https://github.com/babel/babel/pull/11931 2 | > 3 | for (() => x in y;;); @@ -64,7 +64,7 @@ exports[`partial-template-strings.js [babel] format 1`] = ` | ^ 7 | name_not_found: \`'\${?}' not found.\` 8 | }; - 9 | Diagnostics.name_not_found(\\"foo\\"); // \\"'foo' not found.\\"" + 9 | Diagnostics.name_not_found("foo"); // "'foo' not found."" `; exports[`snippet: #0 [babel] format 1`] = ` diff --git a/tests/format/misc/errors/js/async-await/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/js/async-await/__snapshots__/jsfmt.spec.js.snap index 2b8f6bc79..0d7e1c3bb 100644 --- a/tests/format/misc/errors/js/async-await/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/errors/js/async-await/__snapshots__/jsfmt.spec.js.snap @@ -155,7 +155,7 @@ exports[`snippet: #4 [acorn] format 1`] = ` `; exports[`snippet: #4 [babel] format 1`] = ` -"Unexpected token, expected \\",\\" (1:22) +"Unexpected token, expected "," (1:22) > 1 | async (a) => (await a!) ** 6; | ^" `; diff --git a/tests/format/misc/errors/js/for-of/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/js/for-of/__snapshots__/jsfmt.spec.js.snap index a12b158fb..3f0e1d752 100644 --- a/tests/format/misc/errors/js/for-of/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/errors/js/for-of/__snapshots__/jsfmt.spec.js.snap @@ -55,7 +55,7 @@ exports[`snippet: #0 [flow] format 1`] = ` `; exports[`snippet: #0 [meriyah] format 1`] = ` -"Identifier \\"let\\" disallowed as left-hand side expression in strict mode (1:9) +"Identifier "let" disallowed as left-hand side expression in strict mode (1:9) > 1 | for (let.foo of []); | ^" `; @@ -91,7 +91,7 @@ exports[`snippet: #1 [flow] format 1`] = ` `; exports[`snippet: #1 [meriyah] format 1`] = ` -"Identifier \\"let\\" disallowed as left-hand side expression in strict mode (1:9) +"Identifier "let" disallowed as left-hand side expression in strict mode (1:9) > 1 | for (let().bar of []); | ^" `; @@ -127,7 +127,7 @@ exports[`snippet: #2 [flow] format 1`] = ` `; exports[`snippet: #2 [meriyah] format 1`] = ` -"Identifier \\"let\\" disallowed as left-hand side expression in strict mode (1:10) +"Identifier "let" disallowed as left-hand side expression in strict mode (1:10) > 1 | for (let\`\`.bar of []); | ^" `; diff --git a/tests/format/misc/errors/js/reserved-word/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/js/reserved-word/__snapshots__/jsfmt.spec.js.snap index 6bcd3e8b8..7ff9239cd 100644 --- a/tests/format/misc/errors/js/reserved-word/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/errors/js/reserved-word/__snapshots__/jsfmt.spec.js.snap @@ -14,12 +14,12 @@ exports[`snippet: #0 [meriyah] format 1`] = ` exports[`snippet: #1 [espree] format 1`] = ` "The keyword 'interface' is reserved (1:8) -> 1 | import interface from \\"foo\\"; +> 1 | import interface from "foo"; | ^" `; exports[`snippet: #1 [meriyah] format 1`] = ` "Unexpected strict mode reserved word (1:16) -> 1 | import interface from \\"foo\\"; +> 1 | import interface from "foo"; | ^" `; diff --git a/tests/format/misc/errors/json/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/json/__snapshots__/jsfmt.spec.js.snap index 128c9cbd2..8976835c9 100644 --- a/tests/format/misc/errors/json/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/errors/json/__snapshots__/jsfmt.spec.js.snap @@ -20,91 +20,91 @@ exports[`snippet: #0 [json5] format 1`] = ` exports[`snippet: #1 [json] format 1`] = ` "Computed key is not allowed in JSON. (1:3) -> 1 | {[\\"foo\\"]:\\"bar\\"} +> 1 | {["foo"]:"bar"} | ^^^^^" `; exports[`snippet: #1 [json-stringify] format 1`] = ` "Computed key is not allowed in JSON. (1:3) -> 1 | {[\\"foo\\"]:\\"bar\\"} +> 1 | {["foo"]:"bar"} | ^^^^^" `; exports[`snippet: #1 [json5] format 1`] = ` "Computed key is not allowed in JSON. (1:3) -> 1 | {[\\"foo\\"]:\\"bar\\"} +> 1 | {["foo"]:"bar"} | ^^^^^" `; exports[`snippet: #2 [json] format 1`] = ` "Operator '~' is not allowed in JSON. (1:9) -> 1 | {\\"foo\\": ~1} +> 1 | {"foo": ~1} | ^^" `; exports[`snippet: #2 [json-stringify] format 1`] = ` "Operator '~' is not allowed in JSON. (1:9) -> 1 | {\\"foo\\": ~1} +> 1 | {"foo": ~1} | ^^" `; exports[`snippet: #2 [json5] format 1`] = ` "Operator '~' is not allowed in JSON. (1:9) -> 1 | {\\"foo\\": ~1} +> 1 | {"foo": ~1} | ^^" `; exports[`snippet: #3 [json] format 1`] = ` "'LogicalExpression' is not allowed in JSON. (1:9) -> 1 | {\\"foo\\": false || \\"bar\\"} +> 1 | {"foo": false || "bar"} | ^^^^^^^^^^^^^^" `; exports[`snippet: #3 [json-stringify] format 1`] = ` "'LogicalExpression' is not allowed in JSON. (1:9) -> 1 | {\\"foo\\": false || \\"bar\\"} +> 1 | {"foo": false || "bar"} | ^^^^^^^^^^^^^^" `; exports[`snippet: #3 [json5] format 1`] = ` "'LogicalExpression' is not allowed in JSON. (1:9) -> 1 | {\\"foo\\": false || \\"bar\\"} +> 1 | {"foo": false || "bar"} | ^^^^^^^^^^^^^^" `; exports[`snippet: #4 [json] format 1`] = ` "'ArrowFunctionExpression' is not allowed in JSON. (1:9) -> 1 | {\\"foo\\": () => {}} +> 1 | {"foo": () => {}} | ^^^^^^^^" `; exports[`snippet: #4 [json-stringify] format 1`] = ` "'ArrowFunctionExpression' is not allowed in JSON. (1:9) -> 1 | {\\"foo\\": () => {}} +> 1 | {"foo": () => {}} | ^^^^^^^^" `; exports[`snippet: #4 [json5] format 1`] = ` "'ArrowFunctionExpression' is not allowed in JSON. (1:9) -> 1 | {\\"foo\\": () => {}} +> 1 | {"foo": () => {}} | ^^^^^^^^" `; exports[`snippet: #5 [json] format 1`] = ` -"Expecting Unicode escape sequence \\\\uXXXX. (1:10) -> 1 | packages\\\\the-hub\\\\cypress\\\\fixtures\\\\gridConfiguration.json +"Expecting Unicode escape sequence \\uXXXX. (1:10) +> 1 | packages\\the-hub\\cypress\\fixtures\\gridConfiguration.json | ^" `; exports[`snippet: #5 [json-stringify] format 1`] = ` -"Expecting Unicode escape sequence \\\\uXXXX. (1:10) -> 1 | packages\\\\the-hub\\\\cypress\\\\fixtures\\\\gridConfiguration.json +"Expecting Unicode escape sequence \\uXXXX. (1:10) +> 1 | packages\\the-hub\\cypress\\fixtures\\gridConfiguration.json | ^" `; exports[`snippet: #5 [json5] format 1`] = ` -"Expecting Unicode escape sequence \\\\uXXXX. (1:10) -> 1 | packages\\\\the-hub\\\\cypress\\\\fixtures\\\\gridConfiguration.json +"Expecting Unicode escape sequence \\uXXXX. (1:10) +> 1 | packages\\the-hub\\cypress\\fixtures\\gridConfiguration.json | ^" `; @@ -401,21 +401,21 @@ exports[`snippet: #21 [json5] format 1`] = ` exports[`snippet: #22 [json] format 1`] = ` "Unexpected token (2:1) - 1 | \\"use strict\\" + 1 | "use strict" > 2 | {} | ^" `; exports[`snippet: #22 [json-stringify] format 1`] = ` "Unexpected token (2:1) - 1 | \\"use strict\\" + 1 | "use strict" > 2 | {} | ^" `; exports[`snippet: #22 [json5] format 1`] = ` "Unexpected token (2:1) - 1 | \\"use strict\\" + 1 | "use strict" > 2 | {} | ^" `; diff --git a/tests/format/misc/errors/json/json-stringify/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/json/json-stringify/__snapshots__/jsfmt.spec.js.snap index 2f1c24a06..5d8ae819e 100644 --- a/tests/format/misc/errors/json/json-stringify/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/errors/json/json-stringify/__snapshots__/jsfmt.spec.js.snap @@ -2,7 +2,7 @@ exports[`snippet: #0 [json-stringify] format 1`] = ` "Comment is not allowed in JSON. (1:1) -> 1 | /* comment */{\\"foo\\": 1} +> 1 | /* comment */{"foo": 1} | ^^^^^^^^^^^^^" `; @@ -10,11 +10,11 @@ exports[`snippet: #1 [json-stringify] format 1`] = ` "Comment is not allowed in JSON. (1:1) > 1 | // comment | ^^^^^^^^^^ - 2 | {\\"foo\\": 1}" + 2 | {"foo": 1}" `; exports[`snippet: #2 [json-stringify] format 1`] = ` "Comment is not allowed in JSON. (1:9) -> 1 | {\\"foo\\": /* comment */ 1} +> 1 | {"foo": /* comment */ 1} | ^^^^^^^^^^^^^" `; diff --git a/tests/format/misc/errors/less/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/less/__snapshots__/jsfmt.spec.js.snap index 08a1d81e0..b8584eab3 100644 --- a/tests/format/misc/errors/less/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/errors/less/__snapshots__/jsfmt.spec.js.snap @@ -14,7 +14,7 @@ exports[`inline-comment.less [less] format 1`] = ` exports[`open-double-quote.less [less] format 1`] = ` "CssSyntaxError: Unclosed string (2:17) 1 | a { -> 2 | background: url(\\" +> 2 | background: url(" | ^ 3 | } 4 |" diff --git a/tests/format/misc/errors/typescript/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/typescript/__snapshots__/jsfmt.spec.js.snap index 842ce1a00..e5586b5f9 100644 --- a/tests/format/misc/errors/typescript/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/errors/typescript/__snapshots__/jsfmt.spec.js.snap @@ -2,7 +2,7 @@ exports[`default-escaped.ts [typescript] format 1`] = ` "Declaration or statement expected. (1:1) -> 1 | export asyn\\\\u{63} from \\"async\\"; +> 1 | export asyn\\u{63} from "async"; | ^ 2 |" `; @@ -25,7 +25,7 @@ exports[`invalid-jsx-1.ts [typescript] format 1`] = ` exports[`module-attributes-static.ts [typescript] format 1`] = ` "';' expected. (1:28) -> 1 | import foo from \\"foo.json\\" with type: \\"json\\"; +> 1 | import foo from "foo.json" with type: "json"; | ^ 2 |" `; @@ -52,25 +52,25 @@ exports[`snippet: #1 [typescript] format 1`] = ` exports[`snippet: #2 [typescript] format 1`] = ` "':' expected. (1:21) -> 1 | let x3 =
{\\"foo\\"}}
; +> 1 | let x3 =
{"foo"}}
; | ^" `; exports[`snippet: #3 [typescript] format 1`] = ` "':' expected. (1:21) -> 1 | let x4 =
{\\"foo\\"}>
; +> 1 | let x4 =
{"foo"}>
; | ^" `; exports[`snippet: #4 [typescript] format 1`] = ` "Expression expected. (1:15) -> 1 | let x5 =
}{\\"foo\\"}
; +> 1 | let x5 =
}{"foo"}
; | ^" `; exports[`snippet: #5 [typescript] format 1`] = ` "Expression expected. (1:15) -> 1 | let x6 =
>{\\"foo\\"}
; +> 1 | let x6 =
>{"foo"}
; | ^" `; diff --git a/tests/format/misc/errors/vue/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/vue/__snapshots__/jsfmt.spec.js.snap index 6c157b5db..11aef9f65 100644 --- a/tests/format/misc/errors/vue/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/errors/vue/__snapshots__/jsfmt.spec.js.snap @@ -1,14 +1,14 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`unclosed_tag.vue [vue] format 1`] = ` -"Unexpected character \\"EOF\\" (2:1) +"Unexpected character "EOF" (2:1) 1 |
2 | | ^" `; exports[`unclosed_tag_in_template.vue [vue] format 1`] = ` -"Unexpected character \\"/\\" (4:2) +"Unexpected character "/" (4:2) 2 |

Templates are formatted as well... 3 | 4 | @@ -17,12 +17,12 @@ exports[`unclosed_tag_in_template.vue [vue] format 1`] = ` `; exports[`upper-case.html [vue] format 1`] = ` -"Void elements do not have end tags \\"Input\\" (8:21) - 6 |

+"Void elements do not have end tags "Input" (8:21) + 6 |
7 | > 8 | {{value}} | ^^^^^^^^ 9 |
10 | - 11 | " + 11 | " `; diff --git a/tests/format/misc/parser-inference/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/parser-inference/__snapshots__/jsfmt.spec.js.snap index bf65bfdd2..25e74a2cf 100644 --- a/tests/format/misc/parser-inference/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/misc/parser-inference/__snapshots__/jsfmt.spec.js.snap @@ -117,6 +117,29 @@ printWidth: 80 ================================================================================ `; +exports[`test.importmap format 1`] = ` +====================================options===================================== +parsers: [] +printWidth: 80 + | printWidth +=====================================input====================================== +{"imports": { + "prettier": "https://unpkg.com/prettier@2.6.2/esm/standalone.mjs", + "prettier/": "https://unpkg.com/prettier@2.6.2/" + } +} + +=====================================output===================================== +{ + "imports": { + "prettier": "https://unpkg.com/prettier@2.6.2/esm/standalone.mjs", + "prettier/": "https://unpkg.com/prettier@2.6.2/" + } +} + +================================================================================ +`; + exports[`test.js format 1`] = ` ====================================options===================================== parsers: [] diff --git a/tests/format/misc/parser-inference/test.importmap b/tests/format/misc/parser-inference/test.importmap new file mode 100644 index 000000000..cd267a3b7 --- /dev/null +++ b/tests/format/misc/parser-inference/test.importmap @@ -0,0 +1,5 @@ +{"imports": { + "prettier": "https://unpkg.com/prettier@2.6.2/esm/standalone.mjs", + "prettier/": "https://unpkg.com/prettier@2.6.2/" + } +} diff --git a/tests/format/typescript/class/__snapshots__/jsfmt.spec.js.snap b/tests/format/typescript/class/__snapshots__/jsfmt.spec.js.snap index 4a507d8cc..1c468fe7f 100644 --- a/tests/format/typescript/class/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/typescript/class/__snapshots__/jsfmt.spec.js.snap @@ -35,7 +35,7 @@ abstract class Bar { `; exports[`constructor.ts [babel-ts] format 1`] = ` -"Unexpected token, expected \\",\\" (2:22) +"Unexpected token, expected "," (2:22) 1 | class foo { > 2 | constructor(static a: number) {} | ^ @@ -351,7 +351,7 @@ interface AudioBufferList { `; exports[`methods.ts [babel-ts] format 1`] = ` -"Unexpected token, expected \\";\\" (6:10) +"Unexpected token, expected ";" (6:10) 4 | 5 | interface Iterable { > 6 | export [Symbol.iterator](): Iterator; diff --git a/tests/format/typescript/compiler/__snapshots__/jsfmt.spec.js.snap b/tests/format/typescript/compiler/__snapshots__/jsfmt.spec.js.snap index bf313dca1..93d1d0e4d 100644 --- a/tests/format/typescript/compiler/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/typescript/compiler/__snapshots__/jsfmt.spec.js.snap @@ -442,7 +442,7 @@ const; `; exports[`errorOnInitializerInInterfaceProperty.ts [babel-ts] format 1`] = ` -"Unexpected token, expected \\";\\" (2:17) +"Unexpected token, expected ";" (2:17) 1 | interface Foo { > 2 | bar: number = 5; | ^ diff --git a/tests/format/typescript/error-recovery/__snapshots__/jsfmt.spec.js.snap b/tests/format/typescript/error-recovery/__snapshots__/jsfmt.spec.js.snap index 5ff496cbd..e70791f7c 100644 --- a/tests/format/typescript/error-recovery/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/typescript/error-recovery/__snapshots__/jsfmt.spec.js.snap @@ -153,7 +153,7 @@ class f7<> { `; exports[`index-signature.ts [babel-ts] format 1`] = ` -"Unexpected token, expected \\"]\\" (4:13) +"Unexpected token, expected "]" (4:13) 2 | 3 | type TwoParams = { > 4 | [a: string, b: string]: string; @@ -164,7 +164,7 @@ exports[`index-signature.ts [babel-ts] format 1`] = ` `; exports[`index-signature.ts - {"trailingComma":"all"} [babel-ts] format 1`] = ` -"Unexpected token, expected \\"]\\" (4:13) +"Unexpected token, expected "]" (4:13) 2 | 3 | type TwoParams = { > 4 | [a: string, b: string]: string; @@ -238,7 +238,7 @@ type TooLongSingleParam = { `; exports[`index-signature.ts - {"trailingComma":"es5"} [babel-ts] format 1`] = ` -"Unexpected token, expected \\"]\\" (4:13) +"Unexpected token, expected "]" (4:13) 2 | 3 | type TwoParams = { > 4 | [a: string, b: string]: string; diff --git a/tests/format/typescript/keywords/__snapshots__/jsfmt.spec.js.snap b/tests/format/typescript/keywords/__snapshots__/jsfmt.spec.js.snap index cc2961ef2..e3ee77eac 100644 --- a/tests/format/typescript/keywords/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/typescript/keywords/__snapshots__/jsfmt.spec.js.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`keywords.ts [babel-ts] format 1`] = ` -"Unexpected token, expected \\"{\\" (9:12) +"Unexpected token, expected "{" (9:12) 7 | 8 | // Apparently this parses :P > 9 | export private public protected static readonly abstract async enum X { } @@ -196,7 +196,7 @@ class G { `; exports[`module.ts [babel-ts] format 1`] = ` -"Unexpected token, expected \\"{\\" (7:10) +"Unexpected token, expected "{" (7:10) 5 | 6 | // Apparently this parses :P > 7 | export private public protected static readonly abstract async enum X { } diff --git a/tests/format/vue/ts-event-binding/__snapshots__/jsfmt.spec.js.snap b/tests/format/vue/ts-event-binding/__snapshots__/jsfmt.spec.js.snap new file mode 100644 index 000000000..d5c639848 --- /dev/null +++ b/tests/format/vue/ts-event-binding/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,43 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`basic.vue format 1`] = ` +====================================options===================================== +parsers: ["vue"] +printWidth: 80 + | printWidth +=====================================input====================================== + + + + +=====================================output===================================== + + + + +================================================================================ +`; diff --git a/tests/format/vue/ts-event-binding/basic.vue b/tests/format/vue/ts-event-binding/basic.vue new file mode 100644 index 000000000..4eff06dda --- /dev/null +++ b/tests/format/vue/ts-event-binding/basic.vue @@ -0,0 +1,10 @@ + + + diff --git a/tests/format/vue/ts-event-binding/jsfmt.spec.js b/tests/format/vue/ts-event-binding/jsfmt.spec.js new file mode 100644 index 000000000..2fd7eede9 --- /dev/null +++ b/tests/format/vue/ts-event-binding/jsfmt.spec.js @@ -0,0 +1 @@ +run_spec(__dirname, ["vue"]); diff --git a/tests/format/vue/ts-expression/__snapshots__/jsfmt.spec.js.snap b/tests/format/vue/ts-expression/__snapshots__/jsfmt.spec.js.snap new file mode 100644 index 000000000..004db1fc1 --- /dev/null +++ b/tests/format/vue/ts-expression/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,45 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`basic.vue format 1`] = ` +====================================options===================================== +parsers: ["vue"] +printWidth: 80 + | printWidth +=====================================input====================================== + + + + +=====================================output===================================== + + + + +================================================================================ +`; + +exports[`not-working-with-non-ts-script.vue format 1`] = ` +====================================options===================================== +parsers: ["vue"] +printWidth: 80 + | printWidth +=====================================input====================================== + + + + +=====================================output===================================== + + + + +================================================================================ +`; diff --git a/tests/format/vue/ts-expression/basic.vue b/tests/format/vue/ts-expression/basic.vue new file mode 100644 index 000000000..397f810cc --- /dev/null +++ b/tests/format/vue/ts-expression/basic.vue @@ -0,0 +1,5 @@ + + + diff --git a/tests/format/vue/ts-expression/jsfmt.spec.js b/tests/format/vue/ts-expression/jsfmt.spec.js new file mode 100644 index 000000000..2fd7eede9 --- /dev/null +++ b/tests/format/vue/ts-expression/jsfmt.spec.js @@ -0,0 +1 @@ +run_spec(__dirname, ["vue"]); diff --git a/tests/format/vue/ts-expression/not-working-with-non-ts-script.vue b/tests/format/vue/ts-expression/not-working-with-non-ts-script.vue new file mode 100644 index 000000000..06afe1962 --- /dev/null +++ b/tests/format/vue/ts-expression/not-working-with-non-ts-script.vue @@ -0,0 +1,5 @@ + + + diff --git a/tests/integration/__tests__/__snapshots__/arg-parsing.js.snap b/tests/integration/__tests__/__snapshots__/arg-parsing.js.snap index f9685bf09..74cd8f0f7 100644 --- a/tests/integration/__tests__/__snapshots__/arg-parsing.js.snap +++ b/tests/integration/__tests__/__snapshots__/arg-parsing.js.snap @@ -19,7 +19,7 @@ exports[`deprecated option values are warned (stderr) 1`] = ` `; exports[`deprecated option values are warned (stdout) 1`] = ` -"console.log(\\"could be single quote and without semi\\"); +"console.log("could be single quote and without semi"); " `; @@ -28,7 +28,7 @@ exports[`deprecated option values are warned (write) 1`] = `Array []`; exports[`negated options work (stderr) 1`] = `""`; exports[`negated options work (stdout) 1`] = ` -"console.log(\\"could be single quote and without semi\\") +"console.log("could be single quote and without semi") " `; @@ -81,7 +81,7 @@ exports[`unknown negated options are warned (stderr) 1`] = ` `; exports[`unknown negated options are warned (stdout) 1`] = ` -"console.log(\\"could be single quote and without semi\\"); +"console.log("could be single quote and without semi"); " `; @@ -93,7 +93,7 @@ exports[`unknown options are warned (stderr) 1`] = ` `; exports[`unknown options are warned (stdout) 1`] = ` -"console.log(\\"could be single quote and without semi\\"); +"console.log("could be single quote and without semi"); " `; @@ -105,6 +105,6 @@ exports[`unknown options not suggestion \`_\` (stderr) 1`] = ` `; exports[`unknown options not suggestion \`_\` (stdout) 1`] = ` -"console.log(\\"could be single quote and without semi\\"); +"console.log("could be single quote and without semi"); " `; diff --git a/tests/integration/__tests__/__snapshots__/check.js.snap b/tests/integration/__tests__/__snapshots__/check.js.snap index f8d19510b..b5c69122a 100644 --- a/tests/integration/__tests__/__snapshots__/check.js.snap +++ b/tests/integration/__tests__/__snapshots__/check.js.snap @@ -1,14 +1,28 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`--checks should print the number of files that need formatting (stderr) 1`] = ` +"[warn] unformatted.js +[warn] unformatted2.js +[warn] Code style issues found in 2 files. Forgot to run Prettier? +" +`; + +exports[`--checks should print the number of files that need formatting (stdout) 1`] = ` +"Checking formatting... +" +`; + +exports[`--checks should print the number of files that need formatting (write) 1`] = `Array []`; + exports[`--checks works in CI just as in a non-TTY mode (stderr) 1`] = ` "[warn] unformatted.js -[warn] Code style issues found in the above file(s). Forgot to run Prettier? +[warn] Code style issues found in the above file. Forgot to run Prettier? " `; exports[`--checks works in CI just as in a non-TTY mode (stderr) 2`] = ` "[warn] unformatted.js -[warn] Code style issues found in the above file(s). Forgot to run Prettier? +[warn] Code style issues found in the above file. Forgot to run Prettier? " `; diff --git a/tests/integration/__tests__/__snapshots__/config-invalid.js.snap b/tests/integration/__tests__/__snapshots__/config-invalid.js.snap index 27ebc38fc..eb8f9a690 100644 --- a/tests/integration/__tests__/__snapshots__/config-invalid.js.snap +++ b/tests/integration/__tests__/__snapshots__/config-invalid.js.snap @@ -10,7 +10,7 @@ exports[`resolves external configuration from package.json (stdout) 1`] = `""`; exports[`resolves external configuration from package.json (write) 1`] = `Array []`; exports[`show warning with kebab-case option key (stderr) 1`] = ` -"[warn] Ignored unknown option { \\"print-width\\": 3 }. Did you mean printWidth? +"[warn] Ignored unknown option { "print-width": 3 }. Did you mean printWidth? " `; @@ -19,7 +19,7 @@ exports[`show warning with kebab-case option key (stdout) 1`] = `""`; exports[`show warning with kebab-case option key (write) 1`] = `Array []`; exports[`show warning with unknown option (stderr) 1`] = ` -"[warn] Ignored unknown option { hello: \\"world\\" }. +"[warn] Ignored unknown option { hello: "world" }. " `; @@ -28,7 +28,7 @@ exports[`show warning with unknown option (stdout) 1`] = `""`; exports[`show warning with unknown option (write) 1`] = `Array []`; exports[`throw error for unsupported extension (stderr) 1`] = ` -"[error] Invalid configuration file \`/tests/integration/cli/config/invalid\`: No loader specified for extension \\".unsupported\\" +"[error] Invalid configuration file \`/tests/integration/cli/config/invalid\`: No loader specified for extension ".unsupported" " `; @@ -54,7 +54,7 @@ exports[`throw error with invalid config option (int) (stdout) 1`] = `""`; exports[`throw error with invalid config option (int) (write) 1`] = `Array []`; exports[`throw error with invalid config option (trailingComma) (stderr) 1`] = ` -"[error] Invalid trailingComma value. Expected \\"all\\", \\"es5\\" or \\"none\\", but received \\"wow\\". +"[error] Invalid trailingComma value. Expected "all", "es5" or "none", but received "wow". " `; @@ -63,7 +63,7 @@ exports[`throw error with invalid config option (trailingComma) (stdout) 1`] = ` exports[`throw error with invalid config option (trailingComma) (write) 1`] = `Array []`; exports[`throw error with invalid config precedence option (configPrecedence) (stderr) 1`] = ` -"[error] Invalid --config-precedence value. Expected \\"cli-override\\", \\"file-override\\" or \\"prefer-file\\", but received \\"option/configPrecedence\\". +"[error] Invalid --config-precedence value. Expected "cli-override", "file-override" or "prefer-file", but received "option/configPrecedence". " `; diff --git a/tests/integration/__tests__/__snapshots__/config-resolution.js.snap b/tests/integration/__tests__/__snapshots__/config-resolution.js.snap index fac70dccc..bdec0cd3b 100644 --- a/tests/integration/__tests__/__snapshots__/config-resolution.js.snap +++ b/tests/integration/__tests__/__snapshots__/config-resolution.js.snap @@ -5,52 +5,59 @@ exports[`CLI overrides take precedence (stderr) 1`] = `""`; exports[`CLI overrides take precedence (stdout) 1`] = ` "function f() { console.log( - \\"should have tab width 8\\" + "should have tab width 8" ) } function f() { console.log( - \\"should have space width 2\\" + "should have space width 2" ) } function f() { console.log( - \\"should have space width 8\\" + "should have space width 8" ) } function f() { console.log( - \\"should have space width 2 despite ../.editorconfig specifying 8, because ./.hg is present\\" + "should have space width 2 despite ../.editorconfig specifying 8, because ./.hg is present" ) } console.log( - \\"should have no semi\\" + "should have no semi" ) console.log( - \\"jest/__best-tests__/.file.js should have semi\\" + "jest/__best-tests__/.file.js should have semi" ); console.log( - \\"jest/__best-tests__/file.js should have semi\\" + "jest/__best-tests__/file.js should have semi" ); console.log( - \\"jest/Component.js should not have semi\\" + "jest/Component.js should not have semi" ) console.log( - \\"jest/Component.test.js should have semi\\" + "jest/Component.test.js should have semi" ); function js() { console.log( - \\"js/file.js should have tab width 8 (1 if CLI)\\" + "js/file.js should have tab width 8 (1 if CLI)" ); } +"use strict"; + +module.exports = + { + endOfLine: "auto", + tabWidth: 8, + }; function noConfigJs() { console.log( - \\"no-config/file.js should have no semicolons\\" + "no-config/file.js should have no semicolons" ) } function packageJs() { console.log( - \\"package/file.js should have tab width 3\\" + "package/file.js should have tab width 3" ); } function rcJson() { @@ -92,7 +99,7 @@ exports[`accepts configuration from --config (stderr) 1`] = `""`; exports[`accepts configuration from --config (stdout) 1`] = ` "function js() { - console.log(\\"js/file.js should have tab width 8 (1 if CLI)\\") + console.log("js/file.js should have tab width 8 (1 if CLI)") } " `; @@ -100,7 +107,7 @@ exports[`accepts configuration from --config (stdout) 1`] = ` exports[`accepts configuration from --config (write) 1`] = `Array []`; exports[`prints error message when no file found with --find-config-path (stderr) 1`] = ` -"[error] Can not find configure file for \\"..\\" +"[error] Can not find configure file for ".." " `; @@ -119,32 +126,38 @@ exports[`resolves configuration from external files (stderr) 1`] = `""`; exports[`resolves configuration from external files (stdout) 1`] = ` "function f() { - console.log(\\"should have tab width 8\\") + console.log("should have tab width 8") } function f() { - console.log(\\"should have space width 2\\") + console.log("should have space width 2") } function f() { - console.log(\\"should have space width 8\\") + console.log("should have space width 8") } function f() { console.log( - \\"should have space width 2 despite ../.editorconfig specifying 8, because ./.hg is present\\" + "should have space width 2 despite ../.editorconfig specifying 8, because ./.hg is present" ) } -console.log(\\"should have no semi\\") -console.log(\\"jest/__best-tests__/.file.js should have semi\\"); -console.log(\\"jest/__best-tests__/file.js should have semi\\"); -console.log(\\"jest/Component.js should not have semi\\") -console.log(\\"jest/Component.test.js should have semi\\"); +console.log("should have no semi") +console.log("jest/__best-tests__/.file.js should have semi"); +console.log("jest/__best-tests__/file.js should have semi"); +console.log("jest/Component.js should not have semi") +console.log("jest/Component.test.js should have semi"); function js() { - console.log(\\"js/file.js should have tab width 8 (1 if CLI)\\"); + console.log("js/file.js should have tab width 8 (1 if CLI)"); } +"use strict"; + +module.exports = { + endOfLine: "auto", + tabWidth: 8, +}; function noConfigJs() { - console.log(\\"no-config/file.js should have no semicolons\\") + console.log("no-config/file.js should have no semicolons") } function packageJs() { - console.log(\\"package/file.js should have tab width 3\\"); + console.log("package/file.js should have tab width 3"); } function rcJson() { console.log.apply(null, [ @@ -177,12 +190,12 @@ exports[`resolves configuration from external files and overrides by extname (st exports[`resolves configuration from external files and overrides by extname (stdout) 1`] = ` "function noConfigTs() { console.log( - \\"no-config/file.ts should have semicolons because it has a .ts extension\\" + "no-config/file.ts should have semicolons because it has a .ts extension" ); } function packageTs() { console.log( - \\"package/file.ts should have tab width 5 because it has .ts extension\\" + "package/file.ts should have tab width 5 because it has .ts extension" ); } " @@ -193,7 +206,7 @@ exports[`resolves configuration from external files and overrides by extname (wr exports[`resolves external configuration from package.json (stderr) 1`] = `""`; exports[`resolves external configuration from package.json (stdout) 1`] = ` -"console.log(\\"should have no semi\\") +"console.log("should have no semi") " `; diff --git a/tests/integration/__tests__/__snapshots__/cursor-offset.js.snap b/tests/integration/__tests__/__snapshots__/cursor-offset.js.snap index ec16c601c..7f36dbfe7 100644 --- a/tests/integration/__tests__/__snapshots__/cursor-offset.js.snap +++ b/tests/integration/__tests__/__snapshots__/cursor-offset.js.snap @@ -2,17 +2,17 @@ exports[`cursorOffset should not be affected by full-width character (stdout) 1`] = ` "const x = [ - \\"中文\\", - \\"中文\\", - \\"中文\\", - \\"中文\\", - \\"中文\\", - \\"中文\\", - \\"中文\\", - \\"中文\\", - \\"中文\\", - \\"中文\\", - \\"中文\\", + "中文", + "中文", + "中文", + "中文", + "中文", + "中文", + "中文", + "中文", + "中文", + "中文", + "中文", ]; " `; diff --git a/tests/integration/__tests__/__snapshots__/debug-api.js.snap b/tests/integration/__tests__/__snapshots__/debug-api.js.snap index 6f66f17ca..8357d3948 100644 --- a/tests/integration/__tests__/__snapshots__/debug-api.js.snap +++ b/tests/integration/__tests__/__snapshots__/debug-api.js.snap @@ -3,11 +3,11 @@ exports[`API prettier.formatDoc 1`] = ` "[ group([ - \\"const\\", - \\" \\", - group([group(\\"foo\\"), \\" =\\", group(indent([line, '\\"bar\\"']))]), + "const", + " ", + group([group("foo"), " =", group(indent([line, '"bar"']))]), indent([]), - \\";\\", + ";", ]), hardline, ]" diff --git a/tests/integration/__tests__/__snapshots__/debug-print-ast.js.snap b/tests/integration/__tests__/__snapshots__/debug-print-ast.js.snap index 6c4c00f94..6e4781352 100644 --- a/tests/integration/__tests__/__snapshots__/debug-print-ast.js.snap +++ b/tests/integration/__tests__/__snapshots__/debug-print-ast.js.snap @@ -1,5 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`prints information for debugging AST --debug-print-ast (stdout) 1`] = `"{\\"type\\":\\"File\\",\\"start\\":0,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":0,\\"index\\":0},\\"end\\":{\\"line\\":1,\\"column\\":18,\\"index\\":18}},\\"range\\":[0,18],\\"errors\\":[],\\"program\\":{\\"type\\":\\"Program\\",\\"start\\":0,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":0,\\"index\\":0},\\"end\\":{\\"line\\":1,\\"column\\":18,\\"index\\":18}},\\"range\\":[0,18],\\"sourceType\\":\\"module\\",\\"interpreter\\":null,\\"body\\":[{\\"type\\":\\"VariableDeclaration\\",\\"start\\":0,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":0,\\"index\\":0},\\"end\\":{\\"line\\":1,\\"column\\":18,\\"index\\":18}},\\"range\\":[0,18],\\"declarations\\":[{\\"type\\":\\"VariableDeclarator\\",\\"start\\":6,\\"end\\":17,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":6,\\"index\\":6},\\"end\\":{\\"line\\":1,\\"column\\":17,\\"index\\":17}},\\"range\\":[6,17],\\"id\\":{\\"type\\":\\"Identifier\\",\\"start\\":6,\\"end\\":9,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":6,\\"index\\":6},\\"end\\":{\\"line\\":1,\\"column\\":9,\\"index\\":9},\\"identifierName\\":\\"foo\\"},\\"range\\":[6,9],\\"name\\":\\"foo\\"},\\"init\\":{\\"type\\":\\"StringLiteral\\",\\"start\\":12,\\"end\\":17,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":12,\\"index\\":12},\\"end\\":{\\"line\\":1,\\"column\\":17,\\"index\\":17}},\\"range\\":[12,17],\\"extra\\":{\\"rawValue\\":\\"foo\\",\\"raw\\":\\"'foo'\\"},\\"value\\":\\"foo\\"}}],\\"kind\\":\\"const\\"}],\\"directives\\":[]},\\"comments\\":[],\\"tokens\\":[{\\"type\\":{\\"label\\":\\"const\\",\\"keyword\\":\\"const\\",\\"beforeExpr\\":false,\\"startsExpr\\":false,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"value\\":\\"const\\",\\"start\\":0,\\"end\\":5,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":0,\\"index\\":0},\\"end\\":{\\"line\\":1,\\"column\\":5,\\"index\\":5}}},{\\"type\\":{\\"label\\":\\"name\\",\\"beforeExpr\\":false,\\"startsExpr\\":true,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"value\\":\\"foo\\",\\"start\\":6,\\"end\\":9,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":6,\\"index\\":6},\\"end\\":{\\"line\\":1,\\"column\\":9,\\"index\\":9}}},{\\"type\\":{\\"label\\":\\"=\\",\\"beforeExpr\\":true,\\"startsExpr\\":false,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":true,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"value\\":\\"=\\",\\"start\\":10,\\"end\\":11,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":10,\\"index\\":10},\\"end\\":{\\"line\\":1,\\"column\\":11,\\"index\\":11}}},{\\"type\\":{\\"label\\":\\"string\\",\\"beforeExpr\\":false,\\"startsExpr\\":true,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"value\\":\\"foo\\",\\"start\\":12,\\"end\\":17,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":12,\\"index\\":12},\\"end\\":{\\"line\\":1,\\"column\\":17,\\"index\\":17}}},{\\"type\\":{\\"label\\":\\";\\",\\"beforeExpr\\":true,\\"startsExpr\\":false,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"start\\":17,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":17,\\"index\\":17},\\"end\\":{\\"line\\":1,\\"column\\":18,\\"index\\":18}}},{\\"type\\":{\\"label\\":\\"eof\\",\\"beforeExpr\\":false,\\"startsExpr\\":false,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"start\\":18,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":18,\\"index\\":18},\\"end\\":{\\"line\\":1,\\"column\\":18,\\"index\\":18}}}]}"`; +exports[`prints information for debugging AST --debug-print-ast (stdout) 1`] = `"{"type":"File","start":0,"end":18,"loc":{"start":{"line":1,"column":0,"index":0},"end":{"line":1,"column":18,"index":18}},"range":[0,18],"errors":[],"program":{"type":"Program","start":0,"end":18,"loc":{"start":{"line":1,"column":0,"index":0},"end":{"line":1,"column":18,"index":18}},"range":[0,18],"sourceType":"module","interpreter":null,"body":[{"type":"VariableDeclaration","start":0,"end":18,"loc":{"start":{"line":1,"column":0,"index":0},"end":{"line":1,"column":18,"index":18}},"range":[0,18],"declarations":[{"type":"VariableDeclarator","start":6,"end":17,"loc":{"start":{"line":1,"column":6,"index":6},"end":{"line":1,"column":17,"index":17}},"range":[6,17],"id":{"type":"Identifier","start":6,"end":9,"loc":{"start":{"line":1,"column":6,"index":6},"end":{"line":1,"column":9,"index":9},"identifierName":"foo"},"range":[6,9],"name":"foo"},"init":{"type":"StringLiteral","start":12,"end":17,"loc":{"start":{"line":1,"column":12,"index":12},"end":{"line":1,"column":17,"index":17}},"range":[12,17],"extra":{"rawValue":"foo","raw":"'foo'"},"value":"foo"}}],"kind":"const"}],"directives":[]},"comments":[],"tokens":[{"type":{"label":"const","keyword":"const","beforeExpr":false,"startsExpr":false,"rightAssociative":false,"isLoop":false,"isAssign":false,"prefix":false,"postfix":false,"binop":null,"updateContext":null},"value":"const","start":0,"end":5,"loc":{"start":{"line":1,"column":0,"index":0},"end":{"line":1,"column":5,"index":5}}},{"type":{"label":"name","beforeExpr":false,"startsExpr":true,"rightAssociative":false,"isLoop":false,"isAssign":false,"prefix":false,"postfix":false,"binop":null,"updateContext":null},"value":"foo","start":6,"end":9,"loc":{"start":{"line":1,"column":6,"index":6},"end":{"line":1,"column":9,"index":9}}},{"type":{"label":"=","beforeExpr":true,"startsExpr":false,"rightAssociative":false,"isLoop":false,"isAssign":true,"prefix":false,"postfix":false,"binop":null,"updateContext":null},"value":"=","start":10,"end":11,"loc":{"start":{"line":1,"column":10,"index":10},"end":{"line":1,"column":11,"index":11}}},{"type":{"label":"string","beforeExpr":false,"startsExpr":true,"rightAssociative":false,"isLoop":false,"isAssign":false,"prefix":false,"postfix":false,"binop":null,"updateContext":null},"value":"foo","start":12,"end":17,"loc":{"start":{"line":1,"column":12,"index":12},"end":{"line":1,"column":17,"index":17}}},{"type":{"label":";","beforeExpr":true,"startsExpr":false,"rightAssociative":false,"isLoop":false,"isAssign":false,"prefix":false,"postfix":false,"binop":null,"updateContext":null},"start":17,"end":18,"loc":{"start":{"line":1,"column":17,"index":17},"end":{"line":1,"column":18,"index":18}}},{"type":{"label":"eof","beforeExpr":false,"startsExpr":false,"rightAssociative":false,"isLoop":false,"isAssign":false,"prefix":false,"postfix":false,"binop":null,"updateContext":null},"start":18,"end":18,"loc":{"start":{"line":1,"column":18,"index":18},"end":{"line":1,"column":18,"index":18}}}]}"`; exports[`prints information for debugging AST --debug-print-ast (write) 1`] = `Array []`; diff --git a/tests/integration/__tests__/__snapshots__/debug-print-comments.js.snap b/tests/integration/__tests__/__snapshots__/debug-print-comments.js.snap index 260d1cc9d..fd5ce3845 100644 --- a/tests/integration/__tests__/__snapshots__/debug-print-comments.js.snap +++ b/tests/integration/__tests__/__snapshots__/debug-print-comments.js.snap @@ -3,46 +3,46 @@ exports[`prints information for debugging comment attachment with --debug-print-comments (stdout) 1`] = ` "[ { - \\"type\\": \\"CommentBlock\\", - \\"value\\": \\" 1 \\", - \\"start\\": 0, - \\"end\\": 7, - \\"loc\\": { - \\"start\\": { \\"line\\": 1, \\"column\\": 0, \\"index\\": 0 }, - \\"end\\": { \\"line\\": 1, \\"column\\": 7, \\"index\\": 7 } + "type": "CommentBlock", + "value": " 1 ", + "start": 0, + "end": 7, + "loc": { + "start": { "line": 1, "column": 0, "index": 0 }, + "end": { "line": 1, "column": 7, "index": 7 } }, - \\"placement\\": \\"endOfLine\\", - \\"leading\\": true, - \\"trailing\\": false, - \\"nodeDescription\\": \\"ExpressionStatement\\" + "placement": "endOfLine", + "leading": true, + "trailing": false, + "nodeDescription": "ExpressionStatement" }, { - \\"type\\": \\"CommentBlock\\", - \\"value\\": \\" 2 \\", - \\"start\\": 24, - \\"end\\": 31, - \\"loc\\": { - \\"start\\": { \\"line\\": 2, \\"column\\": 16, \\"index\\": 24 }, - \\"end\\": { \\"line\\": 2, \\"column\\": 23, \\"index\\": 31 } + "type": "CommentBlock", + "value": " 2 ", + "start": 24, + "end": 31, + "loc": { + "start": { "line": 2, "column": 16, "index": 24 }, + "end": { "line": 2, "column": 23, "index": 31 } }, - \\"placement\\": \\"remaining\\", - \\"leading\\": false, - \\"trailing\\": true, - \\"nodeDescription\\": \\"Identifier foo\\" + "placement": "remaining", + "leading": false, + "trailing": true, + "nodeDescription": "Identifier foo" }, { - \\"type\\": \\"CommentLine\\", - \\"value\\": \\" 3\\", - \\"start\\": 34, - \\"end\\": 38, - \\"loc\\": { - \\"start\\": { \\"line\\": 2, \\"column\\": 26, \\"index\\": 34 }, - \\"end\\": { \\"line\\": 2, \\"column\\": 30, \\"index\\": 38 } + "type": "CommentLine", + "value": " 3", + "start": 34, + "end": 38, + "loc": { + "start": { "line": 2, "column": 26, "index": 34 }, + "end": { "line": 2, "column": 30, "index": 38 } }, - \\"placement\\": \\"remaining\\", - \\"leading\\": false, - \\"trailing\\": true, - \\"nodeDescription\\": \\"ExpressionStatement\\" + "placement": "remaining", + "leading": false, + "trailing": true, + "nodeDescription": "ExpressionStatement" } ] " diff --git a/tests/integration/__tests__/__snapshots__/early-exit.js.snap b/tests/integration/__tests__/__snapshots__/early-exit.js.snap index 1f88c4859..ba09493f3 100644 --- a/tests/integration/__tests__/__snapshots__/early-exit.js.snap +++ b/tests/integration/__tests__/__snapshots__/early-exit.js.snap @@ -172,7 +172,7 @@ exports[`show version with --version (stderr) 1`] = `""`; exports[`show version with --version (write) 1`] = `Array []`; exports[`show warning with --help not-found (typo) (stderr) 1`] = ` -"[warn] Unknown flag \\"parserr\\", did you mean \\"parser\\"? +"[warn] Unknown flag "parserr", did you mean "parser"? " `; @@ -365,7 +365,7 @@ exports[`throw error with --find-config-path + multiple files (stdout) 1`] = `"" exports[`throw error with --find-config-path + multiple files (write) 1`] = `Array []`; exports[`throw error with --help not-found (stderr) 1`] = ` -"[error] Invalid --help value. Expected a flag, but received \\"not-found\\". +"[error] Invalid --help value. Expected a flag, but received "not-found". " `; diff --git a/tests/integration/__tests__/__snapshots__/error-on-unmatched-pattern.js.snap b/tests/integration/__tests__/__snapshots__/error-on-unmatched-pattern.js.snap index ddce6fcc5..3c92dbe64 100644 --- a/tests/integration/__tests__/__snapshots__/error-on-unmatched-pattern.js.snap +++ b/tests/integration/__tests__/__snapshots__/error-on-unmatched-pattern.js.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`error on unmatched pattern (stderr) 1`] = ` -"[error] No files matching the pattern were found: \\"**/*.toml\\". +"[error] No files matching the pattern were found: "**/*.toml". " `; @@ -10,14 +10,14 @@ exports[`error on unmatched pattern (stdout) 1`] = `""`; exports[`error on unmatched pattern (write) 1`] = `Array []`; exports[`error on unmatched pattern when 2nd glob has no match (stderr) 1`] = ` -"[error] No files matching the pattern were found: \\"**/*.toml\\". +"[error] No files matching the pattern were found: "**/*.toml". " `; exports[`error on unmatched pattern when 2nd glob has no match (stdout) 1`] = ` -"const hello = \\"there\\"; +"const hello = "there"; { - \\"hello\\": \\"there\\" + "hello": "there" } hello: there " @@ -28,7 +28,7 @@ exports[`error on unmatched pattern when 2nd glob has no match (write) 1`] = `Ar exports[`no error on unmatched pattern (stderr) 1`] = `""`; exports[`no error on unmatched pattern (stdout) 1`] = ` -"const hello = \\"there\\"; +"const hello = "there"; " `; @@ -37,9 +37,9 @@ exports[`no error on unmatched pattern (write) 1`] = `Array []`; exports[`no error on unmatched pattern when 2nd glob has no match (stderr) 1`] = `""`; exports[`no error on unmatched pattern when 2nd glob has no match (stdout) 1`] = ` -"const hello = \\"there\\"; +"const hello = "there"; { - \\"hello\\": \\"there\\" + "hello": "there" } hello: there " diff --git a/tests/integration/__tests__/__snapshots__/file-info.js.snap b/tests/integration/__tests__/__snapshots__/file-info.js.snap index 7a3c7901c..d10bc2c3a 100644 --- a/tests/integration/__tests__/__snapshots__/file-info.js.snap +++ b/tests/integration/__tests__/__snapshots__/file-info.js.snap @@ -3,7 +3,7 @@ exports[`extracts file-info for a file in not_node_modules (stderr) 1`] = `""`; exports[`extracts file-info for a file in not_node_modules (stdout) 1`] = ` -"{ \\"ignored\\": false, \\"inferredParser\\": \\"babel\\" } +"{ "ignored": false, "inferredParser": "babel" } " `; @@ -13,7 +13,7 @@ exports[`extracts file-info for a file in not_node_modules (write) 1`] = `Array exports[`extracts file-info for a js file (stderr) 1`] = `""`; exports[`extracts file-info for a js file (stdout) 1`] = ` -"{ \\"ignored\\": false, \\"inferredParser\\": \\"babel\\" } +"{ "ignored": false, "inferredParser": "babel" } " `; @@ -23,7 +23,7 @@ exports[`extracts file-info for a js file (write) 1`] = `Array []`; exports[`extracts file-info for a known markdown file with no extension (stderr) 1`] = `""`; exports[`extracts file-info for a known markdown file with no extension (stdout) 1`] = ` -"{ \\"ignored\\": false, \\"inferredParser\\": \\"markdown\\" } +"{ "ignored": false, "inferredParser": "markdown" } " `; @@ -33,7 +33,7 @@ exports[`extracts file-info for a known markdown file with no extension (write) exports[`extracts file-info for a markdown file (stderr) 1`] = `""`; exports[`extracts file-info for a markdown file (stdout) 1`] = ` -"{ \\"ignored\\": false, \\"inferredParser\\": \\"markdown\\" } +"{ "ignored": false, "inferredParser": "markdown" } " `; @@ -43,7 +43,7 @@ exports[`extracts file-info for a markdown file (write) 1`] = `Array []`; exports[`extracts file-info with ignored=false for a file in node_modules when --with-node-modules provided (stderr) 1`] = `""`; exports[`extracts file-info with ignored=false for a file in node_modules when --with-node-modules provided (stdout) 1`] = ` -"{ \\"ignored\\": false, \\"inferredParser\\": \\"babel\\" } +"{ "ignored": false, "inferredParser": "babel" } " `; @@ -53,7 +53,7 @@ exports[`extracts file-info with ignored=false for a file in node_modules when - exports[`extracts file-info with ignored=true for a file in .prettierignore (stderr) 1`] = `""`; exports[`extracts file-info with ignored=true for a file in .prettierignore (stdout) 1`] = ` -"{ \\"ignored\\": true, \\"inferredParser\\": null } +"{ "ignored": true, "inferredParser": null } " `; @@ -63,7 +63,7 @@ exports[`extracts file-info with ignored=true for a file in .prettierignore (wri exports[`extracts file-info with ignored=true for a file in a hand-picked .prettierignore (stderr) 1`] = `""`; exports[`extracts file-info with ignored=true for a file in a hand-picked .prettierignore (stdout) 1`] = ` -"{ \\"ignored\\": true, \\"inferredParser\\": null } +"{ "ignored": true, "inferredParser": null } " `; @@ -73,7 +73,7 @@ exports[`extracts file-info with ignored=true for a file in a hand-picked .prett exports[`extracts file-info with inferredParser=foo when a plugin is hand-picked (stderr) 1`] = `""`; exports[`extracts file-info with inferredParser=foo when a plugin is hand-picked (stdout) 1`] = ` -"{ \\"ignored\\": false, \\"inferredParser\\": \\"foo\\" } +"{ "ignored": false, "inferredParser": "foo" } " `; @@ -83,7 +83,7 @@ exports[`extracts file-info with inferredParser=foo when a plugin is hand-picked exports[`extracts file-info with inferredParser=foo when plugins are autoloaded (stderr) 1`] = `""`; exports[`extracts file-info with inferredParser=foo when plugins are autoloaded (stdout) 1`] = ` -"{ \\"ignored\\": false, \\"inferredParser\\": \\"foo\\" } +"{ "ignored": false, "inferredParser": "foo" } " `; @@ -93,7 +93,7 @@ exports[`extracts file-info with inferredParser=foo when plugins are autoloaded exports[`extracts file-info with inferredParser=foo when plugins are loaded with --plugin-search-dir (stderr) 1`] = `""`; exports[`extracts file-info with inferredParser=foo when plugins are loaded with --plugin-search-dir (stdout) 1`] = ` -"{ \\"ignored\\": false, \\"inferredParser\\": \\"foo\\" } +"{ "ignored": false, "inferredParser": "foo" } " `; @@ -103,7 +103,7 @@ exports[`extracts file-info with inferredParser=foo when plugins are loaded with exports[`extracts file-info with inferredParser=null for file.foo (stderr) 1`] = `""`; exports[`extracts file-info with inferredParser=null for file.foo (stdout) 1`] = ` -"{ \\"ignored\\": false, \\"inferredParser\\": null } +"{ "ignored": false, "inferredParser": null } " `; @@ -113,7 +113,7 @@ exports[`extracts file-info with inferredParser=null for file.foo (write) 1`] = exports[`extracts file-info with with ignored=true for a file in node_modules (stderr) 1`] = `""`; exports[`extracts file-info with with ignored=true for a file in node_modules (stdout) 1`] = ` -"{ \\"ignored\\": true, \\"inferredParser\\": null } +"{ "ignored": true, "inferredParser": null } " `; @@ -121,7 +121,7 @@ exports[`extracts file-info with with ignored=true for a file in node_modules (s exports[`extracts file-info with with ignored=true for a file in node_modules (write) 1`] = `Array []`; exports[`file-info should not try resolve config with --no-config (stdout) 1`] = ` -"{ \\"ignored\\": false, \\"inferredParser\\": \\"babel\\" } +"{ "ignored": false, "inferredParser": "babel" } " `; @@ -129,7 +129,7 @@ exports[`file-info should not try resolve config with --no-config (stdout) 1`] = exports[`file-info should try resolve config (stderr) 1`] = `""`; exports[`file-info should try resolve config (stdout) 1`] = ` -"{ \\"ignored\\": false, \\"inferredParser\\": \\"override-js-parser\\" } +"{ "ignored": false, "inferredParser": "override-js-parser" } " `; @@ -139,7 +139,7 @@ exports[`file-info should try resolve config (write) 1`] = `Array []`; exports[`non-exists ignore path (stderr) 1`] = `""`; exports[`non-exists ignore path (stdout) 1`] = ` -"{ \\"ignored\\": false, \\"inferredParser\\": \\"babel\\" } +"{ "ignored": false, "inferredParser": "babel" } " `; diff --git a/tests/integration/__tests__/__snapshots__/format-ast.js.snap b/tests/integration/__tests__/__snapshots__/format-ast.js.snap index 422eaeb0b..e8eb191cf 100644 --- a/tests/integration/__tests__/__snapshots__/format-ast.js.snap +++ b/tests/integration/__tests__/__snapshots__/format-ast.js.snap @@ -11,11 +11,11 @@ exports[`formatAST Shorthand specifier 2 1`] = ` `; exports[`formatAST Shorthand specifier 3 1`] = ` -"export { \\"specifier\\" as specifier }; +"export { "specifier" as specifier }; " `; exports[`formatAST Shorthand specifier 4 1`] = ` -"export { \\"specifier\\" as \\"specifier\\" }; +"export { "specifier" as "specifier" }; " `; diff --git a/tests/integration/__tests__/__snapshots__/format.js.snap b/tests/integration/__tests__/__snapshots__/format.js.snap index 40cafac78..fc7cb935d 100644 --- a/tests/integration/__tests__/__snapshots__/format.js.snap +++ b/tests/integration/__tests__/__snapshots__/format.js.snap @@ -7,9 +7,9 @@ exports[`'Adjacent JSX' error should not be swallowed by Babel's error recovery | ^" `; -exports[`html parser should handle CRLF correctly 1`] = `"\\"\\\\r\\\\n\\""`; +exports[`html parser should handle CRLF correctly 1`] = `""\\r\\n""`; -exports[`markdown parser should handle CRLF correctly 1`] = `"\\"\`\`\`\\\\r\\\\n\\\\r\\\\n\\\\r\\\\n\`\`\`\\\\r\\\\n\\""`; +exports[`markdown parser should handle CRLF correctly 1`] = `""\`\`\`\\r\\n\\r\\n\\r\\n\`\`\`\\r\\n""`; exports[`typescript parser should throw the first error when both JSX and non-JSX mode failed 1`] = ` "Expression expected. (8:7) @@ -19,4 +19,4 @@ exports[`typescript parser should throw the first error when both JSX and non-JS | ^" `; -exports[`yaml parser should handle CRLF correctly 1`] = `"\\"a: 123\\\\r\\\\n\\""`; +exports[`yaml parser should handle CRLF correctly 1`] = `""a: 123\\r\\n""`; diff --git a/tests/integration/__tests__/__snapshots__/help-options.js.snap b/tests/integration/__tests__/__snapshots__/help-options.js.snap index e4821dc24..98fbd7470 100644 --- a/tests/integration/__tests__/__snapshots__/help-options.js.snap +++ b/tests/integration/__tests__/__snapshots__/help-options.js.snap @@ -154,9 +154,9 @@ exports[`show detailed usage with --help end-of-line (stdout) 1`] = ` Valid options: - lf Line Feed only (\\\\n), common on Linux and macOS as well as inside git repos - crlf Carriage Return + Line Feed characters (\\\\r\\\\n), common on Windows - cr Carriage Return character only (\\\\r), used very rarely + lf Line Feed only (\\n), common on Linux and macOS as well as inside git repos + crlf Carriage Return + Line Feed characters (\\r\\n), common on Windows + cr Carriage Return character only (\\r), used very rarely auto Maintain existing (mixed values within one file are normalised by looking at what's used after the first line) diff --git a/tests/integration/__tests__/__snapshots__/ignore-unknown.js.snap b/tests/integration/__tests__/__snapshots__/ignore-unknown.js.snap index 3d563676b..9f7ab764e 100644 --- a/tests/integration/__tests__/__snapshots__/ignore-unknown.js.snap +++ b/tests/integration/__tests__/__snapshots__/ignore-unknown.js.snap @@ -7,7 +7,7 @@ exports[`Ignored file (stdout) 1`] = `""`; exports[`Ignored file (write) 1`] = `Array []`; exports[`None exist file (stderr) 1`] = ` -"[error] No files matching the pattern were found: \\"non-exist-file\\". +"[error] No files matching the pattern were found: "non-exist-file". " `; @@ -16,7 +16,7 @@ exports[`None exist file (stdout) 1`] = `""`; exports[`None exist file (write) 1`] = `Array []`; exports[`Not matching pattern (stderr) 1`] = ` -"[error] No files matching the pattern were found: \\"*.non-exist-pattern\\". +"[error] No files matching the pattern were found: "*.non-exist-pattern". " `; @@ -31,7 +31,7 @@ exports[`ignore-unknown alias (stdout) 1`] = ` exports[`ignore-unknown check (stderr) 1`] = ` "[warn] javascript.js -[warn] Code style issues found in the above file(s). Forgot to run Prettier? +[warn] Code style issues found in the above file. Forgot to run Prettier? " `; @@ -61,7 +61,7 @@ exports[`ignore-unknown write (stdout) 1`] = ` exports[`ignore-unknown write (write) 1`] = ` Array [ Object { - "content": "const foo = \\"bar\\"; + "content": "const foo = "bar"; ", "filename": "javascript.js", }, diff --git a/tests/integration/__tests__/__snapshots__/infer-parser.js.snap b/tests/integration/__tests__/__snapshots__/infer-parser.js.snap index 75e8fc1f6..44ca2f3e9 100644 --- a/tests/integration/__tests__/__snapshots__/infer-parser.js.snap +++ b/tests/integration/__tests__/__snapshots__/infer-parser.js.snap @@ -3,7 +3,7 @@ exports[`--check with unknown path and no parser multiple files (stderr) 1`] = ` "[error] No parser could be inferred for file: FOO [warn] foo.js -[warn] Code style issues found in the above file(s). Forgot to run Prettier? +[warn] Code style issues found in the above file. Forgot to run Prettier? " `; @@ -36,7 +36,7 @@ exports[`--list-different with unknown path and no parser specific file (stderr) exports[`--write and --check with unknown path and no parser multiple files (stderr) 1`] = ` "[error] No parser could be inferred for file: FOO [warn] foo.js -[warn] Code style issues fixed in the above file(s). +[warn] Code style issues fixed in the above file. " `; @@ -129,7 +129,7 @@ Array [ `; exports[`Interpreters (stdout) 1`] = ` -"{ \\"ignored\\": false, \\"inferredParser\\": \\"babel\\" } +"{ "ignored": false, "inferredParser": "babel" } " `; diff --git a/tests/integration/__tests__/__snapshots__/load-toml.js.snap b/tests/integration/__tests__/__snapshots__/load-toml.js.snap index 8b0ab33d3..75b5b616b 100644 --- a/tests/integration/__tests__/__snapshots__/load-toml.js.snap +++ b/tests/integration/__tests__/__snapshots__/load-toml.js.snap @@ -22,7 +22,7 @@ Object { exports[`TOML throws error on incorrect toml 1`] = ` "TOML Error in example.toml: -Unknown character \\"47\\" at row 1, col 2, pos 1: +Unknown character "47" at row 1, col 2, pos 1: 1> ///ERROR/// ^ diff --git a/tests/integration/__tests__/__snapshots__/loglevel.js.snap b/tests/integration/__tests__/__snapshots__/loglevel.js.snap index 8e63b3cd6..f4030895b 100644 --- a/tests/integration/__tests__/__snapshots__/loglevel.js.snap +++ b/tests/integration/__tests__/__snapshots__/loglevel.js.snap @@ -15,6 +15,6 @@ Array [ `; exports[`Should use default level logger to log \`--loglevel\` error (stderr) 1`] = ` -"[error] Invalid --loglevel value. Expected \\"debug\\", \\"error\\", \\"log\\", \\"silent\\" or \\"warn\\", but received \\"a-unknown-log-level\\". +"[error] Invalid --loglevel value. Expected "debug", "error", "log", "silent" or "warn", but received "a-unknown-log-level". " `; diff --git a/tests/integration/__tests__/__snapshots__/patterns-dirs.js.snap b/tests/integration/__tests__/__snapshots__/patterns-dirs.js.snap index 1d3041bbf..05cfe83ee 100644 --- a/tests/integration/__tests__/__snapshots__/patterns-dirs.js.snap +++ b/tests/integration/__tests__/__snapshots__/patterns-dirs.js.snap @@ -29,7 +29,7 @@ dir2/nested2/bn2.js `; exports[`1c: prettier dir1 empty (stderr) 1`] = ` -"[error] No supported files were found in the directory: \\"empty\\". +"[error] No supported files were found in the directory: "empty". " `; @@ -62,7 +62,7 @@ dir2/node-shebang `; exports[`3: prettier nonexistent-dir 'dir2/**/*' (stderr) 1`] = ` -"[error] No files matching the pattern were found: \\"nonexistent-dir\\". +"[error] No files matching the pattern were found: "nonexistent-dir". [error] No parser could be inferred for file: dir2/a2.foo " `; @@ -140,7 +140,7 @@ exports[`Negative patterns 4: prettier '!nonexistent-dir1 !nonexistent-dir2' (st exports[`Negative patterns 4: prettier '!nonexistent-dir1 !nonexistent-dir2' (stdout) 1`] = `""`; exports[`Negative patterns with explicit files: prettier dir1/a1.js dir2/a2.js '!dir1/*' (stderr) 1`] = ` -"[error] Explicitly specified file was ignored due to negative glob patterns: \\"dir1/a1.js\\". +"[error] Explicitly specified file was ignored due to negative glob patterns: "dir1/a1.js". " `; diff --git a/tests/integration/__tests__/__snapshots__/patterns.js.snap b/tests/integration/__tests__/__snapshots__/patterns.js.snap index b8c00ca8f..d2ebdb3c7 100644 --- a/tests/integration/__tests__/__snapshots__/patterns.js.snap +++ b/tests/integration/__tests__/__snapshots__/patterns.js.snap @@ -62,7 +62,7 @@ regular-module.js exports[`multiple patterns with ignore nested directories pattern (write) 1`] = `Array []`; exports[`multiple patterns with non exists pattern (stderr) 1`] = ` -"[error] No files matching the pattern were found: \\"non-existent.js\\". +"[error] No files matching the pattern were found: "non-existent.js". " `; @@ -75,8 +75,8 @@ directory/nested-directory/nested-directory-file.js exports[`multiple patterns with non exists pattern (write) 1`] = `Array []`; exports[`multiple patterns, throw error and exit with non zero code on non existing files (stderr) 1`] = ` -"[error] No files matching the pattern were found: \\"non-existent.js\\". -[error] No files matching the pattern were found: \\"other-non-existent.js\\". +"[error] No files matching the pattern were found: "non-existent.js". +[error] No files matching the pattern were found: "other-non-existent.js". " `; diff --git a/tests/integration/__tests__/__snapshots__/piped-output.js.snap b/tests/integration/__tests__/__snapshots__/piped-output.js.snap index abeed4482..5ac545abd 100644 --- a/tests/integration/__tests__/__snapshots__/piped-output.js.snap +++ b/tests/integration/__tests__/__snapshots__/piped-output.js.snap @@ -34,13 +34,13 @@ exports[`no file diffs with --list-different + formatted file (write) 2`] = `Arr exports[`output with --check + unformatted differs when piped (stderr) 1`] = ` "[warn] unformatted.js -[warn] Code style issues fixed in the above file(s). +[warn] Code style issues fixed in the above file. " `; exports[`output with --check + unformatted differs when piped (stderr) 2`] = ` "[warn] unformatted.js -[warn] Code style issues fixed in the above file(s). +[warn] Code style issues fixed in the above file. " `; diff --git a/tests/integration/__tests__/__snapshots__/schema.js.snap b/tests/integration/__tests__/__snapshots__/schema.js.snap index d76f18954..d73ae2338 100644 --- a/tests/integration/__tests__/__snapshots__/schema.js.snap +++ b/tests/integration/__tests__/__snapshots__/schema.js.snap @@ -63,19 +63,19 @@ This option cannot be used with --range-start and --range-end.", "description": "Which end of line characters to apply.", "oneOf": Array [ Object { - "description": "Line Feed only (\\\\n), common on Linux and macOS as well as inside git repos", + "description": "Line Feed only (\\n), common on Linux and macOS as well as inside git repos", "enum": Array [ "lf", ], }, Object { - "description": "Carriage Return + Line Feed characters (\\\\r\\\\n), common on Windows", + "description": "Carriage Return + Line Feed characters (\\r\\n), common on Windows", "enum": Array [ "crlf", ], }, Object { - "description": "Carriage Return character only (\\\\r), used very rarely", + "description": "Carriage Return character only (\\r), used very rarely", "enum": Array [ "cr", ], diff --git a/tests/integration/__tests__/__snapshots__/stdin-filepath.js.snap b/tests/integration/__tests__/__snapshots__/stdin-filepath.js.snap index f27f5e90f..ddb528da5 100644 --- a/tests/integration/__tests__/__snapshots__/stdin-filepath.js.snap +++ b/tests/integration/__tests__/__snapshots__/stdin-filepath.js.snap @@ -6,14 +6,14 @@ exports[`apply editorconfig for stdin-filepath with a deep path (stderr) 2`] = ` exports[`apply editorconfig for stdin-filepath with a deep path (stdout) 1`] = ` "function f() { - console.log(\\"should be indented with a tab\\") + console.log("should be indented with a tab") } " `; exports[`apply editorconfig for stdin-filepath with a deep path (stdout) 2`] = ` "function f() { - console.log(\\"should be indented with a tab\\") + console.log("should be indented with a tab") } " `; @@ -26,7 +26,7 @@ exports[`apply editorconfig for stdin-filepath with nonexistent directory (stder exports[`apply editorconfig for stdin-filepath with nonexistent directory (stdout) 1`] = ` "function f() { - console.log(\\"should be indented with a tab\\") + console.log("should be indented with a tab") } " `; @@ -37,7 +37,7 @@ exports[`apply editorconfig for stdin-filepath with nonexistent file (stderr) 1` exports[`apply editorconfig for stdin-filepath with nonexistent file (stdout) 1`] = ` "function f() { - console.log(\\"should be indented with a tab\\") + console.log("should be indented with a tab") } " `; @@ -48,7 +48,7 @@ exports[`don’t apply editorconfig outside project for stdin-filepath with none exports[`don’t apply editorconfig outside project for stdin-filepath with nonexistent directory (stdout) 1`] = ` "function f() { - console.log(\\"should be indented with 2 spaces\\") + console.log("should be indented with 2 spaces") } " `; diff --git a/tests/integration/__tests__/__snapshots__/support-info.js.snap b/tests/integration/__tests__/__snapshots__/support-info.js.snap index abf30a7b9..934e89e62 100644 --- a/tests/integration/__tests__/__snapshots__/support-info.js.snap +++ b/tests/integration/__tests__/__snapshots__/support-info.js.snap @@ -283,861 +283,861 @@ exports[`CLI --support-info (stderr) 1`] = `""`; exports[`CLI --support-info (stdout) 1`] = ` "{ - \\"languages\\": [ + "languages": [ { - \\"aceMode\\": \\"javascript\\", - \\"aliases\\": [\\"js\\", \\"node\\"], - \\"codemirrorMimeType\\": \\"text/javascript\\", - \\"codemirrorMode\\": \\"javascript\\", - \\"color\\": \\"#f1e05a\\", - \\"extensions\\": [ - \\".js\\", - \\"._js\\", - \\".bones\\", - \\".cjs\\", - \\".es\\", - \\".es6\\", - \\".frag\\", - \\".gs\\", - \\".jake\\", - \\".jsb\\", - \\".jscad\\", - \\".jsfl\\", - \\".jsm\\", - \\".jss\\", - \\".mjs\\", - \\".njs\\", - \\".pac\\", - \\".sjs\\", - \\".ssjs\\", - \\".xsjs\\", - \\".xsjslib\\", - \\".wxs\\" + "aceMode": "javascript", + "aliases": ["js", "node"], + "codemirrorMimeType": "text/javascript", + "codemirrorMode": "javascript", + "color": "#f1e05a", + "extensions": [ + ".js", + "._js", + ".bones", + ".cjs", + ".es", + ".es6", + ".frag", + ".gs", + ".jake", + ".jsb", + ".jscad", + ".jsfl", + ".jsm", + ".jss", + ".mjs", + ".njs", + ".pac", + ".sjs", + ".ssjs", + ".xsjs", + ".xsjslib", + ".wxs" ], - \\"filenames\\": [\\"Jakefile\\"], - \\"interpreters\\": [ - \\"chakra\\", - \\"d8\\", - \\"gjs\\", - \\"js\\", - \\"node\\", - \\"nodejs\\", - \\"qjs\\", - \\"rhino\\", - \\"v8\\", - \\"v8-shell\\", - \\"zx\\" + "filenames": ["Jakefile"], + "interpreters": [ + "chakra", + "d8", + "gjs", + "js", + "node", + "nodejs", + "qjs", + "rhino", + "v8", + "v8-shell", + "zx" ], - \\"linguistLanguageId\\": 183, - \\"name\\": \\"JavaScript\\", - \\"parsers\\": [ - \\"babel\\", - \\"acorn\\", - \\"espree\\", - \\"meriyah\\", - \\"babel-flow\\", - \\"babel-ts\\", - \\"flow\\", - \\"typescript\\" + "linguistLanguageId": 183, + "name": "JavaScript", + "parsers": [ + "babel", + "acorn", + "espree", + "meriyah", + "babel-flow", + "babel-ts", + "flow", + "typescript" ], - \\"since\\": \\"0.0.0\\", - \\"tmScope\\": \\"source.js\\", - \\"type\\": \\"programming\\", - \\"vscodeLanguageIds\\": [\\"javascript\\", \\"mongo\\"] + "since": "0.0.0", + "tmScope": "source.js", + "type": "programming", + "vscodeLanguageIds": ["javascript", "mongo"] }, { - \\"aceMode\\": \\"javascript\\", - \\"aliases\\": [], - \\"codemirrorMimeType\\": \\"text/javascript\\", - \\"codemirrorMode\\": \\"javascript\\", - \\"color\\": \\"#f1e05a\\", - \\"extensions\\": [\\".js.flow\\"], - \\"filenames\\": [], - \\"interpreters\\": [ - \\"chakra\\", - \\"d8\\", - \\"gjs\\", - \\"js\\", - \\"node\\", - \\"nodejs\\", - \\"qjs\\", - \\"rhino\\", - \\"v8\\", - \\"v8-shell\\" + "aceMode": "javascript", + "aliases": [], + "codemirrorMimeType": "text/javascript", + "codemirrorMode": "javascript", + "color": "#f1e05a", + "extensions": [".js.flow"], + "filenames": [], + "interpreters": [ + "chakra", + "d8", + "gjs", + "js", + "node", + "nodejs", + "qjs", + "rhino", + "v8", + "v8-shell" ], - \\"linguistLanguageId\\": 183, - \\"name\\": \\"Flow\\", - \\"parsers\\": [\\"flow\\", \\"babel-flow\\"], - \\"since\\": \\"0.0.0\\", - \\"tmScope\\": \\"source.js\\", - \\"type\\": \\"programming\\", - \\"vscodeLanguageIds\\": [\\"javascript\\"] + "linguistLanguageId": 183, + "name": "Flow", + "parsers": ["flow", "babel-flow"], + "since": "0.0.0", + "tmScope": "source.js", + "type": "programming", + "vscodeLanguageIds": ["javascript"] }, { - \\"aceMode\\": \\"javascript\\", - \\"codemirrorMimeType\\": \\"text/jsx\\", - \\"codemirrorMode\\": \\"jsx\\", - \\"extensions\\": [\\".jsx\\"], - \\"group\\": \\"JavaScript\\", - \\"linguistLanguageId\\": 183, - \\"name\\": \\"JSX\\", - \\"parsers\\": [ - \\"babel\\", - \\"babel-flow\\", - \\"babel-ts\\", - \\"flow\\", - \\"typescript\\", - \\"espree\\", - \\"meriyah\\" + "aceMode": "javascript", + "codemirrorMimeType": "text/jsx", + "codemirrorMode": "jsx", + "extensions": [".jsx"], + "group": "JavaScript", + "linguistLanguageId": 183, + "name": "JSX", + "parsers": [ + "babel", + "babel-flow", + "babel-ts", + "flow", + "typescript", + "espree", + "meriyah" ], - \\"since\\": \\"0.0.0\\", - \\"tmScope\\": \\"source.js.jsx\\", - \\"type\\": \\"programming\\", - \\"vscodeLanguageIds\\": [\\"javascriptreact\\"] + "since": "0.0.0", + "tmScope": "source.js.jsx", + "type": "programming", + "vscodeLanguageIds": ["javascriptreact"] }, { - \\"aceMode\\": \\"typescript\\", - \\"aliases\\": [\\"ts\\"], - \\"codemirrorMimeType\\": \\"application/typescript\\", - \\"codemirrorMode\\": \\"javascript\\", - \\"color\\": \\"#2b7489\\", - \\"extensions\\": [\\".ts\\", \\".mts\\", \\".cts\\"], - \\"interpreters\\": [\\"deno\\", \\"ts-node\\"], - \\"linguistLanguageId\\": 378, - \\"name\\": \\"TypeScript\\", - \\"parsers\\": [\\"typescript\\", \\"babel-ts\\"], - \\"since\\": \\"1.4.0\\", - \\"tmScope\\": \\"source.ts\\", - \\"type\\": \\"programming\\", - \\"vscodeLanguageIds\\": [\\"typescript\\"] + "aceMode": "typescript", + "aliases": ["ts"], + "codemirrorMimeType": "application/typescript", + "codemirrorMode": "javascript", + "color": "#2b7489", + "extensions": [".ts", ".mts", ".cts"], + "interpreters": ["deno", "ts-node"], + "linguistLanguageId": 378, + "name": "TypeScript", + "parsers": ["typescript", "babel-ts"], + "since": "1.4.0", + "tmScope": "source.ts", + "type": "programming", + "vscodeLanguageIds": ["typescript"] }, { - \\"aceMode\\": \\"javascript\\", - \\"codemirrorMimeType\\": \\"text/jsx\\", - \\"codemirrorMode\\": \\"jsx\\", - \\"extensions\\": [\\".tsx\\"], - \\"group\\": \\"TypeScript\\", - \\"linguistLanguageId\\": 94901924, - \\"name\\": \\"TSX\\", - \\"parsers\\": [\\"typescript\\", \\"babel-ts\\"], - \\"since\\": \\"1.4.0\\", - \\"tmScope\\": \\"source.tsx\\", - \\"type\\": \\"programming\\", - \\"vscodeLanguageIds\\": [\\"typescriptreact\\"] + "aceMode": "javascript", + "codemirrorMimeType": "text/jsx", + "codemirrorMode": "jsx", + "extensions": [".tsx"], + "group": "TypeScript", + "linguistLanguageId": 94901924, + "name": "TSX", + "parsers": ["typescript", "babel-ts"], + "since": "1.4.0", + "tmScope": "source.tsx", + "type": "programming", + "vscodeLanguageIds": ["typescriptreact"] }, { - \\"aceMode\\": \\"json\\", - \\"codemirrorMimeType\\": \\"application/json\\", - \\"codemirrorMode\\": \\"javascript\\", - \\"extensions\\": [], - \\"filenames\\": [\\"package.json\\", \\"package-lock.json\\", \\"composer.json\\"], - \\"linguistLanguageId\\": 174, - \\"name\\": \\"JSON.stringify\\", - \\"parsers\\": [\\"json-stringify\\"], - \\"since\\": \\"1.13.0\\", - \\"tmScope\\": \\"source.json\\", - \\"type\\": \\"data\\", - \\"vscodeLanguageIds\\": [\\"json\\"] + "aceMode": "json", + "codemirrorMimeType": "application/json", + "codemirrorMode": "javascript", + "extensions": [".importmap"], + "filenames": ["package.json", "package-lock.json", "composer.json"], + "linguistLanguageId": 174, + "name": "JSON.stringify", + "parsers": ["json-stringify"], + "since": "1.13.0", + "tmScope": "source.json", + "type": "data", + "vscodeLanguageIds": ["json"] }, { - \\"aceMode\\": \\"json\\", - \\"codemirrorMimeType\\": \\"application/json\\", - \\"codemirrorMode\\": \\"javascript\\", - \\"extensions\\": [ - \\".json\\", - \\".avsc\\", - \\".geojson\\", - \\".gltf\\", - \\".har\\", - \\".ice\\", - \\".JSON-tmLanguage\\", - \\".mcmeta\\", - \\".tfstate\\", - \\".tfstate.backup\\", - \\".topojson\\", - \\".webapp\\", - \\".webmanifest\\", - \\".yy\\", - \\".yyp\\" + "aceMode": "json", + "codemirrorMimeType": "application/json", + "codemirrorMode": "javascript", + "extensions": [ + ".json", + ".avsc", + ".geojson", + ".gltf", + ".har", + ".ice", + ".JSON-tmLanguage", + ".mcmeta", + ".tfstate", + ".tfstate.backup", + ".topojson", + ".webapp", + ".webmanifest", + ".yy", + ".yyp" ], - \\"filenames\\": [ - \\".arcconfig\\", - \\".htmlhintrc\\", - \\".imgbotconfig\\", - \\".tern-config\\", - \\".tern-project\\", - \\".watchmanconfig\\", - \\"Pipfile.lock\\", - \\"composer.lock\\", - \\"mcmod.info\\" + "filenames": [ + ".arcconfig", + ".htmlhintrc", + ".imgbotconfig", + ".tern-config", + ".tern-project", + ".watchmanconfig", + "Pipfile.lock", + "composer.lock", + "mcmod.info" ], - \\"linguistLanguageId\\": 174, - \\"name\\": \\"JSON\\", - \\"parsers\\": [\\"json\\"], - \\"since\\": \\"1.5.0\\", - \\"tmScope\\": \\"source.json\\", - \\"type\\": \\"data\\", - \\"vscodeLanguageIds\\": [\\"json\\"] + "linguistLanguageId": 174, + "name": "JSON", + "parsers": ["json"], + "since": "1.5.0", + "tmScope": "source.json", + "type": "data", + "vscodeLanguageIds": ["json"] }, { - \\"aceMode\\": \\"javascript\\", - \\"aliases\\": [\\"jsonc\\"], - \\"codemirrorMimeType\\": \\"text/javascript\\", - \\"codemirrorMode\\": \\"javascript\\", - \\"extensions\\": [ - \\".jsonc\\", - \\".sublime-build\\", - \\".sublime-commands\\", - \\".sublime-completions\\", - \\".sublime-keymap\\", - \\".sublime-macro\\", - \\".sublime-menu\\", - \\".sublime-mousemap\\", - \\".sublime-project\\", - \\".sublime-settings\\", - \\".sublime-theme\\", - \\".sublime-workspace\\", - \\".sublime_metrics\\", - \\".sublime_session\\" + "aceMode": "javascript", + "aliases": ["jsonc"], + "codemirrorMimeType": "text/javascript", + "codemirrorMode": "javascript", + "extensions": [ + ".jsonc", + ".sublime-build", + ".sublime-commands", + ".sublime-completions", + ".sublime-keymap", + ".sublime-macro", + ".sublime-menu", + ".sublime-mousemap", + ".sublime-project", + ".sublime-settings", + ".sublime-theme", + ".sublime-workspace", + ".sublime_metrics", + ".sublime_session" ], - \\"filenames\\": [ - \\".babelrc\\", - \\".eslintrc.json\\", - \\".jscsrc\\", - \\".jshintrc\\", - \\".jslintrc\\", - \\"api-extractor.json\\", - \\"devcontainer.json\\", - \\"jsconfig.json\\", - \\"language-configuration.json\\", - \\"tsconfig.json\\", - \\"tslint.json\\", - \\".eslintrc\\", - \\".swcrc\\" + "filenames": [ + ".babelrc", + ".eslintrc.json", + ".jscsrc", + ".jshintrc", + ".jslintrc", + "api-extractor.json", + "devcontainer.json", + "jsconfig.json", + "language-configuration.json", + "tsconfig.json", + "tslint.json", + ".eslintrc", + ".swcrc" ], - \\"group\\": \\"JSON\\", - \\"linguistLanguageId\\": 423, - \\"name\\": \\"JSON with Comments\\", - \\"parsers\\": [\\"json\\"], - \\"since\\": \\"1.5.0\\", - \\"tmScope\\": \\"source.js\\", - \\"type\\": \\"data\\", - \\"vscodeLanguageIds\\": [\\"jsonc\\"] + "group": "JSON", + "linguistLanguageId": 423, + "name": "JSON with Comments", + "parsers": ["json"], + "since": "1.5.0", + "tmScope": "source.js", + "type": "data", + "vscodeLanguageIds": ["jsonc"] }, { - \\"aceMode\\": \\"javascript\\", - \\"codemirrorMimeType\\": \\"application/json\\", - \\"codemirrorMode\\": \\"javascript\\", - \\"extensions\\": [\\".json5\\"], - \\"linguistLanguageId\\": 175, - \\"name\\": \\"JSON5\\", - \\"parsers\\": [\\"json5\\"], - \\"since\\": \\"1.13.0\\", - \\"tmScope\\": \\"source.js\\", - \\"type\\": \\"data\\", - \\"vscodeLanguageIds\\": [\\"json5\\"] + "aceMode": "javascript", + "codemirrorMimeType": "application/json", + "codemirrorMode": "javascript", + "extensions": [".json5"], + "linguistLanguageId": 175, + "name": "JSON5", + "parsers": ["json5"], + "since": "1.13.0", + "tmScope": "source.js", + "type": "data", + "vscodeLanguageIds": ["json5"] }, { - \\"aceMode\\": \\"css\\", - \\"codemirrorMimeType\\": \\"text/css\\", - \\"codemirrorMode\\": \\"css\\", - \\"color\\": \\"#563d7c\\", - \\"extensions\\": [\\".css\\", \\".wxss\\"], - \\"linguistLanguageId\\": 50, - \\"name\\": \\"CSS\\", - \\"parsers\\": [\\"css\\"], - \\"since\\": \\"1.4.0\\", - \\"tmScope\\": \\"source.css\\", - \\"type\\": \\"markup\\", - \\"vscodeLanguageIds\\": [\\"css\\"] + "aceMode": "css", + "codemirrorMimeType": "text/css", + "codemirrorMode": "css", + "color": "#563d7c", + "extensions": [".css", ".wxss"], + "linguistLanguageId": 50, + "name": "CSS", + "parsers": ["css"], + "since": "1.4.0", + "tmScope": "source.css", + "type": "markup", + "vscodeLanguageIds": ["css"] }, { - \\"aceMode\\": \\"text\\", - \\"extensions\\": [\\".pcss\\", \\".postcss\\"], - \\"group\\": \\"CSS\\", - \\"linguistLanguageId\\": 262764437, - \\"name\\": \\"PostCSS\\", - \\"parsers\\": [\\"css\\"], - \\"since\\": \\"1.4.0\\", - \\"tmScope\\": \\"source.postcss\\", - \\"type\\": \\"markup\\", - \\"vscodeLanguageIds\\": [\\"postcss\\"] + "aceMode": "text", + "extensions": [".pcss", ".postcss"], + "group": "CSS", + "linguistLanguageId": 262764437, + "name": "PostCSS", + "parsers": ["css"], + "since": "1.4.0", + "tmScope": "source.postcss", + "type": "markup", + "vscodeLanguageIds": ["postcss"] }, { - \\"aceMode\\": \\"less\\", - \\"codemirrorMimeType\\": \\"text/css\\", - \\"codemirrorMode\\": \\"css\\", - \\"color\\": \\"#1d365d\\", - \\"extensions\\": [\\".less\\"], - \\"linguistLanguageId\\": 198, - \\"name\\": \\"Less\\", - \\"parsers\\": [\\"less\\"], - \\"since\\": \\"1.4.0\\", - \\"tmScope\\": \\"source.css.less\\", - \\"type\\": \\"markup\\", - \\"vscodeLanguageIds\\": [\\"less\\"] + "aceMode": "less", + "codemirrorMimeType": "text/css", + "codemirrorMode": "css", + "color": "#1d365d", + "extensions": [".less"], + "linguistLanguageId": 198, + "name": "Less", + "parsers": ["less"], + "since": "1.4.0", + "tmScope": "source.css.less", + "type": "markup", + "vscodeLanguageIds": ["less"] }, { - \\"aceMode\\": \\"scss\\", - \\"codemirrorMimeType\\": \\"text/x-scss\\", - \\"codemirrorMode\\": \\"css\\", - \\"color\\": \\"#c6538c\\", - \\"extensions\\": [\\".scss\\"], - \\"linguistLanguageId\\": 329, - \\"name\\": \\"SCSS\\", - \\"parsers\\": [\\"scss\\"], - \\"since\\": \\"1.4.0\\", - \\"tmScope\\": \\"source.css.scss\\", - \\"type\\": \\"markup\\", - \\"vscodeLanguageIds\\": [\\"scss\\"] + "aceMode": "scss", + "codemirrorMimeType": "text/x-scss", + "codemirrorMode": "css", + "color": "#c6538c", + "extensions": [".scss"], + "linguistLanguageId": 329, + "name": "SCSS", + "parsers": ["scss"], + "since": "1.4.0", + "tmScope": "source.css.scss", + "type": "markup", + "vscodeLanguageIds": ["scss"] }, { - \\"aceMode\\": \\"handlebars\\", - \\"aliases\\": [\\"hbs\\", \\"htmlbars\\"], - \\"color\\": \\"#f7931e\\", - \\"extensions\\": [\\".handlebars\\", \\".hbs\\"], - \\"linguistLanguageId\\": 155, - \\"name\\": \\"Handlebars\\", - \\"parsers\\": [\\"glimmer\\"], - \\"since\\": \\"2.3.0\\", - \\"tmScope\\": \\"text.html.handlebars\\", - \\"type\\": \\"markup\\", - \\"vscodeLanguageIds\\": [\\"handlebars\\"] + "aceMode": "handlebars", + "aliases": ["hbs", "htmlbars"], + "color": "#f7931e", + "extensions": [".handlebars", ".hbs"], + "linguistLanguageId": 155, + "name": "Handlebars", + "parsers": ["glimmer"], + "since": "2.3.0", + "tmScope": "text.html.handlebars", + "type": "markup", + "vscodeLanguageIds": ["handlebars"] }, { - \\"aceMode\\": \\"text\\", - \\"color\\": \\"#e10098\\", - \\"extensions\\": [\\".graphql\\", \\".gql\\", \\".graphqls\\"], - \\"linguistLanguageId\\": 139, - \\"name\\": \\"GraphQL\\", - \\"parsers\\": [\\"graphql\\"], - \\"since\\": \\"1.5.0\\", - \\"tmScope\\": \\"source.graphql\\", - \\"type\\": \\"data\\", - \\"vscodeLanguageIds\\": [\\"graphql\\"] + "aceMode": "text", + "color": "#e10098", + "extensions": [".graphql", ".gql", ".graphqls"], + "linguistLanguageId": 139, + "name": "GraphQL", + "parsers": ["graphql"], + "since": "1.5.0", + "tmScope": "source.graphql", + "type": "data", + "vscodeLanguageIds": ["graphql"] }, { - \\"aceMode\\": \\"markdown\\", - \\"aliases\\": [\\"pandoc\\"], - \\"codemirrorMimeType\\": \\"text/x-gfm\\", - \\"codemirrorMode\\": \\"gfm\\", - \\"color\\": \\"#083fa1\\", - \\"extensions\\": [ - \\".md\\", - \\".markdown\\", - \\".mdown\\", - \\".mdwn\\", - \\".mkd\\", - \\".mkdn\\", - \\".mkdown\\", - \\".ronn\\", - \\".scd\\", - \\".workbook\\" + "aceMode": "markdown", + "aliases": ["pandoc"], + "codemirrorMimeType": "text/x-gfm", + "codemirrorMode": "gfm", + "color": "#083fa1", + "extensions": [ + ".md", + ".markdown", + ".mdown", + ".mdwn", + ".mkd", + ".mkdn", + ".mkdown", + ".ronn", + ".scd", + ".workbook" ], - \\"filenames\\": [\\"contents.lr\\", \\"README\\"], - \\"linguistLanguageId\\": 222, - \\"name\\": \\"Markdown\\", - \\"parsers\\": [\\"markdown\\"], - \\"since\\": \\"1.8.0\\", - \\"tmScope\\": \\"source.gfm\\", - \\"type\\": \\"prose\\", - \\"vscodeLanguageIds\\": [\\"markdown\\"], - \\"wrap\\": true + "filenames": ["contents.lr", "README"], + "linguistLanguageId": 222, + "name": "Markdown", + "parsers": ["markdown"], + "since": "1.8.0", + "tmScope": "source.gfm", + "type": "prose", + "vscodeLanguageIds": ["markdown"], + "wrap": true }, { - \\"aceMode\\": \\"markdown\\", - \\"aliases\\": [\\"pandoc\\"], - \\"codemirrorMimeType\\": \\"text/x-gfm\\", - \\"codemirrorMode\\": \\"gfm\\", - \\"color\\": \\"#083fa1\\", - \\"extensions\\": [\\".mdx\\"], - \\"filenames\\": [], - \\"linguistLanguageId\\": 222, - \\"name\\": \\"MDX\\", - \\"parsers\\": [\\"mdx\\"], - \\"since\\": \\"1.15.0\\", - \\"tmScope\\": \\"source.gfm\\", - \\"type\\": \\"prose\\", - \\"vscodeLanguageIds\\": [\\"mdx\\"], - \\"wrap\\": true + "aceMode": "markdown", + "aliases": ["pandoc"], + "codemirrorMimeType": "text/x-gfm", + "codemirrorMode": "gfm", + "color": "#083fa1", + "extensions": [".mdx"], + "filenames": [], + "linguistLanguageId": 222, + "name": "MDX", + "parsers": ["mdx"], + "since": "1.15.0", + "tmScope": "source.gfm", + "type": "prose", + "vscodeLanguageIds": ["mdx"], + "wrap": true }, { - \\"aceMode\\": \\"html\\", - \\"aliases\\": [\\"xhtml\\"], - \\"codemirrorMimeType\\": \\"text/html\\", - \\"codemirrorMode\\": \\"htmlmixed\\", - \\"color\\": \\"#e34c26\\", - \\"extensions\\": [\\".component.html\\"], - \\"filenames\\": [], - \\"linguistLanguageId\\": 146, - \\"name\\": \\"Angular\\", - \\"parsers\\": [\\"angular\\"], - \\"since\\": \\"1.15.0\\", - \\"tmScope\\": \\"text.html.basic\\", - \\"type\\": \\"markup\\", - \\"vscodeLanguageIds\\": [\\"html\\"] + "aceMode": "html", + "aliases": ["xhtml"], + "codemirrorMimeType": "text/html", + "codemirrorMode": "htmlmixed", + "color": "#e34c26", + "extensions": [".component.html"], + "filenames": [], + "linguistLanguageId": 146, + "name": "Angular", + "parsers": ["angular"], + "since": "1.15.0", + "tmScope": "text.html.basic", + "type": "markup", + "vscodeLanguageIds": ["html"] }, { - \\"aceMode\\": \\"html\\", - \\"aliases\\": [\\"xhtml\\"], - \\"codemirrorMimeType\\": \\"text/html\\", - \\"codemirrorMode\\": \\"htmlmixed\\", - \\"color\\": \\"#e34c26\\", - \\"extensions\\": [ - \\".html\\", - \\".htm\\", - \\".html.hl\\", - \\".inc\\", - \\".xht\\", - \\".xhtml\\", - \\".mjml\\" + "aceMode": "html", + "aliases": ["xhtml"], + "codemirrorMimeType": "text/html", + "codemirrorMode": "htmlmixed", + "color": "#e34c26", + "extensions": [ + ".html", + ".htm", + ".html.hl", + ".inc", + ".xht", + ".xhtml", + ".mjml" ], - \\"linguistLanguageId\\": 146, - \\"name\\": \\"HTML\\", - \\"parsers\\": [\\"html\\"], - \\"since\\": \\"1.15.0\\", - \\"tmScope\\": \\"text.html.basic\\", - \\"type\\": \\"markup\\", - \\"vscodeLanguageIds\\": [\\"html\\"] + "linguistLanguageId": 146, + "name": "HTML", + "parsers": ["html"], + "since": "1.15.0", + "tmScope": "text.html.basic", + "type": "markup", + "vscodeLanguageIds": ["html"] }, { - \\"aceMode\\": \\"html\\", - \\"aliases\\": [\\"xhtml\\"], - \\"codemirrorMimeType\\": \\"text/html\\", - \\"codemirrorMode\\": \\"htmlmixed\\", - \\"color\\": \\"#e34c26\\", - \\"extensions\\": [], - \\"filenames\\": [], - \\"linguistLanguageId\\": 146, - \\"name\\": \\"Lightning Web Components\\", - \\"parsers\\": [\\"lwc\\"], - \\"since\\": \\"1.17.0\\", - \\"tmScope\\": \\"text.html.basic\\", - \\"type\\": \\"markup\\", - \\"vscodeLanguageIds\\": [\\"html\\"] + "aceMode": "html", + "aliases": ["xhtml"], + "codemirrorMimeType": "text/html", + "codemirrorMode": "htmlmixed", + "color": "#e34c26", + "extensions": [], + "filenames": [], + "linguistLanguageId": 146, + "name": "Lightning Web Components", + "parsers": ["lwc"], + "since": "1.17.0", + "tmScope": "text.html.basic", + "type": "markup", + "vscodeLanguageIds": ["html"] }, { - \\"aceMode\\": \\"html\\", - \\"color\\": \\"#41b883\\", - \\"extensions\\": [\\".vue\\"], - \\"linguistLanguageId\\": 391, - \\"name\\": \\"Vue\\", - \\"parsers\\": [\\"vue\\"], - \\"since\\": \\"1.10.0\\", - \\"tmScope\\": \\"text.html.vue\\", - \\"type\\": \\"markup\\", - \\"vscodeLanguageIds\\": [\\"vue\\"] + "aceMode": "html", + "color": "#41b883", + "extensions": [".vue"], + "linguistLanguageId": 391, + "name": "Vue", + "parsers": ["vue"], + "since": "1.10.0", + "tmScope": "text.html.vue", + "type": "markup", + "vscodeLanguageIds": ["vue"] }, { - \\"aceMode\\": \\"yaml\\", - \\"aliases\\": [\\"yml\\"], - \\"codemirrorMimeType\\": \\"text/x-yaml\\", - \\"codemirrorMode\\": \\"yaml\\", - \\"color\\": \\"#cb171e\\", - \\"extensions\\": [ - \\".yml\\", - \\".mir\\", - \\".reek\\", - \\".rviz\\", - \\".sublime-syntax\\", - \\".syntax\\", - \\".yaml\\", - \\".yaml-tmlanguage\\", - \\".yaml.sed\\", - \\".yml.mysql\\" + "aceMode": "yaml", + "aliases": ["yml"], + "codemirrorMimeType": "text/x-yaml", + "codemirrorMode": "yaml", + "color": "#cb171e", + "extensions": [ + ".yml", + ".mir", + ".reek", + ".rviz", + ".sublime-syntax", + ".syntax", + ".yaml", + ".yaml-tmlanguage", + ".yaml.sed", + ".yml.mysql" ], - \\"filenames\\": [ - \\".clang-format\\", - \\".clang-tidy\\", - \\".gemrc\\", - \\"glide.lock\\", - \\".prettierrc\\", - \\".stylelintrc\\" + "filenames": [ + ".clang-format", + ".clang-tidy", + ".gemrc", + "glide.lock", + ".prettierrc", + ".stylelintrc" ], - \\"linguistLanguageId\\": 407, - \\"name\\": \\"YAML\\", - \\"parsers\\": [\\"yaml\\"], - \\"since\\": \\"1.14.0\\", - \\"tmScope\\": \\"source.yaml\\", - \\"type\\": \\"data\\", - \\"vscodeLanguageIds\\": [\\"yaml\\", \\"ansible\\", \\"home-assistant\\"] + "linguistLanguageId": 407, + "name": "YAML", + "parsers": ["yaml"], + "since": "1.14.0", + "tmScope": "source.yaml", + "type": "data", + "vscodeLanguageIds": ["yaml", "ansible", "home-assistant"] } ], - \\"options\\": [ + "options": [ { - \\"category\\": \\"JavaScript\\", - \\"choices\\": [ + "category": "JavaScript", + "choices": [ { - \\"description\\": \\"Always include parens. Example: \`(x) => x\`\\", - \\"value\\": \\"always\\" + "description": "Always include parens. Example: \`(x) => x\`", + "value": "always" }, { - \\"description\\": \\"Omit parens when possible. Example: \`x => x\`\\", - \\"value\\": \\"avoid\\" + "description": "Omit parens when possible. Example: \`x => x\`", + "value": "avoid" } ], - \\"default\\": \\"always\\", - \\"description\\": \\"Include parentheses around a sole arrow function parameter.\\", - \\"name\\": \\"arrowParens\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"1.9.0\\", - \\"type\\": \\"choice\\" + "default": "always", + "description": "Include parentheses around a sole arrow function parameter.", + "name": "arrowParens", + "pluginDefaults": {}, + "since": "1.9.0", + "type": "choice" }, { - \\"category\\": \\"Common\\", - \\"default\\": false, - \\"description\\": \\"Put > of opening tags on the last line instead of on a new line.\\", - \\"name\\": \\"bracketSameLine\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"2.4.0\\", - \\"type\\": \\"boolean\\" + "category": "Common", + "default": false, + "description": "Put > of opening tags on the last line instead of on a new line.", + "name": "bracketSameLine", + "pluginDefaults": {}, + "since": "2.4.0", + "type": "boolean" }, { - \\"category\\": \\"Common\\", - \\"default\\": true, - \\"description\\": \\"Print spaces between brackets.\\", - \\"name\\": \\"bracketSpacing\\", - \\"oppositeDescription\\": \\"Do not print spaces between brackets.\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"0.0.0\\", - \\"type\\": \\"boolean\\" + "category": "Common", + "default": true, + "description": "Print spaces between brackets.", + "name": "bracketSpacing", + "oppositeDescription": "Do not print spaces between brackets.", + "pluginDefaults": {}, + "since": "0.0.0", + "type": "boolean" }, { - \\"category\\": \\"Special\\", - \\"default\\": -1, - \\"description\\": \\"Print (to stderr) where a cursor at the given position would move to after formatting.\\\\nThis option cannot be used with --range-start and --range-end.\\", - \\"name\\": \\"cursorOffset\\", - \\"pluginDefaults\\": {}, - \\"range\\": { \\"end\\": null, \\"start\\": -1, \\"step\\": 1 }, - \\"since\\": \\"1.4.0\\", - \\"type\\": \\"int\\" + "category": "Special", + "default": -1, + "description": "Print (to stderr) where a cursor at the given position would move to after formatting.\\nThis option cannot be used with --range-start and --range-end.", + "name": "cursorOffset", + "pluginDefaults": {}, + "range": { "end": null, "start": -1, "step": 1 }, + "since": "1.4.0", + "type": "int" }, { - \\"category\\": \\"Global\\", - \\"choices\\": [ + "category": "Global", + "choices": [ { - \\"description\\": \\"Format embedded code if Prettier can automatically identify it.\\", - \\"value\\": \\"auto\\" + "description": "Format embedded code if Prettier can automatically identify it.", + "value": "auto" }, { - \\"description\\": \\"Never automatically format embedded code.\\", - \\"value\\": \\"off\\" + "description": "Never automatically format embedded code.", + "value": "off" } ], - \\"default\\": \\"auto\\", - \\"description\\": \\"Control how Prettier formats quoted code embedded in the file.\\", - \\"name\\": \\"embeddedLanguageFormatting\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"2.1.0\\", - \\"type\\": \\"choice\\" + "default": "auto", + "description": "Control how Prettier formats quoted code embedded in the file.", + "name": "embeddedLanguageFormatting", + "pluginDefaults": {}, + "since": "2.1.0", + "type": "choice" }, { - \\"category\\": \\"Global\\", - \\"choices\\": [ + "category": "Global", + "choices": [ { - \\"description\\": \\"Line Feed only (\\\\\\\\n), common on Linux and macOS as well as inside git repos\\", - \\"value\\": \\"lf\\" + "description": "Line Feed only (\\\\n), common on Linux and macOS as well as inside git repos", + "value": "lf" }, { - \\"description\\": \\"Carriage Return + Line Feed characters (\\\\\\\\r\\\\\\\\n), common on Windows\\", - \\"value\\": \\"crlf\\" + "description": "Carriage Return + Line Feed characters (\\\\r\\\\n), common on Windows", + "value": "crlf" }, { - \\"description\\": \\"Carriage Return character only (\\\\\\\\r), used very rarely\\", - \\"value\\": \\"cr\\" + "description": "Carriage Return character only (\\\\r), used very rarely", + "value": "cr" }, { - \\"description\\": \\"Maintain existing\\\\n(mixed values within one file are normalised by looking at what's used after the first line)\\", - \\"value\\": \\"auto\\" + "description": "Maintain existing\\n(mixed values within one file are normalised by looking at what's used after the first line)", + "value": "auto" } ], - \\"default\\": \\"lf\\", - \\"description\\": \\"Which end of line characters to apply.\\", - \\"name\\": \\"endOfLine\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"1.15.0\\", - \\"type\\": \\"choice\\" + "default": "lf", + "description": "Which end of line characters to apply.", + "name": "endOfLine", + "pluginDefaults": {}, + "since": "1.15.0", + "type": "choice" }, { - \\"category\\": \\"Special\\", - \\"description\\": \\"Specify the input filepath. This will be used to do parser inference.\\", - \\"name\\": \\"filepath\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"1.4.0\\", - \\"type\\": \\"path\\" + "category": "Special", + "description": "Specify the input filepath. This will be used to do parser inference.", + "name": "filepath", + "pluginDefaults": {}, + "since": "1.4.0", + "type": "path" }, { - \\"category\\": \\"HTML\\", - \\"choices\\": [ + "category": "HTML", + "choices": [ { - \\"description\\": \\"Respect the default value of CSS display property.\\", - \\"value\\": \\"css\\" + "description": "Respect the default value of CSS display property.", + "value": "css" }, { - \\"description\\": \\"Whitespaces are considered sensitive.\\", - \\"value\\": \\"strict\\" + "description": "Whitespaces are considered sensitive.", + "value": "strict" }, { - \\"description\\": \\"Whitespaces are considered insensitive.\\", - \\"value\\": \\"ignore\\" + "description": "Whitespaces are considered insensitive.", + "value": "ignore" } ], - \\"default\\": \\"css\\", - \\"description\\": \\"How to handle whitespaces in HTML.\\", - \\"name\\": \\"htmlWhitespaceSensitivity\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"1.15.0\\", - \\"type\\": \\"choice\\" + "default": "css", + "description": "How to handle whitespaces in HTML.", + "name": "htmlWhitespaceSensitivity", + "pluginDefaults": {}, + "since": "1.15.0", + "type": "choice" }, { - \\"category\\": \\"Special\\", - \\"default\\": false, - \\"description\\": \\"Insert @format pragma into file's first docblock comment.\\", - \\"name\\": \\"insertPragma\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"1.8.0\\", - \\"type\\": \\"boolean\\" + "category": "Special", + "default": false, + "description": "Insert @format pragma into file's first docblock comment.", + "name": "insertPragma", + "pluginDefaults": {}, + "since": "1.8.0", + "type": "boolean" }, { - \\"category\\": \\"JavaScript\\", - \\"default\\": false, - \\"description\\": \\"Use single quotes in JSX.\\", - \\"name\\": \\"jsxSingleQuote\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"1.15.0\\", - \\"type\\": \\"boolean\\" + "category": "JavaScript", + "default": false, + "description": "Use single quotes in JSX.", + "name": "jsxSingleQuote", + "pluginDefaults": {}, + "since": "1.15.0", + "type": "boolean" }, { - \\"category\\": \\"Global\\", - \\"choices\\": [ - { \\"description\\": \\"Flow\\", \\"value\\": \\"flow\\" }, - { \\"description\\": \\"JavaScript\\", \\"since\\": \\"1.16.0\\", \\"value\\": \\"babel\\" }, - { \\"description\\": \\"Flow\\", \\"since\\": \\"1.16.0\\", \\"value\\": \\"babel-flow\\" }, - { \\"description\\": \\"TypeScript\\", \\"since\\": \\"2.0.0\\", \\"value\\": \\"babel-ts\\" }, + "category": "Global", + "choices": [ + { "description": "Flow", "value": "flow" }, + { "description": "JavaScript", "since": "1.16.0", "value": "babel" }, + { "description": "Flow", "since": "1.16.0", "value": "babel-flow" }, + { "description": "TypeScript", "since": "2.0.0", "value": "babel-ts" }, { - \\"description\\": \\"TypeScript\\", - \\"since\\": \\"1.4.0\\", - \\"value\\": \\"typescript\\" + "description": "TypeScript", + "since": "1.4.0", + "value": "typescript" }, - { \\"description\\": \\"JavaScript\\", \\"since\\": \\"2.6.0\\", \\"value\\": \\"acorn\\" }, - { \\"description\\": \\"JavaScript\\", \\"since\\": \\"2.2.0\\", \\"value\\": \\"espree\\" }, - { \\"description\\": \\"JavaScript\\", \\"since\\": \\"2.2.0\\", \\"value\\": \\"meriyah\\" }, - { \\"description\\": \\"CSS\\", \\"since\\": \\"1.7.1\\", \\"value\\": \\"css\\" }, - { \\"description\\": \\"Less\\", \\"since\\": \\"1.7.1\\", \\"value\\": \\"less\\" }, - { \\"description\\": \\"SCSS\\", \\"since\\": \\"1.7.1\\", \\"value\\": \\"scss\\" }, - { \\"description\\": \\"JSON\\", \\"since\\": \\"1.5.0\\", \\"value\\": \\"json\\" }, - { \\"description\\": \\"JSON5\\", \\"since\\": \\"1.13.0\\", \\"value\\": \\"json5\\" }, + { "description": "JavaScript", "since": "2.6.0", "value": "acorn" }, + { "description": "JavaScript", "since": "2.2.0", "value": "espree" }, + { "description": "JavaScript", "since": "2.2.0", "value": "meriyah" }, + { "description": "CSS", "since": "1.7.1", "value": "css" }, + { "description": "Less", "since": "1.7.1", "value": "less" }, + { "description": "SCSS", "since": "1.7.1", "value": "scss" }, + { "description": "JSON", "since": "1.5.0", "value": "json" }, + { "description": "JSON5", "since": "1.13.0", "value": "json5" }, { - \\"description\\": \\"JSON.stringify\\", - \\"since\\": \\"1.13.0\\", - \\"value\\": \\"json-stringify\\" + "description": "JSON.stringify", + "since": "1.13.0", + "value": "json-stringify" }, - { \\"description\\": \\"GraphQL\\", \\"since\\": \\"1.5.0\\", \\"value\\": \\"graphql\\" }, - { \\"description\\": \\"Markdown\\", \\"since\\": \\"1.8.0\\", \\"value\\": \\"markdown\\" }, - { \\"description\\": \\"MDX\\", \\"since\\": \\"1.15.0\\", \\"value\\": \\"mdx\\" }, - { \\"description\\": \\"Vue\\", \\"since\\": \\"1.10.0\\", \\"value\\": \\"vue\\" }, - { \\"description\\": \\"YAML\\", \\"since\\": \\"1.14.0\\", \\"value\\": \\"yaml\\" }, + { "description": "GraphQL", "since": "1.5.0", "value": "graphql" }, + { "description": "Markdown", "since": "1.8.0", "value": "markdown" }, + { "description": "MDX", "since": "1.15.0", "value": "mdx" }, + { "description": "Vue", "since": "1.10.0", "value": "vue" }, + { "description": "YAML", "since": "1.14.0", "value": "yaml" }, { - \\"description\\": \\"Ember / Handlebars\\", - \\"since\\": \\"2.3.0\\", - \\"value\\": \\"glimmer\\" + "description": "Ember / Handlebars", + "since": "2.3.0", + "value": "glimmer" }, - { \\"description\\": \\"HTML\\", \\"since\\": \\"1.15.0\\", \\"value\\": \\"html\\" }, - { \\"description\\": \\"Angular\\", \\"since\\": \\"1.15.0\\", \\"value\\": \\"angular\\" }, + { "description": "HTML", "since": "1.15.0", "value": "html" }, + { "description": "Angular", "since": "1.15.0", "value": "angular" }, { - \\"description\\": \\"Lightning Web Components\\", - \\"since\\": \\"1.17.0\\", - \\"value\\": \\"lwc\\" + "description": "Lightning Web Components", + "since": "1.17.0", + "value": "lwc" } ], - \\"description\\": \\"Which parser to use.\\", - \\"name\\": \\"parser\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"0.0.10\\", - \\"type\\": \\"choice\\" + "description": "Which parser to use.", + "name": "parser", + "pluginDefaults": {}, + "since": "0.0.10", + "type": "choice" }, { - \\"array\\": true, - \\"category\\": \\"Global\\", - \\"default\\": [], - \\"description\\": \\"Custom directory that contains prettier plugins in node_modules subdirectory.\\\\nOverrides default behavior when plugins are searched relatively to the location of Prettier.\\\\nMultiple values are accepted.\\", - \\"name\\": \\"pluginSearchDirs\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"1.13.0\\", - \\"type\\": \\"path\\" + "array": true, + "category": "Global", + "default": [], + "description": "Custom directory that contains prettier plugins in node_modules subdirectory.\\nOverrides default behavior when plugins are searched relatively to the location of Prettier.\\nMultiple values are accepted.", + "name": "pluginSearchDirs", + "pluginDefaults": {}, + "since": "1.13.0", + "type": "path" }, { - \\"array\\": true, - \\"category\\": \\"Global\\", - \\"default\\": [], - \\"description\\": \\"Add a plugin. Multiple plugins can be passed as separate \`--plugin\`s.\\", - \\"name\\": \\"plugins\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"1.10.0\\", - \\"type\\": \\"path\\" + "array": true, + "category": "Global", + "default": [], + "description": "Add a plugin. Multiple plugins can be passed as separate \`--plugin\`s.", + "name": "plugins", + "pluginDefaults": {}, + "since": "1.10.0", + "type": "path" }, { - \\"category\\": \\"Global\\", - \\"default\\": 80, - \\"description\\": \\"The line length where Prettier will try wrap.\\", - \\"name\\": \\"printWidth\\", - \\"pluginDefaults\\": {}, - \\"range\\": { \\"end\\": null, \\"start\\": 0, \\"step\\": 1 }, - \\"since\\": \\"0.0.0\\", - \\"type\\": \\"int\\" + "category": "Global", + "default": 80, + "description": "The line length where Prettier will try wrap.", + "name": "printWidth", + "pluginDefaults": {}, + "range": { "end": null, "start": 0, "step": 1 }, + "since": "0.0.0", + "type": "int" }, { - \\"category\\": \\"Common\\", - \\"choices\\": [ + "category": "Common", + "choices": [ { - \\"description\\": \\"Wrap prose if it exceeds the print width.\\", - \\"since\\": \\"1.9.0\\", - \\"value\\": \\"always\\" + "description": "Wrap prose if it exceeds the print width.", + "since": "1.9.0", + "value": "always" }, { - \\"description\\": \\"Do not wrap prose.\\", - \\"since\\": \\"1.9.0\\", - \\"value\\": \\"never\\" + "description": "Do not wrap prose.", + "since": "1.9.0", + "value": "never" }, { - \\"description\\": \\"Wrap prose as-is.\\", - \\"since\\": \\"1.9.0\\", - \\"value\\": \\"preserve\\" + "description": "Wrap prose as-is.", + "since": "1.9.0", + "value": "preserve" } ], - \\"default\\": \\"preserve\\", - \\"description\\": \\"How to wrap prose.\\", - \\"name\\": \\"proseWrap\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"1.8.2\\", - \\"type\\": \\"choice\\" + "default": "preserve", + "description": "How to wrap prose.", + "name": "proseWrap", + "pluginDefaults": {}, + "since": "1.8.2", + "type": "choice" }, { - \\"category\\": \\"JavaScript\\", - \\"choices\\": [ + "category": "JavaScript", + "choices": [ { - \\"description\\": \\"Only add quotes around object properties where required.\\", - \\"value\\": \\"as-needed\\" + "description": "Only add quotes around object properties where required.", + "value": "as-needed" }, { - \\"description\\": \\"If at least one property in an object requires quotes, quote all properties.\\", - \\"value\\": \\"consistent\\" + "description": "If at least one property in an object requires quotes, quote all properties.", + "value": "consistent" }, { - \\"description\\": \\"Respect the input use of quotes in object properties.\\", - \\"value\\": \\"preserve\\" + "description": "Respect the input use of quotes in object properties.", + "value": "preserve" } ], - \\"default\\": \\"as-needed\\", - \\"description\\": \\"Change when properties in objects are quoted.\\", - \\"name\\": \\"quoteProps\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"1.17.0\\", - \\"type\\": \\"choice\\" + "default": "as-needed", + "description": "Change when properties in objects are quoted.", + "name": "quoteProps", + "pluginDefaults": {}, + "since": "1.17.0", + "type": "choice" }, { - \\"category\\": \\"Special\\", - \\"default\\": null, - \\"description\\": \\"Format code ending at a given character offset (exclusive).\\\\nThe range will extend forwards to the end of the selected statement.\\\\nThis option cannot be used with --cursor-offset.\\", - \\"name\\": \\"rangeEnd\\", - \\"pluginDefaults\\": {}, - \\"range\\": { \\"end\\": null, \\"start\\": 0, \\"step\\": 1 }, - \\"since\\": \\"1.4.0\\", - \\"type\\": \\"int\\" + "category": "Special", + "default": null, + "description": "Format code ending at a given character offset (exclusive).\\nThe range will extend forwards to the end of the selected statement.\\nThis option cannot be used with --cursor-offset.", + "name": "rangeEnd", + "pluginDefaults": {}, + "range": { "end": null, "start": 0, "step": 1 }, + "since": "1.4.0", + "type": "int" }, { - \\"category\\": \\"Special\\", - \\"default\\": 0, - \\"description\\": \\"Format code starting at a given character offset.\\\\nThe range will extend backwards to the start of the first line containing the selected statement.\\\\nThis option cannot be used with --cursor-offset.\\", - \\"name\\": \\"rangeStart\\", - \\"pluginDefaults\\": {}, - \\"range\\": { \\"end\\": null, \\"start\\": 0, \\"step\\": 1 }, - \\"since\\": \\"1.4.0\\", - \\"type\\": \\"int\\" + "category": "Special", + "default": 0, + "description": "Format code starting at a given character offset.\\nThe range will extend backwards to the start of the first line containing the selected statement.\\nThis option cannot be used with --cursor-offset.", + "name": "rangeStart", + "pluginDefaults": {}, + "range": { "end": null, "start": 0, "step": 1 }, + "since": "1.4.0", + "type": "int" }, { - \\"category\\": \\"Special\\", - \\"default\\": false, - \\"description\\": \\"Require either '@prettier' or '@format' to be present in the file's first docblock comment\\\\nin order for it to be formatted.\\", - \\"name\\": \\"requirePragma\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"1.7.0\\", - \\"type\\": \\"boolean\\" + "category": "Special", + "default": false, + "description": "Require either '@prettier' or '@format' to be present in the file's first docblock comment\\nin order for it to be formatted.", + "name": "requirePragma", + "pluginDefaults": {}, + "since": "1.7.0", + "type": "boolean" }, { - \\"category\\": \\"JavaScript\\", - \\"default\\": true, - \\"description\\": \\"Print semicolons.\\", - \\"name\\": \\"semi\\", - \\"oppositeDescription\\": \\"Do not print semicolons, except at the beginning of lines which may need them.\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"1.0.0\\", - \\"type\\": \\"boolean\\" + "category": "JavaScript", + "default": true, + "description": "Print semicolons.", + "name": "semi", + "oppositeDescription": "Do not print semicolons, except at the beginning of lines which may need them.", + "pluginDefaults": {}, + "since": "1.0.0", + "type": "boolean" }, { - \\"category\\": \\"Common\\", - \\"default\\": false, - \\"description\\": \\"Enforce single attribute per line in HTML, Vue and JSX.\\", - \\"name\\": \\"singleAttributePerLine\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"2.6.0\\", - \\"type\\": \\"boolean\\" + "category": "Common", + "default": false, + "description": "Enforce single attribute per line in HTML, Vue and JSX.", + "name": "singleAttributePerLine", + "pluginDefaults": {}, + "since": "2.6.0", + "type": "boolean" }, { - \\"category\\": \\"Common\\", - \\"default\\": false, - \\"description\\": \\"Use single quotes instead of double quotes.\\", - \\"name\\": \\"singleQuote\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"0.0.0\\", - \\"type\\": \\"boolean\\" + "category": "Common", + "default": false, + "description": "Use single quotes instead of double quotes.", + "name": "singleQuote", + "pluginDefaults": {}, + "since": "0.0.0", + "type": "boolean" }, { - \\"category\\": \\"Global\\", - \\"default\\": 2, - \\"description\\": \\"Number of spaces per indentation level.\\", - \\"name\\": \\"tabWidth\\", - \\"pluginDefaults\\": {}, - \\"range\\": { \\"end\\": null, \\"start\\": 0, \\"step\\": 1 }, - \\"type\\": \\"int\\" + "category": "Global", + "default": 2, + "description": "Number of spaces per indentation level.", + "name": "tabWidth", + "pluginDefaults": {}, + "range": { "end": null, "start": 0, "step": 1 }, + "type": "int" }, { - \\"category\\": \\"JavaScript\\", - \\"choices\\": [ + "category": "JavaScript", + "choices": [ { - \\"description\\": \\"Trailing commas where valid in ES5 (objects, arrays, etc.)\\", - \\"value\\": \\"es5\\" + "description": "Trailing commas where valid in ES5 (objects, arrays, etc.)", + "value": "es5" }, - { \\"description\\": \\"No trailing commas.\\", \\"value\\": \\"none\\" }, + { "description": "No trailing commas.", "value": "none" }, { - \\"description\\": \\"Trailing commas wherever possible (including function arguments).\\", - \\"value\\": \\"all\\" + "description": "Trailing commas wherever possible (including function arguments).", + "value": "all" } ], - \\"default\\": \\"es5\\", - \\"description\\": \\"Print trailing commas wherever possible when multi-line.\\", - \\"name\\": \\"trailingComma\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"0.0.0\\", - \\"type\\": \\"choice\\" + "default": "es5", + "description": "Print trailing commas wherever possible when multi-line.", + "name": "trailingComma", + "pluginDefaults": {}, + "since": "0.0.0", + "type": "choice" }, { - \\"category\\": \\"Global\\", - \\"default\\": false, - \\"description\\": \\"Indent with tabs instead of spaces.\\", - \\"name\\": \\"useTabs\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"1.0.0\\", - \\"type\\": \\"boolean\\" + "category": "Global", + "default": false, + "description": "Indent with tabs instead of spaces.", + "name": "useTabs", + "pluginDefaults": {}, + "since": "1.0.0", + "type": "boolean" }, { - \\"category\\": \\"HTML\\", - \\"default\\": false, - \\"description\\": \\"Indent script and style tags in Vue files.\\", - \\"name\\": \\"vueIndentScriptAndStyle\\", - \\"pluginDefaults\\": {}, - \\"since\\": \\"1.19.0\\", - \\"type\\": \\"boolean\\" + "category": "HTML", + "default": false, + "description": "Indent script and style tags in Vue files.", + "name": "vueIndentScriptAndStyle", + "pluginDefaults": {}, + "since": "1.19.0", + "type": "boolean" } ] } diff --git a/tests/integration/__tests__/__snapshots__/third-party.js.snap b/tests/integration/__tests__/__snapshots__/third-party.js.snap index c7863ffc5..d9088f3a7 100644 --- a/tests/integration/__tests__/__snapshots__/third-party.js.snap +++ b/tests/integration/__tests__/__snapshots__/third-party.js.snap @@ -7,7 +7,7 @@ exports[`cosmiconfig Invalid json file 1`] = ` | ^ 2 | -Unexpected token \\"a\\" (0x61) in JSON at position 1 while parsing \\"{a':}/n\\" +Unexpected token "a" (0x61) in JSON at position 1 while parsing "{a':}/n" > 1 | {a':} | ^ diff --git a/tests/integration/__tests__/__snapshots__/with-config-precedence.js.snap b/tests/integration/__tests__/__snapshots__/with-config-precedence.js.snap index 4bf51dc1f..4bb4d2895 100644 --- a/tests/integration/__tests__/__snapshots__/with-config-precedence.js.snap +++ b/tests/integration/__tests__/__snapshots__/with-config-precedence.js.snap @@ -25,7 +25,7 @@ exports[`CLI overrides are still applied when no config is found with --config-p exports[`CLI overrides are still applied when no config is found with --config-precedence file-override (stdout) 1`] = ` "function noConfigJs() { - console.log(\\"no-config/file.js should have no semicolons\\") + console.log("no-config/file.js should have no semicolons") } " `; @@ -37,7 +37,7 @@ exports[`CLI overrides gets applied when no config exists with --config-preceden exports[`CLI overrides gets applied when no config exists with --config-precedence prefer-file (stdout) 1`] = ` "function noConfigJs() { console.log( - \\"no-config/file.js should have no semicolons\\" + "no-config/file.js should have no semicolons" ); } " @@ -49,8 +49,14 @@ exports[`CLI overrides gets ignored when config exists with --config-precedence exports[`CLI overrides gets ignored when config exists with --config-precedence prefer-file (stdout) 1`] = ` "function js() { - console.log(\\"js/file.js should have tab width 8 (1 if CLI)\\"); + console.log("js/file.js should have tab width 8 (1 if CLI)"); } +"use strict"; + +module.exports = { + endOfLine: "auto", + tabWidth: 8, +}; " `; @@ -60,8 +66,14 @@ exports[`CLI overrides take lower precedence with --config-precedence file-overr exports[`CLI overrides take lower precedence with --config-precedence file-override (stdout) 1`] = ` "function js() { - console.log(\\"js/file.js should have tab width 8 (1 if CLI)\\"); + console.log("js/file.js should have tab width 8 (1 if CLI)"); } +"use strict"; + +module.exports = { + endOfLine: "auto", + tabWidth: 8, +}; " `; @@ -72,52 +84,59 @@ exports[`CLI overrides take precedence with --config-precedence cli-override (st exports[`CLI overrides take precedence with --config-precedence cli-override (stdout) 1`] = ` "function f() { console.log( - \\"should have tab width 8\\" + "should have tab width 8" ) } function f() { console.log( - \\"should have space width 2\\" + "should have space width 2" ) } function f() { console.log( - \\"should have space width 8\\" + "should have space width 8" ) } function f() { console.log( - \\"should have space width 2 despite ../.editorconfig specifying 8, because ./.hg is present\\" + "should have space width 2 despite ../.editorconfig specifying 8, because ./.hg is present" ) } console.log( - \\"should have no semi\\" + "should have no semi" ) console.log( - \\"jest/__best-tests__/.file.js should have semi\\" + "jest/__best-tests__/.file.js should have semi" ); console.log( - \\"jest/__best-tests__/file.js should have semi\\" + "jest/__best-tests__/file.js should have semi" ); console.log( - \\"jest/Component.js should not have semi\\" + "jest/Component.js should not have semi" ) console.log( - \\"jest/Component.test.js should have semi\\" + "jest/Component.test.js should have semi" ); function js() { console.log( - \\"js/file.js should have tab width 8 (1 if CLI)\\" + "js/file.js should have tab width 8 (1 if CLI)" ); } +"use strict"; + +module.exports = + { + endOfLine: "auto", + tabWidth: 8, + }; function noConfigJs() { console.log( - \\"no-config/file.js should have no semicolons\\" + "no-config/file.js should have no semicolons" ) } function packageJs() { console.log( - \\"package/file.js should have tab width 3\\" + "package/file.js should have tab width 3" ); } function rcJson() { @@ -160,52 +179,59 @@ exports[`CLI overrides take precedence without --config-precedence (stderr) 1`] exports[`CLI overrides take precedence without --config-precedence (stdout) 1`] = ` "function f() { console.log( - \\"should have tab width 8\\" + "should have tab width 8" ) } function f() { console.log( - \\"should have space width 2\\" + "should have space width 2" ) } function f() { console.log( - \\"should have space width 8\\" + "should have space width 8" ) } function f() { console.log( - \\"should have space width 2 despite ../.editorconfig specifying 8, because ./.hg is present\\" + "should have space width 2 despite ../.editorconfig specifying 8, because ./.hg is present" ) } console.log( - \\"should have no semi\\" + "should have no semi" ) console.log( - \\"jest/__best-tests__/.file.js should have semi\\" + "jest/__best-tests__/.file.js should have semi" ); console.log( - \\"jest/__best-tests__/file.js should have semi\\" + "jest/__best-tests__/file.js should have semi" ); console.log( - \\"jest/Component.js should not have semi\\" + "jest/Component.js should not have semi" ) console.log( - \\"jest/Component.test.js should have semi\\" + "jest/Component.test.js should have semi" ); function js() { console.log( - \\"js/file.js should have tab width 8 (1 if CLI)\\" + "js/file.js should have tab width 8 (1 if CLI)" ); } +"use strict"; + +module.exports = + { + endOfLine: "auto", + tabWidth: 8, + }; function noConfigJs() { console.log( - \\"no-config/file.js should have no semicolons\\" + "no-config/file.js should have no semicolons" ) } function packageJs() { console.log( - \\"package/file.js should have tab width 3\\" + "package/file.js should have tab width 3" ); } function rcJson() { diff --git a/tests/integration/__tests__/__snapshots__/with-parser-inference.js.snap b/tests/integration/__tests__/__snapshots__/with-parser-inference.js.snap index ae829f1ee..e3c050ee0 100644 --- a/tests/integration/__tests__/__snapshots__/with-parser-inference.js.snap +++ b/tests/integration/__tests__/__snapshots__/with-parser-inference.js.snap @@ -4,7 +4,7 @@ exports[`infers postcss parser (stderr) 1`] = `""`; exports[`infers postcss parser (stdout) 1`] = ` "/* JavaScript */ -\\"use strict\\"; +"use strict"; /* Stylesheet */ * { outline: none; diff --git a/tests/integration/__tests__/__snapshots__/with-shebang.js.snap b/tests/integration/__tests__/__snapshots__/with-shebang.js.snap index 807b89adc..f479a6255 100644 --- a/tests/integration/__tests__/__snapshots__/with-shebang.js.snap +++ b/tests/integration/__tests__/__snapshots__/with-shebang.js.snap @@ -4,7 +4,7 @@ exports[`preserves shebang (stderr) 1`] = `""`; exports[`preserves shebang (stdout) 1`] = ` "#!/usr/bin/env node -\\"use strict\\"; +"use strict"; " `; diff --git a/tests/integration/__tests__/check.js b/tests/integration/__tests__/check.js index bb3b47703..b6c9b7852 100644 --- a/tests/integration/__tests__/check.js +++ b/tests/integration/__tests__/check.js @@ -46,3 +46,11 @@ describe("--checks works in CI just as in a non-TTY mode", () => { expect(await result0.stdout).toEqual(await result1.stdout); }); }); + +describe("--checks should print the number of files that need formatting", () => { + runPrettier("cli/write", ["--check", "unformatted.js", "unformatted2.js"], { + input: "0", + }).test({ + status: 1, + }); +}); diff --git a/tests/integration/__tests__/format.js b/tests/integration/__tests__/format.js index 9bafabe67..f4090be0f 100644 --- a/tests/integration/__tests__/format.js +++ b/tests/integration/__tests__/format.js @@ -54,9 +54,7 @@ test("should work with foo plugin instance", () => { JSON.stringify( prettier.format(input, { parser: "foo-parser", plugins: [fooPlugin] }) ) - ).toMatchInlineSnapshot( - '"\\"{\\\\\\"tabWidth\\\\\\":8,\\\\\\"bracketSpacing\\\\\\":false}\\""' - ); + ).toMatchInlineSnapshot('""{\\"tabWidth\\":8,\\"bracketSpacing\\":false}""'); }); test("'Adjacent JSX' error should not be swallowed by Babel's error recovery", () => { diff --git a/tests/integration/__tests__/performance-flags.js b/tests/integration/__tests__/performance-flags.js new file mode 100644 index 000000000..bf6dd34e8 --- /dev/null +++ b/tests/integration/__tests__/performance-flags.js @@ -0,0 +1,63 @@ +"use strict"; + +const runPrettier = require("../run-prettier.js"); + +describe("should not write file or print code when `--debug-benchmark` or `--debug-repeat` found", () => { + // Can't test `--debug-benchmark`, since it requires `benchmark` package + runPrettier( + "cli/performance-flags", + ["--debug-repeat", "2", "--parser", "babel"], + { + input: "foo( bar )", + } + ).test({ + stderr: "", + status: 0, + stdout: "'--debug-repeat' option found, skipped print code to screen.\n", + write: [], + }); + + runPrettier("cli/performance-flags", [ + "fixture.js", + "--debug-repeat", + "2", + "--parser", + "babel", + ]).test({ + stderr: "", + status: 0, + stdout: + "'--debug-repeat' option found, skipped print code or write files.\n", + write: [], + }); + + runPrettier("cli/performance-flags", [ + "fixture.js", + "--debug-repeat", + "2", + "--parser", + "babel", + "--write", + ]).test({ + stderr: "", + status: 0, + stdout: + "'--debug-repeat' option found, skipped print code or write files.\n", + write: [], + }); + + runPrettier("cli/performance-flags", [ + "fixture.js", + "--debug-repeat", + "2", + "--parser", + "babel", + "--check", + ]).test({ + stderr: "", + status: 0, + stdout: + "'--debug-repeat' option found, skipped print code or write files.\n", + write: [], + }); +}); diff --git a/tests/integration/cli/performance-flags/fixture.js b/tests/integration/cli/performance-flags/fixture.js new file mode 100644 index 000000000..a994de17a --- /dev/null +++ b/tests/integration/cli/performance-flags/fixture.js @@ -0,0 +1 @@ +foo( bar ) diff --git a/tests/integration/cli/write/unformatted2.js b/tests/integration/cli/write/unformatted2.js new file mode 100644 index 000000000..e0b797789 --- /dev/null +++ b/tests/integration/cli/write/unformatted2.js @@ -0,0 +1 @@ +var x = 1; diff --git a/vendors/css-units-list.json b/vendors/css-units-list.json new file mode 100644 index 000000000..ca86a44bc --- /dev/null +++ b/vendors/css-units-list.json @@ -0,0 +1,166 @@ +{ + "absoluteLengths": [ + "cm", + "mm", + "Q", + "in", + "pt", + "pc", + "px" + ], + "angleUnits": [ + "deg", + "grad", + "rad", + "turn" + ], + "default": [ + "em", + "rem", + "ex", + "rex", + "cap", + "rcap", + "ch", + "rch", + "ic", + "ric", + "lh", + "rlh", + "vw", + "svw", + "lvw", + "dvw", + "vh", + "svh", + "lvh", + "dvh", + "vi", + "svi", + "lvi", + "dvi", + "vb", + "svb", + "lvb", + "dvb", + "vmin", + "svmin", + "lvmin", + "dvmin", + "vmax", + "svmax", + "lvmax", + "dvmax", + "cm", + "mm", + "Q", + "in", + "pt", + "pc", + "px", + "deg", + "grad", + "rad", + "turn", + "s", + "ms", + "Hz", + "kHz", + "dpi", + "dpcm", + "dppx", + "x" + ], + "durationUnits": [ + "s", + "ms" + ], + "fontRelativeLengths": [ + "em", + "rem", + "ex", + "rex", + "cap", + "rcap", + "ch", + "rch", + "ic", + "ric", + "lh", + "rlh" + ], + "frequencyUnits": [ + "Hz", + "kHz" + ], + "relativeLengths": [ + "em", + "rem", + "ex", + "rex", + "cap", + "rcap", + "ch", + "rch", + "ic", + "ric", + "lh", + "rlh", + "vw", + "svw", + "lvw", + "dvw", + "vh", + "svh", + "lvh", + "dvh", + "vi", + "svi", + "lvi", + "dvi", + "vb", + "svb", + "lvb", + "dvb", + "vmin", + "svmin", + "lvmin", + "dvmin", + "vmax", + "svmax", + "lvmax", + "dvmax" + ], + "resolutionUnits": [ + "dpi", + "dpcm", + "dppx", + "x" + ], + "viewportPercentageLengths": [ + "vw", + "svw", + "lvw", + "dvw", + "vh", + "svh", + "lvh", + "dvh", + "vi", + "svi", + "lvi", + "dvi", + "vb", + "svb", + "lvb", + "dvb", + "vmin", + "svmin", + "lvmin", + "dvmin", + "vmax", + "svmax", + "lvmax", + "dvmax" + ] +} diff --git a/website/package.json b/website/package.json index 7fc863205..5004ce96b 100644 --- a/website/package.json +++ b/website/package.json @@ -19,11 +19,11 @@ "@babel/preset-env": "7.16.7", "@babel/preset-react": "7.16.7", "@sandhose/prettier-animated-logo": "1.0.3", - "babel-loader": "8.2.4", + "babel-loader": "8.2.5", "concurrently": "7.1.0", "docusaurus": "1.14.7", "js-yaml": "4.1.0", - "webpack": "5.71.0", + "webpack": "5.72.0", "webpack-cli": "4.9.2" } } diff --git a/website/playground/sidebar/SidebarOptions.js b/website/playground/sidebar/SidebarOptions.js index c41c3c484..d47347c71 100644 --- a/website/playground/sidebar/SidebarOptions.js +++ b/website/playground/sidebar/SidebarOptions.js @@ -1,5 +1,5 @@ import * as React from "react"; -import groupBy from "lodash/groupBy"; +import { groupBy } from "../../../src/cli/utils.js"; import { SidebarCategory } from "./components.js"; import Option from "./options.js"; @@ -10,7 +10,7 @@ export default function SidebarOptions({ optionValues, onOptionValueChange, }) { - const options = groupBy(availableOptions, "category"); + const options = groupBy(availableOptions, (option) => option.category); return categories.map((category) => options[category] ? ( diff --git a/website/versioned_docs/version-stable/cli.md b/website/versioned_docs/version-stable/cli.md index 9b92b425e..4c37ec8e3 100644 --- a/website/versioned_docs/version-stable/cli.md +++ b/website/versioned_docs/version-stable/cli.md @@ -70,7 +70,7 @@ Console output if some of the files require re-formatting: Checking formatting... [warn] src/fileA.js [warn] src/fileB.js -[warn] Code style issues found in the above file(s). Forgot to run Prettier? +[warn] Code style issues found in 2 files. Forgot to run Prettier? ``` The command will return exit code `1` in the second case, which is helpful inside the CI pipelines. diff --git a/website/versioned_docs/version-stable/ignore.md b/website/versioned_docs/version-stable/ignore.md index f62f11492..24ae1b3e4 100644 --- a/website/versioned_docs/version-stable/ignore.md +++ b/website/versioned_docs/version-stable/ignore.md @@ -25,6 +25,27 @@ coverage It’s recommended to have a `.prettierignore` in your project! This way you can run `prettier --write .` to make sure that everything is formatted (without mangling files you don’t want, or choking on generated files). And – your editor will know which files _not_ to format! +By default prettier ignores files in version control systems directories (".git", ".svn" and ".hg") and `node_modules` (if [`--with-node-modules` CLI option](cli.md#--with-node-modules) not specified) + +So by default it will be + +```js +**/.git +**/.svn +**/.hg +**/node_modules +``` + +and + +```js +**/.git +**/.svn +**/.hg +``` + +if [`--with-node-modules` CLI option](cli.md#--with-node-modules) provided + (See also the [`--ignore-path` CLI option](cli.md#--ignore-path).) ## JavaScript diff --git a/website/yarn.lock b/website/yarn.lock index af27ba7ab..564200120 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -2511,10 +2511,10 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -babel-loader@8.2.4: - version "8.2.4" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.4.tgz#95f5023c791b2e9e2ca6f67b0984f39c82ff384b" - integrity sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A== +babel-loader@8.2.5: + version "8.2.5" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" + integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== dependencies: find-cache-dir "^3.3.1" loader-utils "^2.0.0" @@ -9016,10 +9016,10 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@5.71.0: - version "5.71.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.71.0.tgz#b01fcf379570b8c5ee06ca06c829ca168c951884" - integrity sha512-g4dFT7CFG8LY0iU5G8nBL6VlkT21Z7dcYDpJAEJV5Q1WLb9UwnFbrem1k7K52ILqEmomN7pnzWFxxE6SlDY56A== +webpack@5.72.0: + version "5.72.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.72.0.tgz#f8bc40d9c6bb489a4b7a8a685101d6022b8b6e28" + integrity sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^0.0.51" diff --git a/yarn.lock b/yarn.lock index 4c03e7435..938522638 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,11 +16,6 @@ dependencies: tslib "^2.2.0" -"@assemblyscript/loader@^0.10.1": - version "0.10.1" - resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.10.1.tgz#70e45678f06c72fa2e350e8553ec4a4d72b92e06" - integrity sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg== - "@babel/code-frame@7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" @@ -45,31 +40,31 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== -"@babel/core@7.17.8", "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.8.tgz#3dac27c190ebc3a4381110d46c80e77efe172e1a" - integrity sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ== +"@babel/core@7.17.9", "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" + integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.7" + "@babel/generator" "^7.17.9" "@babel/helper-compilation-targets" "^7.17.7" "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.8" - "@babel/parser" "^7.17.8" + "@babel/helpers" "^7.17.9" + "@babel/parser" "^7.17.9" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" + "@babel/traverse" "^7.17.9" "@babel/types" "^7.17.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.1.2" + json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.17.3", "@babel/generator@^7.17.7", "@babel/generator@^7.7.2": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad" - integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w== +"@babel/generator@^7.17.9", "@babel/generator@^7.7.2": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" + integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== dependencies: "@babel/types" "^7.17.0" jsesc "^2.5.1" @@ -158,6 +153,14 @@ "@babel/template" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/helper-function-name@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" + integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== + dependencies: + "@babel/template" "^7.16.7" + "@babel/types" "^7.17.0" + "@babel/helper-get-function-arity@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" @@ -280,13 +283,13 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helpers@^7.17.8": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.8.tgz#288450be8c6ac7e4e44df37bcc53d345e07bc106" - integrity sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw== +"@babel/helpers@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" + integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" + "@babel/traverse" "^7.17.9" "@babel/types" "^7.17.0" "@babel/highlight@^7.0.0", "@babel/highlight@^7.16.7": @@ -298,10 +301,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@7.17.8", "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.8.tgz#2817fb9d885dd8132ea0f8eb615a6388cca1c240" - integrity sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ== +"@babel/parser@7.17.9", "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" + integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" @@ -923,18 +926,18 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.7.2": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" - integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.7.2": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" + integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.3" + "@babel/generator" "^7.17.9" "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.3" + "@babel/parser" "^7.17.9" "@babel/types" "^7.17.0" debug "^4.1.0" globals "^11.1.0" @@ -952,16 +955,16 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@cspell/cspell-bundled-dicts@^5.19.5": - version "5.19.5" - resolved "https://registry.yarnpkg.com/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-5.19.5.tgz#09906e24a13dd919ba9e19d0b7a93e9ef2383d28" - integrity sha512-qXW99H+S/529cTOtRBTPiTV1Ay+I2+kcF5lfVblSRsij7fBM6d99dB3Fg6oL0i6okRwOUNFAV4qbxgg7zxA3wA== +"@cspell/cspell-bundled-dicts@^5.19.7": + version "5.19.7" + resolved "https://registry.yarnpkg.com/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-5.19.7.tgz#7e6f6990bbc73ff9b5c0b7ca17cb693c58ae06ee" + integrity sha512-9h2KdI3yKODc8rAxkgB5UZb6RLwwEO25Fo91vnOtM1xfwLhX/scMACU1DoqtnTVaE73HoQ46DYAZAAq/OloRFQ== dependencies: "@cspell/dict-ada" "^2.0.0" "@cspell/dict-aws" "^2.0.0" - "@cspell/dict-bash" "^2.0.1" + "@cspell/dict-bash" "^2.0.2" "@cspell/dict-companies" "^2.0.3" - "@cspell/dict-cpp" "^2.0.0" + "@cspell/dict-cpp" "^2.0.2" "@cspell/dict-cryptocurrencies" "^2.0.0" "@cspell/dict-csharp" "^2.0.1" "@cspell/dict-css" "^2.0.0" @@ -974,6 +977,7 @@ "@cspell/dict-filetypes" "^2.0.1" "@cspell/dict-fonts" "^2.0.0" "@cspell/dict-fullstack" "^2.0.4" + "@cspell/dict-git" "^1.0.1" "@cspell/dict-golang" "^2.0.0" "@cspell/dict-haskell" "^2.0.0" "@cspell/dict-html" "^3.0.1" @@ -997,15 +1001,15 @@ "@cspell/dict-typescript" "^2.0.0" "@cspell/dict-vue" "^2.0.2" -"@cspell/cspell-pipe@^5.19.5": - version "5.19.5" - resolved "https://registry.yarnpkg.com/@cspell/cspell-pipe/-/cspell-pipe-5.19.5.tgz#e780d22523d94317f0462683ba61c39a486919a8" - integrity sha512-dNCMYDgjeWKw7KIptjxHu17UfeT3oiqQk6LkSyi3BewUxpnlLLO7EsxR6GRW+RVU/MrPXe7BF9WgF0gO8m+8cQ== +"@cspell/cspell-pipe@^5.19.7": + version "5.19.7" + resolved "https://registry.yarnpkg.com/@cspell/cspell-pipe/-/cspell-pipe-5.19.7.tgz#398bf6452ce83144f716b60f0f03bd8fb6f80774" + integrity sha512-C2+qovrXyZtoM+IcyMuwwYieoGBwwnWORat+j7bkIkVHf6Pa9spxY3D1IdLt04PqWBKWKHb1g9KzJzw5grBqZw== -"@cspell/cspell-types@^5.19.5": - version "5.19.5" - resolved "https://registry.yarnpkg.com/@cspell/cspell-types/-/cspell-types-5.19.5.tgz#10801d6298f60539d244f3256ad5b5e26f3ea5d3" - integrity sha512-tOzCzuQQ4DdgfnI6+FGBPOVL/1JbH0pWtoOinPoU93/pH29XOKGW2I24HLeESzgskfoZGK274wMFQfGp6oJw9g== +"@cspell/cspell-types@^5.19.7": + version "5.19.7" + resolved "https://registry.yarnpkg.com/@cspell/cspell-types/-/cspell-types-5.19.7.tgz#9888598b976451df61cc980f0b3cc74379d7a358" + integrity sha512-xL9a0oE8kPQ/GCkE/bxE5DTCMTctCpk7tdrhYG26wVbMK1VRGo8fv9w+vRVzXgTfF5jTxolEA1LTtfVBuik1MA== "@cspell/dict-ada@^2.0.0": version "2.0.0" @@ -1017,20 +1021,20 @@ resolved "https://registry.yarnpkg.com/@cspell/dict-aws/-/dict-aws-2.0.0.tgz#9af72af4e59e96029dd4335271d87784843cb7dd" integrity sha512-NKz7pDZ7pwj/b33i3f4WLpC1rOOUMmENwYgftxU+giU2YBeKM2wZbMTSEIzsrel56r0UlQYmdIVlP/B4nnVaoQ== -"@cspell/dict-bash@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@cspell/dict-bash/-/dict-bash-2.0.1.tgz#76f6be974e9a968235d4e1b04c4ae76b16169057" - integrity sha512-pBx3T/5w7fPF8XD5cx3NwtRFvNpQYmYqzM043NKP2hDmlx4uFwbH599Lvt5mwCMZKfIoRXaNUQvq7se2gstQjw== +"@cspell/dict-bash@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-bash/-/dict-bash-2.0.2.tgz#8bc3e0a6c1b9c0df1bd9a1b7694c58d9843fd16b" + integrity sha512-ASIgI/LmV2TYrD4mtk+gm4XmUSTRomOyRt7NDWyBpEww/AeawC2O2NH6FosyUT6dUU3GaXt2wgJRN7R78n1SGg== "@cspell/dict-companies@^2.0.3": version "2.0.3" resolved "https://registry.yarnpkg.com/@cspell/dict-companies/-/dict-companies-2.0.3.tgz#9e0f93a2cc884ff0b98d019123d1dbfb853da872" integrity sha512-O622rMAaHm85AmqNyMki5je8HB/1XlTKbGOXh2UUhooI5qdgdfrjTQ6VBuHwHrfEfuODBHYTNYXVB2m23XqHCg== -"@cspell/dict-cpp@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@cspell/dict-cpp/-/dict-cpp-2.0.0.tgz#d5f04b693d96d41d67050cfe3ca0d342e141347b" - integrity sha512-EflHLs2pHEEXZM6jPfTGR/KHZKQtJlvzqgkg1zaA1YKv5HQNw9Wy5KVPGEV2bjPcFsZJO3xXjO1KBZcoOPjPmA== +"@cspell/dict-cpp@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-cpp/-/dict-cpp-2.0.2.tgz#201b247f4a238e891b69ff32e737332570cccfa7" + integrity sha512-2Z2mOFQ4pSBoQeUaa/Cn0KBwkcRDdWSdBMj8bjGlhl9hXI342drAJMXg8tWsQa4l6J0GJUdmxz6RHmYRSzZJoQ== "@cspell/dict-cryptocurrencies@^2.0.0": version "2.0.0" @@ -1092,6 +1096,11 @@ resolved "https://registry.yarnpkg.com/@cspell/dict-fullstack/-/dict-fullstack-2.0.4.tgz#d7d1c80863d9fd9bda51346edcc5a72de2cf81b4" integrity sha512-+JtYO58QAXnetRN+MGVzI8YbkbFTLpYfl/Cw/tmNqy7U1IDVC4sTXQ2pZvbbeKQWFHBqYvBs0YASV+mTouXYBw== +"@cspell/dict-git@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-git/-/dict-git-1.0.1.tgz#9de5ab2532abcdc8b10bd83ccb1f5e5dae0b6067" + integrity sha512-Rk+eTof/9inF11lvxmkCRK+gODatA3qai8kSASv6OG/JfPvpj7fTHErx/rdgPw/LOTDUafnoTjTYmj7B2MOQXg== + "@cspell/dict-golang@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@cspell/dict-golang/-/dict-golang-2.0.0.tgz#a392533780c9fc3dc959f1358d09f7a6c6d82656" @@ -1210,10 +1219,10 @@ escape-string-regexp "^4.0.0" rollup-plugin-node-polyfills "^0.2.1" -"@eslint/eslintrc@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.1.tgz#8b5e1c49f4077235516bc9ec7d41378c0f69b8c6" - integrity sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ== +"@eslint/eslintrc@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.2.tgz#4989b9e8c0216747ee7cca314ae73791bb281aae" + integrity sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1230,57 +1239,57 @@ resolved "https://registry.yarnpkg.com/@glimmer/env/-/env-0.1.7.tgz#fd2d2b55a9029c6b37a6c935e8c8871ae70dfa07" integrity sha1-/S0rVakCnGs3psk16MiHGucN+gc= -"@glimmer/global-context@0.84.1": - version "0.84.1" - resolved "https://registry.yarnpkg.com/@glimmer/global-context/-/global-context-0.84.1.tgz#2126f5dcf9b36e972e970df43c4068c470b275bf" - integrity sha512-8/BxRRNJ3L//4A4KyMSGu4F0qz2z1D6KCzrenuxg5G4NDtd7NALTH4F28FXBkRstDfg4ic5yg/OqdyjDVyUyOQ== +"@glimmer/global-context@0.84.2": + version "0.84.2" + resolved "https://registry.yarnpkg.com/@glimmer/global-context/-/global-context-0.84.2.tgz#cd4612925dbd68787b9270e91b213691150c307f" + integrity sha512-6FycLh/Eq0P3LA94bJL6WHPJyOTKeQD4KBWhowZ9TbeO3p4/WUr+POKPVEyfIx6YHybhpL9MGj45Y2r0hqVigw== dependencies: "@glimmer/env" "^0.1.7" -"@glimmer/interfaces@0.84.1": - version "0.84.1" - resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.84.1.tgz#ab7afe6212469639e1f1b7eb75e712c193414df1" - integrity sha512-157vdjSe7ts6LO3iltz2OckDIt7BbDnOP6PfxopJOrIQuqUEHUvwtDipgBjibm/2ejM+UP35i6YgrMj8O8V09Q== +"@glimmer/interfaces@0.84.2": + version "0.84.2" + resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.84.2.tgz#764cf92c954adcd1a851e5dc68ec1f6b654dc3bd" + integrity sha512-tMZxQpOddUVmHEOuripkNqVR7ba0K4doiYnFd4WyswqoHPlxqpBujbIamQ+bWCWEF0U4yxsXKa31ekS/JHkiBQ== dependencies: "@simple-dom/interface" "^1.4.0" -"@glimmer/reference@0.84.1": - version "0.84.1" - resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.84.1.tgz#27a78b6c99bb3e9d89b16b2bed53ee4be68e56f6" - integrity sha512-X0XHH2xgDWiY4DuW1fxtGWi4D2aMPj5UEE6vRNhMQ/rsPi1R3wEGRKujFrIzttYdYhZXi7N7ETrBzCGRN0/HFA== +"@glimmer/reference@0.84.2": + version "0.84.2" + resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.84.2.tgz#c8d91a3ba0b92a9430b6023d7b6f39dd56c79af1" + integrity sha512-hH0VD76OXMsGSHbqaqD64u1aBEqy//jhZtIaHGwAHNpTEX+zDtW3ka298KbAn2CZyDDrNAnuc2U1Vy4COR3zlA== dependencies: "@glimmer/env" "^0.1.7" - "@glimmer/global-context" "0.84.1" - "@glimmer/interfaces" "0.84.1" - "@glimmer/util" "0.84.1" - "@glimmer/validator" "0.84.1" + "@glimmer/global-context" "0.84.2" + "@glimmer/interfaces" "0.84.2" + "@glimmer/util" "0.84.2" + "@glimmer/validator" "0.84.2" -"@glimmer/syntax@0.84.1": - version "0.84.1" - resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.84.1.tgz#6140b42180f45a6824c1d0813e2e9bfe1b4e13e1" - integrity sha512-Gbq5a2joOgQPSuiGgDhlymV3rhmgP8Z8stdmoSZHfGq2e5k7sv0if6/9+9/IQO3WPncL8i3aSKX6IBN3lOn/EA== +"@glimmer/syntax@0.84.2": + version "0.84.2" + resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.84.2.tgz#a3f65e51eec20f6adb79c6159d1ad1166fa5bccd" + integrity sha512-SPBd1tpIR9XeaXsXsMRCnKz63eLnIZ0d5G9QC4zIBFBC3pQdtG0F5kWeuRVCdfTIFuR+5WBMfk5jvg+3gbQhjg== dependencies: - "@glimmer/interfaces" "0.84.1" - "@glimmer/util" "0.84.1" + "@glimmer/interfaces" "0.84.2" + "@glimmer/util" "0.84.2" "@handlebars/parser" "~2.0.0" simple-html-tokenizer "^0.5.11" -"@glimmer/util@0.84.1": - version "0.84.1" - resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.84.1.tgz#62ff98f5a3c9bc5a31af2d9d9c4c8c9708b90e69" - integrity sha512-6cEGBo/NienZAO3nZTQfj57LBtABtlYLDjRuivIhSws3SkIFJsmLp2GcHuQw4vpuZfClyWAz1/W04B5xFX3C8w== +"@glimmer/util@0.84.2": + version "0.84.2" + resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.84.2.tgz#2711ba40f25f44b2ea309cad49f5c2622c6211bc" + integrity sha512-VbhzE2s4rmU+qJF3gGBTL1IDjq+/G2Th51XErS8MQVMCmE4CU2pdwSzec8PyOowqCGUOrVIWuMzEI6VoPM4L4w== dependencies: "@glimmer/env" "0.1.7" - "@glimmer/interfaces" "0.84.1" + "@glimmer/interfaces" "0.84.2" "@simple-dom/interface" "^1.4.0" -"@glimmer/validator@0.84.1": - version "0.84.1" - resolved "https://registry.yarnpkg.com/@glimmer/validator/-/validator-0.84.1.tgz#648c9e84f0cfe72de295c8b1a3f588aa35ac5afb" - integrity sha512-ihgVtv0Sot7rm3AJvOH01tKFW/y2Ou2WDfuS3K8Sas2xPd6HLGSc7elNlzux6QXUjUVX6ICyFiS0jL12uoUIdw== +"@glimmer/validator@0.84.2": + version "0.84.2" + resolved "https://registry.yarnpkg.com/@glimmer/validator/-/validator-0.84.2.tgz#29394d262cf8373fe20f4e225c1adc9857a4164b" + integrity sha512-9tpSmwiktsJDqriNEiFfyP+9prMSdk08THA6Ik71xS/sudBKxoDpul678uvyEYST/+Z23F8MxwKccC+QxCMXNA== dependencies: "@glimmer/env" "^0.1.7" - "@glimmer/global-context" "0.84.1" + "@glimmer/global-context" "0.84.2" "@handlebars/parser@~2.0.0": version "2.0.0" @@ -1380,7 +1389,7 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^27.4.2", "@jest/environment@^27.5.1": +"@jest/environment@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== @@ -1402,15 +1411,6 @@ jest-mock "^27.5.1" jest-util "^27.5.1" -"@jest/globals@27.4.2": - version "27.4.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.4.2.tgz#56a402c5ebf22eba1d34e900772147f5126ea2d8" - integrity sha512-KkfaHEttlGpXYAQTZHgrESiEPx2q/DKAFLGLFda1uGVrqc17snd3YVPhOxlXOHIzVPs+lQ/SDB2EIvxyGzb3Ew== - dependencies: - "@jest/environment" "^27.4.2" - "@jest/types" "^27.4.2" - expect "^27.4.2" - "@jest/globals@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" @@ -1511,7 +1511,7 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^27.4.2", "@jest/types@^27.5.0", "@jest/types@^27.5.1": +"@jest/types@^27.5.0", "@jest/types@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== @@ -1719,14 +1719,14 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz#704eb4e75039000531255672bf1c85ee85cf1d67" - integrity sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ== +"@typescript-eslint/eslint-plugin@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz#022531a639640ff3faafaf251d1ce00a2ef000a1" + integrity sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q== dependencies: - "@typescript-eslint/scope-manager" "5.17.0" - "@typescript-eslint/type-utils" "5.17.0" - "@typescript-eslint/utils" "5.17.0" + "@typescript-eslint/scope-manager" "5.20.0" + "@typescript-eslint/type-utils" "5.20.0" + "@typescript-eslint/utils" "5.20.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -1734,59 +1734,59 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/scope-manager@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz#4cea7d0e0bc0e79eb60cad431c89120987c3f952" - integrity sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w== +"@typescript-eslint/scope-manager@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz#79c7fb8598d2942e45b3c881ced95319818c7980" + integrity sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg== dependencies: - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/visitor-keys" "5.17.0" + "@typescript-eslint/types" "5.20.0" + "@typescript-eslint/visitor-keys" "5.20.0" -"@typescript-eslint/type-utils@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz#1c4549d68c89877662224aabb29fbbebf5fc9672" - integrity sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg== +"@typescript-eslint/type-utils@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz#151c21cbe9a378a34685735036e5ddfc00223be3" + integrity sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw== dependencies: - "@typescript-eslint/utils" "5.17.0" + "@typescript-eslint/utils" "5.20.0" debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.17.0.tgz#861ec9e669ffa2aa9b873dd4d28d9b1ce26d216f" - integrity sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw== +"@typescript-eslint/types@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.20.0.tgz#fa39c3c2aa786568302318f1cb51fcf64258c20c" + integrity sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg== -"@typescript-eslint/typescript-estree@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz#a7cba7dfc8f9cc2ac78c18584e684507df4f2488" - integrity sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg== +"@typescript-eslint/typescript-estree@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz#ab73686ab18c8781bbf249c9459a55dc9417d6b0" + integrity sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w== dependencies: - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/visitor-keys" "5.17.0" + "@typescript-eslint/types" "5.20.0" + "@typescript-eslint/visitor-keys" "5.20.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.17.0", "@typescript-eslint/utils@^5.10.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.17.0.tgz#549a9e1d491c6ccd3624bc3c1b098f5cfb45f306" - integrity sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA== +"@typescript-eslint/utils@5.20.0", "@typescript-eslint/utils@^5.10.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.20.0.tgz#b8e959ed11eca1b2d5414e12417fd94cae3517a5" + integrity sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.17.0" - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/typescript-estree" "5.17.0" + "@typescript-eslint/scope-manager" "5.20.0" + "@typescript-eslint/types" "5.20.0" + "@typescript-eslint/typescript-estree" "5.20.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz#52daae45c61b0211b4c81b53a71841911e479128" - integrity sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA== +"@typescript-eslint/visitor-keys@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz#70236b5c6b67fbaf8b2f58bf3414b76c1e826c2a" + integrity sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg== dependencies: - "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/types" "5.20.0" eslint-visitor-keys "^3.0.0" abab@^2.0.3, abab@^2.0.5: @@ -1875,9 +1875,9 @@ ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: type-fest "^0.21.3" ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^4.1.0: version "4.1.0" @@ -2091,11 +2091,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.2.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - benchmark@2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-2.1.4.tgz#09f3de31c916425d498cc2ee565a0ebf3c2a5629" @@ -2159,24 +2154,6 @@ builtin-modules@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== -c8@7.10.0: - version "7.10.0" - resolved "https://registry.yarnpkg.com/c8/-/c8-7.10.0.tgz#c539ebb15d246b03b0c887165982c49293958a73" - integrity sha512-OAwfC5+emvA6R7pkYFVBTOtI5ruf9DahffGmIqUc9l6wEh0h7iAFP6dt/V9Ioqlr2zW5avX9U9/w1I4alTRHkA== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@istanbuljs/schema" "^0.1.2" - find-up "^5.0.0" - foreground-child "^2.0.0" - istanbul-lib-coverage "^3.0.1" - istanbul-lib-report "^3.0.0" - istanbul-reports "^3.0.2" - rimraf "^3.0.0" - test-exclude "^6.0.0" - v8-to-istanbul "^8.0.0" - yargs "^16.2.0" - yargs-parser "^20.2.7" - call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -2418,10 +2395,10 @@ core-js-compat@^3.20.2, core-js-compat@^3.21.0: browserslist "^4.19.1" semver "7.0.0" -core-js@^3.16.2: - version "3.21.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94" - integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig== +core-js@3.22.2, core-js@^3.16.2: + version "3.22.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.2.tgz#3ea0a245b0895fa39d1faa15fe75d91ade504a01" + integrity sha512-Z5I2vzDnEIqO2YhELVMFcL1An2CIsFe9Q7byZhs8c/QxummxZlAHw33TUHbIte987LkisOgL0LwQ1P9D6VISnA== core-util-is@^1.0.3: version "1.0.3" @@ -2457,7 +2434,7 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -2478,42 +2455,42 @@ crypto-random-string@^4.0.0: dependencies: type-fest "^1.0.1" -cspell-gitignore@^5.19.5: - version "5.19.5" - resolved "https://registry.yarnpkg.com/cspell-gitignore/-/cspell-gitignore-5.19.5.tgz#42e1fbdeabb7bfce073a111d1d77f22dd31253d7" - integrity sha512-Wj16pnPmx7PGd2PcVAEsxWnTtfY4qNzUBtfTqo5VEd23WME6SgEtffxm4eSRpHYZmmDclir+Tbb9yQAsZajDeQ== +cspell-gitignore@^5.19.7: + version "5.19.7" + resolved "https://registry.yarnpkg.com/cspell-gitignore/-/cspell-gitignore-5.19.7.tgz#08c073fd3fda72760816c2283822170f4c102720" + integrity sha512-rEqlN6wigNj4P/4Z3QCI1P56KhKkPtXNBpGMXC5CbxIK/NTtn3cLaqHKIZp92pypEnU077lxSCSqRRYCPbg/6A== dependencies: - cspell-glob "^5.19.5" + cspell-glob "^5.19.7" find-up "^5.0.0" -cspell-glob@^5.19.5: - version "5.19.5" - resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-5.19.5.tgz#a25ef16ed91b876bd9764dbedf5ac3ae101bf071" - integrity sha512-fnrUNLNY9CMsr5J1wRPoGpx7aastD05wEZ/NL+Xd7uEmuU+R7gViOjyOPlUMFH+YARwY0youHRiobkl7pJNngw== +cspell-glob@^5.19.7: + version "5.19.7" + resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-5.19.7.tgz#67a43c566addd2f6cba579f6eae4bbefbf9eb364" + integrity sha512-fqlF7oqYTT2A3SRfQr7gzN21fwPoRO9IGKec1L3QeGkni5UPDxGrM2a5z+oLaYs2GN5pEf29BXVlN7dq0jVxIg== dependencies: micromatch "^4.0.5" -cspell-io@^5.19.5: - version "5.19.5" - resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-5.19.5.tgz#e44eeda1b8083b666f4ab9940e0d167b4fa2040a" - integrity sha512-R6q1Dor6mfs1VBpuXVlcm/Vvr96GclO/BtNDK/8ppcm22Ct1VF24MG2itoYO7296dOgR1H4HkndvvEgx3p8fzw== +cspell-io@^5.19.7: + version "5.19.7" + resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-5.19.7.tgz#ce49d4aaeae19206ccd29c5d90599fa675ea5bac" + integrity sha512-SEy8XkuOhvwleGjh336EBYj5HlH1J5FrCI5GxxGiU2g8zvWlBPQmaCfQPPO4tnDrrXtK76rZvolBu1jfCmWwQA== -cspell-lib@^5.19.5: - version "5.19.5" - resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-5.19.5.tgz#653242ec9b06005f478d8f8f0fdb00f4c6c1dadd" - integrity sha512-6HOJ7O+vDYzJs49fHZI5xzsL5TxeR7WsfjWvx1BwgRs1rHdA9/8KFZFX2DJazKRGm+kL1kBO0VJlaF0tvVsjzw== +cspell-lib@^5.19.7: + version "5.19.7" + resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-5.19.7.tgz#91edde38af793bcfb69f5fddf59db6ce5e6fe0cb" + integrity sha512-d4ewH1RBgcBE9NqAh0FexmVQ6YvkDQv9XOysskeDH+G9wm975owENUU/mBd8AyBt2b4YXL/FoLtaKd/7MRoNDA== dependencies: - "@cspell/cspell-bundled-dicts" "^5.19.5" - "@cspell/cspell-pipe" "^5.19.5" - "@cspell/cspell-types" "^5.19.5" + "@cspell/cspell-bundled-dicts" "^5.19.7" + "@cspell/cspell-pipe" "^5.19.7" + "@cspell/cspell-types" "^5.19.7" clear-module "^4.1.2" comment-json "^4.2.2" configstore "^5.0.1" cosmiconfig "^7.0.1" - cspell-glob "^5.19.5" - cspell-io "^5.19.5" - cspell-trie-lib "^5.19.5" - fast-equals "^3.0.0" + cspell-glob "^5.19.7" + cspell-io "^5.19.7" + cspell-trie-lib "^5.19.7" + fast-equals "^3.0.1" find-up "^5.0.0" fs-extra "^10.0.1" gensequence "^3.1.1" @@ -2523,40 +2500,40 @@ cspell-lib@^5.19.5: vscode-languageserver-textdocument "^1.0.4" vscode-uri "^3.0.3" -cspell-trie-lib@^5.19.5: - version "5.19.5" - resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-5.19.5.tgz#e18125c3f56b280109face14c28f7137b3469895" - integrity sha512-yNOmd7uzLiu5UDpbIfJlORx8rJZltLz/ebostAV7UC3wzrOIQgS8xKoFfqiE0iWxIMwmV9eyydVcyzh5grx0gg== +cspell-trie-lib@^5.19.7: + version "5.19.7" + resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-5.19.7.tgz#ce3841f95ace03730ce896089d34c92b5e2d343d" + integrity sha512-qr0HS2hGuyIQhDGG5li0nqIjVi039iPRHR8wpeDoSO0YIBCll22i/VlvW3CSmqXLaP5RRoAc9txiZkIGob6DkQ== dependencies: - "@cspell/cspell-pipe" "^5.19.5" + "@cspell/cspell-pipe" "^5.19.7" fs-extra "^10.0.1" gensequence "^3.1.1" -cspell@5.19.5: - version "5.19.5" - resolved "https://registry.yarnpkg.com/cspell/-/cspell-5.19.5.tgz#5f3bad212d11509534982a1d64c6bf6592be2ee8" - integrity sha512-LFKWBBOY6s1SYJcMlWmFP2ml3kxgzUcUCOY4JYDCAzA088gbBEiSN8sM0X6MhobsMJx4MchxjwveXFRP+1umyA== +cspell@5.19.7: + version "5.19.7" + resolved "https://registry.yarnpkg.com/cspell/-/cspell-5.19.7.tgz#4f6c6ff8baac1f3ace6693c63280a3b7a6b669ff" + integrity sha512-7/y+k708tv68+5lpN23Ew1/djx/EnG838zZ8W2ZDWCc6uRHutqRhpxsjMZr/MT3RHN44iKUj2MgT5+sfnhr4eg== dependencies: - "@cspell/cspell-pipe" "^5.19.5" + "@cspell/cspell-pipe" "^5.19.7" chalk "^4.1.2" commander "^9.1.0" - cspell-gitignore "^5.19.5" - cspell-glob "^5.19.5" - cspell-lib "^5.19.5" + cspell-gitignore "^5.19.7" + cspell-glob "^5.19.7" + cspell-lib "^5.19.7" fast-json-stable-stringify "^2.1.0" file-entry-cache "^6.0.1" fs-extra "^10.0.1" get-stdin "^8.0.0" glob "^7.2.0" imurmurhash "^0.1.4" - semver "^7.3.5" + semver "^7.3.6" strip-ansi "^6.0.1" vscode-uri "^3.0.3" -css-units-list@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/css-units-list/-/css-units-list-0.0.5.tgz#a1aa9318ccd2f64dcda5c3336c5261d1f729cade" - integrity sha512-CDr8YQugedUsousq/G3ZSrod3XH0qGKk09MwahvDhwg72p+bBi068B2EJxuOhhePQdypxCFcbmMIyhQleUxq4A== +css-units-list@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-units-list/-/css-units-list-1.1.0.tgz#46cfb7022c9eb626d9a62589372b8439e1ddb91e" + integrity sha512-WnbCcmr1rHeUb5JbpIWyBjH0HiW6RIZRujOzVvwyE2aZGqtjLFUfiqB9nYmAPlYHNgvqvjhX8YeJv0uF25QoHg== cssom@^0.4.4: version "0.4.4" @@ -2807,90 +2784,90 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.30.tgz#9efcdb3d826b9c67705a0c518d361ab44ae4cc5b" - integrity sha512-vdJ7t8A8msPfKpYUGUV/KaTQRiZ0vDa2XSTlzXVkGGVHLKPeb85PBUtYJcEgw3htW3IdX5i1t1IMdQCwJJgNAg== +esbuild-android-64@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.38.tgz#5b94a1306df31d55055f64a62ff6b763a47b7f64" + integrity sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw== -esbuild-android-arm64@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.30.tgz#7b90fa7578b94da047e0bf3da477cb5775b58664" - integrity sha512-BdgGfxeA5hBQNErLr7BWJUA8xjflEfyaARICy8e0OJYNSAwDbEzOf8LyiKWSrDcgV129mWhi3VpbNQvOIDEHcg== +esbuild-android-arm64@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.38.tgz#78acc80773d16007de5219ccce544c036abd50b8" + integrity sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA== -esbuild-darwin-64@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.30.tgz#275e40eb100286b868d4cd664e6447b53400f7ff" - integrity sha512-VRaOXMMrsG5n53pl4qFZQdXy2+E0NoLP/QH3aDUI0+bQP+ZHDmbINKcDy2IX7GVFI9kqPS18iJNAs5a6/G2LZg== +esbuild-darwin-64@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.38.tgz#e02b1291f629ebdc2aa46fabfacc9aa28ff6aa46" + integrity sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA== -esbuild-darwin-arm64@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.30.tgz#c2b8fe03fb0dcee1d227b226c9c921de71e4d411" - integrity sha512-qDez+fHMOrO9Oc9qjt/x+sy09RJVh62kik5tVybKRLmezeV4qczM9/sAYY57YN0aWLdHbcCj2YqJUWYJNsgKnw== +esbuild-darwin-arm64@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.38.tgz#01eb6650ec010b18c990e443a6abcca1d71290a9" + integrity sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ== -esbuild-freebsd-64@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.30.tgz#328bb272ce6cfcae202b6e0a06c240036335cc91" - integrity sha512-mec1jENcImVVagddZlGWsdAUwBnzR5cgnhzCxv+9fSMxKbx1uZYLLUAnLPp8m/i934zrumR1xGjJ5VoWdPlI2w== +esbuild-freebsd-64@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.38.tgz#790b8786729d4aac7be17648f9ea8e0e16475b5e" + integrity sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig== -esbuild-freebsd-arm64@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.30.tgz#49ce79fa7d7087a941e27432da46bafb5b35a979" - integrity sha512-cpjbTs6Iok/AfeB0JgTzyUJTMStC1SQULmany5nHx6S4GTkSgaAHuJzZO0GcVWqghI4e0YL/bjXAhN5Mn6feNw== +esbuild-freebsd-arm64@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.38.tgz#b66340ab28c09c1098e6d9d8ff656db47d7211e6" + integrity sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ== -esbuild-linux-32@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.30.tgz#c473299f5291130f6d4436808603b529ccbfa785" - integrity sha512-liIONVT4F2kZmOMwtwASqZ8WkIjb5HHBR9HUffdHiuotSTF3CyZO+EJf+Og+SYYuuVIvt0qHNSFjBA/iSESteQ== +esbuild-linux-32@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.38.tgz#7927f950986fd39f0ff319e92839455912b67f70" + integrity sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g== -esbuild-linux-64@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.30.tgz#b4be59f0665a44574a7617c9db673943da6061f8" - integrity sha512-LUnpzoMpRqFON5En4qEj6NWiyH6a1K+Y2qYNKrCy5qPTjDoG/EWeqMz69n8Uv7pRuvDKl3FNGJ1dufTrA5i0sw== +esbuild-linux-64@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.38.tgz#4893d07b229d9cfe34a2b3ce586399e73c3ac519" + integrity sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q== -esbuild-linux-arm64@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.30.tgz#78485a9f49858ea69ced85c3dd0fe58d354f20f8" - integrity sha512-DHZHn6FK5q/KL0fpNT/0jE38Nnyk2rXxKE9WENi95EXtqfOLPgE8tzjTZQNgpr61R95QX4ymQU26ni3IZk8buQ== +esbuild-linux-arm64@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.38.tgz#8442402e37d0b8ae946ac616784d9c1a2041056a" + integrity sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA== -esbuild-linux-arm@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.30.tgz#00392bbe04ac687dd6d9849ecee302bc27f984f2" - integrity sha512-97T+bbXnpqf7mfIG49UR7ZSJFGgvc22byn74qw3Kx2GDCBSQoVFjyWuKOHGXp8nXk3XYrdFF+mQ8yQ7aNsgQvg== +esbuild-linux-arm@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.38.tgz#d5dbf32d38b7f79be0ec6b5fb2f9251fd9066986" + integrity sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA== -esbuild-linux-mips64le@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.30.tgz#cf48a292037c3a9ca3ca84ec0ae4f47bf1247ab4" - integrity sha512-fLUzTFZ7uknC0aPTk7/lM7NmaG/9ZqE3SaHEphcaM009SZK/mDOvZugWi1ss6WGNhk13dUrhkfHcc4FSb9hYhg== +esbuild-linux-mips64le@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.38.tgz#95081e42f698bbe35d8ccee0e3a237594b337eb5" + integrity sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ== -esbuild-linux-ppc64le@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.30.tgz#8e448a54e7040829ee9ecfc68dab0f3a039b1cff" - integrity sha512-2Oudm2WEfj0dNU9bzIl5L/LrsMEmHWsOsYgJJqu8fDyUDgER+J1d33qz3cUdjsJk7gAENayIxDSpsuCszx0w3A== +esbuild-linux-ppc64le@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.38.tgz#dceb0a1b186f5df679618882a7990bd422089b47" + integrity sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q== -esbuild-linux-riscv64@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.30.tgz#118af007f21adb00c4362d5eda3f004290f4d0ef" - integrity sha512-RPMucPW47rV4t2jlelaE948iCRtbZf5RhifxSwzlpM1Mqdyu99MMNK0w4jFreGTmLN+oGomxIOxD6n+2E/XqHw== +esbuild-linux-riscv64@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.38.tgz#61fb8edb75f475f9208c4a93ab2bfab63821afd2" + integrity sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ== -esbuild-linux-s390x@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.30.tgz#e0649e26d8791bf6265685842dcef732de59b49b" - integrity sha512-OZ68r7ok6qO7hdwrwQn2p5jbIRRcUcVaAykB7e0uCA0ODwfeGunILM6phJtq2Oz4dlEEFvd+tSuma3paQKwt+A== +esbuild-linux-s390x@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.38.tgz#34c7126a4937406bf6a5e69100185fd702d12fe0" + integrity sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ== -esbuild-netbsd-64@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.30.tgz#7653db21ab4379a1b557f338b040e3493ff5006c" - integrity sha512-iyejQUKn0TzpPkufq8pSCxOg9NheycQbMbPCmjefTe9wYuUlBt1TcHvdoJnYbQzsAhAh1BNq+s0ycRsIJFZzaQ== +esbuild-netbsd-64@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.38.tgz#322ea9937d9e529183ee281c7996b93eb38a5d95" + integrity sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q== -esbuild-openbsd-64@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.30.tgz#3fad1699cb2ca7a060585356e2881df7b3fa5bb1" - integrity sha512-UyK1MTMcy4j5fH260fsE1o6MVgWNhb62eCK2yCKCRazZv8Nqdc2WiP9ygjWidmEdCDS+A6MuVp9ozk9uoQtQpA== +esbuild-openbsd-64@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.38.tgz#1ca29bb7a2bf09592dcc26afdb45108f08a2cdbd" + integrity sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ== -esbuild-sunos-64@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.30.tgz#2306a178dc2362cf32fc182327c21b49b78ca1a3" - integrity sha512-aQRtRTNKHB4YuG+xXATe5AoRTNY48IJg5vjE8ElxfmjO9+KdX7MHFkTLhlKevCD6rNANtB3qOlSIeAiXTwHNqw== +esbuild-sunos-64@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.38.tgz#c9446f7d8ebf45093e7bb0e7045506a88540019b" + integrity sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA== esbuild-visualizer@0.3.1: version "0.3.1" @@ -2901,46 +2878,46 @@ esbuild-visualizer@0.3.1: open "^7.4.2" yargs "^16.2.0" -esbuild-windows-32@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.30.tgz#ea17b2a9468e346734f926a7edd49de3cc81d12f" - integrity sha512-9/fb1tPtpacMqxAXp3fGHowUDg/l9dVch5hKmCLEZC6PdGljh6h372zMdJwYfH0Bd5CCPT0Wx95uycBLJiqpXA== +esbuild-windows-32@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.38.tgz#f8e9b4602fd0ccbd48e5c8d117ec0ba4040f2ad1" + integrity sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw== -esbuild-windows-64@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.30.tgz#266147f1f45974ac61dece10ab32bc916050dcc2" - integrity sha512-DHgITeUhPAnN9I5O6QBa1GVyPOhiYCn4S4TtQr7sO4+X0LNyqnlmA1M0qmGkUdDC1QQfjI8uQ4G/whdWb2pWIQ== +esbuild-windows-64@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.38.tgz#280f58e69f78535f470905ce3e43db1746518107" + integrity sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw== -esbuild-windows-arm64@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.30.tgz#8e5e9c2455bffaf3e1a387eee4841f5c3797b8a8" - integrity sha512-F1kLyQH7zSgjh5eLxogGZN7C9+KNs9m+s7Q6WZoMmCWT/6j998zlaoECHyM8izJRRfsvw2eZlEa1jO6/IOU1AQ== +esbuild-windows-arm64@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.38.tgz#d97e9ac0f95a4c236d9173fa9f86c983d6a53f54" + integrity sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw== -esbuild@0.14.30: - version "0.14.30" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.30.tgz#8bf6501a58f71e622e7485aeada79c764c1affe4" - integrity sha512-wCecQSBkIjp2xjuXY+wcXS/PpOQo9rFh4NAKPh4Pm9f3fuLcnxkR0rDzA+mYP88FtXIUcXUyYmaIgfrzRl55jA== +esbuild@0.14.38: + version "0.14.38" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.38.tgz#99526b778cd9f35532955e26e1709a16cca2fb30" + integrity sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA== optionalDependencies: - esbuild-android-64 "0.14.30" - esbuild-android-arm64 "0.14.30" - esbuild-darwin-64 "0.14.30" - esbuild-darwin-arm64 "0.14.30" - esbuild-freebsd-64 "0.14.30" - esbuild-freebsd-arm64 "0.14.30" - esbuild-linux-32 "0.14.30" - esbuild-linux-64 "0.14.30" - esbuild-linux-arm "0.14.30" - esbuild-linux-arm64 "0.14.30" - esbuild-linux-mips64le "0.14.30" - esbuild-linux-ppc64le "0.14.30" - esbuild-linux-riscv64 "0.14.30" - esbuild-linux-s390x "0.14.30" - esbuild-netbsd-64 "0.14.30" - esbuild-openbsd-64 "0.14.30" - esbuild-sunos-64 "0.14.30" - esbuild-windows-32 "0.14.30" - esbuild-windows-64 "0.14.30" - esbuild-windows-arm64 "0.14.30" + esbuild-android-64 "0.14.38" + esbuild-android-arm64 "0.14.38" + esbuild-darwin-64 "0.14.38" + esbuild-darwin-arm64 "0.14.38" + esbuild-freebsd-64 "0.14.38" + esbuild-freebsd-arm64 "0.14.38" + esbuild-linux-32 "0.14.38" + esbuild-linux-64 "0.14.38" + esbuild-linux-arm "0.14.38" + esbuild-linux-arm64 "0.14.38" + esbuild-linux-mips64le "0.14.38" + esbuild-linux-ppc64le "0.14.38" + esbuild-linux-riscv64 "0.14.38" + esbuild-linux-s390x "0.14.38" + esbuild-netbsd-64 "0.14.38" + esbuild-openbsd-64 "0.14.38" + esbuild-sunos-64 "0.14.38" + esbuild-windows-32 "0.14.38" + esbuild-windows-64 "0.14.38" + esbuild-windows-arm64 "0.14.38" escalade@^3.1.1: version "3.1.1" @@ -3003,7 +2980,7 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-module-utils@^2.7.2: +eslint-module-utils@^2.7.3: version "2.7.3" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== @@ -3025,29 +3002,29 @@ eslint-plugin-compat@4.0.2: lodash.memoize "4.1.2" semver "7.3.5" -eslint-plugin-import@2.25.4: - version "2.25.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" - integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== +eslint-plugin-import@2.26.0: + version "2.26.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" + integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== dependencies: array-includes "^3.1.4" array.prototype.flat "^1.2.5" debug "^2.6.9" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.2" + eslint-module-utils "^2.7.3" has "^1.0.3" - is-core-module "^2.8.0" + is-core-module "^2.8.1" is-glob "^4.0.3" - minimatch "^3.0.4" + minimatch "^3.1.2" object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.12.0" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" -eslint-plugin-jest@26.1.3: - version "26.1.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-26.1.3.tgz#e722e5efeea18aa9dec7c7349987b641db19feb7" - integrity sha512-Pju+T7MFpo5VFhFlwrkK/9jRUu18r2iugvgyrWOnnGRaVTFFmFXp+xFJpHyqmjjLmGJPKLeEFLVTAxezkApcpQ== +eslint-plugin-jest@26.1.5: + version "26.1.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-26.1.5.tgz#6cfca264818d6d6aa120b019dab4d62b6aa8e775" + integrity sha512-su89aDuljL9bTjEufTXmKUMSFe2kZUL9bi7+woq+C2ukHZordhtfPm4Vg+tdioHBaKf8v3/FXW9uV0ksqhYGFw== dependencies: "@typescript-eslint/utils" "^5.10.0" @@ -3076,17 +3053,17 @@ eslint-plugin-react@7.29.4: semver "^6.3.0" string.prototype.matchall "^4.0.6" -eslint-plugin-regexp@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-regexp/-/eslint-plugin-regexp-1.6.0.tgz#d757e40e53b51b67b84194387495e346774eca86" - integrity sha512-xkaQOzyY4PUukRd8b6zTq+QTtg0dePlCP2dZiM+XGSmvlpDeYiPJHfRDpAfS/sP9YtK6q7DGes1smCyPTD3Lkg== +eslint-plugin-regexp@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-regexp/-/eslint-plugin-regexp-1.7.0.tgz#19b3c98f4f4d5314242ecc8936346b1936de523e" + integrity sha512-nmhXqrEP+O+dz2z5MSkc41u/4fA8oakweoCUdfYwox7DBhzadEqZz8T+s6/UiY0NIU0kv+3UrzBfhPp4wUxbaA== dependencies: comment-parser "^1.1.2" eslint-utils "^3.0.0" grapheme-splitter "^1.0.4" jsdoctypeparser "^9.0.0" refa "^0.9.0" - regexp-ast-analysis "^0.3.0" + regexp-ast-analysis "^0.5.1" regexpp "^3.2.0" scslre "^0.1.6" @@ -3143,12 +3120,12 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@8.12.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.12.0.tgz#c7a5bd1cfa09079aae64c9076c07eada66a46e8e" - integrity sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q== +eslint@8.14.0: + version "8.14.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.14.0.tgz#62741f159d9eb4a79695b28ec4989fcdec623239" + integrity sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw== dependencies: - "@eslint/eslintrc" "^1.2.1" + "@eslint/eslintrc" "^1.2.2" "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" @@ -3239,11 +3216,6 @@ esutils@2.0.3, esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -eventemitter-asyncresource@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz#734ff2e44bf448e627f7748f905d6bdd57bdb65b" - integrity sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ== - execa@6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" @@ -3279,16 +3251,6 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^27.4.2, expect@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" - integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== - dependencies: - "@jest/types" "^27.5.1" - jest-get-type "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - expect@^27.5.0: version "27.5.0" resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.0.tgz#ea2fbebb483c274043098c34a53923a0aee493f0" @@ -3299,6 +3261,16 @@ expect@^27.5.0: jest-matcher-utils "^27.5.0" jest-message-util "^27.5.0" +expect@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" + integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== + dependencies: + "@jest/types" "^27.5.1" + jest-get-type "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + extend@3.0.2, extend@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" @@ -3309,10 +3281,10 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-equals@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-3.0.0.tgz#efbe679d4c0d74040f61d4dda3e6bcb3bdccab82" - integrity sha512-Af7nSOpf7617idrFg0MJY6x7yVDPoO80aSwtKTC0afT8B/SsmvTpA+2a+uPLmhVF5IHmY5NPuBAA3dJrp55rJA== +fast-equals@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-3.0.1.tgz#1e1ae440c04a32478faf698527315cdcf3ee7db2" + integrity sha512-J9FxqqC9E/ja0C+SYhoG3Jl6pQuhP92HNcVC75xDEhB+GUzPnjEp3vMfPIxPprYZFfXS5hpVvvPCWUMiDSMS8Q== fast-glob@3.2.11, fast-glob@^3.2.7, fast-glob@^3.2.9: version "3.2.11" @@ -3417,18 +3389,10 @@ flatten@^1.0.2: resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== -flow-parser@0.175.0: - version "0.175.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.175.0.tgz#622c2e1dadeed0cc3d25779b143a0935bf515983" - integrity sha512-9XG5JGOjhODF+OQF5ufCw8XiGi+8B46scjr3Q49JxN7IDRdT2W+1AOuvKKd6j766/5E7qSuCn/dsq1y3hihntg== - -foreground-child@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" - integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^3.0.2" +flow-parser@0.176.3: + version "0.176.3" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.176.3.tgz#a12d9c79ff1e857b70c9574c3e88be06d2f96181" + integrity sha512-KDzHEoEtc/kbW7NzujhfFkcTCdNi6VK91UpcdT3tc3yEAQdh4JXAEY/0TVJKipjRuVm8E2FxX/3B5Xpm3EFWXA== form-data@^3.0.0: version "3.0.1" @@ -3640,20 +3604,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hdr-histogram-js@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz#0b860534655722b6e3f3e7dca7b78867cf43dcb5" - integrity sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g== - dependencies: - "@assemblyscript/loader" "^0.10.1" - base64-js "^1.2.0" - pako "^1.0.3" - -hdr-histogram-percentiles-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz#9409f4de0c2dda78e61de2d9d78b1e9f3cba283c" - integrity sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw== - hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" @@ -3838,7 +3788,7 @@ is-callable@^1.1.4, is-callable@^1.2.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.2.0, is-core-module@^2.8.0, is-core-module@^2.8.1: +is-core-module@^2.2.0, is-core-module@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== @@ -4007,7 +3957,7 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.1, istanbul-lib-coverage@^3.2.0: +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== @@ -4041,7 +3991,7 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" -istanbul-reports@^3.0.2, istanbul-reports@^3.1.3: +istanbul-reports@^3.1.3: version "3.1.4" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== @@ -4275,19 +4225,6 @@ jest-leak-detector@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-light-runner@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jest-light-runner/-/jest-light-runner-0.1.1.tgz#945791693e7177a036e4ed8f2d3136320d2fc644" - integrity sha512-ZOxlrSG+6LqQ+kYrQq6Xbt/sURcYeaLU9j7JWhN9ffQBBgH39BnFrTcGrY4JpOQ9LmInfD6iu4g00QS4pFEwpA== - dependencies: - expect "^27.5.1" - jest-circus "^27.5.1" - jest-each "^27.5.1" - jest-mock "^27.5.1" - jest-snapshot "^27.5.1" - piscina "^3.1.0" - supports-color "^9.2.1" - jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.0, jest-matcher-utils@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" @@ -4706,7 +4643,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json5@2.2.1, json5@^2.1.2: +json5@2.2.1, json5@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== @@ -4818,11 +4755,6 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash-es@4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -4865,7 +4797,14 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -magic-string@0.25.7, magic-string@^0.25.3: +magic-string@0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.1.tgz#ba9b651354fa9512474199acecf9c6dbe93f97fd" + integrity sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg== + dependencies: + sourcemap-codec "^1.4.8" + +magic-string@^0.25.3: version "0.25.7" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== @@ -4968,7 +4907,7 @@ minimatch@^3.0.4, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimist@1.2.6, minimist@^1.2.0: +minimist@1.2.6, minimist@^1.2.0, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== @@ -4978,10 +4917,10 @@ mkdirp@1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -moment@2.29.1: - version "2.29.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" - integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== +moment@2.29.2: + version "2.29.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.2.tgz#00910c60b20843bcba52d37d58c628b47b1f20e4" + integrity sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg== ms@2.0.0: version "2.0.0" @@ -5008,24 +4947,11 @@ nanoid@^3.1.22: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c" integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA== -nanoid@^3.1.30: - version "3.3.1" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" - integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -nice-napi@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nice-napi/-/nice-napi-1.0.2.tgz#dc0ab5a1eac20ce548802fc5686eaa6bc654927b" - integrity sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA== - dependencies: - node-addon-api "^3.0.0" - node-gyp-build "^4.2.2" - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -5040,11 +4966,6 @@ node-actionlint@1.2.2: chalk "^4.1.1" fast-glob "^3.2.7" -node-addon-api@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== - node-domexception@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" @@ -5059,11 +4980,6 @@ node-fetch@3.2.3: fetch-blob "^3.1.4" formdata-polyfill "^4.0.10" -node-gyp-build@^4.2.2: - version "4.3.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" - integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -5305,15 +5221,10 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -package-name-regex@2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/package-name-regex/-/package-name-regex-2.0.5.tgz#5e3548ffe3dba340b9779d28a024bdb4a19f055b" - integrity sha512-F0lX+FBs/Bo7KWY6EuUXj+oarXU0Og1R2Zdg3F/fVcNw3pPQAKFKxUrugno0Ds5NUztlx/gRLnQW9MF+7VTqAw== - -pako@^1.0.3: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== +package-name-regex@2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/package-name-regex/-/package-name-regex-2.0.6.tgz#b54bcb04d950e38082b7bb38fa558e01c1679334" + integrity sha512-gFL35q7kbE/zBaPA3UKhp2vSzcPYx2ecbYuwv1ucE9Il6IIgBDweBlH8D68UFGZic2MkllKa2KHCfC1IQBQUYA== parent-module@^1.0.0: version "1.0.1" @@ -5420,6 +5331,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -5445,17 +5361,6 @@ pirates@^4.0.4: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== -piscina@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/piscina/-/piscina-3.2.0.tgz#f5a1dde0c05567775690cccefe59d9223924d154" - integrity sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA== - dependencies: - eventemitter-asyncresource "^1.0.0" - hdr-histogram-js "^2.0.1" - hdr-histogram-percentiles-obj "^3.0.0" - optionalDependencies: - nice-napi "^1.0.2" - pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -5480,20 +5385,24 @@ pluralize@^8.0.0: resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== -postcss-less@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-6.0.0.tgz#463b34c60f53b648c237f569aeb2e09149d85af4" - integrity sha512-FPX16mQLyEjLzEuuJtxA8X3ejDLNGGEG503d2YGZR5Ask1SpDN8KmZUMpzCvyalWRywAn1n1VOA5dcqfCLo5rg== +postcss-less@3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.4.tgz#369f58642b5928ef898ffbc1a6e93c958304c5ad" + integrity sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA== + dependencies: + postcss "^7.0.14" postcss-media-query-parser@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= -postcss-scss@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.2.tgz#39ddcc0ab32f155d5ab328ee91353d67a52d537b" - integrity sha512-xfdkU128CkKKKVAwkyt0M8OdnelJ3MRcIRAPPQkRpoPeuzWY3RIeg7piRCpZ79MK7Q16diLXMMAD9dN5mauPlQ== +postcss-scss@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.1.1.tgz#ec3a75fa29a55e016b90bf3269026c53c1d2b383" + integrity sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA== + dependencies: + postcss "^7.0.6" postcss-selector-parser@2.2.3: version "2.2.3" @@ -5513,14 +5422,13 @@ postcss-values-parser@2.0.1: indexes-of "^1.0.1" uniq "^1.0.1" -postcss@8.4.4: - version "8.4.4" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.4.tgz#d53d4ec6a75fd62557a66bb41978bf47ff0c2869" - integrity sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q== +postcss@^7.0.14, postcss@^7.0.6: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== dependencies: - nanoid "^3.1.30" - picocolors "^1.0.0" - source-map-js "^1.0.1" + picocolors "^0.2.1" + source-map "^0.6.1" prelude-ls@^1.2.1: version "1.2.1" @@ -5665,10 +5573,10 @@ regexp-ast-analysis@^0.2.3: refa "^0.9.0" regexpp "^3.2.0" -regexp-ast-analysis@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/regexp-ast-analysis/-/regexp-ast-analysis-0.3.0.tgz#386f177dfe5abc5ac58b51eb5962beac64e898ce" - integrity sha512-11PlbBSUxwWpdj6BdZUKfhDdV9g+cveqHB+BqBQDBD7ZermDBVgtyowUaXTvT0dO3tZYo2bDIr/GoED6X1aYSA== +regexp-ast-analysis@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/regexp-ast-analysis/-/regexp-ast-analysis-0.5.1.tgz#f7c94e6199d6752f3430ae7a1d7a5978114197fb" + integrity sha512-Ca/g9gaTNuMewLuu+mBIq4vCrGRSO8AE9bP32NMQjJ/wBTdWq0g96qLkBb0NbGwEbp7S/q+NQF3o7veeuRfg0g== dependencies: refa "^0.9.0" regexpp "^3.2.0" @@ -5793,7 +5701,7 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@1.22.0, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0: +resolve@1.22.0, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.0: version "1.22.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== @@ -5831,18 +5739,18 @@ rollup-plugin-inject@^3.0.0: magic-string "^0.25.3" rollup-pluginutils "^2.8.1" -rollup-plugin-license@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-license/-/rollup-plugin-license-2.6.1.tgz#20f15cc37950f362f8eefdc6e3a2e659d0cad9eb" - integrity sha512-JPtlXF0tZKyHztKJsyd3HHmQFSkXei+596Xrb/a/bHIdDhvFuNSKimCKkQpoXyspfeVQk7CNay1MyGpFHAXjvg== +rollup-plugin-license@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-license/-/rollup-plugin-license-2.7.0.tgz#89551c371d50441612b9202f172b9935b4b1f7c8" + integrity sha512-0H1Fbuf85rvpadpmAaairdahzQHY0zHtcXkOFV5EStjX9aMCO2Hz5AQp/zZe+K/PB3o6As7R9uzcb8Pw1K94dg== dependencies: commenting "1.1.0" glob "7.2.0" lodash "4.17.21" - magic-string "0.25.7" + magic-string "0.26.1" mkdirp "1.0.4" - moment "2.29.1" - package-name-regex "2.0.5" + moment "2.29.2" + package-name-regex "2.0.6" spdx-expression-validate "2.0.0" spdx-satisfies "5.0.1" @@ -5915,13 +5823,20 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@7.3.5, semver@^7.3.2, semver@^7.3.5: +semver@7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" +semver@7.3.7, semver@^7.3.2, semver@^7.3.5, semver@^7.3.6: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -6004,11 +5919,6 @@ snapshot-diff@0.9.0: jest-snapshot "^27.0.4" pretty-format "^27.0.2" -source-map-js@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - source-map-support@^0.5.6: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -6032,7 +5942,7 @@ source-map@^0.7.3: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== -sourcemap-codec@^1.4.4: +sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== @@ -6264,11 +6174,6 @@ supports-color@^8.0.0: dependencies: has-flag "^4.0.0" -supports-color@^9.2.1: - version "9.2.2" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.2.tgz#502acaf82f2b7ee78eb7c83dcac0f89694e5a7bb" - integrity sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA== - supports-hyperlinks@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" @@ -6378,14 +6283,14 @@ trough@^1.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== -tsconfig-paths@^3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" - integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== +tsconfig-paths@^3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" + integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.1" - minimist "^1.2.0" + minimist "^1.2.6" strip-bom "^3.0.0" tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: @@ -6615,7 +6520,7 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -v8-to-istanbul@^8.0.0, v8-to-istanbul@^8.1.0: +v8-to-istanbul@^8.1.0: version "8.1.1" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== @@ -6846,7 +6751,7 @@ yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@^20.2.2, yargs-parser@^20.2.7: +yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==