diff --git a/.github/workflows/prod-test.yml b/.github/workflows/prod-test.yml index da727d76e..4dd3fdb65 100644 --- a/.github/workflows/prod-test.yml +++ b/.github/workflows/prod-test.yml @@ -37,7 +37,7 @@ jobs: # It should be the last step - name: Check Sizes if: ${{ github.event_name == 'pull_request' && startsWith(github.head_ref, 'dependabot/npm_and_yarn/') }} - uses: preactjs/compressed-size-action@2.4.0 + uses: preactjs/compressed-size-action@2.5.0 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" pattern: "./dist/**/*" diff --git a/changelog_unreleased/javascript/12299.md b/changelog_unreleased/javascript/12299.md new file mode 100644 index 000000000..a8cd28519 --- /dev/null +++ b/changelog_unreleased/javascript/12299.md @@ -0,0 +1,12 @@ +#### Support decorator auto accessors syntax (#12299 by @sosukesuzuki) + +Support auto accessors syntax that is introduced in [new decorators proposal](https://github.com/tc39/proposal-decorators). + + +```jsx +// Example +@defineElement("my-class") +class C extends HTMLElement { + @reactive accessor clicked = false; +} +``` diff --git a/changelog_unreleased/typescript/12351.md b/changelog_unreleased/typescript/12351.md new file mode 100644 index 000000000..11f0276d2 --- /dev/null +++ b/changelog_unreleased/typescript/12351.md @@ -0,0 +1,15 @@ +#### Refactor printing definite assignment assertions (#12351 by @thorn0) + +Also now definite assignment assertions are printed even when they aren't followed by type annotations, which is an error in TS but not a parse error. + + +```ts +// Input +let a!; + +// Prettier stable +let a; + +// Prettier main +let a!; +``` diff --git a/changelog_unreleased/typescript/12390.md b/changelog_unreleased/typescript/12390.md new file mode 100644 index 000000000..21be549b9 --- /dev/null +++ b/changelog_unreleased/typescript/12390.md @@ -0,0 +1,45 @@ +#### Print trailing comma for rest elements in tuple types (#12390 by @sosukesuzuki) + +TypeScript allows to put rest elements in places other than the end of tuple types since [4.2](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-2.html#leadingmiddle-rest-elements-in-tuple-types). +Prettier now prints a trailing comma for the trailing rest element as the it may be followed by the next element. + + +```tsx +// { trailingCommma: "all" } + +// Input +type Foo = [ + Element, + Element, + Element, + Element, + Element, + Element, + ...RestElement, +]; + + +// Prettier stable +type Foo = [ + Element, + Element, + Element, + Element, + Element, + Element, + ...RestElement +]; + + +// Prettier main +type Foo = [ + Element, + Element, + Element, + Element, + Element, + Element, + ...RestElement, +]; + +``` diff --git a/package.json b/package.json index 3867ca958..a2bb1d74b 100644 --- a/package.json +++ b/package.json @@ -101,24 +101,24 @@ "@prettier/jest-light-runner": "file:./tests/config/jest-light-runner", "@types/estree": "0.0.51", "@types/jest": "27.4.1", - "@typescript-eslint/eslint-plugin": "5.12.1", + "@typescript-eslint/eslint-plugin": "5.13.0", "babel-jest": "27.5.1", "benchmark": "2.1.4", "browserslist-to-esbuild": "1.1.1", "cross-env": "7.0.3", "cspell": "5.18.5", "enquirer": "2.3.6", - "esbuild": "0.14.23", + "esbuild": "0.14.25", "esbuild-plugin-text-replace": "1.2.0", "esbuild-visualizer": "0.3.1", "eslint": "8.10.0", - "eslint-config-prettier": "8.4.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.1", "eslint-plugin-prettier-internal-rules": "2.0.1", - "eslint-plugin-react": "7.29.2", + "eslint-plugin-react": "7.29.3", "eslint-plugin-regexp": "1.5.1", "eslint-plugin-unicorn": "41.0.0", "esm-utils": "3.0.0", @@ -128,7 +128,7 @@ "jest-snapshot-serializer-raw": "1.2.0", "jest-watch-typeahead": "1.0.0", "node-actionlint": "1.2.2", - "node-fetch": "3.1.1", + "node-fetch": "3.2.1", "npm-run-all": "4.1.5", "path-browserify": "1.0.1", "prettier": "2.5.1", diff --git a/scripts/release/package.json b/scripts/release/package.json index 8084a11c0..36ecb1f8b 100644 --- a/scripts/release/package.json +++ b/scripts/release/package.json @@ -8,7 +8,7 @@ "chalk": "4.1.2", "execa": "6.1.0", "minimist": "1.2.5", - "node-fetch": "3.2.0", + "node-fetch": "3.2.1", "outdent": "0.8.0", "semver": "7.3.5", "string-width": "5.1.0" diff --git a/scripts/release/yarn.lock b/scripts/release/yarn.lock index 18e991c85..566d83d3b 100644 --- a/scripts/release/yarn.lock +++ b/scripts/release/yarn.lock @@ -2215,10 +2215,10 @@ node-domexception@^1.0.0: resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== -node-fetch@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.0.tgz#59390db4e489184fa35d4b74caf5510e8dfbaf3b" - integrity sha512-8xeimMwMItMw8hRrOl3C9/xzU49HV/yE6ORew/l+dxWimO5A4Ra8ld2rerlJvc/O7et5Z1zrWsPX43v1QBjCxw== +node-fetch@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.1.tgz#002177382810cfb77858857f69a3621a86c45f26" + integrity sha512-Ef3SPFtRWFCDyhvcwCSvacLpkwmYZcD57mmZzAsMiks9TpHpIghe32U9H06tMICnr+X7YCpzH7WvUlUoml2urA== dependencies: data-uri-to-buffer "^4.0.0" fetch-blob "^3.1.4" diff --git a/scripts/vendors/vendor-meta.json b/scripts/vendors/vendor-meta.json new file mode 100644 index 000000000..90230d22a --- /dev/null +++ b/scripts/vendors/vendor-meta.json @@ -0,0 +1,1489 @@ +{ + "versions": { + "string-width": "5.0.1", + "mem": "9.0.2", + "execa": "6.1.0", + "tempy": "2.0.0" + }, + "licenses": [ + { + "name": "ansi-regex", + "maintainers": [], + "version": "6.0.1", + "description": "Regular expression for matching ANSI escape codes", + "repository": "chalk/ansi-regex", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "strip-ansi", + "maintainers": [], + "version": "7.0.1", + "description": "Strip ANSI escape codes from a string", + "repository": "chalk/strip-ansi", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "is-fullwidth-code-point", + "maintainers": [], + "version": "4.0.0", + "description": "Check if the character represented by a given Unicode code point is fullwidth", + "repository": "sindresorhus/is-fullwidth-code-point", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "emoji-regex", + "maintainers": [], + "version": "9.2.2", + "description": "A regular expression to match all Emoji-only symbols as per the Unicode Standard.", + "repository": { + "type": "git", + "url": "https://github.com/mathiasbynens/emoji-regex.git" + }, + "homepage": "https://mths.be/emoji-regex", + "private": false, + "license": "MIT", + "licenseText": "Copyright Mathias Bynens \n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Mathias Bynens", + "email": null, + "url": "https://mathiasbynens.be/" + }, + "contributors": [] + }, + { + "name": "string-width", + "maintainers": [], + "version": "5.0.1", + "description": "Get the visual width of a string - the number of columns required to display it", + "repository": "sindresorhus/string-width", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "mimic-fn", + "maintainers": [], + "version": "4.0.0", + "description": "Make a function mimic another one", + "repository": "sindresorhus/mimic-fn", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "p-defer", + "maintainers": [], + "version": "1.0.0", + "description": "Create a deferred promise", + "repository": "sindresorhus/p-defer", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "map-age-cleaner", + "maintainers": [], + "version": "0.1.3", + "description": "Automatically cleanup expired items in a Map", + "repository": "SamVerschueren/map-age-cleaner", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sam Verschueren (github.com/SamVerschueren)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sam Verschueren", + "email": "sam.verschueren@gmail.com", + "url": "github.com/SamVerschueren" + }, + "contributors": [] + }, + { + "name": "mem", + "maintainers": [], + "version": "9.0.2", + "description": "Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input", + "repository": "sindresorhus/mem", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "isexe", + "maintainers": [], + "version": "2.0.0", + "description": "Minimal module to check if a file is executable.", + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/isexe.git" + }, + "homepage": "https://github.com/isaacs/isexe#readme", + "private": false, + "license": "ISC", + "licenseText": "The ISC License\n\nCopyright (c) Isaac Z. Schlueter and Contributors\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\nIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "contributors": [] + }, + { + "name": "which", + "maintainers": [], + "version": "2.0.2", + "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-which.git" + }, + "homepage": null, + "private": false, + "license": "ISC", + "licenseText": "The ISC License\n\nCopyright (c) Isaac Z. Schlueter and Contributors\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\nIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" + }, + "contributors": [] + }, + { + "name": "path-key", + "maintainers": [], + "version": "3.1.1", + "description": "Get the PATH environment variable key cross-platform", + "repository": "sindresorhus/path-key", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "cross-spawn", + "maintainers": [], + "version": "7.0.3", + "description": "Cross platform child_process#spawn and child_process#spawnSync", + "repository": { + "type": "git", + "url": "git@github.com:moxystudio/node-cross-spawn.git" + }, + "homepage": "https://github.com/moxystudio/node-cross-spawn", + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) 2018 Made With MOXY Lda \n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n", + "author": { + "name": "André Cruz", + "email": "andre@moxy.studio", + "url": null + }, + "contributors": [] + }, + { + "name": "shebang-regex", + "maintainers": [], + "version": "3.0.0", + "description": "Regular expression for matching a shebang line", + "repository": "sindresorhus/shebang-regex", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "shebang-command", + "maintainers": [], + "version": "2.0.0", + "description": "Get the command from a shebang", + "repository": "kevva/shebang-command", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Kevin Mårtensson (github.com/kevva)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Kevin Mårtensson", + "email": "kevinmartensson@gmail.com", + "url": "github.com/kevva" + }, + "contributors": [] + }, + { + "name": "strip-final-newline", + "maintainers": [], + "version": "3.0.0", + "description": "Strip the final newline character from a string/buffer", + "repository": "sindresorhus/strip-final-newline", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "npm-run-path", + "maintainers": [], + "version": "5.1.0", + "description": "Get your PATH prepended with locally installed binaries", + "repository": "sindresorhus/npm-run-path", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "mimic-fn", + "maintainers": [], + "version": "4.0.0", + "description": "Make a function mimic another one", + "repository": "sindresorhus/mimic-fn", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "onetime", + "maintainers": [], + "version": "6.0.0", + "description": "Ensure a function is only called once", + "repository": "sindresorhus/onetime", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "human-signals", + "maintainers": [], + "version": "3.0.1", + "description": "Human-friendly process signals", + "repository": "ehmicky/human-signals", + "homepage": "https://git.io/JeluP", + "private": false, + "license": "Apache-2.0", + "licenseText": " Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"[]\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n\n Copyright 2021 ehmicky \n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n", + "author": { + "name": "ehmicky", + "email": "ehmicky@gmail.com", + "url": "https://github.com/ehmicky" + }, + "contributors": [] + }, + { + "name": "execa", + "maintainers": [], + "version": "6.1.0", + "description": "Process execution for humans", + "repository": "sindresorhus/execa", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "signal-exit", + "maintainers": [], + "version": "3.0.7", + "description": "when you want to fire an event no matter how a process exits.", + "repository": { + "type": "git", + "url": "https://github.com/tapjs/signal-exit.git" + }, + "homepage": "https://github.com/tapjs/signal-exit", + "private": false, + "license": "ISC", + "licenseText": "The ISC License\n\nCopyright (c) 2015, Contributors\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted, provided\nthat the above copyright notice and this permission notice\nappear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE\nLIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES\nOR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,\nWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,\nARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com", + "url": null + }, + "contributors": [] + }, + { + "name": "is-stream", + "maintainers": [], + "version": "3.0.0", + "description": "Check if something is a Node.js stream", + "repository": "sindresorhus/is-stream", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "get-stream", + "maintainers": [], + "version": "6.0.1", + "description": "Get a stream as a string, buffer, or array", + "repository": "sindresorhus/get-stream", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "merge-stream", + "maintainers": [], + "version": "2.0.0", + "description": "Create a stream that emits events from multiple other streams", + "repository": "grncdr/merge-stream", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) Stephen Sugden (stephensugden.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n", + "author": { + "name": "Stephen Sugden", + "email": "me@stephensugden.com", + "url": null + }, + "contributors": [] + }, + { + "name": "crypto-random-string", + "maintainers": [], + "version": "4.0.0", + "description": "Generate a cryptographically strong random string", + "repository": "sindresorhus/crypto-random-string", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "unique-string", + "maintainers": [], + "version": "3.0.0", + "description": "Generate a unique random string", + "repository": "sindresorhus/unique-string", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "temp-dir", + "maintainers": [], + "version": "2.0.0", + "description": "Get the real path of the system temp directory", + "repository": "sindresorhus/temp-dir", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "is-stream", + "maintainers": [], + "version": "3.0.0", + "description": "Check if something is a Node.js stream", + "repository": "sindresorhus/is-stream", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "array-union", + "maintainers": [], + "version": "2.1.0", + "description": "Create an array of unique values, in order, from the input arrays", + "repository": "sindresorhus/array-union", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "merge2", + "maintainers": [], + "version": "1.4.1", + "description": "Merge multiple streams into one stream in sequence or parallel.", + "repository": { + "type": "git", + "url": "git@github.com:teambition/merge2.git" + }, + "homepage": "https://github.com/teambition/merge2", + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) 2014-2020 Teambition\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", + "author": null, + "contributors": [] + }, + { + "name": "fast-glob", + "maintainers": [], + "version": "3.2.11", + "description": "It's a very fast and efficient glob library for Node.js", + "repository": "mrmlnc/fast-glob", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) Denis Malinochkin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", + "author": { + "name": "Denis Malinochkin", + "email": null, + "url": "https://mrmlnc.com" + }, + "contributors": [] + }, + { + "name": "is-extglob", + "maintainers": [], + "version": "2.1.1", + "description": "Returns true if a string has an extglob.", + "repository": "jonschlinkert/is-extglob", + "homepage": "https://github.com/jonschlinkert/is-extglob", + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) 2014-2016, Jon Schlinkert\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n", + "author": { + "name": "Jon Schlinkert", + "email": null, + "url": "https://github.com/jonschlinkert" + }, + "contributors": [] + }, + { + "name": "is-glob", + "maintainers": [], + "version": "4.0.3", + "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.", + "repository": "micromatch/is-glob", + "homepage": "https://github.com/micromatch/is-glob", + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) 2014-2017, Jon Schlinkert.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n", + "author": { + "name": "Jon Schlinkert", + "email": null, + "url": "https://github.com/jonschlinkert" + }, + "contributors": [ + { + "name": "Brian Woodward", + "email": null, + "url": "https://twitter.com/doowb" + }, + { + "name": "Daniel Perez", + "email": null, + "url": "https://tuvistavie.com" + }, + { + "name": "Jon Schlinkert", + "email": null, + "url": "http://twitter.com/jonschlinkert" + } + ] + }, + { + "name": "glob-parent", + "maintainers": [], + "version": "5.1.2", + "description": "Extract the non-magic parent path from a glob string.", + "repository": "gulpjs/glob-parent", + "homepage": null, + "private": false, + "license": "ISC", + "licenseText": "The ISC License\n\nCopyright (c) 2015, 2019 Elan Shanker\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\nIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n", + "author": { + "name": "Gulp Team", + "email": "team@gulpjs.com", + "url": "https://gulpjs.com/" + }, + "contributors": [ + { + "name": "Elan Shanker", + "email": null, + "url": "https://github.com/es128" + }, + { + "name": "Blaine Bublitz", + "email": "blaine.bublitz@gmail.com", + "url": null + } + ] + }, + { + "name": "braces", + "maintainers": [], + "version": "3.0.2", + "description": "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.", + "repository": "micromatch/braces", + "homepage": "https://github.com/micromatch/braces", + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) 2014-2018, Jon Schlinkert.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n", + "author": { + "name": "Jon Schlinkert", + "email": null, + "url": "https://github.com/jonschlinkert" + }, + "contributors": [ + { + "name": "Brian Woodward", + "email": null, + "url": "https://twitter.com/doowb" + }, + { + "name": "Elan Shanker", + "email": null, + "url": "https://github.com/es128" + }, + { + "name": "Eugene Sharygin", + "email": null, + "url": "https://github.com/eush77" + }, + { + "name": "hemanth.hm", + "email": null, + "url": "http://h3manth.com" + }, + { + "name": "Jon Schlinkert", + "email": null, + "url": "http://twitter.com/jonschlinkert" + } + ] + }, + { + "name": "is-number", + "maintainers": [], + "version": "7.0.0", + "description": "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.", + "repository": "jonschlinkert/is-number", + "homepage": "https://github.com/jonschlinkert/is-number", + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) 2014-present, Jon Schlinkert.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n", + "author": { + "name": "Jon Schlinkert", + "email": null, + "url": "https://github.com/jonschlinkert" + }, + "contributors": [ + { + "name": "Jon Schlinkert", + "email": null, + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Olsten Larck", + "email": null, + "url": "https://i.am.charlike.online" + }, + { + "name": "Rouven Weßling", + "email": null, + "url": "www.rouvenwessling.de" + } + ] + }, + { + "name": "to-regex-range", + "maintainers": [], + "version": "5.0.1", + "description": "Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions.", + "repository": "micromatch/to-regex-range", + "homepage": "https://github.com/micromatch/to-regex-range", + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) 2015-present, Jon Schlinkert.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n", + "author": { + "name": "Jon Schlinkert", + "email": null, + "url": "https://github.com/jonschlinkert" + }, + "contributors": [ + { + "name": "Jon Schlinkert", + "email": null, + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Rouven Weßling", + "email": null, + "url": "www.rouvenwessling.de" + } + ] + }, + { + "name": "fill-range", + "maintainers": [], + "version": "7.0.1", + "description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`", + "repository": "jonschlinkert/fill-range", + "homepage": "https://github.com/jonschlinkert/fill-range", + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) 2014-present, Jon Schlinkert.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n", + "author": { + "name": "Jon Schlinkert", + "email": null, + "url": "https://github.com/jonschlinkert" + }, + "contributors": [ + { + "name": "Edo Rivai", + "email": null, + "url": "edo.rivai.nl" + }, + { + "name": "Jon Schlinkert", + "email": null, + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Paul Miller", + "email": null, + "url": "paulmillr.com" + }, + { + "name": "Rouven Weßling", + "email": null, + "url": "www.rouvenwessling.de" + }, + { + "name": null, + "email": null, + "url": "https://github.com/wtgtybhertgeghgtwtg" + } + ] + }, + { + "name": "picomatch", + "maintainers": [], + "version": "2.3.1", + "description": "Blazing fast and accurate glob matcher written in JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions.", + "repository": "micromatch/picomatch", + "homepage": "https://github.com/micromatch/picomatch", + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) 2017-present, Jon Schlinkert.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n", + "author": { + "name": "Jon Schlinkert", + "email": null, + "url": "https://github.com/jonschlinkert" + }, + "contributors": [] + }, + { + "name": "micromatch", + "maintainers": [], + "version": "4.0.4", + "description": "Glob matching for javascript/node.js. A replacement and faster alternative to minimatch and multimatch.", + "repository": "micromatch/micromatch", + "homepage": "https://github.com/micromatch/micromatch", + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) 2014-present, Jon Schlinkert.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n", + "author": { + "name": "Jon Schlinkert", + "email": null, + "url": "https://github.com/jonschlinkert" + }, + "contributors": [ + { + "name": null, + "email": null, + "url": "https://github.com/DianeLooney" + }, + { + "name": "Amila Welihinda", + "email": null, + "url": "amilajack.com" + }, + { + "name": "Bogdan Chadkin", + "email": null, + "url": "https://github.com/TrySound" + }, + { + "name": "Brian Woodward", + "email": null, + "url": "https://twitter.com/doowb" + }, + { + "name": "Devon Govett", + "email": null, + "url": "http://badassjs.com" + }, + { + "name": "Elan Shanker", + "email": null, + "url": "https://github.com/es128" + }, + { + "name": "Fabrício Matté", + "email": null, + "url": "https://ultcombo.js.org" + }, + { + "name": "Jon Schlinkert", + "email": null, + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Martin Kolárik", + "email": null, + "url": "https://kolarik.sk" + }, + { + "name": "Olsten Larck", + "email": null, + "url": "https://i.am.charlike.online" + }, + { + "name": "Paul Miller", + "email": null, + "url": "paulmillr.com" + }, + { + "name": "Tom Byrer", + "email": null, + "url": "https://github.com/tomByrer" + }, + { + "name": "Tyler Akins", + "email": null, + "url": "http://rumkin.com" + }, + { + "name": "Peter Bright", + "email": "drpizza@quiscalusmexicanus.org", + "url": "https://github.com/drpizza" + }, + { + "name": "Kuba Juszczyk", + "email": null, + "url": "https://github.com/ku8ar" + } + ] + }, + { + "name": "@nodelib/fs.stat", + "maintainers": [], + "version": "2.0.5", + "description": "Get the status of a file with some features", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.stat", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) Denis Malinochkin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", + "author": null, + "contributors": [] + }, + { + "name": "queue-microtask", + "maintainers": [], + "version": "1.2.3", + "description": "fast, tiny `queueMicrotask` shim for modern engines", + "repository": { + "type": "git", + "url": "git://github.com/feross/queue-microtask.git" + }, + "homepage": "https://github.com/feross/queue-microtask", + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) Feross Aboukhadijeh\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "https://feross.org" + }, + "contributors": [] + }, + { + "name": "run-parallel", + "maintainers": [], + "version": "1.2.0", + "description": "Run an array of functions in parallel", + "repository": { + "type": "git", + "url": "git://github.com/feross/run-parallel.git" + }, + "homepage": "https://github.com/feross/run-parallel", + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) Feross Aboukhadijeh\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "https://feross.org" + }, + "contributors": [] + }, + { + "name": "@nodelib/fs.scandir", + "maintainers": [], + "version": "2.1.5", + "description": "List files and directories inside the specified directory", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.scandir", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) Denis Malinochkin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", + "author": null, + "contributors": [] + }, + { + "name": "reusify", + "maintainers": [], + "version": "1.0.4", + "description": "Reuse objects and functions with style", + "repository": { + "type": "git", + "url": "git+https://github.com/mcollina/reusify.git" + }, + "homepage": "https://github.com/mcollina/reusify#readme", + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) 2015 Matteo Collina\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n", + "author": { + "name": "Matteo Collina", + "email": "hello@matteocollina.com", + "url": null + }, + "contributors": [] + }, + { + "name": "fastq", + "maintainers": [], + "version": "1.13.0", + "description": "Fast, in memory work queue", + "repository": { + "type": "git", + "url": "git+https://github.com/mcollina/fastq.git" + }, + "homepage": "https://github.com/mcollina/fastq#readme", + "private": false, + "license": "ISC", + "licenseText": "Copyright (c) 2015-2020, Matteo Collina \n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n", + "author": { + "name": "Matteo Collina", + "email": "hello@matteocollina.com", + "url": null + }, + "contributors": [] + }, + { + "name": "@nodelib/fs.walk", + "maintainers": [], + "version": "1.2.8", + "description": "A library for efficiently walking a directory recursively", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) Denis Malinochkin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", + "author": null, + "contributors": [] + }, + { + "name": "path-type", + "maintainers": [], + "version": "4.0.0", + "description": "Check if a path is a file, directory, or symlink", + "repository": "sindresorhus/path-type", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "dir-glob", + "maintainers": [], + "version": "3.0.1", + "description": "Convert directories to glob compatible strings", + "repository": "kevva/dir-glob", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Kevin Mårtensson (github.com/kevva)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Kevin Mårtensson", + "email": "kevinmartensson@gmail.com", + "url": "github.com/kevva" + }, + "contributors": [] + }, + { + "name": "ignore", + "maintainers": [], + "version": "5.2.0", + "description": "Ignore is a manager and filter for .gitignore rules, the one used by eslint, gitbook and many others.", + "repository": { + "type": "git", + "url": "git@github.com:kaelzhang/node-ignore.git" + }, + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "Copyright (c) 2013 Kael Zhang , contributors\nhttp://kael.me/\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", + "author": { + "name": "kael", + "email": null, + "url": null + }, + "contributors": [] + }, + { + "name": "slash", + "maintainers": [], + "version": "3.0.0", + "description": "Convert Windows backslash paths to slash paths", + "repository": "sindresorhus/slash", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "globby", + "maintainers": [], + "version": "11.1.0", + "description": "User-friendly glob matching", + "repository": "sindresorhus/globby", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "graceful-fs", + "maintainers": [], + "version": "4.2.9", + "description": "A drop-in replacement for fs, making various improvements.", + "repository": { + "type": "git", + "url": "https://github.com/isaacs/node-graceful-fs" + }, + "homepage": null, + "private": false, + "license": "ISC", + "licenseText": "The ISC License\n\nCopyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\nIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n", + "author": null, + "contributors": [] + }, + { + "name": "is-path-cwd", + "maintainers": [], + "version": "2.2.0", + "description": "Check if a path is the current working directory", + "repository": "sindresorhus/is-path-cwd", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "is-path-inside", + "maintainers": [], + "version": "3.0.3", + "description": "Check if a path is inside another path", + "repository": "sindresorhus/is-path-inside", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "fs.realpath", + "maintainers": [], + "version": "1.0.0", + "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails", + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/fs.realpath.git" + }, + "homepage": null, + "private": false, + "license": "ISC", + "licenseText": "The ISC License\n\nCopyright (c) Isaac Z. Schlueter and Contributors\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\nIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n----\n\nThis library bundles a version of the `fs.realpath` and `fs.realpathSync`\nmethods from Node.js v0.10 under the terms of the Node.js MIT license.\n\nNode's license follows, also included at the header of `old.js` which contains\nthe licensed code:\n\n Copyright Joyent, Inc. and other Node contributors.\n\n Permission is hereby granted, free of charge, to any person obtaining a\n copy of this software and associated documentation files (the \"Software\"),\n to deal in the Software without restriction, including without limitation\n the rights to use, copy, modify, merge, publish, distribute, sublicense,\n and/or sell copies of the Software, and to permit persons to whom the\n Software is furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "contributors": [] + }, + { + "name": "concat-map", + "maintainers": [], + "version": "0.0.1", + "description": "concatenative mapdashery", + "repository": { + "type": "git", + "url": "git://github.com/substack/node-concat-map.git" + }, + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "This software is released under the MIT license:\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "contributors": [] + }, + { + "name": "balanced-match", + "maintainers": [], + "version": "1.0.2", + "description": "Match balanced character pairs, like \"{\" and \"}\"", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/balanced-match.git" + }, + "homepage": "https://github.com/juliangruber/balanced-match", + "private": false, + "license": "MIT", + "licenseText": "(MIT)\n\nCopyright (c) 2013 Julian Gruber <julian@juliangruber.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "contributors": [] + }, + { + "name": "brace-expansion", + "maintainers": [], + "version": "1.1.11", + "description": "Brace expansion as known from sh/bash", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/brace-expansion.git" + }, + "homepage": "https://github.com/juliangruber/brace-expansion", + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) 2013 Julian Gruber \n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "contributors": [] + }, + { + "name": "minimatch", + "maintainers": [], + "version": "3.1.2", + "description": "a glob matcher in javascript", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/minimatch.git" + }, + "homepage": null, + "private": false, + "license": "ISC", + "licenseText": "The ISC License\n\nCopyright (c) Isaac Z. Schlueter and Contributors\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\nIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" + }, + "contributors": [] + }, + { + "name": "inherits", + "maintainers": [], + "version": "2.0.4", + "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", + "repository": "git://github.com/isaacs/inherits", + "homepage": null, + "private": false, + "license": "ISC", + "licenseText": "The ISC License\n\nCopyright (c) Isaac Z. Schlueter\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n\n", + "author": null, + "contributors": [] + }, + { + "name": "path-is-absolute", + "maintainers": [], + "version": "1.0.1", + "description": "Node.js 0.12 path.isAbsolute() ponyfill", + "repository": "sindresorhus/path-is-absolute", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "The MIT License (MIT)\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "glob", + "maintainers": [], + "version": "7.2.0", + "description": "a little globber", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-glob.git" + }, + "homepage": null, + "private": false, + "license": "ISC", + "licenseText": "The ISC License\n\nCopyright (c) Isaac Z. Schlueter and Contributors\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\nIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n## Glob Logo\n\nGlob's logo created by Tanya Brassie , licensed\nunder a Creative Commons Attribution-ShareAlike 4.0 International License\nhttps://creativecommons.org/licenses/by-sa/4.0/\n", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "contributors": [] + }, + { + "name": "wrappy", + "maintainers": [], + "version": "1.0.2", + "description": "Callback wrapping utility", + "repository": { + "type": "git", + "url": "https://github.com/npm/wrappy" + }, + "homepage": "https://github.com/npm/wrappy", + "private": false, + "license": "ISC", + "licenseText": "The ISC License\n\nCopyright (c) Isaac Z. Schlueter and Contributors\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\nIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "contributors": [] + }, + { + "name": "once", + "maintainers": [], + "version": "1.4.0", + "description": "Run a function exactly one time", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/once" + }, + "homepage": null, + "private": false, + "license": "ISC", + "licenseText": "The ISC License\n\nCopyright (c) Isaac Z. Schlueter and Contributors\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\nIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "contributors": [] + }, + { + "name": "inflight", + "maintainers": [], + "version": "1.0.6", + "description": "Add callbacks to requests in flight to avoid async duplication", + "repository": { + "type": "git", + "url": "https://github.com/npm/inflight.git" + }, + "homepage": "https://github.com/isaacs/inflight", + "private": false, + "license": "ISC", + "licenseText": "The ISC License\n\nCopyright (c) Isaac Z. Schlueter\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\nIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "contributors": [] + }, + { + "name": "rimraf", + "maintainers": [], + "version": "3.0.2", + "description": "A deep deletion module for node (like `rm -rf`)", + "repository": "git://github.com/isaacs/rimraf.git", + "homepage": null, + "private": false, + "license": "ISC", + "licenseText": "The ISC License\n\nCopyright (c) Isaac Z. Schlueter and Contributors\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\nIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "contributors": [] + }, + { + "name": "indent-string", + "maintainers": [], + "version": "4.0.0", + "description": "Indent each line in a string", + "repository": "sindresorhus/indent-string", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "clean-stack", + "maintainers": [], + "version": "2.2.0", + "description": "Clean up error stack traces", + "repository": "sindresorhus/clean-stack", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "aggregate-error", + "maintainers": [], + "version": "3.1.0", + "description": "Create an error from multiple errors", + "repository": "sindresorhus/aggregate-error", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "p-map", + "maintainers": [], + "version": "4.0.0", + "description": "Map over promises concurrently", + "repository": "sindresorhus/p-map", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "del", + "maintainers": [], + "version": "6.0.0", + "description": "Delete files and directories", + "repository": "sindresorhus/del", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + }, + { + "name": "tempy", + "maintainers": [], + "version": "2.0.0", + "description": "Get a random temporary file or directory path", + "repository": "sindresorhus/tempy", + "homepage": null, + "private": false, + "license": "MIT", + "licenseText": "MIT License\n\nCopyright (c) Sindre Sorhus (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "contributors": [] + } + ] +} diff --git a/src/cli/options/get-options-for-file.js b/src/cli/options/get-options-for-file.js index db97b96da..f13edaf71 100644 --- a/src/cli/options/get-options-for-file.js +++ b/src/cli/options/get-options-for-file.js @@ -1,5 +1,6 @@ import dashify from "dashify"; import chalk from "chalk"; +import leven from "leven"; import prettier from "../../index.js"; import prettierInternal from "../prettier-internal.js"; import minimist from "./minimist.js"; @@ -49,7 +50,7 @@ function parseArgsToOptions(context, overrideDefaults) { default: cliifyOptions(overrideDefaults, apiDetailedOptionMap), }), context.detailedOptions, - { logger: false, colorsModule: chalk } + { logger: false, colorsModule: chalk, levenshteinDistance: leven } ), context.detailedOptions ); diff --git a/src/cli/options/parse-cli-arguments.js b/src/cli/options/parse-cli-arguments.js index ddffaaf8c..5983e5193 100644 --- a/src/cli/options/parse-cli-arguments.js +++ b/src/cli/options/parse-cli-arguments.js @@ -1,6 +1,7 @@ import { pick } from "lodash-es"; import camelCase from "camelcase"; import chalk from "chalk"; +import leven from "leven"; import prettierInternal from "../prettier-internal.js"; import getContextOptions from "./get-context-options.js"; import minimist from "./minimist.js"; @@ -28,6 +29,7 @@ function parseArgv(rawArguments, detailedOptions, logger, keys) { const normalized = normalizeCliOptions(argv, detailedOptions, { logger, colorsModule: chalk, + levenshteinDistance: leven, }); return { diff --git a/src/language-js/parse/babel.js b/src/language-js/parse/babel.js index 018c79351..69e4929c2 100644 --- a/src/language-js/parse/babel.js +++ b/src/language-js/parse/babel.js @@ -40,6 +40,7 @@ const parseOptions = { "asyncDoExpressions", "regexpUnicodeSets", "destructuringPrivate", + "decoratorAutoAccessors", ], tokens: true, ranges: true, diff --git a/src/language-js/print/class.js b/src/language-js/print/class.js index 478ebe777..36e1b7c8b 100644 --- a/src/language-js/print/class.js +++ b/src/language-js/print/class.js @@ -4,7 +4,11 @@ import doc from "../../document/index.js"; import { hasComment, CommentCheckFlags } from "../utils/index.js"; import { getTypeParametersGroupId } from "./type-parameters.js"; import { printMethod } from "./function.js"; -import { printOptionalToken, printTypeAnnotation } from "./misc.js"; +import { + printOptionalToken, + printTypeAnnotation, + printDefiniteToken, +} from "./misc.js"; import { printPropertyKey } from "./property.js"; import { printAssignment } from "./assignment.js"; import { printClassMemberDecorators } from "./decorators.js"; @@ -211,9 +215,13 @@ function printClassProperty(path, options, print) { if (node.variance) { parts.push(print("variance")); } + if (node.type === "ClassAccessorProperty") { + parts.push("accessor "); + } parts.push( printPropertyKey(path, options, print), printOptionalToken(path), + printDefiniteToken(path), printTypeAnnotation(path, options, print) ); diff --git a/src/language-js/print/misc.js b/src/language-js/print/misc.js index 957b921ba..8970afeb7 100644 --- a/src/language-js/print/misc.js +++ b/src/language-js/print/misc.js @@ -25,6 +25,17 @@ function printOptionalToken(path) { return "?"; } +function printDefiniteToken(path) { + return path.getValue().definite || + path.match( + undefined, + (node, name) => + name === "id" && node.type === "VariableDeclarator" && node.definite + ) + ? "!" + : ""; +} + function printFunctionTypeParameters(path, options, print) { const fun = path.getValue(); if (fun.typeArguments) { @@ -43,11 +54,6 @@ function printTypeAnnotation(path, options, print) { } const parentNode = path.getParentNode(); - const isDefinite = - node.definite || - (parentNode && - parentNode.type === "VariableDeclarator" && - parentNode.definite); const isFunctionDeclarationIdentifier = parentNode.type === "DeclareFunction" && parentNode.id === node; @@ -56,10 +62,7 @@ function printTypeAnnotation(path, options, print) { return [" /*: ", print("typeAnnotation"), " */"]; } - return [ - isFunctionDeclarationIdentifier ? "" : isDefinite ? "!: " : ": ", - print("typeAnnotation"), - ]; + return [isFunctionDeclarationIdentifier ? "" : ": ", print("typeAnnotation")]; } function printBindExpressionCallee(path, options, print) { @@ -92,6 +95,7 @@ function printRestSpread(path, options, print) { export { printOptionalToken, + printDefiniteToken, printFunctionTypeParameters, printBindExpressionCallee, printTypeScriptModifiers, diff --git a/src/language-js/print/statement.js b/src/language-js/print/statement.js index 658f2c4aa..4d5c7de3f 100644 --- a/src/language-js/print/statement.js +++ b/src/language-js/print/statement.js @@ -167,7 +167,8 @@ function printSwitchCaseConsequent(path, options, print) { const isClassProperty = ({ type }) => type === "ClassProperty" || type === "PropertyDefinition" || - type === "ClassPrivateProperty"; + type === "ClassPrivateProperty" || + type === "ClassAccessorProperty"; /** * @returns {boolean} */ diff --git a/src/language-js/print/type-annotation.js b/src/language-js/print/type-annotation.js index 6a7079dfd..8efb15cea 100644 --- a/src/language-js/print/type-annotation.js +++ b/src/language-js/print/type-annotation.js @@ -1,5 +1,5 @@ import { printComments, printDanglingComments } from "../../main/comments.js"; -import { getLast, isNonEmptyArray } from "../../common/util.js"; +import { isNonEmptyArray } from "../../common/util.js"; import doc from "../../document/index.js"; import pathNeedsParens from "../needs-parens.js"; import { locStart } from "../loc.js"; @@ -286,7 +286,6 @@ function printTupleType(path, options, print) { const typesField = node.type === "TSTupleType" ? "elementTypes" : "types"; const types = node[typesField]; const isNonEmptyTuple = isNonEmptyArray(types); - const hasRest = isNonEmptyTuple && getLast(types).type === "TSRestType"; const bracketsDelimiterLine = isNonEmptyTuple ? softline : ""; return group([ "[", @@ -294,9 +293,7 @@ function printTupleType(path, options, print) { bracketsDelimiterLine, printArrayItems(path, options, typesField, print), ]), - ifBreak( - isNonEmptyTuple && shouldPrintComma(options, "all") && !hasRest ? "," : "" - ), + ifBreak(isNonEmptyTuple && shouldPrintComma(options, "all") ? "," : ""), printDanglingComments(path, options, /* sameIndent */ true), bracketsDelimiterLine, "]", diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js index c237bd0a0..ab9585155 100644 --- a/src/language-js/printer-estree.js +++ b/src/language-js/printer-estree.js @@ -41,6 +41,7 @@ import { printTypeAnnotation, adjustClause, printRestSpread, + printDefiniteToken, } from "./print/misc.js"; import { printImportDeclaration, @@ -96,6 +97,7 @@ function genericPrint(path, options, print, args) { type === "ClassMethod" || type === "ClassPrivateMethod" || type === "ClassProperty" || + type === "ClassAccessorProperty" || type === "PropertyDefinition" || type === "TSAbstractPropertyDefinition" || type === "ClassPrivateProperty" || @@ -291,6 +293,7 @@ function printPathNoParens(path, options, print, args) { return [ node.name, printOptionalToken(path), + printDefiniteToken(path), printTypeAnnotation(path, options, print), ]; } @@ -759,6 +762,7 @@ function printPathNoParens(path, options, print, args) { case "ClassProperty": case "PropertyDefinition": case "ClassPrivateProperty": + case "ClassAccessorProperty": return printClassProperty(path, options, print); case "TemplateElement": return replaceTextEndOfLine(node.value.raw); diff --git a/src/main/options-normalizer.js b/src/main/options-normalizer.js index 59b1b8c30..ca815fa7b 100644 --- a/src/main/options-normalizer.js +++ b/src/main/options-normalizer.js @@ -1,5 +1,4 @@ import vnopts from "vnopts"; -import leven from "leven"; import getLast from "../utils/get-last.js"; const cliDescriptor = { @@ -15,9 +14,8 @@ const cliDescriptor = { : `${cliDescriptor.key(key)}=${value}`, }; -// To prevent `chalk` module from being included in the `standalone.js` bundle, -// it will take that as an argument if needed. -const getFlagSchema = (colorsModule) => +// To prevent `chalk` and `leven` module from being included in the `standalone.js` bundle, it will take that as an argument if needed. +const getFlagSchema = ({ colorsModule, levenshteinDistance }) => class FlagSchema extends vnopts.ChoiceSchema { constructor({ name, flags }) { super({ name, choices: flags }); @@ -29,7 +27,9 @@ const getFlagSchema = (colorsModule) => value.length > 0 && !this._flags.includes(value) ) { - const suggestion = this._flags.find((flag) => leven(flag, value) < 3); + const suggestion = this._flags.find( + (flag) => levenshteinDistance(flag, value) < 3 + ); if (suggestion) { utils.logger.warn( [ @@ -56,7 +56,13 @@ let hasDeprecationWarned; function normalizeOptions( options, optionInfos, - { logger, isCLI = false, passThrough = false, colorsModule } = {} + { + logger, + isCLI = false, + passThrough = false, + colorsModule, + levenshteinDistance, + } = {} ) { const unknown = !passThrough ? (key, value, options) => { @@ -73,7 +79,11 @@ function normalizeOptions( : (key, value) => ({ [key]: value }); const descriptor = isCLI ? cliDescriptor : vnopts.apiDescriptor; - const schemas = optionInfosToSchemas(optionInfos, { isCLI, colorsModule }); + const schemas = optionInfosToSchemas(optionInfos, { + isCLI, + colorsModule, + levenshteinDistance, + }); const normalizer = new vnopts.Normalizer(schemas, { logger, unknown, @@ -99,7 +109,10 @@ function normalizeOptions( return normalized; } -function optionInfosToSchemas(optionInfos, { isCLI, colorsModule }) { +function optionInfosToSchemas( + optionInfos, + { isCLI, colorsModule, levenshteinDistance } +) { const schemas = []; if (isCLI) { @@ -108,7 +121,12 @@ function optionInfosToSchemas(optionInfos, { isCLI, colorsModule }) { for (const optionInfo of optionInfos) { schemas.push( - optionInfoToSchema(optionInfo, { isCLI, optionInfos, colorsModule }) + optionInfoToSchema(optionInfo, { + isCLI, + optionInfos, + colorsModule, + levenshteinDistance, + }) ); if (optionInfo.alias && isCLI) { @@ -124,7 +142,10 @@ function optionInfosToSchemas(optionInfos, { isCLI, colorsModule }) { return schemas; } -function optionInfoToSchema(optionInfo, { isCLI, optionInfos, colorsModule }) { +function optionInfoToSchema( + optionInfo, + { isCLI, optionInfos, colorsModule, levenshteinDistance } +) { const { name } = optionInfo; if (name === "plugin-search-dir" || name === "pluginSearchDirs") { @@ -180,7 +201,7 @@ function optionInfoToSchema(optionInfo, { isCLI, optionInfos, colorsModule }) { SchemaConstructor = vnopts.BooleanSchema; break; case "flag": - SchemaConstructor = getFlagSchema(colorsModule); + SchemaConstructor = getFlagSchema({ colorsModule, levenshteinDistance }); parameters.flags = optionInfos.flatMap((optionInfo) => [ optionInfo.alias, diff --git a/tests/config/format-test.js b/tests/config/format-test.js index 8e776fc9a..9d93b5249 100644 --- a/tests/config/format-test.js +++ b/tests/config/format-test.js @@ -56,7 +56,28 @@ const espreeDisabledTests = new Set( ].map((directory) => path.join(__dirname, "../format/js", directory)) ); const acornDisabledTests = espreeDisabledTests; -const meriyahDisabledTests = espreeDisabledTests; +const meriyahDisabledTests = new Set([ + ...espreeDisabledTests, + // Meriyah does not support decorator auto accessors syntax. + // But meriyah can parse it as an ordinary class property. + // So meriyah does not throw parsing error for it. + ...[ + "basic.js", + "computed.js", + "private.js", + "static-computed.js", + "static-private.js", + "static.js", + "with-semicolon-1.js", + "with-semicolon-2.js", + ].map((filename) => + path.join(__dirname, "../format/js/decorator-auto-accessors", filename) + ), + path.join( + __dirname, + "../format/js/babel-plugins/decorator-auto-accessors.js" + ), +]); const isUnstable = (filename, options) => { const testFunction = unstableTests.get(filename); @@ -217,6 +238,13 @@ function runSpec(fixtures, parsers, options) { : format(code, formatOptions); for (const currentParser of allParsers) { + if ( + (currentParser === "espree" && espreeDisabledTests.has(filename)) || + (currentParser === "meriyah" && meriyahDisabledTests.has(filename)) || + (currentParser === "acorn" && acornDisabledTests.has(filename)) + ) { + continue; + } runTest({ parsers, name, 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 b0732a255..c7d338bb5 100644 --- a/tests/format/js/babel-plugins/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/babel-plugins/__snapshots__/jsfmt.spec.js.snap @@ -534,6 +534,42 @@ typeof 1m === "decimal128"; ================================================================================ `; +exports[`decorator-auto-accessors.js [acorn] format 1`] = ` +"Unexpected token (2:12) + 1 | class C extends HTMLElement { +> 2 | accessor clicked = false; + | ^ + 3 | } + 4 |" +`; + +exports[`decorator-auto-accessors.js [espree] format 1`] = ` +"Unexpected token clicked (2:12) + 1 | class C extends HTMLElement { +> 2 | accessor clicked = false; + | ^ + 3 | } + 4 |" +`; + +exports[`decorator-auto-accessors.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +class C extends HTMLElement { + accessor clicked = false; +} + +=====================================output===================================== +class C extends HTMLElement { + accessor clicked = false; +} + +================================================================================ +`; + exports[`decorators.js [acorn] format 1`] = ` "Unexpected character '@' (3:1) 1 | // https://babeljs.io/docs/en/babel-plugin-proposal-decorators diff --git a/tests/format/js/babel-plugins/decorator-auto-accessors.js b/tests/format/js/babel-plugins/decorator-auto-accessors.js new file mode 100644 index 000000000..f43e1474a --- /dev/null +++ b/tests/format/js/babel-plugins/decorator-auto-accessors.js @@ -0,0 +1,3 @@ +class C extends HTMLElement { + accessor clicked = false; +} diff --git a/tests/format/js/babel-plugins/jsfmt.spec.js b/tests/format/js/babel-plugins/jsfmt.spec.js index cdbe45649..564f078af 100644 --- a/tests/format/js/babel-plugins/jsfmt.spec.js +++ b/tests/format/js/babel-plugins/jsfmt.spec.js @@ -26,6 +26,7 @@ run_spec(import.meta, ["babel", "babel-ts", "babel-flow"], { "module-blocks.js", "async-do-expressions.js", "regex-v-flag.js", + "decorator-auto-accessors.js", ], espree: [ "decimal.js", @@ -50,6 +51,7 @@ run_spec(import.meta, ["babel", "babel-ts", "babel-flow"], { "module-blocks.js", "async-do-expressions.js", "regex-v-flag.js", + "decorator-auto-accessors.js", ], meriyah: [ "decimal.js", 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 new file mode 100644 index 000000000..128e914c1 --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,798 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`basic.js [acorn] format 1`] = ` +"Unexpected token (2:12) + 1 | class Foo { +> 2 | accessor bar; + | ^ + 3 | } + 4 |" +`; + +exports[`basic.js [espree] format 1`] = ` +"Unexpected token bar (2:12) + 1 | class Foo { +> 2 | accessor bar; + | ^ + 3 | } + 4 |" +`; + +exports[`basic.js - {"semi":false} [acorn] format 1`] = ` +"Unexpected token (2:12) + 1 | class Foo { +> 2 | accessor bar; + | ^ + 3 | } + 4 |" +`; + +exports[`basic.js - {"semi":false} [espree] format 1`] = ` +"Unexpected token bar (2:12) + 1 | class Foo { +> 2 | accessor bar; + | ^ + 3 | } + 4 |" +`; + +exports[`basic.js - {"semi":false} format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 +semi: false + | printWidth +=====================================input====================================== +class Foo { + accessor bar; +} + +=====================================output===================================== +class Foo { + accessor bar +} + +================================================================================ +`; + +exports[`basic.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +class Foo { + accessor bar; +} + +=====================================output===================================== +class Foo { + accessor bar; +} + +================================================================================ +`; + +exports[`computed.js [acorn] format 1`] = ` +"Unexpected token (2:12) + 1 | class Foo { +> 2 | accessor [\\"bar\\"]; + | ^ + 3 | } + 4 |" +`; + +exports[`computed.js [espree] format 1`] = ` +"Unexpected token [ (2:12) + 1 | class Foo { +> 2 | accessor [\\"bar\\"]; + | ^ + 3 | } + 4 |" +`; + +exports[`computed.js - {"semi":false} [acorn] format 1`] = ` +"Unexpected token (2:12) + 1 | class Foo { +> 2 | accessor [\\"bar\\"]; + | ^ + 3 | } + 4 |" +`; + +exports[`computed.js - {"semi":false} [espree] format 1`] = ` +"Unexpected token [ (2:12) + 1 | class Foo { +> 2 | accessor [\\"bar\\"]; + | ^ + 3 | } + 4 |" +`; + +exports[`computed.js - {"semi":false} format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 +semi: false + | printWidth +=====================================input====================================== +class Foo { + accessor ["bar"]; +} + +=====================================output===================================== +class Foo { + accessor ["bar"] +} + +================================================================================ +`; + +exports[`computed.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +class Foo { + accessor ["bar"]; +} + +=====================================output===================================== +class Foo { + accessor ["bar"]; +} + +================================================================================ +`; + +exports[`computed-with-newline.js - {"semi":false} format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 +semi: false + | printWidth +=====================================input====================================== +class Foo { + accessor + ["bar"]; +} + +=====================================output===================================== +class Foo { + accessor; + ["bar"] +} + +================================================================================ +`; + +exports[`computed-with-newline.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +class Foo { + accessor + ["bar"]; +} + +=====================================output===================================== +class Foo { + accessor; + ["bar"]; +} + +================================================================================ +`; + +exports[`not-accessor-method.js - {"semi":false} format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 +semi: false + | printWidth +=====================================input====================================== +class Foo { + accessor() {} +} + +=====================================output===================================== +class Foo { + accessor() {} +} + +================================================================================ +`; + +exports[`not-accessor-method.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +class Foo { + accessor() {} +} + +=====================================output===================================== +class Foo { + accessor() {} +} + +================================================================================ +`; + +exports[`not-accessor-property.js - {"semi":false} format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 +semi: false + | printWidth +=====================================input====================================== +class Foo { + accessor = 123; +} + +=====================================output===================================== +class Foo { + accessor = 123 +} + +================================================================================ +`; + +exports[`not-accessor-property.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +class Foo { + accessor = 123; +} + +=====================================output===================================== +class Foo { + accessor = 123; +} + +================================================================================ +`; + +exports[`private.js [acorn] format 1`] = ` +"Unexpected token (2:12) + 1 | class Foo { +> 2 | accessor #bar; + | ^ + 3 | } + 4 |" +`; + +exports[`private.js [espree] format 1`] = ` +"Unexpected token #bar (2:12) + 1 | class Foo { +> 2 | accessor #bar; + | ^ + 3 | } + 4 |" +`; + +exports[`private.js - {"semi":false} [acorn] format 1`] = ` +"Unexpected token (2:12) + 1 | class Foo { +> 2 | accessor #bar; + | ^ + 3 | } + 4 |" +`; + +exports[`private.js - {"semi":false} [espree] format 1`] = ` +"Unexpected token #bar (2:12) + 1 | class Foo { +> 2 | accessor #bar; + | ^ + 3 | } + 4 |" +`; + +exports[`private.js - {"semi":false} format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 +semi: false + | printWidth +=====================================input====================================== +class Foo { + accessor #bar; +} + +=====================================output===================================== +class Foo { + accessor #bar +} + +================================================================================ +`; + +exports[`private.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +class Foo { + accessor #bar; +} + +=====================================output===================================== +class Foo { + accessor #bar; +} + +================================================================================ +`; + +exports[`static.js [acorn] format 1`] = ` +"Unexpected token (2:19) + 1 | class Foo { +> 2 | static accessor bar; + | ^ + 3 | } + 4 |" +`; + +exports[`static.js [espree] format 1`] = ` +"Unexpected token bar (2:19) + 1 | class Foo { +> 2 | static accessor bar; + | ^ + 3 | } + 4 |" +`; + +exports[`static.js - {"semi":false} [acorn] format 1`] = ` +"Unexpected token (2:19) + 1 | class Foo { +> 2 | static accessor bar; + | ^ + 3 | } + 4 |" +`; + +exports[`static.js - {"semi":false} [espree] format 1`] = ` +"Unexpected token bar (2:19) + 1 | class Foo { +> 2 | static accessor bar; + | ^ + 3 | } + 4 |" +`; + +exports[`static.js - {"semi":false} format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 +semi: false + | printWidth +=====================================input====================================== +class Foo { + static accessor bar; +} + +=====================================output===================================== +class Foo { + static accessor bar +} + +================================================================================ +`; + +exports[`static.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +class Foo { + static accessor bar; +} + +=====================================output===================================== +class Foo { + static accessor bar; +} + +================================================================================ +`; + +exports[`static-computed.js [acorn] format 1`] = ` +"Unexpected token (2:19) + 1 | class Foo { +> 2 | static accessor [\\"bar\\"]; + | ^ + 3 | } + 4 |" +`; + +exports[`static-computed.js [espree] format 1`] = ` +"Unexpected token [ (2:19) + 1 | class Foo { +> 2 | static accessor [\\"bar\\"]; + | ^ + 3 | } + 4 |" +`; + +exports[`static-computed.js - {"semi":false} [acorn] format 1`] = ` +"Unexpected token (2:19) + 1 | class Foo { +> 2 | static accessor [\\"bar\\"]; + | ^ + 3 | } + 4 |" +`; + +exports[`static-computed.js - {"semi":false} [espree] format 1`] = ` +"Unexpected token [ (2:19) + 1 | class Foo { +> 2 | static accessor [\\"bar\\"]; + | ^ + 3 | } + 4 |" +`; + +exports[`static-computed.js - {"semi":false} format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 +semi: false + | printWidth +=====================================input====================================== +class Foo { + static accessor ["bar"]; +} + +=====================================output===================================== +class Foo { + static accessor ["bar"] +} + +================================================================================ +`; + +exports[`static-computed.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +class Foo { + static accessor ["bar"]; +} + +=====================================output===================================== +class Foo { + static accessor ["bar"]; +} + +================================================================================ +`; + +exports[`static-private.js [acorn] format 1`] = ` +"Unexpected token (2:19) + 1 | class Foo { +> 2 | static accessor #bar; + | ^ + 3 | } + 4 |" +`; + +exports[`static-private.js [espree] format 1`] = ` +"Unexpected token #bar (2:19) + 1 | class Foo { +> 2 | static accessor #bar; + | ^ + 3 | } + 4 |" +`; + +exports[`static-private.js - {"semi":false} [acorn] format 1`] = ` +"Unexpected token (2:19) + 1 | class Foo { +> 2 | static accessor #bar; + | ^ + 3 | } + 4 |" +`; + +exports[`static-private.js - {"semi":false} [espree] format 1`] = ` +"Unexpected token #bar (2:19) + 1 | class Foo { +> 2 | static accessor #bar; + | ^ + 3 | } + 4 |" +`; + +exports[`static-private.js - {"semi":false} format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 +semi: false + | printWidth +=====================================input====================================== +class Foo { + static accessor #bar; +} + +=====================================output===================================== +class Foo { + static accessor #bar +} + +================================================================================ +`; + +exports[`static-private.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +class Foo { + static accessor #bar; +} + +=====================================output===================================== +class Foo { + static accessor #bar; +} + +================================================================================ +`; + +exports[`static-with-newline.js - {"semi":false} format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 +semi: false + | printWidth +=====================================input====================================== +class Foo { + static accessor + bar; +} + +=====================================output===================================== +class Foo { + static accessor + bar +} + +================================================================================ +`; + +exports[`static-with-newline.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +class Foo { + static accessor + bar; +} + +=====================================output===================================== +class Foo { + static accessor; + bar; +} + +================================================================================ +`; + +exports[`with-newline.js - {"semi":false} format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 +semi: false + | printWidth +=====================================input====================================== +class Foo { + accessor + bar; +} + +=====================================output===================================== +class Foo { + accessor + bar +} + +================================================================================ +`; + +exports[`with-newline.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +class Foo { + accessor + bar; +} + +=====================================output===================================== +class Foo { + accessor; + bar; +} + +================================================================================ +`; + +exports[`with-semicolon-1.js [acorn] format 1`] = ` +"Unexpected token (2:12) + 1 | class C { +> 2 | accessor clicked = \\"value\\"; + | ^ + 3 | [foo]() {} + 4 | } + 5 | " +`; + +exports[`with-semicolon-1.js [espree] format 1`] = ` +"Unexpected token clicked (2:12) + 1 | class C { +> 2 | accessor clicked = \\"value\\"; + | ^ + 3 | [foo]() {} + 4 | } + 5 | " +`; + +exports[`with-semicolon-1.js - {"semi":false} [acorn] format 1`] = ` +"Unexpected token (2:12) + 1 | class C { +> 2 | accessor clicked = \\"value\\"; + | ^ + 3 | [foo]() {} + 4 | } + 5 | " +`; + +exports[`with-semicolon-1.js - {"semi":false} [espree] format 1`] = ` +"Unexpected token clicked (2:12) + 1 | class C { +> 2 | accessor clicked = \\"value\\"; + | ^ + 3 | [foo]() {} + 4 | } + 5 | " +`; + +exports[`with-semicolon-1.js - {"semi":false} format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 +semi: false + | printWidth +=====================================input====================================== +class C { + accessor clicked = "value"; + [foo]() {} +} + +=====================================output===================================== +class C { + accessor clicked = "value"; + [foo]() {} +} + +================================================================================ +`; + +exports[`with-semicolon-1.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +class C { + accessor clicked = "value"; + [foo]() {} +} + +=====================================output===================================== +class C { + accessor clicked = "value"; + [foo]() {} +} + +================================================================================ +`; + +exports[`with-semicolon-2.js [acorn] format 1`] = ` +"Unexpected token (2:12) + 1 | class C { +> 2 | accessor clicked = \\"value\\"; + | ^ + 3 | *foo() {} + 4 | } + 5 |" +`; + +exports[`with-semicolon-2.js [espree] format 1`] = ` +"Unexpected token clicked (2:12) + 1 | class C { +> 2 | accessor clicked = \\"value\\"; + | ^ + 3 | *foo() {} + 4 | } + 5 |" +`; + +exports[`with-semicolon-2.js - {"semi":false} [acorn] format 1`] = ` +"Unexpected token (2:12) + 1 | class C { +> 2 | accessor clicked = \\"value\\"; + | ^ + 3 | *foo() {} + 4 | } + 5 |" +`; + +exports[`with-semicolon-2.js - {"semi":false} [espree] format 1`] = ` +"Unexpected token clicked (2:12) + 1 | class C { +> 2 | accessor clicked = \\"value\\"; + | ^ + 3 | *foo() {} + 4 | } + 5 |" +`; + +exports[`with-semicolon-2.js - {"semi":false} format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 +semi: false + | printWidth +=====================================input====================================== +class C { + accessor clicked = "value"; + *foo() {} +} + +=====================================output===================================== +class C { + accessor clicked = "value"; + *foo() {} +} + +================================================================================ +`; + +exports[`with-semicolon-2.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +class C { + accessor clicked = "value"; + *foo() {} +} + +=====================================output===================================== +class C { + accessor clicked = "value"; + *foo() {} +} + +================================================================================ +`; diff --git a/tests/format/js/decorator-auto-accessors/basic.js b/tests/format/js/decorator-auto-accessors/basic.js new file mode 100644 index 000000000..735a7a78e --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/basic.js @@ -0,0 +1,3 @@ +class Foo { + accessor bar; +} diff --git a/tests/format/js/decorator-auto-accessors/computed-with-newline.js b/tests/format/js/decorator-auto-accessors/computed-with-newline.js new file mode 100644 index 000000000..a067c2ad5 --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/computed-with-newline.js @@ -0,0 +1,4 @@ +class Foo { + accessor + ["bar"]; +} diff --git a/tests/format/js/decorator-auto-accessors/computed.js b/tests/format/js/decorator-auto-accessors/computed.js new file mode 100644 index 000000000..f77d3f867 --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/computed.js @@ -0,0 +1,3 @@ +class Foo { + accessor ["bar"]; +} diff --git a/tests/format/js/decorator-auto-accessors/jsfmt.spec.js b/tests/format/js/decorator-auto-accessors/jsfmt.spec.js new file mode 100644 index 000000000..24bae9a3b --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/jsfmt.spec.js @@ -0,0 +1,25 @@ +const parsers = ["babel", "babel-ts", "babel-flow"]; +const errors = { + espree: [ + "basic.js", + "computed.js", + "private.js", + "static-computed.js", + "static-private.js", + "static.js", + "with-semicolon-1.js", + "with-semicolon-2.js", + ], + acorn: [ + "basic.js", + "computed.js", + "private.js", + "static-computed.js", + "static-private.js", + "static.js", + "with-semicolon-1.js", + "with-semicolon-2.js", + ], +}; +run_spec(import.meta, parsers, { errors }); +run_spec(import.meta, parsers, { errors, semi: false }); diff --git a/tests/format/js/decorator-auto-accessors/not-accessor-method.js b/tests/format/js/decorator-auto-accessors/not-accessor-method.js new file mode 100644 index 000000000..d4092463f --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/not-accessor-method.js @@ -0,0 +1,3 @@ +class Foo { + accessor() {} +} diff --git a/tests/format/js/decorator-auto-accessors/not-accessor-property.js b/tests/format/js/decorator-auto-accessors/not-accessor-property.js new file mode 100644 index 000000000..fba4a91f8 --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/not-accessor-property.js @@ -0,0 +1,3 @@ +class Foo { + accessor = 123; +} diff --git a/tests/format/js/decorator-auto-accessors/private.js b/tests/format/js/decorator-auto-accessors/private.js new file mode 100644 index 000000000..9127772fc --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/private.js @@ -0,0 +1,3 @@ +class Foo { + accessor #bar; +} diff --git a/tests/format/js/decorator-auto-accessors/static-computed.js b/tests/format/js/decorator-auto-accessors/static-computed.js new file mode 100644 index 000000000..03a1bfe9b --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/static-computed.js @@ -0,0 +1,3 @@ +class Foo { + static accessor ["bar"]; +} diff --git a/tests/format/js/decorator-auto-accessors/static-private.js b/tests/format/js/decorator-auto-accessors/static-private.js new file mode 100644 index 000000000..eda1665ae --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/static-private.js @@ -0,0 +1,3 @@ +class Foo { + static accessor #bar; +} diff --git a/tests/format/js/decorator-auto-accessors/static-with-newline.js b/tests/format/js/decorator-auto-accessors/static-with-newline.js new file mode 100644 index 000000000..e297f3f66 --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/static-with-newline.js @@ -0,0 +1,4 @@ +class Foo { + static accessor + bar; +} diff --git a/tests/format/js/decorator-auto-accessors/static.js b/tests/format/js/decorator-auto-accessors/static.js new file mode 100644 index 000000000..10777835c --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/static.js @@ -0,0 +1,3 @@ +class Foo { + static accessor bar; +} diff --git a/tests/format/js/decorator-auto-accessors/with-newline.js b/tests/format/js/decorator-auto-accessors/with-newline.js new file mode 100644 index 000000000..30bf86a73 --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/with-newline.js @@ -0,0 +1,4 @@ +class Foo { + accessor + bar; +} diff --git a/tests/format/js/decorator-auto-accessors/with-semicolon-1.js b/tests/format/js/decorator-auto-accessors/with-semicolon-1.js new file mode 100644 index 000000000..504d41d7c --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/with-semicolon-1.js @@ -0,0 +1,5 @@ +class C { + accessor clicked = "value"; + [foo]() {} +} + \ No newline at end of file diff --git a/tests/format/js/decorator-auto-accessors/with-semicolon-2.js b/tests/format/js/decorator-auto-accessors/with-semicolon-2.js new file mode 100644 index 000000000..d6e55e3db --- /dev/null +++ b/tests/format/js/decorator-auto-accessors/with-semicolon-2.js @@ -0,0 +1,4 @@ +class C { + accessor clicked = "value"; + *foo() {} +} diff --git a/tests/format/typescript/definite/__snapshots__/jsfmt.spec.js.snap b/tests/format/typescript/definite/__snapshots__/jsfmt.spec.js.snap index 0bc639f0d..2fa0f6562 100644 --- a/tests/format/typescript/definite/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/typescript/definite/__snapshots__/jsfmt.spec.js.snap @@ -41,3 +41,39 @@ var y!: MyComponent; ================================================================================ `; + +exports[`without-annotation.ts format 1`] = ` +====================================options===================================== +parsers: ["typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== +class Foo { + a! + #b! + static c! + [d]! = 1 + 'e'! +} + +let a! = x +const b! +var c/* */! = x +export const d! + +=====================================output===================================== +class Foo { + a!; + #b!; + static c!; + [d]! = 1; + "e"!; +} + +let a! = x; +const b!; +var c! /* */ = x; +export const d!; + +================================================================================ +`; diff --git a/tests/format/typescript/definite/without-annotation.ts b/tests/format/typescript/definite/without-annotation.ts new file mode 100644 index 000000000..5eac08a23 --- /dev/null +++ b/tests/format/typescript/definite/without-annotation.ts @@ -0,0 +1,12 @@ +class Foo { + a! + #b! + static c! + [d]! = 1 + 'e'! +} + +let a! = x +const b! +var c/* */! = x +export const d! diff --git a/tests/format/typescript/tuple/__snapshots__/jsfmt.spec.js.snap b/tests/format/typescript/tuple/__snapshots__/jsfmt.spec.js.snap index e2c610475..3f38b0853 100644 --- a/tests/format/typescript/tuple/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/typescript/tuple/__snapshots__/jsfmt.spec.js.snap @@ -1,91 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`no-trailing-comma-after-rest.ts - {"trailingComma":"all"} format 1`] = ` -====================================options===================================== -parsers: ["typescript"] -printWidth: 80 -trailingComma: "all" - | printWidth -=====================================input====================================== -type ValidateArgs = [ - { - [key: string]: any; - }, - string, - string, - ...string[], -]; - -=====================================output===================================== -type ValidateArgs = [ - { - [key: string]: any; - }, - string, - string, - ...string[] -]; - -================================================================================ -`; - -exports[`no-trailing-comma-after-rest.ts - {"trailingComma":"none"} format 1`] = ` -====================================options===================================== -parsers: ["typescript"] -printWidth: 80 -trailingComma: "none" - | printWidth -=====================================input====================================== -type ValidateArgs = [ - { - [key: string]: any; - }, - string, - string, - ...string[], -]; - -=====================================output===================================== -type ValidateArgs = [ - { - [key: string]: any; - }, - string, - string, - ...string[] -]; - -================================================================================ -`; - -exports[`no-trailing-comma-after-rest.ts format 1`] = ` -====================================options===================================== -parsers: ["typescript"] -printWidth: 80 - | printWidth -=====================================input====================================== -type ValidateArgs = [ - { - [key: string]: any; - }, - string, - string, - ...string[], -]; - -=====================================output===================================== -type ValidateArgs = [ - { - [key: string]: any; - }, - string, - string, - ...string[] -]; - -================================================================================ -`; - exports[`trailing-comma.ts - {"trailingComma":"all"} format 1`] = ` ====================================options===================================== parsers: ["typescript"] @@ -273,6 +187,92 @@ type Foo = ================================================================================ `; +exports[`trailing-comma-trailing-rest.ts - {"trailingComma":"all"} format 1`] = ` +====================================options===================================== +parsers: ["typescript"] +printWidth: 80 +trailingComma: "all" + | printWidth +=====================================input====================================== +type ValidateArgs = [ + { + [key: string]: any; + }, + string, + string, + ...string[], +]; + +=====================================output===================================== +type ValidateArgs = [ + { + [key: string]: any; + }, + string, + string, + ...string[], +]; + +================================================================================ +`; + +exports[`trailing-comma-trailing-rest.ts - {"trailingComma":"none"} format 1`] = ` +====================================options===================================== +parsers: ["typescript"] +printWidth: 80 +trailingComma: "none" + | printWidth +=====================================input====================================== +type ValidateArgs = [ + { + [key: string]: any; + }, + string, + string, + ...string[], +]; + +=====================================output===================================== +type ValidateArgs = [ + { + [key: string]: any; + }, + string, + string, + ...string[] +]; + +================================================================================ +`; + +exports[`trailing-comma-trailing-rest.ts format 1`] = ` +====================================options===================================== +parsers: ["typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== +type ValidateArgs = [ + { + [key: string]: any; + }, + string, + string, + ...string[], +]; + +=====================================output===================================== +type ValidateArgs = [ + { + [key: string]: any; + }, + string, + string, + ...string[] +]; + +================================================================================ +`; + exports[`tuple.ts - {"trailingComma":"all"} format 1`] = ` ====================================options===================================== parsers: ["typescript"] diff --git a/tests/format/typescript/tuple/no-trailing-comma-after-rest.ts b/tests/format/typescript/tuple/trailing-comma-trailing-rest.ts similarity index 100% rename from tests/format/typescript/tuple/no-trailing-comma-after-rest.ts rename to tests/format/typescript/tuple/trailing-comma-trailing-rest.ts diff --git a/website/blog/2022-01-06-prettier-begins-paying-maintainers.md b/website/blog/2022-01-06-prettier-begins-paying-maintainers.md index 26d496aa3..c2049b7bb 100644 --- a/website/blog/2022-01-06-prettier-begins-paying-maintainers.md +++ b/website/blog/2022-01-06-prettier-begins-paying-maintainers.md @@ -10,7 +10,7 @@ Prettier, an opinionated code formatter for JavaScript and many web languages, h -Open Source and Money has always been a tricky topic. We've tried many things with Prettier. Right after the project was open sourced, Facebook contracted [James Long](https://twitter.com/jlongster) for 2 weeks into order to polish it. Facebook also paid Christopher Chedeau ([vjeux](https://twitter.com/Vjeux)) for 9 months to work on it full time. Once there was \$10,000 in contributions, we gave everyone that contributed significantly the opportunity to redeem \$1,000 but due to the complexities in collecting the money, few people did. +Open Source and Money has always been a tricky topic. We've tried many things with Prettier. Right after the project was open sourced, Facebook contracted [James Long](https://twitter.com/jlongster) for 2 weeks in order to polish it. Facebook also paid Christopher Chedeau ([vjeux](https://twitter.com/Vjeux)) for 9 months to work on it full time. Once there was \$10,000 in contributions, we gave everyone that contributed significantly the opportunity to redeem \$1,000 but due to the complexities in collecting the money, few people did. We now have \$50,000 which is a sizable sum but not enough for someone with the skills to work on it to do it full time. But at the same time we shouldn't let it sit unused. So after a lot of thinking, we decided to provide a recurring \$1,500 to the two current maintainers of the project. They have been amazing stewards for the project for the past 2 years! diff --git a/website/package.json b/website/package.json index 95bd649fa..5e2ecbb33 100644 --- a/website/package.json +++ b/website/package.json @@ -23,7 +23,7 @@ "concurrently": "7.0.0", "docusaurus": "1.14.7", "js-yaml": "4.1.0", - "webpack": "5.69.1", + "webpack": "5.70.0", "webpack-cli": "4.9.2" } } diff --git a/website/yarn.lock b/website/yarn.lock index 85bf221f6..7c12c493e 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -3992,10 +3992,10 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^5.8.3: - version "5.8.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" - integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== +enhanced-resolve@^5.9.2: + version "5.9.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz#0224dcd6a43389ebfb2d55efee517e5466772dd9" + integrity sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -9064,10 +9064,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.69.1: - version "5.69.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.69.1.tgz#8cfd92c192c6a52c99ab00529b5a0d33aa848dc5" - integrity sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A== +webpack@5.70.0: + version "5.70.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.70.0.tgz#3461e6287a72b5e6e2f4872700bc8de0d7500e6d" + integrity sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^0.0.51" @@ -9078,7 +9078,7 @@ webpack@5.69.1: acorn-import-assertions "^1.7.6" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.8.3" + enhanced-resolve "^5.9.2" es-module-lexer "^0.9.0" eslint-scope "5.1.1" events "^3.2.0" diff --git a/yarn.lock b/yarn.lock index a2e5e3424..734d45110 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1696,14 +1696,14 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@5.12.1": - version "5.12.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.1.tgz#b2cd3e288f250ce8332d5035a2ff65aba3374ac4" - integrity sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw== +"@typescript-eslint/eslint-plugin@5.13.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.13.0.tgz#2809052b85911ced9c54a60dac10e515e9114497" + integrity sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ== dependencies: - "@typescript-eslint/scope-manager" "5.12.1" - "@typescript-eslint/type-utils" "5.12.1" - "@typescript-eslint/utils" "5.12.1" + "@typescript-eslint/scope-manager" "5.13.0" + "@typescript-eslint/type-utils" "5.13.0" + "@typescript-eslint/utils" "5.13.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -1711,20 +1711,20 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/scope-manager@5.12.1": - version "5.12.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz#58734fd45d2d1dec49641aacc075fba5f0968817" - integrity sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ== +"@typescript-eslint/scope-manager@5.13.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz#cf6aff61ca497cb19f0397eea8444a58f46156b6" + integrity sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA== dependencies: - "@typescript-eslint/types" "5.12.1" - "@typescript-eslint/visitor-keys" "5.12.1" + "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/visitor-keys" "5.13.0" -"@typescript-eslint/type-utils@5.12.1": - version "5.12.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.12.1.tgz#8d58c6a0bb176b5e9a91581cda1a7f91a114d3f0" - integrity sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg== +"@typescript-eslint/type-utils@5.13.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.13.0.tgz#b0efd45c85b7bab1125c97b752cab3a86c7b615d" + integrity sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg== dependencies: - "@typescript-eslint/utils" "5.12.1" + "@typescript-eslint/utils" "5.13.0" debug "^4.3.2" tsutils "^3.21.0" @@ -1733,6 +1733,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.12.1.tgz#46a36a28ff4d946821b58fe5a73c81dc2e12aa89" integrity sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA== +"@typescript-eslint/types@5.13.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.13.0.tgz#da1de4ae905b1b9ff682cab0bed6b2e3be9c04e5" + integrity sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg== + "@typescript-eslint/typescript-estree@5.12.1": version "5.12.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz#6a9425b9c305bcbc38e2d1d9a24c08e15e02b722" @@ -1746,15 +1751,28 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.12.1", "@typescript-eslint/utils@^5.10.0": - version "5.12.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.12.1.tgz#447c24a05d9c33f9c6c64cb48f251f2371eef920" - integrity sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ== +"@typescript-eslint/typescript-estree@5.13.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz#b37c07b748ff030a3e93d87c842714e020b78141" + integrity sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA== + dependencies: + "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/visitor-keys" "5.13.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.13.0", "@typescript-eslint/utils@^5.10.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.13.0.tgz#2328feca700eb02837298339a2e49c46b41bd0af" + integrity sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.12.1" - "@typescript-eslint/types" "5.12.1" - "@typescript-eslint/typescript-estree" "5.12.1" + "@typescript-eslint/scope-manager" "5.13.0" + "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/typescript-estree" "5.13.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" @@ -1766,6 +1784,14 @@ "@typescript-eslint/types" "5.12.1" eslint-visitor-keys "^3.0.0" +"@typescript-eslint/visitor-keys@5.13.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz#f45ff55bcce16403b221ac9240fbeeae4764f0fd" + integrity sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g== + dependencies: + "@typescript-eslint/types" "5.13.0" + eslint-visitor-keys "^3.0.0" + abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" @@ -2778,80 +2804,85 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-arm64@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.23.tgz#c89b3c50b4f47668dcbeb0b34ee4615258818e71" - integrity sha512-k9sXem++mINrZty1v4FVt6nC5BQCFG4K2geCIUUqHNlTdFnuvcqsY7prcKZLFhqVC1rbcJAr9VSUGFL/vD4vsw== +esbuild-android-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.25.tgz#d532d38cb5fe0ae45167ce35f4bbc784c636be40" + integrity sha512-L5vCUk7TzFbBnoESNoXjU3x9+/+7TDIE/1mTfy/erAfvZAqC+S3sp/Qa9wkypFMcFvN9FzvESkTlpeQDolREtQ== -esbuild-darwin-64@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.23.tgz#1c131e8cb133ed935ca32f824349a117c896a15b" - integrity sha512-lB0XRbtOYYL1tLcYw8BoBaYsFYiR48RPrA0KfA/7RFTr4MV7Bwy/J4+7nLsVnv9FGuQummM3uJ93J3ptaTqFug== +esbuild-android-arm64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.25.tgz#9c5bb3366aabfd14a1c726d36978b79441dfcb6e" + integrity sha512-4jv5xPjM/qNm27T5j3ZEck0PvjgQtoMHnz4FzwF5zNP56PvY2CT0WStcAIl6jNlsuDdN63rk2HRBIsO6xFbcFw== -esbuild-darwin-arm64@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.23.tgz#3c6245a50109dd84953f53d7833bd3b4f0e8c6fa" - integrity sha512-yat73Z/uJ5tRcfRiI4CCTv0FSnwErm3BJQeZAh+1tIP0TUNh6o+mXg338Zl5EKChD+YGp6PN+Dbhs7qa34RxSw== +esbuild-darwin-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.25.tgz#05dcdb6d884f427039ffee5e92ff97527e56c26d" + integrity sha512-TGp8tuudIxOyWd1+8aYPxQmC1ZQyvij/AfNBa35RubixD0zJ1vkKHVAzo0Zao1zcG6pNqiSyzfPto8vmg0s7oA== -esbuild-freebsd-64@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.23.tgz#0cdc54e72d3dd9cd992f9c2960055e68a7f8650c" - integrity sha512-/1xiTjoLuQ+LlbfjJdKkX45qK/M7ARrbLmyf7x3JhyQGMjcxRYVR6Dw81uH3qlMHwT4cfLW4aEVBhP1aNV7VsA== +esbuild-darwin-arm64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.25.tgz#28e080da4ea0cfe9498071e7f8060498caee1a95" + integrity sha512-oTcDgdm0MDVEmw2DWu8BV68pYuImpFgvWREPErBZmNA4MYKGuBRaCiJqq6jZmBR1x+3y1DWCjez+5uLtuAm6mw== -esbuild-freebsd-arm64@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.23.tgz#1d11faed3a0c429e99b7dddef84103eb509788b2" - integrity sha512-uyPqBU/Zcp6yEAZS4LKj5jEE0q2s4HmlMBIPzbW6cTunZ8cyvjG6YWpIZXb1KK3KTJDe62ltCrk3VzmWHp+iLg== +esbuild-freebsd-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.25.tgz#200d3664a3b945bc9fdcba73614b49a11ebd1cfa" + integrity sha512-ueAqbnMZ8arnuLH8tHwTCQYeptnHOUV7vA6px6j4zjjQwDx7TdP7kACPf3TLZLdJQ3CAD1XCvQ2sPhX+8tacvQ== -esbuild-linux-32@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.23.tgz#fd9f033fc27dcab61100cb1eb1c936893a68c841" - integrity sha512-37R/WMkQyUfNhbH7aJrr1uCjDVdnPeTHGeDhZPUNhfoHV0lQuZNCKuNnDvlH/u/nwIYZNdVvz1Igv5rY/zfrzQ== +esbuild-freebsd-arm64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.25.tgz#624b08c5da6013bdc312aaa23c4ff409580f5c3c" + integrity sha512-+ZVWud2HKh+Ob6k/qiJWjBtUg4KmJGGmbvEXXW1SNKS7hW7HU+Zq2ZCcE1akFxOPkVB+EhOty/sSek30tkCYug== -esbuild-linux-64@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.23.tgz#c04c438514f1359ecb1529205d0c836d4165f198" - integrity sha512-H0gztDP60qqr8zoFhAO64waoN5yBXkmYCElFklpd6LPoobtNGNnDe99xOQm28+fuD75YJ7GKHzp/MLCLhw2+vQ== +esbuild-linux-32@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.25.tgz#0238e597eb0b60aa06c7e98fccbbfd6bb9a0d6c5" + integrity sha512-3OP/lwV3kCzEz45tobH9nj+uE4ubhGsfx+tn0L26WAGtUbmmcRpqy7XRG/qK7h1mClZ+eguIANcQntYMdYklfw== -esbuild-linux-arm64@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.23.tgz#d1b3ab2988ab0734886eb9e811726f7db099ab96" - integrity sha512-c4MLOIByNHR55n3KoYf9hYDfBRghMjOiHLaoYLhkQkIabb452RWi+HsNgB41sUpSlOAqfpqKPFNg7VrxL3UX9g== +esbuild-linux-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.25.tgz#8a8b8cf47dfce127c858e71229d9a385a82c62e8" + integrity sha512-+aKHdHZmX9qwVlQmu5xYXh7GsBFf4TWrePgeJTalhXHOG7NNuUwoHmketGiZEoNsWyyqwH9rE5BC+iwcLY30Ug== -esbuild-linux-arm@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.23.tgz#df7558b6a5076f5eb9fd387c8704f768b61d97fb" - integrity sha512-x64CEUxi8+EzOAIpCUeuni0bZfzPw/65r8tC5cy5zOq9dY7ysOi5EVQHnzaxS+1NmV+/RVRpmrzGw1QgY2Xpmw== +esbuild-linux-arm64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.25.tgz#7ac94371418a2640ba413bc1700aaedeb2794e52" + integrity sha512-UxfenPx/wSZx55gScCImPtXekvZQLI2GW3qe5dtlmU7luiqhp5GWPzGeQEbD3yN3xg/pHc671m5bma5Ns7lBHw== -esbuild-linux-mips64le@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.23.tgz#bb4c47fccc9493d460ffeb1f88e8a97a98a14f8b" - integrity sha512-kHKyKRIAedYhKug2EJpyJxOUj3VYuamOVA1pY7EimoFPzaF3NeY7e4cFBAISC/Av0/tiV0xlFCt9q0HJ68IBIw== +esbuild-linux-arm@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.25.tgz#034bd18e9310b9f010c89f90ef7f05706689600b" + integrity sha512-aTLcE2VBoLydL943REcAcgnDi3bHtmULSXWLbjtBdtykRatJVSxKMjK9YlBXUZC4/YcNQfH7AxwVeQr9fNxPhw== -esbuild-linux-ppc64le@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.23.tgz#a332dbc8a1b4e30cfe1261bfaa5cef57c9c8c02a" - integrity sha512-7ilAiJEPuJJnJp/LiDO0oJm5ygbBPzhchJJh9HsHZzeqO+3PUzItXi+8PuicY08r0AaaOe25LA7sGJ0MzbfBag== +esbuild-linux-mips64le@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.25.tgz#05f98a8cf6b578eab6b4e6b0ab094f37530934f4" + integrity sha512-wLWYyqVfYx9Ur6eU5RT92yJVsaBGi5RdkoWqRHOqcJ38Kn60QMlcghsKeWfe9jcYut8LangYZ98xO1LxIoSXrQ== -esbuild-linux-riscv64@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.23.tgz#85675f3f931f5cd7cfb238fd82f77a62ffcb6d86" - integrity sha512-fbL3ggK2wY0D8I5raPIMPhpCvODFE+Bhb5QGtNP3r5aUsRR6TQV+ZBXIaw84iyvKC8vlXiA4fWLGhghAd/h/Zg== +esbuild-linux-ppc64le@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.25.tgz#46fd0add8d8535678439d7a9c2876ad20042d952" + integrity sha512-0dR6Csl6Zas3g4p9ULckEl8Mo8IInJh33VCJ3eaV1hj9+MHGdmDOakYMN8MZP9/5nl+NU/0ygpd14cWgy8uqRw== -esbuild-linux-s390x@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.23.tgz#a526282a696e6d846f4c628f5315475518c0c0f0" - integrity sha512-GHMDCyfy7+FaNSO8RJ8KCFsnax8fLUsOrj9q5Gi2JmZMY0Zhp75keb5abTFCq2/Oy6KVcT0Dcbyo/bFb4rIFJA== +esbuild-linux-riscv64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.25.tgz#ea2e986f0f3e5df73c635135dd778051734fc605" + integrity sha512-J4d20HDmTrgvhR0bdkDhvvJGaikH3LzXQnNaseo8rcw9Yqby9A90gKUmWpfwqLVNRILvNnAmKLfBjCKU9ajg8w== -esbuild-netbsd-64@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.23.tgz#8e456605694719aa1be4be266d6cd569c06dfaf5" - integrity sha512-ovk2EX+3rrO1M2lowJfgMb/JPN1VwVYrx0QPUyudxkxLYrWeBxDKQvc6ffO+kB4QlDyTfdtAURrVzu3JeNdA2g== +esbuild-linux-s390x@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.25.tgz#efe89486e9a1b1508925048076e3f3a6698aa6a3" + integrity sha512-YI2d5V6nTE73ZnhEKQD7MtsPs1EtUZJ3obS21oxQxGbbRw1G+PtJKjNyur+3t6nzHP9oTg6GHQ3S3hOLLmbDIQ== -esbuild-openbsd-64@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.23.tgz#f2fc51714b4ddabc86e4eb30ca101dd325db2f7d" - integrity sha512-uYYNqbVR+i7k8ojP/oIROAHO9lATLN7H2QeXKt2H310Fc8FJj4y3Wce6hx0VgnJ4k1JDrgbbiXM8rbEgQyg8KA== +esbuild-netbsd-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.25.tgz#439fe27d8ee3b5887501ee63988e85f920107db6" + integrity sha512-TKIVgNWLUOkr+Exrye70XTEE1lJjdQXdM4tAXRzfHE9iBA7LXWcNtVIuSnphTqpanPzTDFarF0yqq4kpbC6miA== + +esbuild-openbsd-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.25.tgz#31ebf616aadf6e60674469f2b92cec92280d9930" + integrity sha512-QgFJ37A15D7NIXBTYEqz29+uw3nNBOIyog+3kFidANn6kjw0GHZ0lEYQn+cwjyzu94WobR+fes7cTl/ZYlHb1A== esbuild-plugin-text-replace@1.2.0: version "1.2.0" @@ -2860,10 +2891,10 @@ esbuild-plugin-text-replace@1.2.0: dependencies: ts-replace-all "^1.0.0" -esbuild-sunos-64@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.23.tgz#a408f33ea20e215909e20173a0fd78b1aaad1f8e" - integrity sha512-hAzeBeET0+SbScknPzS2LBY6FVDpgE+CsHSpe6CEoR51PApdn2IB0SyJX7vGelXzlyrnorM4CAsRyb9Qev4h9g== +esbuild-sunos-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.25.tgz#815e4f936d74970292a63ccfd5791fe5e3569f5f" + integrity sha512-rmWfjUItYIVlqr5EnTH1+GCxXiBOC42WBZ3w++qh7n2cS9Xo0lO5pGSG2N+huOU2fX5L+6YUuJ78/vOYvefeFw== esbuild-visualizer@0.3.1: version "0.3.1" @@ -2874,45 +2905,46 @@ esbuild-visualizer@0.3.1: open "^7.4.2" yargs "^16.2.0" -esbuild-windows-32@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.23.tgz#b9005bbff54dac3975ff355d5de2b5e37165d128" - integrity sha512-Kttmi3JnohdaREbk6o9e25kieJR379TsEWF0l39PQVHXq3FR6sFKtVPgY8wk055o6IB+rllrzLnbqOw/UV60EA== +esbuild-windows-32@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.25.tgz#189e14df2478f2c193c86968ab1fb54e1ceaafd2" + integrity sha512-HGAxVUofl3iUIz9W10Y9XKtD0bNsK9fBXv1D55N/ljNvkrAYcGB8YCm0v7DjlwtyS6ws3dkdQyXadbxkbzaKOA== -esbuild-windows-64@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.23.tgz#2b5a99befeaca6aefdad32d738b945730a60a060" - integrity sha512-JtIT0t8ymkpl6YlmOl6zoSWL5cnCgyLaBdf/SiU/Eg3C13r0NbHZWNT/RDEMKK91Y6t79kTs3vyRcNZbfu5a8g== +esbuild-windows-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.25.tgz#3d5fbfdc3856850bb47439299e3b60dd18be111f" + integrity sha512-TirEohRkfWU9hXLgoDxzhMQD1g8I2mOqvdQF2RS9E/wbkORTAqJHyh7wqGRCQAwNzdNXdg3JAyhQ9/177AadWA== -esbuild-windows-arm64@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.23.tgz#edc560bbadb097eb45fc235aeacb942cb94a38c0" - integrity sha512-cTFaQqT2+ik9e4hePvYtRZQ3pqOvKDVNarzql0VFIzhc0tru/ZgdLoXd6epLiKT+SzoSce6V9YJ+nn6RCn6SHw== +esbuild-windows-arm64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.25.tgz#8b243cbbad8a86cf98697da9ccb88c05df2ef458" + integrity sha512-4ype9ERiI45rSh+R8qUoBtaj6kJvUOI7oVLhKqPEpcF4Pa5PpT3hm/mXAyotJHREkHpM87PAJcA442mLnbtlNA== -esbuild@0.14.23: - version "0.14.23" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.23.tgz#95e842cb22bc0c7d82c140adc16788aac91469fe" - integrity sha512-XjnIcZ9KB6lfonCa+jRguXyRYcldmkyZ99ieDksqW/C8bnyEX299yA4QH2XcgijCgaddEZePPTgvx/2imsq7Ig== +esbuild@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.25.tgz#ddb9d47b91ca76abb7d850ce3dfed0bc3dc88d16" + integrity sha512-4JHEIOMNFvK09ziiL+iVmldIhLbn49V4NAVo888tcGFKedEZY/Y8YapfStJ6zSE23tzYPKxqKwQBnQoIO0BI/Q== optionalDependencies: - esbuild-android-arm64 "0.14.23" - esbuild-darwin-64 "0.14.23" - esbuild-darwin-arm64 "0.14.23" - esbuild-freebsd-64 "0.14.23" - esbuild-freebsd-arm64 "0.14.23" - esbuild-linux-32 "0.14.23" - esbuild-linux-64 "0.14.23" - esbuild-linux-arm "0.14.23" - esbuild-linux-arm64 "0.14.23" - esbuild-linux-mips64le "0.14.23" - esbuild-linux-ppc64le "0.14.23" - esbuild-linux-riscv64 "0.14.23" - esbuild-linux-s390x "0.14.23" - esbuild-netbsd-64 "0.14.23" - esbuild-openbsd-64 "0.14.23" - esbuild-sunos-64 "0.14.23" - esbuild-windows-32 "0.14.23" - esbuild-windows-64 "0.14.23" - esbuild-windows-arm64 "0.14.23" + esbuild-android-64 "0.14.25" + esbuild-android-arm64 "0.14.25" + esbuild-darwin-64 "0.14.25" + esbuild-darwin-arm64 "0.14.25" + esbuild-freebsd-64 "0.14.25" + esbuild-freebsd-arm64 "0.14.25" + esbuild-linux-32 "0.14.25" + esbuild-linux-64 "0.14.25" + esbuild-linux-arm "0.14.25" + esbuild-linux-arm64 "0.14.25" + esbuild-linux-mips64le "0.14.25" + esbuild-linux-ppc64le "0.14.25" + esbuild-linux-riscv64 "0.14.25" + esbuild-linux-s390x "0.14.25" + esbuild-netbsd-64 "0.14.25" + esbuild-openbsd-64 "0.14.25" + esbuild-sunos-64 "0.14.25" + esbuild-windows-32 "0.14.25" + esbuild-windows-64 "0.14.25" + esbuild-windows-arm64 "0.14.25" escalade@^3.1.1: version "3.1.1" @@ -2951,10 +2983,10 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.4.0.tgz#8e6d17c7436649e98c4c2189868562921ef563de" - integrity sha512-CFotdUcMY18nGRo5KGsnNxpznzhkopOcOo0InID+sgQssPrzjvsyKZPvOgymTFeHrFuC3Tzdf2YndhXtULK9Iw== +eslint-config-prettier@8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" + integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== eslint-formatter-friendly@7.0.0: version "7.0.0" @@ -3028,10 +3060,10 @@ eslint-plugin-prettier-internal-rules@2.0.1: resolved "https://registry.yarnpkg.com/eslint-plugin-prettier-internal-rules/-/eslint-plugin-prettier-internal-rules-2.0.1.tgz#ee6f5b4d663fd16d406f66a0d52775d05be1bd6e" integrity sha512-6mLlbq4xl86c66Smulq2a/bIpTzXDL3LcoYQd/C+kSbjLl8L7G+3wNJs6lWsZZ5v8fyirundQBH6PP/PSAzDMw== -eslint-plugin-react@7.29.2: - version "7.29.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.2.tgz#2d4da69d30d0a736efd30890dc6826f3e91f3f7c" - integrity sha512-ypEBTKOy5liFQXZWMchJ3LN0JX1uPI6n7MN7OPHKacqXAxq5gYC30TdO7wqGYQyxD1OrzpobdHC3hDmlRWDg9w== +eslint-plugin-react@7.29.3: + version "7.29.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.3.tgz#f4eab757f2756d25d6d4c2a58a9e20b004791f05" + integrity sha512-MzW6TuCnDOcta67CkpDyRfRsEVx9FNMDV8wZsDqe1luHPdGTrQIUaUXD27Ja3gHsdOIs/cXzNchWGlqm+qRVRg== dependencies: array-includes "^3.1.4" array.prototype.flatmap "^1.2.5" @@ -3321,7 +3353,7 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fetch-blob@^3.1.2, fetch-blob@^3.1.3: +fetch-blob@^3.1.2, fetch-blob@^3.1.4: version "3.1.4" resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.1.4.tgz#e8c6567f80ad7fc22fd302e7dcb72bafde9c1717" integrity sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA== @@ -5025,13 +5057,13 @@ node-domexception@^1.0.0: resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== -node-fetch@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.1.1.tgz#d0d9607e455b3087e3092b821b5b1f1ebf4c2147" - integrity sha512-SMk+vKgU77PYotRdWzqZGTZeuFKlsJ0hu4KPviQKkfY+N3vn2MIzr0rvpnYpR8MtB3IEuhlEcuOLbGvLRlA+yg== +node-fetch@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.1.tgz#002177382810cfb77858857f69a3621a86c45f26" + integrity sha512-Ef3SPFtRWFCDyhvcwCSvacLpkwmYZcD57mmZzAsMiks9TpHpIghe32U9H06tMICnr+X7YCpzH7WvUlUoml2urA== dependencies: data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.3" + fetch-blob "^3.1.4" formdata-polyfill "^4.0.10" node-gyp-build@^4.2.2: